<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:dynamicFeature:v3.2.0">dynamicFeature.xsd</appinfo>
        <documentation>see GML 14.6</documentation>
    </annotation>
    <include schemaLocation="feature.xsd"/>
    <include schemaLocation="direction.xsd"/>
    <element name="dataSource" type="gml:StringOrRefType" nillable="false" abstract="false"/>
    <element name="dataSourceReference" type="gml:ReferenceType" nillable="false" abstract="false"/>
    <group name="dynamicProperties">
        <sequence>
            <element ref="gml:validTime" minOccurs="0" maxOccurs="1" nillable="false"/>
            <element ref="gml:history" minOccurs="0" maxOccurs="1" nillable="false"/>
            <element ref="gml:dataSource" minOccurs="0" maxOccurs="1" nillable="false"/>
            <element ref="gml:dataSourceReference" minOccurs="0" maxOccurs="1" nillable="false"/>
        </sequence>
    </group>
    <element name="DynamicFeature" type="gml:DynamicFeatureType" substitutionGroup="gml:AbstractFeature" nillable="false" abstract="false"/>
    <complexType name="DynamicFeatureType" mixed="false" abstract="false">
        <xsd:complexContent xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <extension base="gml:AbstractFeatureType">
                <group ref="gml:dynamicProperties" minOccurs="1" maxOccurs="1"/>
            </extension>
        </xsd:complexContent>
    </complexType>
    <element name="DynamicFeatureCollection" type="gml:DynamicFeatureCollectionType" substitutionGroup="gml:DynamicFeature" nillable="false" abstract="false"/>
    <complexType name="DynamicFeatureCollectionType" mixed="false" abstract="false">
        <xsd:complexContent xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <extension base="gml:DynamicFeatureType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element ref="gml:dynamicMembers" minOccurs="1" maxOccurs="1" nillable="false"/>
                </sequence>
            </extension>
        </xsd:complexContent>
    </complexType>
    <element name="dynamicMembers" type="gml:DynamicFeatureMemberType" nillable="false" abstract="false"/>
    <complexType name="DynamicFeatureMemberType" mixed="false" abstract="false">
        <xsd:complexContent xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <extension base="gml:AbstractFeatureMemberType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element ref="gml:DynamicFeature" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
                </sequence>
                <attributeGroup ref="gml:AssociationAttributeGroup"/>
            </extension>
        </xsd:complexContent>
    </complexType>
    <element name="AbstractTimeSlice" type="gml:AbstractTimeSliceType" abstract="true" substitutionGroup="gml:AbstractGML" nillable="false"/>
    <complexType name="AbstractTimeSliceType" abstract="true" mixed="false">
        <xsd:complexContent xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <extension base="gml:AbstractGMLType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element ref="gml:validTime" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <element ref="gml:dataSource" minOccurs="0" maxOccurs="1" nillable="false"/>
                </sequence>
            </extension>
        </xsd:complexContent>
    </complexType>
    <element name="MovingObjectStatus" type="gml:MovingObjectStatusType" substitutionGroup="gml:AbstractTimeSlice" nillable="false" abstract="false"/>
    <complexType name="MovingObjectStatusType" mixed="false" abstract="false">
        <xsd:complexContent xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <extension base="gml:AbstractTimeSliceType">
                <sequence minOccurs="1" maxOccurs="1">
                    <choice minOccurs="1" maxOccurs="1">
                        <element name="position" type="gml:GeometryPropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                        <element ref="gml:pos" minOccurs="1" maxOccurs="1" nillable="false"/>
                        <element ref="gml:locationName" minOccurs="1" maxOccurs="1" nillable="false"/>
                        <element ref="gml:locationReference" minOccurs="1" maxOccurs="1" nillable="false"/>
                    </choice>
                    <element ref="gml:location" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <element name="speed" type="gml:MeasureType" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <element name="bearing" type="gml:DirectionPropertyType" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <element name="acceleration" type="gml:MeasureType" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <element name="elevation" type="gml:MeasureType" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <element ref="gml:status" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <element ref="gml:statusReference" minOccurs="0" maxOccurs="1" nillable="false"/>
                </sequence>
            </extension>
        </xsd:complexContent>
    </complexType>
    <element name="status" type="gml:StringOrRefType" nillable="false" abstract="false"/>
    <element name="statusReference" type="gml:ReferenceType" nillable="false" abstract="false"/>
    <element name="history" type="gml:HistoryPropertyType" nillable="false" abstract="false"/>
    <complexType name="HistoryPropertyType" mixed="false" abstract="false">
        <sequence minOccurs="1" maxOccurs="1">
            <element ref="gml:AbstractTimeSlice" maxOccurs="unbounded" minOccurs="1" nillable="false"/>
        </sequence>
        <attributeGroup ref="gml:OwnershipAttributeGroup"/>
    </complexType>
    <element name="track" type="gml:HistoryPropertyType" substitutionGroup="gml:history" nillable="false" abstract="false"/>
</schema>