<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<xsi:schema xmlns:xsi ="http://www.w3.org/2001/XMLSchema">
	<xsi:element name="library_info">
		<xsi:complexType>
			<xsi:sequence>
				<xsi:element ref="library_name" />
				<xsi:element ref="location" />
				<xsi:element ref="contact_info" />
				<xsi:element ref="hours" />
				<xsi:element ref="collection" />
				<xsi:element ref="special_programs" minOccurs="0" />
				<xsi:element ref="comments" minOccurs="0" />
			</xsi:sequence>
		</xsi:complexType>
	</xsi:element>
	<xsi:element name="library_name">
		<xsi:complexType>
			<xsi:simpleContent>
				<xsi:extension base="xsi:string">
					<xsi:attribute name="network" type="network" use="required" />
				</xsi:extension>
			</xsi:simpleContent>
		</xsi:complexType>
	</xsi:element>
	<xsi:element name="location">
		<xsi:complexType>
			<xsi:sequence>
				<xsi:element name="address" type="address" />
				<xsi:element name="street" type="xsi:string" />
				<xsi:element name="town" type="xsi:string" />
			</xsi:sequence>
		</xsi:complexType>
	</xsi:element>
	<xsi:element name="contact_info">
		<xsi:complexType>
			<xsi:sequence>	
				<xsi:element name="contact" type="contact" />
				<xsi:element name="contact_name" type="contactname" />
				<xsi:element name="phone_number" type="phonenumber" maxOccurs="3" />
				<xsi:element name="email" type="email" maxOccurs="3" />
			</xsi:sequence>
		</xsi:complexType>
	</xsi:element>
	<xsi:element name="hours">
		<xsi:complexType>
			<xsi:sequence>
				<xsi:element name="operating_hours" type="operatinghours" />
				<xsi:element name="timetable" type="timetable" />
			</xsi:sequence>
		</xsi:complexType>
	</xsi:element>
	<xsi:element name="collection">
		<xsi:complexType>
			<xsi:sequence>
				<xsi:element name="collection_size" type="collectionsize" />
				<xsi:element name="books" type="books" />
				<xsi:element name="periodicals" type="periodicals" />
				<xsi:element name="dvds" type="titles" minOccurs="0" />
				<xsi:element name="cds" type="titles" minOccurs="0" />
			</xsi:sequence>
		</xsi:complexType>
	</xsi:element>
	<xsi:element name="special_programs">
		<xsi:complexType>
			<xsi:sequence>
				<xsi:element name="programs" type="programs" />
				<xsi:element name="program" type="xsi:string" maxOccurs="10" />
			</xsi:sequence>
		</xsi:complexType>
	</xsi:element>
	<xsi:element name="comments">
		<xsi:complexType>
			<xsi:sequence>
				<xsi:element name="commenttitle" type="commentTitle" />
				<xsi:element name="comment" type="xsi:string" maxOccurs="10" />
			</xsi:sequence>
		</xsi:complexType>
	</xsi:element>
<!--End of Elements-->
<!--Start of User-Defined Data Types-->
	<xsi:simpleType name="address">
		<xsi:restriction base="xsi:string">
			<xsi:enumeration value="Address" />
		</xsi:restriction>
	</xsi:simpleType>
	<xsi:simpleType name="network">
		<xsi:restriction base="xsi:string">
			<xsi:enumeration value="Northeren Library Network" />
			<xsi:enumeration value="Southern Library Network" />
			<xsi:enumeration value="Western Library Network" />
		</xsi:restriction>
	</xsi:simpleType>
	<xsi:simpleType name="contact">
		<xsi:restriction base="xsi:string">
			<xsi:enumeration value="Contact" />
		</xsi:restriction>
	</xsi:simpleType>
	<xsi:complexType name="contactname">
		<xsi:simpleContent>
			<xsi:extension base="xsi:string">
				<xsi:attribute name="position" type="xsi:string" use="optional" />
			</xsi:extension>
		</xsi:simpleContent>
	</xsi:complexType>
	<xsi:complexType name="phonenumber">
		<xsi:simpleContent>
			<xsi:extension base="phonepattern">
				<xsi:attribute name="Type" type="phonetype" use="optional" />
			</xsi:extension>
		</xsi:simpleContent>
	</xsi:complexType>
	<xsi:simpleType name="phonepattern">
		<xsi:restriction base="xsi:string">
			<xsi:pattern value="(\d{3}) \d{3}-\d{4}" />
		</xsi:restriction>
	</xsi:simpleType>
	<xsi:simpleType name="phonetype">
		<xsi:restriction base="xsi:string">
			<xsi:enumeration value="Office" />
			<xsi:enumeration value="Cell" />
		</xsi:restriction>
	</xsi:simpleType>

	<!--   .*@>* should conform to the pattern of "any text"@"any other text"
	See http://www.w3.org/TR/xmlschema-0/#CreatDt for regular pattern examples-->

	<xsi:simpleType name="email">
		<xsi:restriction base="xsi:string">
			<xsi:pattern value=".*@.*" />
		</xsi:restriction>
	</xsi:simpleType>
	<xsi:simpleType name="operatinghours">
		<xsi:restriction base="xsi:string">
			<xsi:enumeration value="Hours of Operation" />
		</xsi:restriction>
	</xsi:simpleType>
	<xsi:complexType name="timetable">
		<xsi:sequence>
			<xsi:element name="schedule" type="schedule" maxOccurs="7" minOccurs="7" />
		</xsi:sequence>
	</xsi:complexType>
	<xsi:complexType name="schedule">
		<xsi:sequence>
			<xsi:element name="day">
				<xsi:simpleType>
					<xsi:restriction base="xsi:string">
						<xsi:enumeration value="Sunday" />
						<xsi:enumeration value="Monday" />
						<xsi:enumeration value="Tuesday" />
						<xsi:enumeration value="Wednesday" />
						<xsi:enumeration value="Thursday" />
						<xsi:enumeration value="Friday" />
						<xsi:enumeration value="Saturday" />
					</xsi:restriction>
				</xsi:simpleType>
			</xsi:element>
			<xsi:element name="times" type="xsi:string" />
		</xsi:sequence>
	</xsi:complexType>
	<xsi:simpleType name="collectionsize">
		<xsi:restriction base="xsi:string">
			<xsi:enumeration value="Collection Size" />
		</xsi:restriction>
	</xsi:simpleType>

	<!--   .*/sBooks should conform to the pattern of "any text" Books
	See http://www.w3.org/TR/xmlschema-0/#CreatDt for regular pattern examples-->

	<xsi:simpleType name="books">
		<xsi:restriction base="xsi:string">
			<xsi:pattern value=".*\sBooks" />
		</xsi:restriction>
	</xsi:simpleType>

	<!--  See note on books type  -->

	<xsi:simpleType name="periodicals">
		<xsi:restriction base="xsi:string">
			<xsi:pattern value=".*\sPeriodical Titles" />
		</xsi:restriction>
	</xsi:simpleType>

	<!--  See note on books type  -->

	<xsi:simpleType name="titles">
		<xsi:restriction base="xsi:string">
			<xsi:pattern value=".*\sTitles" />
		</xsi:restriction>
	</xsi:simpleType>
	<xsi:simpleType name="programs">
		<xsi:restriction base="xsi:string">
			<xsi:enumeration value="Special Programs" />
		</xsi:restriction>
	</xsi:simpleType>
	<xsi:simpleType name="commentTitle">
		<xsi:restriction base="xsi:string">
			<xsi:enumeration value="Comments" />
		</xsi:restriction>
	</xsi:simpleType>
</xsi:schema>
