<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.07">

<!-- AIRS XML Data Transfer Record Format Version 2.07-->

	<!--                                                                                                                                                                                  -->
	<!-- Global Type Definitions -->
	<!--                                                                                                                                                                                  -->
	<!-- Canadian or USA Address -->
	<xs:complexType name="tAddress">
		<xs:choice>
			<xs:sequence>
				<xs:element name="PostalCode" type="tPostalCode"/>
				<xs:element name="Province" type="tProvince"/>
				<xs:element name="City" type="xs:string"/>
				<xs:element name="CA" type="xs:string" fixed="CA"/>
				<xs:element name="PreAddressLine" type="xs:string" minOccurs="0"/>
				<xs:element name="Line1" type="xs:string"/>
				<xs:element name="Line2" type="xs:string" minOccurs="0"/>
				<xs:element name="County" type="xs:string" minOccurs="0"/>
			</xs:sequence>
			<xs:sequence>
				<xs:element name="ZipCode" type="uZipCode"/>
				<xs:element name="State" type="tState"/>
				<xs:element name="City" type="xs:string"/>
				<xs:element name="USA" type="xs:string" fixed="USA"/>
				<xs:element name="PreAddressLine" type="xs:string" minOccurs="0"/>
				<xs:element name="Line1" type="xs:string"/>
				<xs:element name="Line2" type="xs:string" minOccurs="0"/>
				<xs:element name="County" type="xs:string" minOccurs="0"/>
			</xs:sequence>
		</xs:choice>
		<xs:attribute name="Confidential" type="xs:boolean" use="required"/>
		<xs:attribute name="Description" type="xs:string" use="optional"/>
	</xs:complexType>
	<!-- Age Requirements -->
	<xs:complexType name="tAgeRequirements">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="Gender">
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="Male"/>
							<xs:enumeration value="Female"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:attribute>
				<xs:attribute name="MinimumAge" type="xs:nonNegativeInteger"/>
				<xs:attribute name="MaximumAge" type="xs:nonNegativeInteger"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- Agency Definition: Parent/Child relationships are handled through recursion -->
	<xs:complexType name="tAgency">
		<xs:sequence>
			<xs:element name="Key" type="xs:nonNegativeInteger"/>
			<xs:element name="Name" type="xs:string"/>
			<xs:element name="AgencyDescription" type="xs:string"/>
			<xs:element name="AKA" type="tConfidentialString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:choice>
				<xs:sequence>
					<xs:element name="PhysicalAddress" type="tAddress"/>
					<xs:element name="MailingAddress" type="tAddress" minOccurs="0"/>
				</xs:sequence>
				<xs:sequence>
					<xs:element name="MailingAddress" type="tAddress"/>
				</xs:sequence>
			</xs:choice>
			<xs:element name="OtherAddress" type="tAddress" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Phone" type="tPhone" maxOccurs="unbounded"/>
			<xs:element name="URL" type="tURL" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Email" type="tEMail" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Contact" type="tContact" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Hours" type="tHours"/>
			<xs:element name="LicenseAccreditation" type="tLicenseAccreditation" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="IRSStatus" type="tIRSStatus" default="UNKNOWN"/>
			<xs:element name="SourceOfFunds" type="tSourceOfFunds" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Site" type="tSite" block="#all" maxOccurs="unbounded"/>
			<xs:element name="Service" type="tService" block="#all" maxOccurs="unbounded"/>
			<xs:element name="ServiceSiteLink" type="tServiceSiteLink" block="#all" maxOccurs="unbounded"/>
			<xs:element name="ResourceInfo" type="tResourceInfo" block="#all" minOccurs="0"/>
			<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			
			<!-- Added for 2.07 to allow Agency and VirtualAgency children -->
			<xs:choice maxOccurs="unbounded" minOccurs="0">
				<xs:element name="Agency" type="tAgency" block="#all"/>
				<xs:element name="VirtualAgency" type="tVirtualAgency" block="#all"/>
			</xs:choice>
			
		</xs:sequence>
		<xs:attribute name="RecordOwner" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:pattern value="(AA|AP|AE|AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PA|PW|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY|AB|BC|MB|NB|NL|NS|NT|NU|ON|PE|QC|SK|YT)[0-9A-Z]{4,8}"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="FEIN">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:pattern value="[0-9]{2}-[0-9]{7}"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="YearInc" type="xs:gYear"/>
		<xs:attribute name="AnnualBudgetTotal" type="xs:nonNegativeInteger"/>
		<xs:attribute name="LegalStatus" type="tLegalStatus"/>
		<xs:attribute name="ExcludeFromWebsite" type="xs:boolean"/>
		<xs:attribute name="ExcludeFromDirectory" type="xs:boolean"/>
	</xs:complexType>
	<!-- VirtualAgency Definition: Parent/Child relationships are handled through recursion -->
	<xs:complexType name="tVirtualAgency">
		<xs:sequence>
			<xs:element name="Key" type="xs:nonNegativeInteger"/>
			<xs:element name="Name" type="xs:string"/>
			<xs:element name="AgencyDescription" type="xs:string"/>
			<xs:element name="AKA" type="tConfidentialString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="PhysicalAddress" type="tAddress" minOccurs="0"/>
			<xs:element name="MailingAddress" type="tAddress" minOccurs="0"/>
			<xs:element name="OtherAddress" type="tAddress" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Phone" type="tPhone" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="URL" type="tURL" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Email" type="tEMail" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Contact" type="tContact" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Hours" type="tHours" minOccurs="0"/>
			<xs:element name="LicenseAccreditation" type="tLicenseAccreditation" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="IRSStatus" type="tIRSStatus" default="UNKNOWN" minOccurs="0"/>
			<xs:element name="SourceOfFunds" type="tSourceOfFunds" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Site" type="tSite" block="#all" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Service" type="tService" block="#all" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ServiceSiteLink" type="tServiceSiteLink" block="#all" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ResourceInfo" type="tResourceInfo" block="#all" minOccurs="0"/>
			<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			
			<!-- Added for 2.07 to allow Agency and VirtualAgency children -->
			<xs:choice maxOccurs="unbounded" minOccurs="0">
				<xs:element name="Agency" type="tAgency" block="#all"/>
				<xs:element name="VirtualAgency" type="tVirtualAgency" block="#all"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="RecordOwner" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:pattern value="(AA|AP|AE|AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PA|PW|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY|AB|BC|MB|NB|NL|NS|NT|NU|ON|PE|QC|SK|YT)[0-9A-Z]{4,8}"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="FEIN" use="optional">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:pattern value="[0-9]{2}-[0-9]{7}"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="YearInc" type="xs:gYear"/>
		<xs:attribute name="AnnualBudgetTotal" type="xs:nonNegativeInteger"/>
		<xs:attribute name="LegalStatus" type="tLegalStatus"/>
		<xs:attribute name="ExcludeFromWebsite" type="xs:boolean"/>
		<xs:attribute name="ExcludeFromDirectory" type="xs:boolean"/>
	</xs:complexType>
	<!-- Agency Transportation List-->
	<xs:simpleType name="tAgencyTransportationList">
		<xs:restriction base="xs:string">
			<xs:enumeration value="UNKNOWN"/>
			<xs:enumeration value="OTHER"/>
			<xs:enumeration value="ComplimentaryToFacility"/>
			<xs:enumeration value="MedicaidPatients"/>
			<xs:enumeration value="SchoolBus"/>
			<xs:enumeration value="SpecialTransportation"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- Application Process -->
	<xs:complexType name="tApplicationProcess">
		<xs:sequence>
			<xs:element name="ApplicationProcessList" type="tApplicationProcessList" maxOccurs="unbounded"/>
			<xs:element name="Description" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- Application Process List-->
	<xs:simpleType name="tApplicationProcessList">
		<xs:restriction base="xs:string">
			<xs:enumeration value="UNKNOWN"/>
			<xs:enumeration value="OTHER"/>
			<xs:enumeration value="AppointmentPreferred"/>
			<xs:enumeration value="AppointmentRequired"/>
			<xs:enumeration value="ReferralRequired"/>
			<xs:enumeration value="TelephoneForService"/>
			<xs:enumeration value="TelephoneToApply"/>
			<xs:enumeration value="WalkInForService"/>
			<xs:enumeration value="WriteForService"/>
			<xs:enumeration value="Website"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- Simple String with Confidential Flag -->
	<xs:complexType name="tConfidentialString">
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="Confidential" type="xs:boolean" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- Contact -->
	<xs:complexType name="tContact">
		<xs:sequence>
			<xs:element name="Title" type="xs:string" minOccurs="0"/>
			<xs:element name="Name" type="xs:string"/>
			<xs:choice maxOccurs="unbounded">
				<xs:element name="Email" type="tEMail"/>
				<xs:element name="Phone" type="tPhone"/>
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="Type" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Administrator"/>
					<xs:enumeration value="Contact"/>
					<xs:enumeration value="Owner"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- Documents Required -->
	<xs:complexType name="tDocumentsRequired">
		<xs:sequence>
			<xs:element name="DocumentsRequiredList" type="tDocumentsRequiredList" maxOccurs="unbounded"/>
			<xs:element name="Description" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- Documents Required List-->
	<xs:simpleType name="tDocumentsRequiredList">
		<xs:restriction base="xs:string">
			<xs:enumeration value="UNKNOWN"/>
			<xs:enumeration value="OTHER"/>
			<xs:enumeration value="BirthCertificate"/>
			<xs:enumeration value="EvictionNotice"/>
			<xs:enumeration value="DoctorsOrders"/>
			<xs:enumeration value="DriversLicense"/>
			<xs:enumeration value="LastTaxReturn"/>
			<xs:enumeration value="PhotoID"/>
			<xs:enumeration value="ProofOfIncome"/>
			<xs:enumeration value="ProofOfResidency"/>
			<xs:enumeration value="SocialSecurityID"/>
			<xs:enumeration value="SocialSecurityAwardLetter"/>
			<xs:enumeration value="UtilityBill"/>
			<xs:enumeration value="UtilityShutoffNotice"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- Email Address: restricted by regular expression, see www.regexlib.com -->
	<xs:complexType name="tEMail">
		<xs:sequence>
			<xs:element name="Address">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:pattern value="(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Note" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<!-- Geographic Area Reference -->
	<xs:complexType name="tGeographicArea">
		<xs:attribute name="GeographicAreaDefinitionID" type="xs:string" use="required"/>
	</xs:complexType>
	<!-- Geographic Area Definition -->
	<xs:complexType name="tGeographicAreaDefinition">
		<xs:sequence>
			<xs:element name="Name" type="xs:string"/>
			<xs:element name="Description" type="xs:string"/>
			<xs:choice>
				<xs:element name="ZipCode" type="uZipCode" maxOccurs="unbounded"/>
				<xs:element name="PostalCode" type="tPostalCode" maxOccurs="unbounded"/>
			</xs:choice>
			<xs:choice minOccurs="0">
				<xs:element name="City" type="xs:string"/>
				<xs:element name="County" type="xs:string"/>
				<xs:element name="State" type="tState"/>
				<xs:element name="Province" type="tProvince"/>
			</xs:choice>
			<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID" use="required"/>
	</xs:complexType>
	<!-- Hours -->
	<xs:complexType name="tHours">
		<xs:sequence>
			<xs:element name="Sunday" minOccurs="0">
				<xs:complexType>
					<xs:sequence maxOccurs="unbounded">
						<xs:element name="From" type="xs:time"/>
						<xs:element name="To" type="xs:time"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Monday" minOccurs="0">
				<xs:complexType>
					<xs:sequence maxOccurs="unbounded">
						<xs:element name="From" type="xs:time"/>
						<xs:element name="To" type="xs:time"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Tuesday" minOccurs="0">
				<xs:complexType>
					<xs:sequence maxOccurs="unbounded">
						<xs:element name="From" type="xs:time"/>
						<xs:element name="To" type="xs:time"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Wednesday" minOccurs="0">
				<xs:complexType>
					<xs:sequence maxOccurs="unbounded">
						<xs:element name="From" type="xs:time"/>
						<xs:element name="To" type="xs:time"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Thursday" minOccurs="0">
				<xs:complexType>
					<xs:sequence maxOccurs="unbounded">
						<xs:element name="From" type="xs:time"/>
						<xs:element name="To" type="xs:time"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Friday" minOccurs="0">
				<xs:complexType>
					<xs:sequence maxOccurs="unbounded">
						<xs:element name="From" type="xs:time"/>
						<xs:element name="To" type="xs:time"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Saturday" minOccurs="0">
				<xs:complexType>
					<xs:sequence maxOccurs="unbounded">
						<xs:element name="From" type="xs:time"/>
						<xs:element name="To" type="xs:time"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Notes" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- IRSStatus:  defines the IRS status of the Agency.  The list of possible values was obtained form IRS Publication 557, March 2003 -->
	<xs:simpleType name="tIRSStatus">
		<xs:restriction base="xs:string">
			<xs:enumeration value="UNKNOWN"/>
			<xs:enumeration value="OTHER"/>
			<xs:enumeration value="501(d)"/>
			<xs:enumeration value="501(e)"/>
			<xs:enumeration value="501(f)"/>
			<xs:enumeration value="501(c)(1)"/>
			<xs:enumeration value="501(c)(11)"/>
			<xs:enumeration value="501(c)(15)"/>
			<xs:enumeration value="501(c)(16)"/>
			<xs:enumeration value="501(c)(18)"/>
			<xs:enumeration value="501(c)(22)"/>
			<xs:enumeration value="501(c)(23)"/>
			<xs:enumeration value="501(c)(3)"/>
			<xs:enumeration value="501(c)(4)"/>
			<xs:enumeration value="501(c)(5)"/>
			<xs:enumeration value="501(c)(6)"/>
			<xs:enumeration value="501(c)(7)"/>
			<xs:enumeration value="501(c)(8)"/>
			<xs:enumeration value="501(c)(9)"/>
			<xs:enumeration value="501(c)(10)"/>
			<xs:enumeration value="501(c)(12)"/>
			<xs:enumeration value="501(c)(13)"/>
			<xs:enumeration value="501(c)(14)"/>
			<xs:enumeration value="501(c)(17)"/>
			<xs:enumeration value="501(c)(19)"/>
			<xs:enumeration value="501(c)(20)"/>
			<xs:enumeration value="501(c)(21)"/>
			<xs:enumeration value="501(c)(25)"/>
			<xs:enumeration value="501(c)(26)"/>
			<xs:enumeration value="501(c)(27)"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- Languages - based on ISO 639-2, English Naming (http://www.loc.gov/standards/iso639-2) -->
	<xs:complexType name="tLanguages">
		<xs:sequence maxOccurs="unbounded">
			<xs:element name="Name">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="UNKNOWN"/>
						<xs:enumeration value="OTHER"/>
						<xs:enumeration value="aar"/>
						<xs:enumeration value="abk"/>
						<xs:enumeration value="ace"/>
						<xs:enumeration value="ach"/>
						<xs:enumeration value="ada"/>
						<xs:enumeration value="ady"/>
						<xs:enumeration value="afa"/>
						<xs:enumeration value="afh"/>
						<xs:enumeration value="afr"/>
						<xs:enumeration value="aka"/>
						<xs:enumeration value="akk"/>
						<xs:enumeration value="alb"/>
						<xs:enumeration value="ale"/>
						<xs:enumeration value="alg"/>
						<xs:enumeration value="amh"/>
						<xs:enumeration value="ang"/>
						<xs:enumeration value="apa"/>
						<xs:enumeration value="ara"/>
						<xs:enumeration value="arc"/>
						<xs:enumeration value="arg"/>
						<xs:enumeration value="arm"/>
						<xs:enumeration value="arn"/>
						<xs:enumeration value="arp"/>
						<xs:enumeration value="art"/>
						<xs:enumeration value="arw"/>
						<xs:enumeration value="asm"/>
						<xs:enumeration value="ast"/>
						<xs:enumeration value="ath"/>
						<xs:enumeration value="aus"/>
						<xs:enumeration value="ava"/>
						<xs:enumeration value="ave"/>
						<xs:enumeration value="awa"/>
						<xs:enumeration value="aym"/>
						<xs:enumeration value="aze"/>
						<xs:enumeration value="bad"/>
						<xs:enumeration value="bai"/>
						<xs:enumeration value="bak"/>
						<xs:enumeration value="bal"/>
						<xs:enumeration value="bam"/>
						<xs:enumeration value="ban"/>
						<xs:enumeration value="baq"/>
						<xs:enumeration value="bas"/>
						<xs:enumeration value="bat"/>
						<xs:enumeration value="bej"/>
						<xs:enumeration value="bel"/>
						<xs:enumeration value="bem"/>
						<xs:enumeration value="ben"/>
						<xs:enumeration value="ber"/>
						<xs:enumeration value="bho"/>
						<xs:enumeration value="bih"/>
						<xs:enumeration value="bik"/>
						<xs:enumeration value="bin"/>
						<xs:enumeration value="bis"/>
						<xs:enumeration value="bla"/>
						<xs:enumeration value="bnt"/>
						<xs:enumeration value="bod"/>
						<xs:enumeration value="bos"/>
						<xs:enumeration value="bra"/>
						<xs:enumeration value="bre"/>
						<xs:enumeration value="btk"/>
						<xs:enumeration value="bua"/>
						<xs:enumeration value="bug"/>
						<xs:enumeration value="bul"/>
						<xs:enumeration value="bur"/>
						<xs:enumeration value="cad"/>
						<xs:enumeration value="cai"/>
						<xs:enumeration value="car"/>
						<xs:enumeration value="cat"/>
						<xs:enumeration value="cau"/>
						<xs:enumeration value="ceb"/>
						<xs:enumeration value="cel"/>
						<xs:enumeration value="ces"/>
						<xs:enumeration value="cha"/>
						<xs:enumeration value="chb"/>
						<xs:enumeration value="che"/>
						<xs:enumeration value="chg"/>
						<xs:enumeration value="chi"/>
						<xs:enumeration value="chk"/>
						<xs:enumeration value="chm"/>
						<xs:enumeration value="chn"/>
						<xs:enumeration value="cho"/>
						<xs:enumeration value="chp"/>
						<xs:enumeration value="chr"/>
						<xs:enumeration value="chu"/>
						<xs:enumeration value="chv"/>
						<xs:enumeration value="chy"/>
						<xs:enumeration value="cmc"/>
						<xs:enumeration value="cop"/>
						<xs:enumeration value="cor"/>
						<xs:enumeration value="cos"/>
						<xs:enumeration value="cpe"/>
						<xs:enumeration value="cpf"/>
						<xs:enumeration value="cpp"/>
						<xs:enumeration value="cre"/>
						<xs:enumeration value="crh"/>
						<xs:enumeration value="crp"/>
						<xs:enumeration value="csb"/>
						<xs:enumeration value="cus"/>
						<xs:enumeration value="cym"/>
						<xs:enumeration value="cze"/>
						<xs:enumeration value="dak"/>
						<xs:enumeration value="dan"/>
						<xs:enumeration value="dar"/>
						<xs:enumeration value="day"/>
						<xs:enumeration value="del"/>
						<xs:enumeration value="den"/>
						<xs:enumeration value="deu"/>
						<xs:enumeration value="dgr"/>
						<xs:enumeration value="din"/>
						<xs:enumeration value="div"/>
						<xs:enumeration value="doi"/>
						<xs:enumeration value="dra"/>
						<xs:enumeration value="dua"/>
						<xs:enumeration value="dum"/>
						<xs:enumeration value="dut"/>
						<xs:enumeration value="dyu"/>
						<xs:enumeration value="dzo"/>
						<xs:enumeration value="efi"/>
						<xs:enumeration value="egy"/>
						<xs:enumeration value="eka"/>
						<xs:enumeration value="ell"/>
						<xs:enumeration value="elx"/>
						<xs:enumeration value="eng"/>
						<xs:enumeration value="enm"/>
						<xs:enumeration value="epo"/>
						<xs:enumeration value="est"/>
						<xs:enumeration value="eus"/>
						<xs:enumeration value="ewe"/>
						<xs:enumeration value="ewo"/>
						<xs:enumeration value="fan"/>
						<xs:enumeration value="fao"/>
						<xs:enumeration value="fas"/>
						<xs:enumeration value="fat"/>
						<xs:enumeration value="fij"/>
						<xs:enumeration value="fin"/>
						<xs:enumeration value="fiu"/>
						<xs:enumeration value="fon"/>
						<xs:enumeration value="fra"/>
						<xs:enumeration value="fre"/>
						<xs:enumeration value="frm"/>
						<xs:enumeration value="fro"/>
						<xs:enumeration value="fry"/>
						<xs:enumeration value="ful"/>
						<xs:enumeration value="fur"/>
						<xs:enumeration value="gaa"/>
						<xs:enumeration value="gay"/>
						<xs:enumeration value="gba"/>
						<xs:enumeration value="gem"/>
						<xs:enumeration value="geo"/>
						<xs:enumeration value="ger"/>
						<xs:enumeration value="gez"/>
						<xs:enumeration value="gil"/>
						<xs:enumeration value="gla"/>
						<xs:enumeration value="gle"/>
						<xs:enumeration value="glg"/>
						<xs:enumeration value="glv"/>
						<xs:enumeration value="gmh"/>
						<xs:enumeration value="goh"/>
						<xs:enumeration value="gon"/>
						<xs:enumeration value="gor"/>
						<xs:enumeration value="got"/>
						<xs:enumeration value="grb"/>
						<xs:enumeration value="grc"/>
						<xs:enumeration value="gre"/>
						<xs:enumeration value="grn"/>
						<xs:enumeration value="guj"/>
						<xs:enumeration value="gwi"/>
						<xs:enumeration value="hai"/>
						<xs:enumeration value="hat"/>
						<xs:enumeration value="hau"/>
						<xs:enumeration value="haw"/>
						<xs:enumeration value="heb"/>
						<xs:enumeration value="her"/>
						<xs:enumeration value="hil"/>
						<xs:enumeration value="him"/>
						<xs:enumeration value="hin"/>
						<xs:enumeration value="hit"/>
						<xs:enumeration value="hmn"/>
						<xs:enumeration value="hmo"/>
						<xs:enumeration value="hrv"/>
						<xs:enumeration value="hsb"/>
						<xs:enumeration value="hun"/>
						<xs:enumeration value="hup"/>
						<xs:enumeration value="hye"/>
						<xs:enumeration value="iba"/>
						<xs:enumeration value="ibo"/>
						<xs:enumeration value="ice"/>
						<xs:enumeration value="ido"/>
						<xs:enumeration value="iii"/>
						<xs:enumeration value="ijo"/>
						<xs:enumeration value="iku"/>
						<xs:enumeration value="ile"/>
						<xs:enumeration value="ilo"/>
						<xs:enumeration value="ina"/>
						<xs:enumeration value="inc"/>
						<xs:enumeration value="ind"/>
						<xs:enumeration value="ine"/>
						<xs:enumeration value="inh"/>
						<xs:enumeration value="ipk"/>
						<xs:enumeration value="ira"/>
						<xs:enumeration value="iro"/>
						<xs:enumeration value="isl"/>
						<xs:enumeration value="ita"/>
						<xs:enumeration value="jav"/>
						<xs:enumeration value="jpn"/>
						<xs:enumeration value="jpr"/>
						<xs:enumeration value="jrb"/>
						<xs:enumeration value="kaa"/>
						<xs:enumeration value="kab"/>
						<xs:enumeration value="kac"/>
						<xs:enumeration value="kal"/>
						<xs:enumeration value="kam"/>
						<xs:enumeration value="kan"/>
						<xs:enumeration value="kar"/>
						<xs:enumeration value="kas"/>
						<xs:enumeration value="kat"/>
						<xs:enumeration value="kau"/>
						<xs:enumeration value="kaw"/>
						<xs:enumeration value="kaz"/>
						<xs:enumeration value="kbd"/>
						<xs:enumeration value="kha"/>
						<xs:enumeration value="khi"/>
						<xs:enumeration value="khm"/>
						<xs:enumeration value="kho"/>
						<xs:enumeration value="kik"/>
						<xs:enumeration value="kin"/>
						<xs:enumeration value="kir"/>
						<xs:enumeration value="kmb"/>
						<xs:enumeration value="kok"/>
						<xs:enumeration value="kom"/>
						<xs:enumeration value="kon"/>
						<xs:enumeration value="kor"/>
						<xs:enumeration value="kos"/>
						<xs:enumeration value="kpe"/>
						<xs:enumeration value="krc"/>
						<xs:enumeration value="kro"/>
						<xs:enumeration value="kru"/>
						<xs:enumeration value="kua"/>
						<xs:enumeration value="kum"/>
						<xs:enumeration value="kur"/>
						<xs:enumeration value="kut"/>
						<xs:enumeration value="lad"/>
						<xs:enumeration value="lah"/>
						<xs:enumeration value="lam"/>
						<xs:enumeration value="lao"/>
						<xs:enumeration value="lat"/>
						<xs:enumeration value="lav"/>
						<xs:enumeration value="lez"/>
						<xs:enumeration value="lin"/>
						<xs:enumeration value="lit"/>
						<xs:enumeration value="lol"/>
						<xs:enumeration value="loz"/>
						<xs:enumeration value="ltz"/>
						<xs:enumeration value="lua"/>
						<xs:enumeration value="lub"/>
						<xs:enumeration value="lug"/>
						<xs:enumeration value="lui"/>
						<xs:enumeration value="lun"/>
						<xs:enumeration value="luo"/>
						<xs:enumeration value="lus"/>
						<xs:enumeration value="mac"/>
						<xs:enumeration value="mad"/>
						<xs:enumeration value="mag"/>
						<xs:enumeration value="mah"/>
						<xs:enumeration value="mai"/>
						<xs:enumeration value="mak"/>
						<xs:enumeration value="mal"/>
						<xs:enumeration value="man"/>
						<xs:enumeration value="mao"/>
						<xs:enumeration value="map"/>
						<xs:enumeration value="mar"/>
						<xs:enumeration value="mas"/>
						<xs:enumeration value="may"/>
						<xs:enumeration value="mdf"/>
						<xs:enumeration value="mdr"/>
						<xs:enumeration value="men"/>
						<xs:enumeration value="mga"/>
						<xs:enumeration value="mic"/>
						<xs:enumeration value="min"/>
						<xs:enumeration value="mis"/>
						<xs:enumeration value="mkd"/>
						<xs:enumeration value="mkh"/>
						<xs:enumeration value="mlg"/>
						<xs:enumeration value="mlt"/>
						<xs:enumeration value="mnc"/>
						<xs:enumeration value="mni"/>
						<xs:enumeration value="mno"/>
						<xs:enumeration value="moh"/>
						<xs:enumeration value="mol"/>
						<xs:enumeration value="mon"/>
						<xs:enumeration value="mos"/>
						<xs:enumeration value="mri"/>
						<xs:enumeration value="msa"/>
						<xs:enumeration value="mul"/>
						<xs:enumeration value="mun"/>
						<xs:enumeration value="mus"/>
						<xs:enumeration value="mwr"/>
						<xs:enumeration value="mya"/>
						<xs:enumeration value="myn"/>
						<xs:enumeration value="myv"/>
						<xs:enumeration value="nah"/>
						<xs:enumeration value="nai"/>
						<xs:enumeration value="nau"/>
						<xs:enumeration value="nav"/>
						<xs:enumeration value="nbl"/>
						<xs:enumeration value="nde"/>
						<xs:enumeration value="ndo"/>
						<xs:enumeration value="nds"/>
						<xs:enumeration value="nep"/>
						<xs:enumeration value="new"/>
						<xs:enumeration value="nia"/>
						<xs:enumeration value="nic"/>
						<xs:enumeration value="niu"/>
						<xs:enumeration value="nld"/>
						<xs:enumeration value="nno"/>
						<xs:enumeration value="nob"/>
						<xs:enumeration value="nog"/>
						<xs:enumeration value="non"/>
						<xs:enumeration value="nor"/>
						<xs:enumeration value="nso"/>
						<xs:enumeration value="nub"/>
						<xs:enumeration value="nya"/>
						<xs:enumeration value="nym"/>
						<xs:enumeration value="nyn"/>
						<xs:enumeration value="nyo"/>
						<xs:enumeration value="nzi"/>
						<xs:enumeration value="oci"/>
						<xs:enumeration value="oji"/>
						<xs:enumeration value="ori"/>
						<xs:enumeration value="orm"/>
						<xs:enumeration value="osa"/>
						<xs:enumeration value="oss"/>
						<xs:enumeration value="ota"/>
						<xs:enumeration value="oto"/>
						<xs:enumeration value="paa"/>
						<xs:enumeration value="pag"/>
						<xs:enumeration value="pal"/>
						<xs:enumeration value="pam"/>
						<xs:enumeration value="pan"/>
						<xs:enumeration value="pap"/>
						<xs:enumeration value="pau"/>
						<xs:enumeration value="peo"/>
						<xs:enumeration value="per"/>
						<xs:enumeration value="phi"/>
						<xs:enumeration value="phn"/>
						<xs:enumeration value="pli"/>
						<xs:enumeration value="pol"/>
						<xs:enumeration value="pon"/>
						<xs:enumeration value="por"/>
						<xs:enumeration value="pra"/>
						<xs:enumeration value="pro"/>
						<xs:enumeration value="pus"/>
						<xs:enumeration value="qaa"/>
						<xs:enumeration value="qtz"/>
						<xs:enumeration value="que"/>
						<xs:enumeration value="raj"/>
						<xs:enumeration value="rap"/>
						<xs:enumeration value="rar"/>
						<xs:enumeration value="roa"/>
						<xs:enumeration value="roh"/>
						<xs:enumeration value="rom"/>
						<xs:enumeration value="ron"/>
						<xs:enumeration value="rum"/>
						<xs:enumeration value="run"/>
						<xs:enumeration value="rus"/>
						<xs:enumeration value="sad"/>
						<xs:enumeration value="sag"/>
						<xs:enumeration value="sah"/>
						<xs:enumeration value="sai"/>
						<xs:enumeration value="sal"/>
						<xs:enumeration value="sam"/>
						<xs:enumeration value="san"/>
						<xs:enumeration value="sas"/>
						<xs:enumeration value="sat"/>
						<xs:enumeration value="scc"/>
						<xs:enumeration value="sco"/>
						<xs:enumeration value="scr"/>
						<xs:enumeration value="sel"/>
						<xs:enumeration value="sem"/>
						<xs:enumeration value="sga"/>
						<xs:enumeration value="sgn"/>
						<xs:enumeration value="shn"/>
						<xs:enumeration value="sid"/>
						<xs:enumeration value="sin"/>
						<xs:enumeration value="sio"/>
						<xs:enumeration value="sit"/>
						<xs:enumeration value="sla"/>
						<xs:enumeration value="slk"/>
						<xs:enumeration value="slo"/>
						<xs:enumeration value="slv"/>
						<xs:enumeration value="sma"/>
						<xs:enumeration value="sme"/>
						<xs:enumeration value="smi"/>
						<xs:enumeration value="smj"/>
						<xs:enumeration value="smn"/>
						<xs:enumeration value="smo"/>
						<xs:enumeration value="sms"/>
						<xs:enumeration value="sna"/>
						<xs:enumeration value="snd"/>
						<xs:enumeration value="snk"/>
						<xs:enumeration value="sog"/>
						<xs:enumeration value="som"/>
						<xs:enumeration value="son"/>
						<xs:enumeration value="sot"/>
						<xs:enumeration value="spa"/>
						<xs:enumeration value="sqi"/>
						<xs:enumeration value="srd"/>
						<xs:enumeration value="srp"/>
						<xs:enumeration value="srr"/>
						<xs:enumeration value="ssa"/>
						<xs:enumeration value="ssw"/>
						<xs:enumeration value="suk"/>
						<xs:enumeration value="sun"/>
						<xs:enumeration value="sus"/>
						<xs:enumeration value="sux"/>
						<xs:enumeration value="swa"/>
						<xs:enumeration value="swe"/>
						<xs:enumeration value="syr"/>
						<xs:enumeration value="tah"/>
						<xs:enumeration value="tai"/>
						<xs:enumeration value="tam"/>
						<xs:enumeration value="tat"/>
						<xs:enumeration value="tel"/>
						<xs:enumeration value="tem"/>
						<xs:enumeration value="ter"/>
						<xs:enumeration value="tet"/>
						<xs:enumeration value="tgk"/>
						<xs:enumeration value="tgl"/>
						<xs:enumeration value="tha"/>
						<xs:enumeration value="tib"/>
						<xs:enumeration value="tig"/>
						<xs:enumeration value="tir"/>
						<xs:enumeration value="tiv"/>
						<xs:enumeration value="tkl"/>
						<xs:enumeration value="tlh"/>
						<xs:enumeration value="tli"/>
						<xs:enumeration value="tmh"/>
						<xs:enumeration value="tog"/>
						<xs:enumeration value="ton"/>
						<xs:enumeration value="tpi"/>
						<xs:enumeration value="tsi"/>
						<xs:enumeration value="tsn"/>
						<xs:enumeration value="tso"/>
						<xs:enumeration value="tuk"/>
						<xs:enumeration value="tum"/>
						<xs:enumeration value="tup"/>
						<xs:enumeration value="tur"/>
						<xs:enumeration value="tut"/>
						<xs:enumeration value="tvl"/>
						<xs:enumeration value="twi"/>
						<xs:enumeration value="tyv"/>
						<xs:enumeration value="udm"/>
						<xs:enumeration value="uig"/>
						<xs:enumeration value="ukr"/>
						<xs:enumeration value="umb"/>
						<xs:enumeration value="und"/>
						<xs:enumeration value="uzb"/>
						<xs:enumeration value="vai"/>
						<xs:enumeration value="ven"/>
						<xs:enumeration value="vie"/>
						<xs:enumeration value="vol"/>
						<xs:enumeration value="vot"/>
						<xs:enumeration value="wak"/>
						<xs:enumeration value="wal"/>
						<xs:enumeration value="war"/>
						<xs:enumeration value="was"/>
						<xs:enumeration value="wel"/>
						<xs:enumeration value="wen"/>
						<xs:enumeration value="wln"/>
						<xs:enumeration value="wol"/>
						<xs:enumeration value="xal"/>
						<xs:enumeration value="xho"/>
						<xs:enumeration value="yao"/>
						<xs:enumeration value="yap"/>
						<xs:enumeration value="yid"/>
						<xs:enumeration value="yor"/>
						<xs:enumeration value="ypk"/>
						<xs:enumeration value="zap"/>
						<xs:enumeration value="zen"/>
						<xs:enumeration value="zha"/>
						<xs:enumeration value="zho"/>
						<xs:enumeration value="znd"/>
						<xs:enumeration value="zul"/>
						<xs:enumeration value="zun"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Hours" type="tHours" minOccurs="0"/>
			<xs:element name="Notes" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- Legal Status -->
	<xs:simpleType name="tLegalStatus">
		<xs:restriction base="xs:string">
			<xs:enumeration value="UNKNOWN"/>
			<xs:enumeration value="OTHER"/>
			<xs:enumeration value="Unicorporated_OtherGroup"/>
			<xs:enumeration value="Private_Non-Profit"/>
			<xs:enumeration value="For-Profit"/>
			<xs:enumeration value="Government-Municipal"/>
			<xs:enumeration value="Government-County_Regional"/>
			<xs:enumeration value="Government-Federal"/>
			<xs:enumeration value="Government-State_Provincial"/>
			<xs:enumeration value="Government-School_District"/>
			<xs:enumeration value="Special_District"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- Licenses / Accredidation -->
	<xs:complexType name="tLicenseAccreditation">
		<xs:sequence>
			<xs:element name="License" type="xs:string"/>
			<xs:element name="Accreditation" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<!-- Other -->
	<xs:complexType name="tOther">
		<xs:sequence>
			<xs:element name="Name" type="xs:string"/>
			<xs:element name="Description" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<!-- Phone Number -->
	<xs:complexType name="tPhone">
		<xs:sequence>
			<xs:choice>
				<xs:element name="PhoneNumber-NotUsed" type="xs:string" fixed="N/A"/>
				<xs:element name="PhoneNumber" type="tPhoneNumber"/>
			</xs:choice>
			<xs:element name="Extension" type="tPhoneExtension" minOccurs="0"/>
			<xs:element name="Description" type="xs:string" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="Type" default="Unspecified">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Voice"/>
					<xs:enumeration value="Fax"/>
					<xs:enumeration value="TTY/TDD"/>
					<xs:enumeration value="Pager"/>
					<xs:enumeration value="Modem"/>
					<xs:enumeration value="Cell"/>
					<xs:enumeration value="Voice/Fax"/>
					<xs:enumeration value="Voice/TTY/TDD"/>
					<xs:enumeration value="Unspecified"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="Function" default="Unspecified">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Unspecified"/>
					<xs:enumeration value="Other"/>
					<xs:enumeration value="Information"/>
					<xs:enumeration value="Administration"/>
					<xs:enumeration value="Intake"/>
					<xs:enumeration value="After Hours"/>
					<xs:enumeration value="Hotline/Helpline"/>
					<xs:enumeration value="Talkline"/>
					<xs:enumeration value="Recorded Message"/>
					<xs:enumeration value="Voice Mail"/>
					<xs:enumeration value="Answering Service"/>
					<xs:enumeration value="Work"/>
					<xs:enumeration value="Home"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="TollFree" type="xs:boolean" use="required"/>
		<xs:attribute name="Confidential" type="xs:boolean" use="required"/>
	</xs:complexType>
	<!-- Phone Extension: allow alpha-numeric 1-6 digit numbers -->
	<xs:simpleType name="tPhoneExtension">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9A-PR-Y]{1,6}"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- Phone Number: allow alpha-numeric 10-digit NANP numbers (See ATIS www.atis.org) -->
	<xs:simpleType name="tPhoneNumber">
		<xs:restriction base="xs:string">
			<xs:pattern value="211"/>
			<xs:pattern value="311"/>
			<xs:pattern value="411"/>
			<xs:pattern value="511"/>
			<xs:pattern value="611"/>
			<xs:pattern value="711"/>
			<xs:pattern value="811"/>
			<xs:pattern value="911"/>
			<xs:pattern value="[2-9A-PR-Y][0-9A-PR-Y]{2}[2-9A-PR-Y][0-9A-PR-Y]{2}[0-9A-PR-Y]{4}"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- Canadian Postal Code: format is ANA NAN -->
	<xs:simpleType name="tPostalCode">
		<xs:restriction base="xs:string">
			<xs:pattern value="(\p{Lu})(\d)(\p{Lu}) (\d)(\p{Lu})(\d)"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- Province and Territory Names: restricted to Canada -->
	<xs:simpleType name="tProvince">
		<xs:restriction base="xs:string">
			<xs:enumeration value="AB"/>
			<xs:enumeration value="BC"/>
			<xs:enumeration value="MB"/>
			<xs:enumeration value="NB"/>
			<xs:enumeration value="NL"/>
			<xs:enumeration value="NS"/>
			<xs:enumeration value="NT"/>
			<xs:enumeration value="NU"/>
			<xs:enumeration value="ON"/>
			<xs:enumeration value="PE"/>
			<xs:enumeration value="QC"/>
			<xs:enumeration value="SK"/>
			<xs:enumeration value="YT"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- Resource Info -->
	<xs:complexType name="tResourceInfo">
		<xs:sequence>
			<xs:element name="Contact" type="tContact" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ResourceSpecialist" type="xs:string" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="AvailableForDirectory" type="xs:boolean"/>
		<xs:attribute name="AvailableForReferral" type="xs:boolean"/>
		<xs:attribute name="AvailableForResearch" type="xs:boolean"/>
		<xs:attribute name="DateAdded" type="xs:date"/>
		<xs:attribute name="DateLastVerified" type="xs:date"/>
		<xs:attribute name="DateOfLastAction" type="xs:date"/>
		<xs:attribute name="LastActionType">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="CREATE"/>
					<xs:enumeration value="UPDATE"/>
					<xs:enumeration value="DELETE"/>
					<xs:enumeration value="VERIFY"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:complexType>
	<!-- Service -->
	<xs:complexType name="tService">
		<xs:sequence>
			<xs:element name="Key" type="xs:nonNegativeInteger"/>
			<xs:element name="Name" type="xs:string"/>
			<xs:element name="Description" type="xs:string" minOccurs="0"/>
			<xs:element name="Hours" type="tHours"/>
			<xs:element name="Eligibility" type="xs:string" minOccurs="0"/>
			<xs:element name="FeeStructureSource" type="xs:string" minOccurs="0"/>
			<xs:element name="ApplicationProcess" type="tApplicationProcess" minOccurs="0"/>
			<xs:element name="Other" type="tOther" minOccurs="0" maxOccurs="unbounded"/>
			<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- ServiceSiteLink -->
	<xs:complexType name="tServiceSiteLink">
		<xs:sequence>
			<xs:element name="SiteKey" type="xs:nonNegativeInteger"/>
			<xs:element name="ServiceKey" type="xs:nonNegativeInteger"/>
			<xs:element name="Name" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Use the Name field when mapping Program Name</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Contact" type="tContact" maxOccurs="unbounded"/>
			<xs:element name="Phone" type="tPhone" maxOccurs="unbounded"/>
			<xs:element name="Taxonomy" type="tTaxonomy" maxOccurs="unbounded"/>
			<xs:element name="GeographicArea" type="tGeographicArea" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ResourceInfo" type="tResourceInfo" minOccurs="0"/>
			<xs:element name="DocumentsRequired" type="tDocumentsRequired" minOccurs="0"/>
			<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="AreaFlexibility" type="xs:boolean"/>
		<xs:attribute name="ServiceNotAlwaysAvailablity" type="xs:boolean"/>
		<xs:attribute name="CapacityType" type="xs:string"/>
		<xs:attribute name="ServiceCapacity" type="xs:string"/>
	</xs:complexType>
	<!-- Site -->
	<xs:complexType name="tSite">
		<xs:sequence>
			<xs:element name="Key" type="xs:nonNegativeInteger"/>
			<xs:element name="Name" type="xs:string"/>
			<xs:element name="SiteDescription" type="xs:string"/>
			<xs:element name="AKA" type="tConfidentialString" minOccurs="0" maxOccurs="unbounded"/>
			<xs:choice>
				<xs:sequence>
					<xs:element name="PhysicalAddress" type="tAddress"/>
					<xs:element name="MailingAddress" type="tAddress" minOccurs="0"/>
				</xs:sequence>
				<xs:sequence>
					<xs:element name="MailingAddress" type="tAddress"/>
				</xs:sequence>
			</xs:choice>
			<xs:element name="OtherAddress" type="tAddress" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Phone" type="tPhone" maxOccurs="unbounded"/>
			<xs:element name="URL" type="tURL" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Email" type="tEMail" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Contact" type="tContact" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Hours" type="tHours"/>
			<xs:element name="LicenseAccreditation" type="tLicenseAccreditation" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="IRSStatus" type="tIRSStatus" default="UNKNOWN"/>
			<xs:element name="SourceOfFunds" type="tSourceOfFunds" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="DisabilitiesAccess" type="xs:string" minOccurs="0"/>
			<xs:element name="PhysicalLocationDescription" type="xs:string" minOccurs="0"/>
			<xs:element name="BusServiceAccess" type="xs:string" minOccurs="0"/>
			<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<xs:attribute name="Latitude">
			<xs:simpleType>
				<xs:restriction base="xs:decimal">
					<xs:totalDigits value="9"/>
					<xs:fractionDigits value="6" fixed="true"/>
					<xs:minInclusive value="0.0"/>
					<xs:maxInclusive value="90.0"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="Longitude">
			<xs:simpleType>
				<xs:restriction base="xs:decimal">
					<xs:totalDigits value="11"/>
					<xs:fractionDigits value="6" fixed="true"/>
					<xs:minInclusive value="-180.0"/>
					<xs:maxInclusive value="0.0"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="PublicAccessToTransportation" type="xs:boolean"/>
		<xs:attribute name="YearInc" type="xs:gYear"/>
		<xs:attribute name="AnnualBudgetTotal" type="xs:nonNegativeInteger"/>
		<xs:attribute name="LegalStatus" type="tLegalStatus"/>
		<xs:attribute name="ExcludeFromWebsite" type="xs:boolean"/>
		<xs:attribute name="ExcludeFromDirectory" type="xs:boolean"/>
	</xs:complexType>
	<!-- Source of Funds -->
	<xs:simpleType name="tSourceOfFunds">
		<xs:restriction base="xs:string">
			<xs:enumeration value="UNKNOWN"/>
			<xs:enumeration value="OTHER"/>
			<xs:enumeration value="Contributions"/>
			<xs:enumeration value="Foundations/Grantmaking Public Charities (other than United Way)"/>
			<xs:enumeration value="United Way"/>
			<xs:enumeration value="FundRaising"/>
			<xs:enumeration value="Government - County/Regional"/>
			<xs:enumeration value="Government - Federal"/>
			<xs:enumeration value="Government - Municipal"/>
			<xs:enumeration value="Government - State/Provincial"/>
			<xs:enumeration value="Government - Unspecified"/>
			<xs:enumeration value="In-Kind Support Only"/>
			<xs:enumeration value="Investment Income"/>
			<xs:enumeration value="Program Fees or Membership Dues"/>
			<xs:enumeration value="PrivateGrants"/>
			<xs:enumeration value="Special Events"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- State and Possession Names: restricted to USA -->
	<xs:simpleType name="tState">
		<xs:restriction base="xs:string">
			<xs:enumeration value="AA"/>
			<xs:enumeration value="AE"/>
			<xs:enumeration value="AP"/>
			<xs:enumeration value="AL"/>
			<xs:enumeration value="AK"/>
			<xs:enumeration value="AS"/>
			<xs:enumeration value="AZ"/>
			<xs:enumeration value="AR"/>
			<xs:enumeration value="CA"/>
			<xs:enumeration value="CO"/>
			<xs:enumeration value="CT"/>
			<xs:enumeration value="DE"/>
			<xs:enumeration value="DC"/>
			<xs:enumeration value="FM"/>
			<xs:enumeration value="FL"/>
			<xs:enumeration value="GA"/>
			<xs:enumeration value="GU"/>
			<xs:enumeration value="HI"/>
			<xs:enumeration value="ID"/>
			<xs:enumeration value="IL"/>
			<xs:enumeration value="IN"/>
			<xs:enumeration value="IA"/>
			<xs:enumeration value="KS"/>
			<xs:enumeration value="KY"/>
			<xs:enumeration value="LA"/>
			<xs:enumeration value="ME"/>
			<xs:enumeration value="MH"/>
			<xs:enumeration value="MD"/>
			<xs:enumeration value="MA"/>
			<xs:enumeration value="MI"/>
			<xs:enumeration value="MN"/>
			<xs:enumeration value="MS"/>
			<xs:enumeration value="MO"/>
			<xs:enumeration value="MT"/>
			<xs:enumeration value="NE"/>
			<xs:enumeration value="NV"/>
			<xs:enumeration value="NH"/>
			<xs:enumeration value="NJ"/>
			<xs:enumeration value="NM"/>
			<xs:enumeration value="NY"/>
			<xs:enumeration value="NC"/>
			<xs:enumeration value="ND"/>
			<xs:enumeration value="MP"/>
			<xs:enumeration value="OH"/>
			<xs:enumeration value="OK"/>
			<xs:enumeration value="OR"/>
			<xs:enumeration value="PA"/>
			<xs:enumeration value="PW"/>
			<xs:enumeration value="PR"/>
			<xs:enumeration value="RI"/>
			<xs:enumeration value="SC"/>
			<xs:enumeration value="SD"/>
			<xs:enumeration value="TN"/>
			<xs:enumeration value="TX"/>
			<xs:enumeration value="UT"/>
			<xs:enumeration value="VT"/>
			<xs:enumeration value="VI"/>
			<xs:enumeration value="VA"/>
			<xs:enumeration value="WA"/>
			<xs:enumeration value="WV"/>
			<xs:enumeration value="WI"/>
			<xs:enumeration value="WY"/>
		</xs:restriction>
	</xs:simpleType>
		<xs:complexType name="tTaxonomy">
		<xs:sequence>
			<xs:element name="Code">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:pattern value="B|D|F|H|J|L|N|P|R|T|Y"/>
						<xs:pattern value="B(D|H|M|R|T)"/>
						<xs:pattern value="B(D|H|M|R|T)-[0-9]{3}"/>
						<xs:pattern value="B(D|H|M|R|T)-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="B(D|H|M|R|T)-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
						<xs:pattern value="D(D|F)"/>
						<xs:pattern value="D(D|F)-[0-9]{3}"/>
						<xs:pattern value="D(D|F)-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="D(D|F)-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
						<xs:pattern value="F(C|F|J|L|N|R|S|T|X)"/>
						<xs:pattern value="F(C|F|J|L|N|R|S|T|X)-[0-9]{3}"/>
						<xs:pattern value="F(C|F|J|L|N|R|S|T|X)-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="F(C|F|J|L|N|R|S|T|X)-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
						<xs:pattern value="H(D|H|L|P)"/>
						<xs:pattern value="H(D|H|L)-[0-9]{3}"/>
						<xs:pattern value="H(D|H|L)-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="H(D|H|L)-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
						<xs:pattern value="J(B|D|F|P|R)"/>
						<xs:pattern value="J(B|D|F|P|R)-[0-9]{3}"/>
						<xs:pattern value="J(B|D|F|P|R)-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="J(B|D|F|P|R)-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
						<xs:pattern value="L(D|E|F|H|J|L|M|N|R|T|V|X)"/>
						<xs:pattern value="L(D|E|F|H|J|L|M|N|R|T|V|X)-[0-9]{3}"/>
						<xs:pattern value="L(D|E|F|H|J|L|M|N|R|T|V|X)-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="L(D|E|F|H|J|L|M|N|R|T|V|X)-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
						<xs:pattern value="N(D|L|S)"/>
						<xs:pattern value="N(D|L|S)-[0-9]{3}"/>
						<xs:pattern value="N(D|L|S)-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="N(D|L|S)-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
						<xs:pattern value="P(B|F|H|L|S|V|X)"/>
						<xs:pattern value="P(B|F|H|L|S|V|X)-[0-9]{3}"/>
						<xs:pattern value="P(B|F|H|L|S|V|X)-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="P(B|F|H|L|S|V|X)-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
						<xs:pattern value="R(D|M|P|R|T)"/>
						<xs:pattern value="R(D|M|P|R|T)-[0-9]{3}"/>
						<xs:pattern value="R(D|M|P|R|T)-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="R(D|M|P|R|T)-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
						<xs:pattern value="T(A|B|D|F|H|I|J|L|N|P)"/>
						<xs:pattern value="T(A|B|D|F|H|I|J|L|N|P)-[0-9]{3}"/>
						<xs:pattern value="T(A|B|D|F|H|I|J|L|N|P)-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="T(A|B|D|F|H|I|J|L|N|P)-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Target" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:pattern value="Y(A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|V|W|X|Y|Z)"/>
						<xs:pattern value="Y(A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|V|W|X|Y|Z)-[0-9]{3}"/>
						<xs:pattern value="Y(A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|V|W|X|Y|Z)-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="Y(A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|V|W|X|Y|Z)-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Modality" minOccurs="0">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:pattern value="FP"/>
						<xs:pattern value="FP-[0-9]{3}"/>
						<xs:pattern value="FP-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="FP-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
						<xs:pattern value="LH"/>
						<xs:pattern value="LH-[0-9]{3}"/>
						<xs:pattern value="LH-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="LH-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
						<xs:pattern value="PH-495\.[0-9]{3}"/>
						<xs:pattern value="RF"/>
						<xs:pattern value="RF-[0-9]{3}"/>
						<xs:pattern value="RF-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="RF-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
						<xs:pattern value="TO"/>
						<xs:pattern value="TO-[0-9]{3}"/>
						<xs:pattern value="TO-[0-9]{3}\.[0-9]{3}"/>
						<xs:pattern value="TO-[0-9]{3}\.[0-9]{3}-[0-9]{2}"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="AidRequirements" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="AidExclusions" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="AgeRequirements" type="tAgeRequirements" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="AgeExclusions" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="GenderRequirements" type="xs:string" minOccurs="0"/>
			<xs:element name="GenderExclusions" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="FamilyRequirements" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="FamilyExclusions" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="IncomeRequirements" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="IncomeExclusions" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ResidencyRequirements" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ResidencyExclusions" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="OtherRequirements" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="OtherExclusions" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="TaxonomySearch" type="tTaxonomySearch" minOccurs="0" maxOccurs="unbounded"/>
			<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<!-- Taxonomy Search -->
	<xs:complexType name="tTaxonomySearch">
		<xs:sequence>
			<xs:element name="Languages" type="tLanguages" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Other" type="tOther" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ApplicationProcess" type="tApplicationProcessList" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="AgencyTransportation" type="tAgencyTransportationList"/>
		<xs:attribute name="ChildCare" type="xs:boolean"/>
		<xs:attribute name="CourtOrdered" type="xs:boolean"/>
		<xs:attribute name="FeeStructure">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="DonationsOptional"/>
					<xs:enumeration value="FixedFee"/>
					<xs:enumeration value="NoFee"/>
					<xs:enumeration value="MembershipFee"/>
					<xs:enumeration value="SlidingScale"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="HomeVisits" type="xs:boolean"/>
		<xs:attribute name="Hours">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="24HourIntake"/>
					<xs:enumeration value="24HourServices"/>
					<xs:enumeration value="AfterHoursEmergencyIntake"/>
					<xs:enumeration value="EveningIntake"/>
					<xs:enumeration value="EveningServices"/>
					<xs:enumeration value="WeekendIntake"/>
					<xs:enumeration value="WeekendServices"/>
					<xs:enumeration value="Sunday Intake"/>
					<xs:enumeration value="Sunday Distribution/Service"/>
					<xs:enumeration value="Monday Intake"/>
					<xs:enumeration value="Monday Distribution/Service"/>
					<xs:enumeration value="Tuesday Intake"/>
					<xs:enumeration value="Tuesday Distribution/Service"/>
					<xs:enumeration value="Wednesday Intake"/>
					<xs:enumeration value="Wednesday Distribution/Service"/>
					<xs:enumeration value="Thursday Intake"/>
					<xs:enumeration value="Thursday Distribution/Service"/>
					<xs:enumeration value="Friday Intake"/>
					<xs:enumeration value="Friday Distribution/Service"/>
					<xs:enumeration value="Saturday Intake"/>
					<xs:enumeration value="Saturday Distribution/Service"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="LivingStipend" type="xs:boolean"/>
		<xs:attribute name="PaymentSource">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Cash"/>
					<xs:enumeration value="Credit"/>
					<xs:enumeration value="CHIP"/>
					<xs:enumeration value="Medicaid"/>
					<xs:enumeration value="Medicare"/>
					<xs:enumeration value="Military"/>
					<xs:enumeration value="Private"/>
					<xs:enumeration value="School"/>
					<xs:enumeration value="Vendor"/>
					<xs:enumeration value="Veteran's Assistance"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="SpecialMeals">
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:enumeration value="Diabetic"/>
					<xs:enumeration value="Kosher"/>
					<xs:enumeration value="LowCal"/>
					<xs:enumeration value="LowChol"/>
					<xs:enumeration value="LowSalt"/>
					<xs:enumeration value="SaltFree"/>
					<xs:enumeration value="Specialized"/>
					<xs:enumeration value="SugarFree"/>
					<xs:enumeration value="Veg"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="Subsidy" type="xs:boolean"/>
	</xs:complexType>
	<!-- URL (Web Address): restricted by regular expression, see www.regexlib.com -->
	<xs:complexType name="tURL">
		<xs:sequence>
			<xs:element name="Address">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:pattern value="(http|https)://[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,6}(/\S*)?"/>
						<xs:pattern value="(http|https)://(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])(/\S*)?"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Note" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>
	<!-- US Zip Code: format is 99999 -->
	<xs:simpleType name="tZipCode">
		<xs:restriction base="xs:string">
			<xs:pattern value="(\d{5})"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- US Zip Code plus 4: format is 9999-9999 -->
	<xs:simpleType name="tZipCode4">
		<xs:restriction base="xs:string">
			<xs:pattern value="(\d{5})-(\d{4})"/>
		</xs:restriction>
	</xs:simpleType>
	<!-- ZipCode or Zip+4 -->
	<xs:simpleType name="uZipCode">
		<xs:union memberTypes="tZipCode tZipCode4"/>
	</xs:simpleType>
	<!--                                                                                                                                                                                  -->
	<!-- Root Element  -->
	<!--                                                                                                                                                                                  -->
	<xs:element name="Source">
		<xs:complexType>
			<xs:sequence>
				<!-- Enforce a choice between tAgency and tVirtualAgency for 2.07 -->
				<xs:choice maxOccurs="unbounded">
					<xs:element name="Agency" type="tAgency" block="#all" />
					<xs:element name="VirtualAgency" type="tVirtualAgency" block="#all"/>
				</xs:choice>
				<xs:element name="GeographicAreaDefinition" type="tGeographicAreaDefinition" block="#all" minOccurs="0" maxOccurs="unbounded"/>
				<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="SourceEntity" type="xs:string" use="required"/>
			<xs:attribute name="OriginTimestamp" type="xs:dateTime" use="required"/>
			<xs:attribute name="SoftwareVendor" type="xs:string" use="required"/>
			<xs:attribute name="SoftwareVersion" type="xs:string" use="required"/>
			<xs:attribute name="TaxonomyVersion" type="xs:dateTime" use="required"/>
			<xs:attribute name="SchemaVersion" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<xs:totalDigits value="4"/>
						<xs:fractionDigits value="2"/>
						<xs:minInclusive value="1.1"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
</xs:schema>
