<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="3.1.1">
        <annotation>
                <appinfo source="urn:opengis:specification:gml:schema-xsd:dynamicFeature:3.1.1"/>
                <documentation xml:lang="en">Basic support for tracking moving objects and objects with changing state.     
    Copyright (c) 2002-2005 OGC, All Rights Reserved.
        For conditions, see OGC Software Notice http://www.opengeospatial.org/about/?page=ipr</documentation>
        </annotation>
        <!-- ================================================================== -->
        <include schemaLocation="feature.xsd"/>
        <include schemaLocation="direction.xsd"/>
        <!-- ================================================================== -->
        <element name="dataSource" type="gml:StringOrRefType"/>
        <element name="status" type="gml:StringOrRefType"/>
        <!-- ================================================================== -->
        <element name="_TimeSlice" type="gml:AbstractTimeSliceType" abstract="true" substitutionGroup="gml:_GML"/>
        <!-- ===================================== -->
        <complexType name="AbstractTimeSliceType" abstract="true">
                <annotation>
                        <documentation xml:lang="en">A timeslice encapsulates the time-varying properties of a dynamic feature--it 
        must be extended to represent a timestamped projection of a feature. The dataSource 
        property describes how the temporal data was acquired.</documentation>
                </annotation>
                <complexContent>
                        <extension base="gml:AbstractGMLType">
                                <sequence>
                                        <element ref="gml:validTime"/>
                                        <element ref="gml:dataSource" minOccurs="0"/>
                                </sequence>
                        </extension>
                </complexContent>
        </complexType>
        <!-- ================================================================== -->
        <element name="MovingObjectStatus" type="gml:MovingObjectStatusType" substitutionGroup="gml:_TimeSlice"/>
        <!-- ===================================== -->
        <complexType name="MovingObjectStatusType">
                <annotation>
                        <documentation xml:lang="en">This type encapsulates various dynamic properties of moving objects        
             (points, lines, regions). It is useful for dealing with features whose        
             geometry or topology changes over time.</documentation>
                </annotation>
                <complexContent>
                        <extension base="gml:AbstractTimeSliceType">
                                <sequence>
                                        <element ref="gml:location"/>
                                        <element name="speed" type="gml:MeasureType" minOccurs="0"/>
                                        <element name="bearing" type="gml:DirectionPropertyType" minOccurs="0"/>
                                        <element name="acceleration" type="gml:MeasureType" minOccurs="0"/>
                                        <element name="elevation" type="gml:MeasureType" minOccurs="0"/>
                                        <element ref="gml:status" minOccurs="0"/>
                                </sequence>
                        </extension>
                </complexContent>
        </complexType>
        <!-- ================================================================== -->
        <element name="history" type="gml:HistoryPropertyType"/>
        <!-- ===================================== -->
        <complexType name="HistoryPropertyType">
                <annotation>
                        <documentation xml:lang="en">The history relationship associates a feature with a sequence of TimeSlice instances.</documentation>
                </annotation>
                <sequence maxOccurs="unbounded">
                        <element ref="gml:_TimeSlice"/>
                </sequence>
        </complexType>
        <!-- ================================================================== -->
        <element name="track" type="gml:TrackType" substitutionGroup="gml:history"/>
        <!-- ===================================== -->
        <complexType name="TrackType">
                <annotation>
                        <documentation xml:lang="en">The track of a moving object is a sequence of specialized timeslices        that indicate the status of the object.</documentation>
                </annotation>
                <complexContent>
                        <restriction base="gml:HistoryPropertyType">
                                <sequence maxOccurs="unbounded">
                                        <element ref="gml:MovingObjectStatus"/>
                                </sequence>
                        </restriction>
                </complexContent>
        </complexType>
        <!-- ================================================================== -->
        <group name="dynamicProperties">
                <sequence>
                        <element ref="gml:validTime" minOccurs="0"/>
                        <element ref="gml:history" minOccurs="0"/>
                        <element ref="gml:dataSource" minOccurs="0"/>
                </sequence>
        </group>
        <!-- ================================================================== -->
        <complexType name="DynamicFeatureType">
                <annotation>
                        <documentation>A dynamic feature may possess a history and/or a timestamp.</documentation>
                </annotation>
                <complexContent>
                        <extension base="gml:AbstractFeatureType">
                                <group ref="gml:dynamicProperties"/>
                        </extension>
                </complexContent>
        </complexType>
        <!-- ===================================== -->
        <complexType name="DynamicFeatureCollectionType">
                <annotation>
                        <documentation>A dynamic feature collection may possess a history and/or a timestamp.</documentation>
                </annotation>
                <complexContent>
                        <extension base="gml:FeatureCollectionType">
                                <group ref="gml:dynamicProperties"/>
                        </extension>
                </complexContent>
        </complexType>
        <!-- ===================================== -->
</schema>