<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" targetNamespace="http://www.opengis.net/gml" elementFormDefault="qualified" version="3.2.0" finalDefault="" blockDefault="" attributeFormDefault="unqualified">
    <annotation>
        <appinfo source="urn:opengis:specification:gml:schema-xsd:observation:v3.2.0">observation.xsd</appinfo>
        <documentation>see GML Clause 18</documentation>
    </annotation>
    <include schemaLocation="feature.xsd"/>
    <include schemaLocation="direction.xsd"/>
    <include schemaLocation="valueObjects.xsd"/>
    <element name="Observation" type="gml:ObservationType" substitutionGroup="gml:AbstractFeature" nillable="false" abstract="false"/>
    <complexType name="ObservationType" mixed="false" abstract="false">
        <complexContent>
            <extension base="gml:AbstractFeatureType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element ref="gml:validTime" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <element ref="gml:using" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <element ref="gml:target" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <element ref="gml:resultOf" minOccurs="1" maxOccurs="1" nillable="false"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <element name="using" type="gml:ProcedurePropertyType" nillable="false" abstract="false"/>
    <complexType name="ProcedurePropertyType" mixed="false" abstract="false">
        <sequence minOccurs="0" maxOccurs="1">
            <element ref="gml:AbstractFeature" minOccurs="1" maxOccurs="1" nillable="false"/>
        </sequence>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
    </complexType>
    <element name="target" type="gml:TargetPropertyType" nillable="false" abstract="false"/>
    <element name="subject" type="gml:TargetPropertyType" substitutionGroup="gml:target" nillable="false" abstract="false"/>
    <complexType name="TargetPropertyType" mixed="false" abstract="false">
        <choice minOccurs="0" maxOccurs="1">
            <element ref="gml:AbstractFeature" minOccurs="1" maxOccurs="1" nillable="false"/>
            <element ref="gml:AbstractGeometry" minOccurs="1" maxOccurs="1" nillable="false"/>
        </choice>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
    </complexType>
    <element name="resultOf" type="gml:ResultType" nillable="false" abstract="false"/>
    <complexType name="ResultType" mixed="false" abstract="false">
        <sequence minOccurs="0" maxOccurs="1">
            <element ref="gml:AbstractObject" minOccurs="1" maxOccurs="1" nillable="false"/>
        </sequence>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
        <attributeGroup ref="gml:AssociationAttributeGroup"/>
    </complexType>
    <element name="DirectedObservation" type="gml:DirectedObservationType" substitutionGroup="gml:Observation" nillable="false" abstract="false"/>
    <complexType name="DirectedObservationType" mixed="false" abstract="false">
        <complexContent>
            <extension base="gml:ObservationType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element ref="gml:direction" minOccurs="1" maxOccurs="1" nillable="false"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <element name="DirectedObservationAtDistance" type="gml:DirectedObservationAtDistanceType" substitutionGroup="gml:DirectedObservation" nillable="false" abstract="false"/>
    <complexType name="DirectedObservationAtDistanceType" mixed="false" abstract="false">
        <complexContent>
            <extension base="gml:DirectedObservationType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element name="distance" type="gml:MeasureType" minOccurs="1" maxOccurs="1" nillable="false"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
</schema>