<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns='http://tfr.com/myClassSchema'
			xmlns:xsd='http://www.w3.org/2001/XMLSchema'
			targetNamespace='http://tfr.com/myClassSchema'
			elementFormDefault='qualified'>

	<xsd:annotation>
		<xsd:documentation>
			XML Schema defining information about a class
		</xsd:documentation>
	</xsd:annotation>

	<xsd:simpleType name="CourseNumType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[A-Z]{2}[0-9]{3}"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="ID9Type">
		<xsd:restriction base="xsd:integer">
			<xsd:totalDigits value="9"/>
			<xsd:minInclusive value="000000000"/>
		</xsd:restriction>
	</xsd:simpleType>

	<xsd:simpleType name="YearType">
		<xsd:restriction base="xsd:integer">
			<xsd:totalDigits value="4"/>
			<xsd:minInclusive value="2001"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:element name="ClassInfo" type="ClassInfoType"/> 
	<xsd:element name="Instructor" type="InstructorType"/> 
	<xsd:element name="Student" type="StudentType"/> 

	<xsd:element name="ID" type="ID9Type"/> 
	<xsd:element name="Name" type="xsd:string"/> 
	<xsd:element name="Title" type="xsd:string"/> 
	<xsd:element name="Email" type="xsd:string"/> 
	<xsd:element name="Phone" type="xsd:string"/> 
	
	<xsd:complexType name="InstructorType">
		<xsd:sequence>
			<xsd:element ref="Name"/>
			<xsd:element ref="Title"/>
			<xsd:element ref="ID"/>
			<xsd:element ref="Email"/>
			<xsd:element ref="Phone"/>
		</xsd:sequence> 
	</xsd:complexType> 

	<xsd:complexType name="StudentType">
		<xsd:sequence>
			<xsd:element ref="Name"/>
			<xsd:element ref="ID"/>
			<xsd:element name="YOG" type="YearType"/> 
			<xsd:element ref="Email"/>
			<xsd:element ref="Phone"/>
		</xsd:sequence> 
	</xsd:complexType> 

	<xsd:complexType name="ClassInfoType">
		<xsd:sequence>
			<xsd:element name="CourseNo" type="CourseNumType"/>
			<xsd:element ref="Title"/>
			<xsd:element name="Section" type="xsd:string"/> 
			<xsd:element name="Semester" type="xsd:string"/> 
			<xsd:element name="Year" type="YearType"/> 
			<xsd:element ref="Instructor" minOccurs="0"/>
			<xsd:element ref="Student" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType> 

</xsd:schema>
