<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.ordnancesurvey.co.uk/xml/namespaces/osgb" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml" xmlns:osgb="http://www.ordnancesurvey.co.uk/xml/namespaces/osgb" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.6">
<annotation>
<appinfo>OSDNFFeatures.xsd v2.6 2003/01</appinfo>
<documentation xml:lang="en">Ordnance Survey, (c) Crown Copyright. All Rights Reserved January 2003.</documentation>
<documentation xml:lang="en">See http://www.ordnancesurvey.co.uk for guidelines and related information</documentation>
<documentation xml:lang="en">This schema defines the topographic, Address and ITN features.</documentation>
</annotation>
<!-- include constructs from other OS schemas -->
<include schemaLocation="OSComplexTypes.xsd"/>
<!--import OGC constructs and namespaces -->
<import namespace="http://www.opengis.net/gml"/>
<import namespace="http://www.w3.org/1999/xlink"/>
<!-- ================================================================
	Global element Declarations 
	================================================================ -->
<!-- feature members-->
<element name="addressPointMember" type="osgb:addressPointMemberType" substitutionGroup="osgb:_featureMember"/>
<element name="boundaryMember" type="osgb:boundaryMemberType" substitutionGroup="osgb:_featureMember"/>
<element name="cartographicMember" type="osgb:cartographicMemberType" substitutionGroup="osgb:_featureMember"/>
<element name="networkMember" type="osgb:networkMemberType" substitutionGroup="osgb:_featureMember"/>
<element name="roadMember" type="osgb:roadMemberType" substitutionGroup="osgb:_featureMember"/>
<element name="roadInformationMember" type="osgb:roadInformationMemberType" substitutionGroup="osgb:_featureMember"/>
<element name="topographicMember" type="osgb:topographicMemberType" substitutionGroup="osgb:_featureMember"/>
<!-- Abstract features -->
<element name="_AddressPointFeature" type="osgb:AbstractFeatureType" abstract="true" substitutionGroup="gml:_Feature"/>
<element name="_BoundaryFeature" type="osgb:AbstractFeatureType" abstract="true" substitutionGroup="gml:_Feature"/>
<element name="_CartographicFeature" type="osgb:AbstractFeatureType" abstract="true" substitutionGroup="gml:_Feature"/>
<element name="_networkFeature" type="osgb:AbstractFeatureType" abstract="true" substitutionGroup="gml:_Feature"/>
<element name="_networkNode" type="osgb:AbstractFeatureType" abstract="true" substitutionGroup="osgb:_networkFeature"/>
<element name="_networkLink" type="osgb:AbstractFeatureType" abstract="true" substitutionGroup="osgb:_networkFeature"/>
<element name="_networkConnection" type="osgb:AbstractFeatureType" abstract="true" substitutionGroup="osgb:_networkFeature"/>
<element name="_roadInformationFeature" type="osgb:AbstractFeatureType" abstract="true" substitutionGroup="gml:_Feature"/>
<element name="_TopographicFeature" type="osgb:AbstractFeatureType" abstract="true" substitutionGroup="gml:_Feature"/>
<!-- features -->
<element name="AddressPoint" type="osgb:AddressPointType" substitutionGroup="osgb:_AddressPointFeature"/>
<element name="BoundaryLine" type="osgb:BoundaryLineType" substitutionGroup="osgb:_BoundaryFeature"/>
<element name="CartographicText" type="osgb:CartographicTextType" substitutionGroup="osgb:_CartographicFeature"/>
<element name="CartographicSymbol" type="osgb:CartographicSymbolType" substitutionGroup="osgb:_CartographicFeature"/>
<element name="FerryLink" type="osgb:FerryLinkType" substitutionGroup="osgb:_networkLink"/>
<element name="FerryNode" type="osgb:FerryNodeType" substitutionGroup="osgb:_networkNode"/>
<element name="FerryTerminal" type="osgb:FerryTerminalType" substitutionGroup="osgb:_networkConnection"/>
<element name="InformationPoint" type="osgb:InformationPointType" substitutionGroup="osgb:_roadInformationFeature"/>
<element name="Road" type="osgb:RoadType" substitutionGroup="gml:_Feature"/>
<element name="RoadLink" type="osgb:RoadLinkType" substitutionGroup="osgb:_networkLink"/>
<element name="RoadLinkInformation" type="osgb:RoadLinkInformationType" substitutionGroup="osgb:_roadInformationFeature"/>
<element name="RoadNode" type="osgb:RoadNodeType" substitutionGroup="osgb:_networkNode"/>
<element name="RoadNodeInformation" type="osgb:RoadNodeInformationType" substitutionGroup="osgb:_roadInformationFeature"/>
<element name="RoadPartialLinkInformation" type="osgb:RoadPartialLinkInformationType" substitutionGroup="osgb:_roadInformationFeature"/>
<element name="RoadPartialRouteInformation" type="osgb:RoadPartialRouteInformationType" substitutionGroup="osgb:_roadInformationFeature"/>
<element name="RoadRouteInformation" type="osgb:RoadRouteInformationType" substitutionGroup="osgb:_roadInformationFeature"/>
<element name="TopographicPoint" type="osgb:TopographicPointType" substitutionGroup="osgb:_TopographicFeature"/>
<element name="TopographicLine" type="osgb:TopographicLineType" substitutionGroup="osgb:_TopographicFeature"/>
<element name="TopographicArea" type="osgb:TopographicAreaType" substitutionGroup="osgb:_TopographicFeature"/>
<!-- ==============================================================
	Type Declarations
	============================================================== -->
<!-- member types -->
<complexType name="addressPointMemberType">
<complexContent>
<restriction base="gml:FeatureAssociationType">
<sequence minOccurs="0">
<element ref="osgb:_AddressPointFeature"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</restriction>
</complexContent>
</complexType>
<complexType name="boundaryMemberType">
<complexContent>
<restriction base="gml:FeatureAssociationType">
<sequence minOccurs="0">
<element ref="osgb:_BoundaryFeature"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</restriction>
</complexContent>
</complexType>
<complexType name="cartographicMemberType">
<complexContent>
<restriction base="gml:FeatureAssociationType">
<sequence minOccurs="0">
<element ref="osgb:_CartographicFeature"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</restriction>
</complexContent>
</complexType>
<complexType name="networkMemberType">
<complexContent>
<restriction base="gml:FeatureAssociationType">
<sequence minOccurs="0">
<element ref="osgb:_networkFeature"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</restriction>
</complexContent>
</complexType>
<complexType name="roadMemberType">
<complexContent>
<restriction base="gml:FeatureAssociationType">
<sequence minOccurs="0">
<element ref="osgb:Road"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</restriction>
</complexContent>
</complexType>
<complexType name="roadInformationMemberType">
<complexContent>
<restriction base="gml:FeatureAssociationType">
<sequence minOccurs="0">
<element ref="osgb:_roadInformationFeature"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</restriction>
</complexContent>
</complexType>
<complexType name="topographicMemberType">
<complexContent>
<restriction base="gml:FeatureAssociationType">
<sequence minOccurs="0">
<element ref="osgb:_TopographicFeature"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</restriction>
</complexContent>
</complexType>
<!-- abstract types -->
<group name="FeatureGroup">
<annotation>
<documentation xml:lang="en">
	This defines the properties common to all Ordnance Survey features.
</documentation>
</annotation>
<sequence>
<element name="featureCode" type="unsignedInt" minOccurs="0"/>
<element name="version" type="unsignedInt"/>
<element name="versionDate" type="date"/>
<element name="theme" type="osgb:themeType" maxOccurs="unbounded"/>
</sequence>
</group>
<complexType name="AbstractFeatureType">
<annotation>
<documentation xml:lang="en">
	Abstract base type for all ordnance survey features.  Extends the gml abstract
	feature in order to ensure compliance with GML.
</documentation>
</annotation>
<complexContent>
<extension base="gml:AbstractFeatureType">
<group ref="osgb:FeatureGroup"/>
</extension>
</complexContent>
</complexType>
<complexType name="AbstractRoadInformationType">
<annotation>
<documentation xml:lang="en">
	This defines the properties common to most road information features (excluding InformationPoint features).
</documentation>
</annotation>
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="changeHistory" type="osgb:changeHistoryType" maxOccurs="unbounded"/>
<element name="descriptiveGroup">
<simpleType>
<restriction base="osgb:descriptiveGroupType">
<enumeration value="Road Routing Information"/>
</restriction>
</simpleType>
</element>
<element name="dateTimeQualifier" type="osgb:dateTimeQualifierType" minOccurs="0" maxOccurs="unbounded"/>
<element name="vehicleQualifier" type="osgb:vehicleQualifierType" minOccurs="0" maxOccurs="unbounded"/>
<element name="environmentQualifier" type="osgb:environmentQualifierType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- features -->
<complexType name="AddressPointType">
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="addressStatus" type="osgb:addressStatusType"/>
<element name="multipleOccupancyCount" type="osgb:multipleOccupancyCountType" minOccurs="0"/>
<element name="OSAPR" type="string"/>
<element name="point" type="gml:PointPropertyType"/>
<element name="postalAddress" type="osgb:postalAddressType"/>
<element name="postalAddressDate" type="date"/>
<element name="referenceToTopographicArea" type="gml:FeatureAssociationType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="BoundaryLineType">
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="accuracyOfPosition" type="osgb:accuracyOfPositionType"/>
<element name="changeHistory" type="osgb:changeHistoryType" maxOccurs="unbounded"/>
<element name="descriptiveGroup" type="osgb:descriptiveGroupType" maxOccurs="unbounded"/>
<element name="descriptiveTerm" type="string" minOccurs="0" maxOccurs="unbounded"/>
<element name="make" type="osgb:makeType" minOccurs="0"/>
<element name="physicalLevel" type="osgb:physicalLevelType"/>
<element name="physicalPresence" type="osgb:physicalPresenceType" minOccurs="0"/>
<element name="polyline" type="osgb:LineStringPropertyType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="CartographicSymbolType">
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="changeHistory" type="osgb:changeHistoryType" maxOccurs="unbounded"/>
<element name="descriptiveGroup" type="osgb:descriptiveGroupType" minOccurs="0" maxOccurs="unbounded"/>
<element name="descriptiveTerm" type="string" minOccurs="0" maxOccurs="unbounded"/>
<element name="orientation" type="osgb:orientationType"/>
<element name="physicalLevel" type="osgb:physicalLevelType"/>
<element name="physicalPresence" type="osgb:physicalPresenceType" minOccurs="0"/>
<element name="point" type="gml:PointPropertyType"/>
<element name="referenceToFeature" type="gml:FeatureAssociationType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="CartographicTextType">
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="anchorPoint" type="gml:PointPropertyType"/>
<element name="changeHistory" type="osgb:changeHistoryType" maxOccurs="unbounded"/>
<element name="descriptiveGroup" type="osgb:descriptiveGroupType" minOccurs="0" maxOccurs="unbounded"/>
<element name="descriptiveTerm" type="string" minOccurs="0" maxOccurs="unbounded"/>
<element name="make" type="osgb:makeType" minOccurs="0"/>
<element name="physicalLevel" type="osgb:physicalLevelType"/>
<element name="physicalPresence" type="osgb:physicalPresenceType" minOccurs="0"/>
<element name="textRendering" type="osgb:textRenderingType"/>
<element name="textString" type="string"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="FerryLinkType">
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="changeHistory" type="osgb:changeHistoryType" maxOccurs="unbounded"/>
<element name="descriptiveGroup">
<simpleType>
<restriction base="osgb:descriptiveGroupType">
<enumeration value="Ferry Connection"/>
</restriction>
</simpleType>
</element>
<element name="directedNode" type="osgb:directedNodeAssociationType" minOccurs="2" maxOccurs="2"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="FerryNodeType">
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="changeHistory" type="osgb:changeHistoryType" maxOccurs="unbounded"/>
<element name="descriptiveGroup">
<simpleType>
<restriction base="osgb:descriptiveGroupType">
<enumeration value="Ferry Connection"/>
</restriction>
</simpleType>
</element>
<element name="point" type="gml:PointPropertyType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="FerryTerminalType">
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="changeHistory" type="osgb:changeHistoryType" maxOccurs="unbounded"/>
<element name="descriptiveGroup">
<simpleType>
<restriction base="osgb:descriptiveGroupType">
<enumeration value="Network Connection"/>
</restriction>
</simpleType>
</element>
<element name="descriptiveTerm" maxOccurs="unbounded">
<simpleType>
<restriction base="osgb:descriptiveTermType">
<enumeration value="Road"/>
<enumeration value="Ferry"/>
</restriction>
</simpleType>
</element>
<element name="referenceToNetwork" type="gml:FeatureAssociationType" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="InformationPointType">
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="changeHistory" type="osgb:changeHistoryType" maxOccurs="unbounded"/>
<element name="descriptiveGroup">
<simpleType>
<restriction base="string">
<enumeration value="Information Point"/>
</restriction>
</simpleType>
</element>
<element name="junctionName">
<simpleType>
<restriction base="string"/>
</simpleType>
</element>
<element name="point" type="gml:PointPropertyType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RoadLinkType">
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="changeHistory" type="osgb:changeHistoryType" maxOccurs="unbounded"/>
<element name="descriptiveGroup">
<simpleType>
<restriction base="osgb:descriptiveGroupType">
<enumeration value="Road Topology"/>
</restriction>
</simpleType>
</element>
<element name="descriptiveTerm">
<simpleType>
<restriction base="osgb:descriptiveTermType">
<enumeration value="Motorway"/>
<enumeration value="A Road"/>
<enumeration value="B Road"/>
<enumeration value="Minor Road"/>
<enumeration value="Local Street"/>
<enumeration value="Alley"/>
<enumeration value="Private Road - Publicly Accessible"/>
<enumeration value="Private Road - Restricted Access"/>
<enumeration value="Pedestrianised Street"/>
</restriction>
</simpleType>
</element>
<element name="natureOfRoad" type="osgb:NatureOfRoadType"/>
<element name="length" type="osgb:MetresMeasureType"/>
<element name="polyline" type="gml:GeometryPropertyType"/>
<element name="directedNode" type="osgb:directedNodeAssociationType" minOccurs="2" maxOccurs="2"/>
<element name="referenceToTopographicArea" type="gml:FeatureAssociationType" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RoadLinkInformationType">
<complexContent>
<extension base="osgb:AbstractRoadInformationType">
<sequence>
<element name="referenceToRoadLink" type="gml:FeatureAssociationType" minOccurs="0"/>
<element name="distanceFromStart" type="osgb:MetresMeasureType" minOccurs="0"/>
<element name="point" type="gml:PointPropertyType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RoadNodeType">
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="changeHistory" type="osgb:changeHistoryType" maxOccurs="unbounded"/>
<element name="descriptiveGroup">
<simpleType>
<restriction base="osgb:descriptiveGroupType">
<enumeration value="Road Topology"/>
</restriction>
</simpleType>
</element>
<element name="point" type="gml:PointPropertyType"/>
<element name="referenceToTopographicArea" type="gml:FeatureAssociationType" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RoadNodeInformationType">
<complexContent>
<extension base="osgb:AbstractRoadInformationType">
<sequence>
<element name="referenceToRoadNode" type="osgb:directedNodeAssociationType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RoadPartialLinkInformationType">
<complexContent>
<extension base="osgb:AbstractRoadInformationType">
<sequence>
<element name="referenceToRoadLink" type="gml:FeatureAssociationType"/>
<sequence minOccurs="2" maxOccurs="2">
<element name="subsectionDistance" type="osgb:MetresMeasureType"/>
<element name="subsectionPoint" type="gml:PointPropertyType"/>
</sequence>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RoadPartialRouteInformationType">
<complexContent>
<extension base="osgb:AbstractRoadInformationType">
<sequence>
<element name="directedLink" type="osgb:directedLinkAssociationType"/>
<sequence minOccurs="2" maxOccurs="2">
<element name="subsectionDistance" type="osgb:MetresMeasureType"/>
<element name="subsectionPoint" type="gml:PointPropertyType"/>
</sequence>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RoadRouteInformationType">
<complexContent>
<extension base="osgb:AbstractRoadInformationType">
<sequence>
<element name="directedLink" type="osgb:directedLinkAssociationType" maxOccurs="unbounded"/>
<element name="distanceFromStart" type="osgb:MetresMeasureType" minOccurs="0"/>
<element name="point" type="gml:PointPropertyType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="RoadType">
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="changeHistory" type="osgb:changeHistoryType" maxOccurs="unbounded"/>
<element name="descriptiveGroup">
<simpleType>
<restriction base="osgb:descriptiveGroupType">
<enumeration value="Named Road"/>
<enumeration value="Motorway"/>
<enumeration value="A Road"/>
<enumeration value="B Road"/>
</restriction>
</simpleType>
</element>
<element name="descriptiveTerm" minOccurs="0">
<simpleType>
<restriction base="osgb:descriptiveTermType">
<enumeration value="Trunk Road"/>
<enumeration value="Primary Route"/>
</restriction>
</simpleType>
</element>
<element name="roadName" type="osgb:languageQualifiedString" maxOccurs="unbounded"/>
<element name="networkMember" type="gml:FeatureAssociationType" maxOccurs="unbounded"/>
<element name="boundedBy" type="gml:BoundingShapeType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="TopographicAreaType">
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="calculatedAreaValue" type="double"/>
<element name="changeHistory" type="osgb:changeHistoryType" maxOccurs="unbounded"/>
<element name="descriptiveGroup" type="osgb:descriptiveGroupType" maxOccurs="unbounded"/>
<element name="descriptiveTerm" type="string" minOccurs="0" maxOccurs="unbounded"/>
<element name="make" type="osgb:makeType" minOccurs="0"/>
<element name="physicalLevel" type="osgb:physicalLevelType"/>
<element name="physicalPresence" type="osgb:physicalPresenceType" minOccurs="0"/>
<element name="polygon" type="osgb:PolygonPropertyType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="TopographicLineType">
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="accuracyOfPosition" type="osgb:accuracyOfPositionType"/>
<element name="changeHistory" type="osgb:changeHistoryType" maxOccurs="unbounded"/>
<element name="descriptiveGroup" type="osgb:descriptiveGroupType" maxOccurs="unbounded"/>
<element name="descriptiveTerm" type="string" minOccurs="0" maxOccurs="unbounded"/>
<element name="heightAboveDatum" type="osgb:heightAboveDatumType" minOccurs="0"/>
<element name="heightAboveGroundLevel" type="osgb:heightAboveGroundLevelType" minOccurs="0"/>
<element name="make" type="osgb:makeType" minOccurs="0"/>
<element name="physicalLevel" type="osgb:physicalLevelType"/>
<element name="physicalPresence" type="osgb:physicalPresenceType" minOccurs="0"/>
<element name="polyline" type="osgb:LineStringPropertyType"/>
<element name="referenceToFeature" type="gml:FeatureAssociationType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType name="TopographicPointType">
<complexContent>
<extension base="osgb:AbstractFeatureType">
<sequence>
<element name="accuracyOfPosition" type="osgb:accuracyOfPositionType"/>
<element name="changeHistory" type="osgb:changeHistoryType" maxOccurs="unbounded"/>
<element name="descriptiveGroup" type="osgb:descriptiveGroupType" maxOccurs="unbounded"/>
<element name="descriptiveTerm" type="string" minOccurs="0" maxOccurs="unbounded"/>
<element name="heightAboveDatum" type="osgb:heightAboveDatumType" minOccurs="0"/>
<element name="heightAboveGroundLevel" type="osgb:heightAboveGroundLevelType" minOccurs="0"/>
<element name="make" type="osgb:makeType" minOccurs="0"/>
<element name="physicalLevel" type="osgb:physicalLevelType"/>
<element name="physicalPresence" type="osgb:physicalPresenceType" minOccurs="0"/>
<element name="point" type="gml:PointPropertyType"/>
<element name="referenceToFeature" type="gml:FeatureAssociationType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
</schema>
