<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" targetNamespace="http://www.opengis.net/gml" elementFormDefault="qualified" attributeFormDefault="unqualified" version="3.2.0" finalDefault="" blockDefault="">
    <annotation>
        <appinfo source="urn:opengis:specification:gml:schema-xsd:direction:v3.2.0">direction.xsd</appinfo>
        <documentation>see GML Clause 17</documentation>
    </annotation>
    <include schemaLocation="geometryBasic0d1d.xsd"/>
    <element name="direction" type="gml:DirectionPropertyType" nillable="false" abstract="false"/>
    <complexType name="DirectionPropertyType" mixed="false" abstract="false">
        <sequence minOccurs="0" maxOccurs="1">
            <choice minOccurs="1" maxOccurs="1">
                <element name="DirectionVector" type="gml:DirectionVectorType" minOccurs="1" maxOccurs="1" nillable="false"/>
                <element name="DirectionDescription" type="gml:DirectionDescriptionType" minOccurs="1" maxOccurs="1" nillable="false"/>
                <element name="CompassPoint" type="gml:CompassPointEnumeration" minOccurs="1" maxOccurs="1" nillable="false"/>
                <element name="DirectionKeyword" type="gml:CodeType" minOccurs="1" maxOccurs="1" nillable="false"/>
                <element name="DirectionString" type="gml:StringOrRefType" minOccurs="1" maxOccurs="1" nillable="false"/>
            </choice>
        </sequence>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
    </complexType>
    <complexType name="DirectionVectorType" mixed="false" abstract="false">
        <choice minOccurs="1" maxOccurs="1">
            <element ref="gml:vector" minOccurs="1" maxOccurs="1" nillable="false"/>
            <sequence minOccurs="1" maxOccurs="1">
                <element name="horizontalAngle" type="gml:AngleType" minOccurs="1" maxOccurs="1" nillable="false"/>
                <element name="verticalAngle" type="gml:AngleType" minOccurs="1" maxOccurs="1" nillable="false"/>
            </sequence>
        </choice>
    </complexType>
    <complexType name="DirectionDescriptionType" mixed="false" abstract="false">
        <choice minOccurs="1" maxOccurs="1">
            <element name="compassPoint" type="gml:CompassPointEnumeration" minOccurs="1" maxOccurs="1" nillable="false"/>
            <element name="keyword" type="gml:CodeType" minOccurs="1" maxOccurs="1" nillable="false"/>
            <element name="description" type="string" minOccurs="1" maxOccurs="1" nillable="false"/>
            <element name="reference" type="gml:ReferenceType" minOccurs="1" maxOccurs="1" nillable="false"/>
        </choice>
    </complexType>
    <simpleType name="CompassPointEnumeration">
        <restriction base="string">
            <enumeration value="N"/>
            <enumeration value="NNE"/>
            <enumeration value="NE"/>
            <enumeration value="ENE"/>
            <enumeration value="E"/>
            <enumeration value="ESE"/>
            <enumeration value="SE"/>
            <enumeration value="SSE"/>
            <enumeration value="S"/>
            <enumeration value="SSW"/>
            <enumeration value="SW"/>
            <enumeration value="WSW"/>
            <enumeration value="W"/>
            <enumeration value="WNW"/>
            <enumeration value="NW"/>
            <enumeration value="NNW"/>
        </restriction>
    </simpleType>
</schema>