<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.hmis.info/schema/3_0/AIRS_3_0_mod.xsd" xmlns="http://www.hmis.info/schema/3_0/AIRS_3_0_mod.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="3.0">
	<xs:annotation>
		<xs:documentation>This is a modified schema.  xs:any tags have been removed/commented out so that this schema can be imported.  tService was reintroduced, and a target and default namespace were added.</xs:documentation>
		<xs:documentation>AIRS XML Data Transfer Record Format Version 3.0 (Final)</xs:documentation>
		<xs:documentation>unless set, the default minOccurs="1" maxOccurs="1"</xs:documentation>
	</xs:annotation>
	<xs:complexType name="tAddress">
		<xs:annotation>
			<xs:documentation>element of tSite</xs:documentation>
			<xs:documentation>One type of Address to cover all locations. US, Canadian and other addresses are handled the same way. </xs:documentation>
		</xs:annotation>
		<xs:choice>
			<xs:sequence>
				<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="City" type="xs:string"/>
				<xs:element name="County" type="xs:string" minOccurs="0"/>
				<xs:element name="State" type="xs:string"/>
				<xs:element name="ZipCode" type="xs:string"/>
				<xs:element name="Country" type="xs:string"/>
			</xs:sequence>
			<xs:sequence>
				<xs:element name="ReasonWithheld" type="xs:string">
					<xs:annotation>
						<xs:documentation>Use this if the address can not be shared due to security concerns, such as an assaulted women’s shelter. While it is possible to code an address as confidential="true", In this case the address is so confidential that it won't be shared at all</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:choice>
		<xs:attribute name="Confidential" type="xs:boolean" use="required"/>
		<xs:attribute name="Description" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:complexType name="tAgency">
		<xs:annotation>
			<xs:documentation>element of Source and tAgency</xs:documentation>
			<xs:documentation>Agencies are organizations that offer services at locations. Agencies provide services directly or they may have “child” agencies that offer these services. Services are offered at sites that belong to an agency. Services are represented by the combination of taxonomy codes offered at a location; this idea is called a SiteService. To recap: Agencies don’t provide services directly, they provide them through sites</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Key" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>This is a unique number representing a vendor's internal way of tracking an agency. This can be used as meta data to uniquely describe an Agency</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Name" type="xs:string" minOccurs="0"/>
			<xs:element name="AgencyDescription" type="xs:string" minOccurs="0"/>
			<xs:element name="AKA" type="tAKA" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="AgencyLocation" type="tSite" minOccurs="0"/>
			<xs:element name="Phone" type="tPhone" maxOccurs="unbounded" minOccurs="0"/>
			<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="LicenseAccreditation" type="tLicenseAccreditation" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="IRSStatus" type="xs:string" minOccurs="0"/>
			<xs:element name="SourceOfFunds" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ServiceGroup" type="tServiceGroup" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Service" type="tService" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Site" type="tSite" 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"/>-->			<xs:element name="Agency" type="tAgency" block="#all" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>
						Agency Definition: Parent/Child relationships are handled through recursion. Agency elements within another agency (the parent) are child agencies, that is they belong to a parent agency: e.g. Transportation Security Administration(TSA) is a child of Homeland Security. Therefore TSA and all associated Sites can be created inside the Homeland Security Agency element
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="RecordOwner">
			<xs:annotation>
				<xs:documentation>
					This is a unique string indicating the organization that created and maintains this Agency record
				</xs:documentation>
			</xs:annotation>
			<xs:simpleType>
				<xs:restriction base="xs:string">
					<xs:pattern value="[0-9A-Z]{4,8}"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attribute name="FEIN" type="xs:string"/>
		<xs:attribute name="YearInc" type="xs:gYear"/>
		<xs:attribute name="AnnualBudgetTotal" type="xs:nonNegativeInteger"/>
		<xs:attribute name="LegalStatus" type="xs:string"/>
		<xs:attribute name="ExcludeFromWebsite" type="xs:boolean"/>
		<xs:attribute name="ExcludeFromDirectory" type="xs:boolean"/>
	</xs:complexType>
	<xs:complexType name="tAgeRequirements">
		<xs:annotation>
			<xs:documentation>element of tSiteService</xs:documentation>
			<xs:documentation>Information about any age or gender related requirements or inclusions for a particular service at a particular location</xs:documentation>
		</xs:annotation>
		<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>
	<xs:complexType name="tAKA">
		<xs:annotation>
			<xs:documentation>element of tAgency and tSite</xs:documentation>
			<xs:documentation>These are alternate names for an object, Confidential indicates that the alternate name won't be shared with the public </xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Name" type="xs:string"/>
			<xs:element name="Confidential" type="xs:boolean"/>
			<xs:element name="Description" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="tApplicationProcess">
		<xs:annotation>
			<xs:documentation>element of tServiceGroup and tSiteService</xs:documentation>
			<xs:documentation>ApplicationProcess describes the steps taken to apply for or access the service or services; also known as the ‘intake process’.For example, “Call for an appointment” or “Walk in only” </xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Step" type="xs:string"/>
			<xs:element name="Description" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="tContact">
		<xs:annotation>
			<xs:documentation>element of tAgency, tResourceInfo and tSite</xs:documentation>
			<xs:documentation>
				1) Contact is the person at an Agency, or Site who will interface with the public or who has responsibility for the entity, like a site manager or director.
				2) Contact is also used by ResourceInfo to indicate the person within each agency who has overall responsibility for updating the information about the agency, its sites and its services, etc.
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Title" type="xs:string" minOccurs="0"/>
			<xs:element name="Name" type="xs:string"/>
			<xs:element name="Email" type="tEMail" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Phone" type="tPhone" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="Type" type="xs:string" use="required">
				<xs:annotation>
					<xs:documentation>This is the type of contact, for example an Administrator or Owner</xs:documentation>
				</xs:annotation>
			</xs:attribute>
	</xs:complexType>
	<xs:complexType name="tDay">
		<xs:annotation>
			<xs:documentation>element of tTimeOpen</xs:documentation>
			<xs:documentation>This can be used for any day of the week</xs:documentation>
		</xs:annotation>
		<xs:sequence maxOccurs="unbounded">
			<xs:element name="From" type="xs:time"/>
			<xs:element name="To" type="xs:time"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="tDocumentsRequired">
		<xs:annotation>
			<xs:documentation>element of tSiteService</xs:documentation>
			<xs:documentation>A document that is required in order to access services offered at a SiteService</xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element name="DocumentsRequired" type="xs:string"/>
				<xs:element name="Description" type="xs:string" minOccurs="0"/>
			</xs:sequence>
	</xs:complexType>
	<xs:complexType name="tEMail">
		<xs:annotation>
			<xs:documentation>element of tAgency, tContact, and tSite</xs:documentation>
				<xs:documentation>
					Email Address: restricted by regular expression, see www.regexlib.com
				</xs:documentation>
			</xs:annotation>
			<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" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="tGeographicAreaServed">
		<xs:annotation>
			<xs:documentation>element of tSiteService</xs:documentation>
			<xs:documentation>
				This is the geographic area served by the SiteService. This can be anything from a single neighborhood to an entire country. Types can also be mixed; perhaps one city and 6 nearby ZIP codes. In this case the required element would be City and there would be additional ZIP codes. A national 1-800 hotline would have one Country element
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:choice>
				<xs:annotation>
					<xs:documentation>At least one of the following must be selected. Then any number of additional elements can be included</xs:documentation>
				</xs:annotation>
				<xs:element name="ZipCode" type="xs:string"/>
				<xs:element name="CensusTrack" type="xs:string"/>
				<xs:element name="City" type="xs:string"/>
				<xs:element name="County" type="xs:string"/>
				<xs:element name="State" type="xs:string"/>
				<xs:element name="Country" type="xs:string"/>
			</xs:choice>
			<xs:element name="ZipCode" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="CensusTrack" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="City" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="County" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="State" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Country" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Description" type="xs:string" minOccurs="0"/>
			<!--<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>-\->          <xs:element name="Agency" type="tAgency" block="#all" minOccurs="0" maxOccurs="unbounded">-->		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="tLanguages">
		<xs:annotation>
			<xs:documentation>element of tSite and tSiteService</xs:documentation>
			<xs:documentation> Language spoken and the TimeOpen the language is available</xs:documentation>
		</xs:annotation>
			<xs:sequence maxOccurs="unbounded">
				<xs:element name="Name" type="xs:string"/>
				<xs:element name="TimeOpen" type="tTimeOpen" minOccurs="0"/>
				<xs:element name="Notes" type="xs:string" minOccurs="0"/>
			</xs:sequence>
	</xs:complexType>
	<xs:complexType name="tLicenseAccreditation">
		<xs:annotation>
			<xs:documentation>element of tAgency</xs:documentation>
			<xs:documentation>If applicable, information about the license/accreditation held by the agency and the body that licensed/accredited it</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="License" type="xs:string" minOccurs="0"/>
			<xs:element name="LicensedBy" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="tNoPhysicalAddress">
		<xs:annotation>
			<xs:documentation>element of tSite</xs:documentation>
			<xs:documentation>This is something without a physical presence; Description is what the  entity is/does, and Explanation is why is doesn't have a physical presence
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Description" type="xs:string" minOccurs="0"/>
			<xs:element name="Explanation" type="xs:string"/>
		</xs:sequence>
	</xs:complexType>	
	<xs:complexType name="tPhone">
		<xs:annotation>
			<xs:documentation>element of tAgency, tContact, tSite and tSiteService</xs:documentation>
			<xs:documentation>Phone numbers</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:choice>
				<xs:sequence>
					<xs:element name="PhoneNumber" type="xs:string"/>
				</xs:sequence>
				<xs:sequence>
					<xs:element name="ReasonWithheld" type="xs:string">
						<xs:annotation>
							<xs:documentation>Use this if the phone can not be shared due to security concerns, such as a spousal abuse group home. While it is possible to code an phone as confidential="true", In this case the phone is so confidential that it won't be shared at all</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>	
			</xs:choice>
			<xs:element name="Extension" type="xs:string" minOccurs="0"/>
			<xs:element name="Description" type="xs:string" minOccurs="0"/>
			<xs:element name="Type" type="xs:string" minOccurs="0"/>
			<xs:element name="Function" type="xs:string" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="TollFree" type="xs:boolean" use="required"/>
		<xs:attribute name="Confidential" type="xs:boolean" use="required"/>
	</xs:complexType>
	<xs:complexType name="tResourceInfo">
		<xs:annotation>
			<xs:documentation>element of tAgency and tSiteService</xs:documentation>
			<xs:documentation>information about the data </xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Contact" type="tContact" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ResourceSpecialist" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>This is a person who created/maintains the data</xs:documentation>
				</xs:annotation>
			</xs:element>
		</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" type="xs:string"/>
	</xs:complexType>
	<xs:complexType name="tSeasonal">
		<xs:annotation>
			<xs:documentation>element of tSiteService</xs:documentation>
				<xs:documentation>Activities that are only offered a certain time of year, such as seasonal tax preparation, summer camps and holiday meals</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Description" type="xs:string" minOccurs="0"/>
			<xs:element name="StartDate" type="xs:string" />
			<xs:element name="EndDate" type="xs:string" />
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="tService">
		<xs:annotation>
			<xs:documentation>This type is a modification to the standard 3_0 AIRS Schema.  It existed in version 2.07 and was taken out, yet a suitable replacement for this functionality was not reintroduced.  HUD HMIS XML needs tService(Program) functionality.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Key" type="xs:nonNegativeInteger" minOccurs="0">
				<xs:annotation>
					<xs:documentation>This is an optional unique number representing a vendor's internal way of tracking a service (akin to a program, by some definitions). This can be used as metadata to uniquely describe a Service.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="AgencyKey" type="xs:nonNegativeInteger" minOccurs="0">
				<xs:annotation>
					<xs:documentation>This represents ID of parent Agency.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Name" type="xs:string"/>	
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="tServiceGroup">
		<xs:annotation>
			<xs:documentation>element of tAgency</xs:documentation>
			<xs:documentation>Service Groups are a way to group related services, which may be sometimes but not necessarily be known as "Programs". However not all vendors implement this. This will provide a key that can be added to SiteService.ServiceGroupKey so that multiple SiteServices can belong to the same ServiceGroup
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Key" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>This number is used by a SiteService to know what ServiceGroup it is part of (if any). This must be unique between all child agencies</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Name" type="xs:string">
				<xs:annotation>
					<xs:documentation>required name and used internally. May be the same as the programName</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="ProgramName" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>optional, publicly visible name. e.g. Headstart</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="tSite">
		<xs:annotation>
			<xs:documentation>element of tAgency</xs:documentation>
			<xs:documentation>Sites are physical locations or none physical locations (a website or hotline). Site is used for two purposes. First it is used by Agency to provide the location of the agency Agency.AgencyLocation (Note this type of Site would never have any SiteService children). Second sites are also the location where services are provided. This would be the Agency.Site element (Note this type of Site would have SiteService children
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Key" type="xs:nonNegativeInteger" minOccurs="0">
				<xs:annotation>
					<xs:documentation>This an optional unique number representing a vendor's internal way of tracking a Site. The can be used as meta data to describe a Site uniquely</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Name" type="xs:string" minOccurs="0"/>
			<xs:element name="SiteDescription" type="xs:string" minOccurs="0"/>
			<xs:element name="AKA" type="tAKA" minOccurs="0" maxOccurs="unbounded"/>
			<xs:choice minOccurs="0">
				<xs:sequence>
					<xs:element name="PhysicalAddress" type="tAddress"/>
					<xs:element name="MailingAddress" type="tAddress"/>
				</xs:sequence>
				<xs:sequence>
					<xs:element name="MailingAddress" type="tAddress"/>
				</xs:sequence>
				<xs:sequence>
					<xs:element name="NoPhysicalAddress" type="tNoPhysicalAddress"/>
				</xs:sequence>
			</xs:choice>
			<xs:element name="OtherAddress" type="tAddress" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="CrossStreet" type="xs:string" 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="TimeOpen" type="tTimeOpen" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Languages" type="tLanguages" 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:element name="SiteService" type="tSiteService" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="SpatialLocation" type="tSpatialLocation" minOccurs="0" maxOccurs="unbounded"/>
			<!--<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>-\->          <xs:element name="Agency" type="tAgency" block="#all" minOccurs="0" maxOccurs="unbounded">-->      
		</xs:sequence>
		<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="xs:string"/>
		<xs:attribute name="ExcludeFromWebsite" type="xs:boolean"/>
		<xs:attribute name="ExcludeFromDirectory" type="xs:boolean"/>
	</xs:complexType>
	<xs:complexType name="tSiteService">
		<xs:annotation>
			<xs:documentation>element of tSite</xs:documentation>
			<xs:documentation>SiteService is the smallest unit describing a "service" that is offered at a Site. It can be thought of as the intersection of a Site and a Taxonomy code (or related Taxonomy codes) and meta data about what is offered. *This documentation is modified from the AIRS Final 3.0 Data Standard.  It used to also say "A "Service" however is not represented as its own element because the "Service" cannot exist without a location (the site).", but this modified version adds a tService to describe aspects of a "Service" or "Program" common to add its Sites.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Name" type="xs:string" minOccurs="0"/>
			<xs:element name="Key" type="xs:nonNegativeInteger">
				<xs:annotation>
					<xs:documentation>This an optional unique number representing a vendor's internal way of tracking a SiteService. The can be used as meta data to describe a SiteService uniquely</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Description" type="xs:string" minOccurs="0"/>
			<xs:element name="Phone" type="tPhone" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="TimeOpen" type="tTimeOpen" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Seasonal" type="tSeasonal" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Taxonomy" type="tTaxonomy" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Languages" type="tLanguages" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="GeographicAreaServed" type="tGeographicAreaServed" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ResourceInfo" type="tResourceInfo" minOccurs="0"/>
			<xs:element name="DocumentsRequired" type="tDocumentsRequired" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ApplicationProcess" type="tApplicationProcess" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="FeeStructure" type="xs:string" minOccurs="0"/>
			<xs:element name="OtherRequirements" type="xs:string" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Requirements include any Exclusions, so both negative and positive requirements i.e. must have/ can't have are all requirements</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="AidRequirements" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="AgeRequirements" type="tAgeRequirements" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="GenderRequirements" type="xs:string" minOccurs="0"/>
			<xs:element name="FamilyRequirements" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="IncomeRequirements" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="ResidencyRequirements" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			<!--<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>-->
		</xs:sequence>
		<xs:attribute name="AreaFlexibility" type="xs:boolean">
			<xs:annotation>
				<xs:documentation>Can this service be offered outside of the physical location? true/false</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="ServiceNotAlwaysAvailable" type="xs:boolean"/>
		<xs:attribute name="ServiceGroupKey" type="xs:nonNegativeInteger">
			<xs:annotation>
				<xs:documentation>optional value linking this SiteService to a ServiceGroup (Program)</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:complexType>
	<xs:complexType name="tSpatialLocation">
		<xs:annotation>
			<xs:documentation>element of tSite</xs:documentation>
				<xs:documentation>Spatial location is information about the physical location where a site is in the world </xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Description" type="xs:string" minOccurs="0"/>
			<xs:element name="Datum" type="xs:string">
				<xs:annotation>
					<xs:documentation>A datum also defines the association of latitude and longitude coordinates to points on the surface of the earth, there is more than one way to do this</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Latitude" type="xs:decimal"/>
			<xs:element name="Longitude" type="xs:decimal"/>
			</xs:sequence>
	</xs:complexType>
	<xs:complexType name="tTaxonomy">
		<xs:annotation>
			<xs:documentation>element of tSiteService</xs:documentation>
			<xs:documentation>Taxonomy Codes are a structured system created by AIRS/INFO Line to index human services</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Code" type="xs:string" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>No checking is done at the XSD, verify validity of codes before export!</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="tTimeOpen">
		<xs:annotation>
			<xs:documentation>element of tLanguages, tSite and tSiteService</xs:documentation>
			<xs:documentation>TimeOpen refers to the times a service is open or available</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Sunday" type="tDay" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Monday" type="tDay" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Tuesday" type="tDay" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Wednesday" type="tDay" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Thursday" type="tDay" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Friday" type="tDay" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Saturday" type="tDay" minOccurs="0" maxOccurs="unbounded"/>
			<xs:element name="Notes" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>	
	<xs:complexType name="tURL">
		<xs:annotation>
			<xs:documentation>element of tAgency and tSite</xs:documentation>
			<xs:documentation>URL (Web Address): restricted by regular expression, see www.regexlib.com</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Address" type="xs:string">
				<xs:annotation>
					<xs:documentation>No checking is done at the XSD, verify validity of url before export! also allows for ftp now</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Note" type="xs:string" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="Source">
		<xs:annotation>
			<xs:documentation> Root Element- contains all other elements </xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Agency" type="tAgency" block="#all" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute name="SourceEntity" type="xs:string" use="required">
				<xs:annotation>
					<xs:documentation>This is a description of the sources of data used in the data dump. If multiples sources of data are used, include them here, additionally any RecordOwner codes used should be listed here as well</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<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" type="xs:string" use="required"/>
		</xs:complexType>
	</xs:element>
</xs:schema>
