<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:gmlsf="http://www.opengis.net/gmlsf/2.0" xmlns:os="http://namespaces.ordnancesurvey.co.uk/mastermap/sites/v1.0" targetNamespace="http://namespaces.ordnancesurvey.co.uk/mastermap/sites/v1.0" elementFormDefault="qualified" version="1.0.1">
	<annotation>
		<appinfo>
			<gmlProfileSchema xmlns="http://www.opengis.net/gml/3.2">http://schemas.opengis.net/gmlsfProfile/2.0/gmlsfLevels.xsd</gmlProfileSchema>
			<gmlsf:ComplianceLevel>0</gmlsf:ComplianceLevel>
		</appinfo>
	</annotation>
	<import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>
	<!--XML Schema document created by ShapeChange - http://shapechange.net/-->
	<element name="FeatureCollection" type="os:FeatureCollectionType" substitutionGroup="gml:AbstractFeature"/>
	<complexType name="FeatureCollectionType">
		<complexContent>
			<extension base="gml:AbstractFeatureType">
				<sequence>
					<element name="metadata">
						<complexType>
							<complexContent>
								<extension base="gml:AbstractMetadataPropertyType">
									<sequence>
										<!-- <element ref="gmd:MD_Metadata"/> -->
										<!-- in practice, we'll only ever 'populate' via xlink:href -->
									</sequence>
									<attributeGroup ref="gml:AssociationAttributeGroup"/>
								</extension>
							</complexContent>
						</complexType>
					</element>
					<sequence minOccurs="0" maxOccurs="unbounded">
						<element name="featureMember">
							<complexType>
								<complexContent>
									<extension base="gml:AbstractFeatureMemberType">
										<choice>
											<element ref="os:AccessPoint"/>
											<element ref="os:RoutingPoint"/>
											<element ref="os:FunctionalSite"/>
										</choice>
									</extension>
								</complexContent>
							</complexType>
						</element>
					</sequence>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<simpleType name="AccessDirectionValueType">
		<restriction base="string">
			<enumeration value="In">
				<annotation>
					<documentation>Inbound access is permitted at this point.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Out">
				<annotation>
					<documentation>Outbound access is permitted at this point.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="In and Out">
				<annotation>
					<documentation>Inbound and outbound access is permitted at this point.</documentation>
				</annotation>
			</enumeration>
		</restriction>
	</simpleType>
	<simpleType name="AccessMechanismValueType">
		<restriction base="string">
			<enumeration value="Appointment">
				<annotation>
					<documentation>Access is only available by a pre-arranged appointment.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Official Pass">
				<annotation>
					<documentation>Access is only available by production of an official pass.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Pay and Display">
				<annotation>
					<documentation>Access is only available by pay and display mechanism.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Pay On Foot">
				<annotation>
					<documentation>Access is only available by pay on foot mechanism.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Payment">
				<annotation>
					<documentation>Access is only available by a payment.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Valid Ticket">
				<annotation>
					<documentation>Access is only available by production of a valid ticket.</documentation>
				</annotation>
			</enumeration>
		</restriction>
	</simpleType>
	<element name="AccessPoint" type="os:AccessPointType" substitutionGroup="gml:AbstractFeature">
		<annotation>
			<documentation>The spatial object type defining a point where there is access into and/or out of a site.</documentation>
		</annotation>
	</element>
	<complexType name="AccessPointType">
		<complexContent>
			<extension base="gml:AbstractFeatureType">
				<sequence>
					<element name="geometry" type="gml:PointPropertyType">
						<annotation>
							<documentation>the coordinate geometry defining the position of the accessPoint. The geometry is projected in two-dimensions (2D).</documentation>
						</annotation>
					</element>
					<element name="toid" type="string">
						<annotation>
							<documentation>a unique identifier for an accessPoint, which is maintained along with the version number and version date to reflect the life cycle of the feature. NOTE: equivalent to INSPIRE identifier.</documentation>
						</annotation>
					</element>
					<element name="version" type="integer">
						<annotation>
							<documentation>the version number of the data representation of the persisting accessPoint feature.</documentation>
						</annotation>
					</element>
					<element name="versionDate" type="date">
						<annotation>
							<documentation>the date on which the current version of the accessPoint was created</documentation>
						</annotation>
					</element>
					<element name="reasonForChange" type="os:ReasonForChangeValueType">
						<annotation>
							<documentation>reason for the current version of the accessPoint to be created. The valid reasons for change are defined in the ReasonForChangeValue code list.</documentation>
						</annotation>
					</element>
					<element name="refToFunctionalSite" type="string"/>
					<element name="accessType" type="os:AccessTypeValueType">
						<annotation>
							<documentation>this describes the nature of the access permitted at the accessPoint. The valid access types are defined in the AccessTypeValue code list. Where there is more than one type of access, the values will be provided together and separated by a ‘,’.</documentation>
						</annotation>
					</element>
					<element name="accessMechanism" type="os:AccessMechanismValueType" minOccurs="0">
						<annotation>
							<documentation>this describes the mechanism used to access the functional site through the accessPoint. The valid AccessMechanismValue are defined in the AccessMechanismValue code list. Where there is more than one type of access mechanism, the values will be provided together and separated by a ‘,’.</documentation>
						</annotation>
					</element>
					<element name="accessDirection" type="os:AccessDirectionValueType" minOccurs="0">
						<annotation>
							<documentation>this refers to the direction of travel that is permitted through the accessPoint. The valid access direction values are defined in the AccessDirectionValue code list.</documentation>
						</annotation>
					</element>
					<element name="accessUseRestriction" type="os:AccessUseRestrictionValueType" minOccurs="0">
						<annotation>
							<documentation>this refers to the nature of any access restriction. The valid restrictions are defined in the AccessUseRestrictionValue code list. Where there is more than one type of restriction, the values will be provided together and separated by a ‘,’.</documentation>
						</annotation>
					</element>
					<element name="refToRoutingPoint" type="string" minOccurs="0"/>
					<element name="refToITNRoadNode" type="string" minOccurs="0">
						<annotation>
							<documentation>the unique identifier (TOID) of the related OS MasterMap ITN Layer road node feature; if this is used rather than a routing point.</documentation>
						</annotation>
					</element>
					<element name="itnRoadNodeVersionDate" type="date" minOccurs="0">
						<annotation>
							<documentation>the date on which the current version of the OS MasterMap ITN Layer road node was created. A default value of ‘01-01-1900’ will be used to indicate where the date of this feature has not yet been captured.</documentation>
						</annotation>
					</element>
					<element name="dateTimeQualifier" type="double" minOccurs="0">
						<annotation>
							<documentation>this refers to the dates or times that access is permitted through the accessPoint.</documentation>
						</annotation>
					</element>
					<element name="heightQualifier" type="double" minOccurs="0">
						<annotation>
							<documentation>this refers to the maximum vehicle height that is permitted through the accessPoint.</documentation>
						</annotation>
					</element>
					<element name="widthQualifier" type="double" minOccurs="0">
						<annotation>
							<documentation>this refers to the maximum vehicle width that is permitted through the accessPoint.</documentation>
						</annotation>
					</element>
					<element name="weightQualifier" type="double" minOccurs="0">
						<annotation>
							<documentation>this refers to the maximum vehicle weight that is permitted through the accessPoint.</documentation>
						</annotation>
					</element>
					<element name="lengthQualifier" type="double" minOccurs="0">
						<annotation>
							<documentation>this refers to the maximum vehicle length that is permitted through the accessPoint.</documentation>
						</annotation>
					</element>
					<element name="natureOfAccess" type="os:NatureOfAccessValueType">
						<annotation>
							<documentation>this describes the physical form of enforcement to expect at the accessPoint. The valid nature of access values are defined in the NatureOfAccessValue code list. 

Where there is more than one nature of access, the values will be provided together and separated by a ‘,’.</documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="AccessPointPropertyType">
		<sequence minOccurs="0">
			<element ref="os:AccessPoint"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</complexType>
	<simpleType name="AccessTypeValueType">
		<restriction base="string">
			<enumeration value="Cycles">
				<annotation>
					<documentation>Access point permits access to cycles.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Horse Drawn Vehicles">
				<annotation>
					<documentation>Access point permits access to horse-drawn vehicles.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Mopeds">
				<annotation>
					<documentation>Access point permits access to mopeds.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Motorcycles">
				<annotation>
					<documentation>Access point permits access to motorcycles.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Motor Vehicles">
				<annotation>
					<documentation>Access point permits access to motor vehicles.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Pedestrian">
				<annotation>
					<documentation>Access point permits access to pedestrians.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Motor Vehicles,Pedestrian"/>
			<enumeration value="Ridden Or Accompanied Horses">
				<annotation>
					<documentation>Access point permits access to ridden or accompanied horses.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Undefined">
				<annotation>
					<documentation>Access point type is undefined.</documentation>
				</annotation>
			</enumeration>
		</restriction>
	</simpleType>
	<simpleType name="AccessUseRestrictionValueType">
		<annotation>
			<documentation>Describes the nature of any access restriction.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="Disabled"/>
			<enumeration value="Guests">
				<annotation>
					<documentation>Access is restricted except for guests at this point.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Official Business">
				<annotation>
					<documentation>Access is restricted except for official business at this point.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Patrons">
				<annotation>
					<documentation>Access is restricted except for patrons at this point.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Residents">
				<annotation>
					<documentation>Access is restricted except for residents at this point.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Through Traffic">
				<annotation>
					<documentation>Access to through traffic is permitted at this point.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Emergency Access">
				<annotation>
					<documentation>Access is restricted except for emergencies at this point.</documentation>
				</annotation>
			</enumeration>
		</restriction>
	</simpleType>
	<simpleType name="ExtentDefinitionValueType">
		<restriction base="string">
			<enumeration value="Fully Defined">
				<annotation>
					<documentation>The supplied extent is, as far as can be ascertained, fully defined in this 
release.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Partially Defined">
				<annotation>
					<documentation>The extent is known to be incomplete due to restrictions to the capture; the 
site is partially underground; or the site is partially obscured.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Undefined">
				<annotation>
					<documentation>The extent is unknown or has not been defined in this release. This will 
also apply to sites where their full definition is underground or wholly 
obscured.</documentation>
				</annotation>
			</enumeration>
		</restriction>
	</simpleType>
	<simpleType name="FunctionStatusValueType">
		<restriction base="string">
			<enumeration value="Operational">
				<annotation>
					<documentation>Site is in operational use.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Out of Service">
				<annotation>
					<documentation>Site is out of service or not in operational use.</documentation>
				</annotation>
			</enumeration>
		</restriction>
	</simpleType>
	<element name="FunctionalSite" type="os:FunctionalSiteType" substitutionGroup="gml:AbstractFeature">
		<annotation>
			<documentation>A spatial area object that describes the geometry, extent and function of a real-world feature.</documentation>
		</annotation>
	</element>
	<complexType name="FunctionalSiteType">
		<complexContent>
			<extension base="gml:AbstractFeatureType">
				<sequence>
					<element name="geometry" type="gml:GeometryPropertyType">
						<annotation>
							<documentation>The coordinate geometry defining the area of the functionalSite. This relates to multi-part 
geometry. The geometry is projected in two-dimensions (2D).</documentation>
						</annotation>
					</element>
					<element name="toid" type="string">
						<annotation>
							<documentation>A unique identifier for a functionalSite that is maintained along with the version number and version date to reflect the life cycle of the feature. 
NOTE: equivalent to INSPIRE identifier.</documentation>
						</annotation>
					</element>
					<element name="version" type="integer">
						<annotation>
							<documentation>The version number of the data representation of the persisting functionalSite feature.</documentation>
						</annotation>
					</element>
					<element name="versionDate" type="date">
						<annotation>
							<documentation>The date on which the current version of the functionalSite was created.</documentation>
						</annotation>
					</element>
					<element name="reasonForChange" type="os:ReasonForChangeValueType">
						<annotation>
							<documentation>Reason for the current version of the functionalSite to be created. The valid reasons for change are defined in the ReasonForChangeValue code list.</documentation>
						</annotation>
					</element>
					<element name="functionStatus" type="os:FunctionStatusValueType">
						<annotation>
							<documentation>This refers to the INSPIRE Activity Complex Status. This refers to a description of the state of a functionalSite. The valid states are defined in the FunctionStatusValue code list.</documentation>
						</annotation>
					</element>
					<element name="functionTheme" type="gml:CodeType">
						<annotation>
							<documentation>A description of the theme that a particular site falls under (that is, air transport, education, medical care and so on.). The valid themes are defined in the FunctionThemeValue code list</documentation>
						</annotation>
					</element>
					<element name="function" type="gml:CodeType">
						<annotation>
							<documentation>A description of the actual function of a site (that is, airfield, junior school, hospital and so on.) 
The valid themes are defined in the FunctionValue code list. For sites with multiple functions, the values will be provided together and separated by a ‘,’. Valid multiple functions are described in the Function combination table.</documentation>
						</annotation>
					</element>
					<element name="perimeter" type="double">
						<annotation>
							<documentation>The perimeter (m) of the site or sum of the sites for a non-contiguous feature. The perimeter is 
projected in two-dimensions (2D).</documentation>
						</annotation>
					</element>
					<element name="area" type="double">
						<annotation>
							<documentation>The area (m2) of the site or sum of the sites for a non-contiguous feature. The area is projected 
in two-dimensions (2D).</documentation>
						</annotation>
					</element>
					<element name="distinctiveName1" type="string" minOccurs="0">
						<annotation>
							<documentation>The name of the site (for example, ‘Brighton College’). Note this may be null if the captured value is a house number.</documentation>
						</annotation>
					</element>
					<element name="distinctiveName2" type="string" minOccurs="0">
						<annotation>
							<documentation>A second name of the site, if applicable. Note this may be null if the captured value is a house number.</documentation>
						</annotation>
					</element>
					<element name="distinctiveName3" type="string" minOccurs="0">
						<annotation>
							<documentation>A third name of the site, if applicable. Note this may be null if the captured value is a house number.</documentation>
						</annotation>
					</element>
					<element name="distinctiveName4" type="string" minOccurs="0">
						<annotation>
							<documentation>a fourth name of the site, if applicable. Note this may be null if the captured value is a house number.</documentation>
						</annotation>
					</element>
					<element name="primaryAddressBaseUPRN" type="integer" minOccurs="0">
						<annotation>
							<documentation>Unique Property Reference Number (UPRN) assigned by the local custodian or Ordnance Survey to the primary building within a functional site (for example, the main building in a school).</documentation>
						</annotation>
					</element>
					<element name="stakeholder1" type="string" minOccurs="0">
						<annotation>
							<documentation>information on parties related to the functionalSite. It is open to many different roles, such as owners, operators or competent authorities.</documentation>
						</annotation>
					</element>
					<element name="stakeholder2" type="string" minOccurs="0">
						<annotation>
							<documentation>information on parties related to the functionalSite. It is open to many different roles, such as owners, operators or competent authorities.</documentation>
						</annotation>
					</element>
					<element name="stakeholder1Role" type="os:StakeholderRoleValueType" minOccurs="0">
						<annotation>
							<documentation>information on the different roles of stakeholders for a particular functionalSite, such as users, owners, operators or competent authorities. The valid roles are defined in the StakeholderRoleValue code list.</documentation>
						</annotation>
					</element>
					<element name="stakeholder2Role" type="os:StakeholderRoleValueType" minOccurs="0">
						<annotation>
							<documentation>information on the different roles of stakeholders for a particular functionalSite, such as users, owners, operators or competent authorities. The valid roles are defined in the StakeholderRoleValue code list.</documentation>
						</annotation>
					</element>
					<element name="extentDefinition" type="os:ExtentDefinitionValueType">
						<annotation>
							<documentation>this describes the nature of the defined extent of the functionalSite at the time of capture. The valid roles are defined in the ExtentDefinitionValue code list.</documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="FunctionalSitePropertyType">
		<sequence minOccurs="0">
			<element ref="os:FunctionalSite"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</complexType>
	<simpleType name="NatureOfAccessValueType">
		<annotation>
			<documentation>Describes the form of enforcement to expect at the access point.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="Door"/>
			<enumeration value="Gate"/>
			<enumeration value="Manned Barrier"/>
			<enumeration value="Monitored Rising Barrier"/>
			<enumeration value="Monitored Rising Bollards"/>
			<enumeration value="Moveable Barrier"/>
			<enumeration value="Opening"/>
			<enumeration value="Revolving Door"/>
			<enumeration value="Rising Barrier"/>
			<enumeration value="Rising Bollards"/>
			<enumeration value="Shutter"/>
			<enumeration value="Steps"/>
			<enumeration value="Turnstile"/>
			<enumeration value="Unknown"/>
		</restriction>
	</simpleType>
	<simpleType name="ReasonForChangeValueType">
		<restriction base="string">
			<enumeration value="New"/>
			<enumeration value="Modified"/>
			<enumeration value="Reclassified"/>
			<enumeration value="Attributes"/>
			<enumeration value="Position"/>
			<enumeration value="Software"/>
		</restriction>
	</simpleType>
	<element name="RoutingPoint" type="os:RoutingPointType" substitutionGroup="gml:AbstractFeature">
		<annotation>
			<documentation>The spatial object type defining point/node feature, which would normally lie on an ITN RoadLink and would be referenced by a particular access point.</documentation>
		</annotation>
	</element>
	<complexType name="RoutingPointType">
		<complexContent>
			<extension base="gml:AbstractFeatureType">
				<sequence>
					<element name="geometry" type="gml:PointPropertyType">
						<annotation>
							<documentation>the coordinate geometry defining the position of the routingPoint. The geometry is projected in two-dimensions (2D).</documentation>
						</annotation>
					</element>
					<element name="toid" type="string">
						<annotation>
							<documentation>A unique identifier for a routingPoint, which is maintained along with the version number and version date to reflect the life cycle of the feature. NOTE: equivalent to INSPIRE identifier.</documentation>
						</annotation>
					</element>
					<element name="version" type="integer">
						<annotation>
							<documentation>the version number of the data representation of the persisting routingPoint feature.</documentation>
						</annotation>
					</element>
					<element name="versionDate" type="date">
						<annotation>
							<documentation>the date on which the current version of the routingPoint was created</documentation>
						</annotation>
					</element>
					<element name="reasonForChange" type="os:ReasonForChangeValueType"/>
					<element name="refToITNRoadLink" type="string">
						<annotation>
							<documentation>the unique identifier (TOID) of the ITN road link feature that the routingPoint is related to.</documentation>
						</annotation>
					</element>
					<element name="itnRoadLinkVersionDate" type="date" minOccurs="0">
						<annotation>
							<documentation>the date on which the current version of the ITN Road Link was created. 
A default value of ‘01-01-1900’ will be used to indicate where the date of this feature has not yet been captured</documentation>
						</annotation>
					</element>
					<element name="startDistance" type="double">
						<annotation>
							<documentation>the distance (m) from the start of the referenced ITN RoadLink feature to the vertex where the RoutingPoint is positioned. The startDistance is calculated in two-dimensions (2D).</documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="RoutingPointPropertyType">
		<sequence minOccurs="0">
			<element ref="os:RoutingPoint"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
		<attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</complexType>
	<simpleType name="StakeholderRoleValueType">
		<restriction base="string">
			<enumeration value="Administered By">
				<annotation>
					<documentation>Site is administered by stakeholder.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Owner Of">
				<annotation>
					<documentation>Site is owned by stakeholder.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Principal User Of">
				<annotation>
					<documentation>Site is principally used by stakeholder.</documentation>
				</annotation>
			</enumeration>
			<enumeration value="Religious Interest In">
				<annotation>
					<documentation>Site is of religious interest to stakeholder</documentation>
				</annotation>
			</enumeration>
		</restriction>
	</simpleType>
</schema>
