<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tsml="http://www.opengis.net/timeseriesml/1.3" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:gmlcov="http://www.opengis.net/gmlcov/1.0" elementFormDefault="qualified" targetNamespace="http://www.opengis.net/timeseriesml/1.3" version="1.3.0">
	<xs:annotation>
		<xs:documentation>
			OGC TimeseriesML is an OGC Standard.
			Copyright (c) 2015, 2016, 2019, 2021 Open Geospatial Consortium.
			To obtain additional rights of use, visit http://www.opengeospatial.org/legal/ .
		</xs:documentation>
	</xs:annotation>
	<xs:include schemaLocation="timeseriesMetadata.xsd"/>
	<xs:import namespace="http://www.opengis.net/gmlcov/1.0" schemaLocation="http://schemas.opengis.net/gmlcov/1.0/coverage.xsd"/>
	<xs:import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>
	<xs:annotation>
		<xs:documentation>The Domain Range Encoding schema contains types suitable for encoding TimeSeries (both Measurement and Categorical) in a domain (times), range (values) block. This schema extends the OGC GMLCov schema.</xs:documentation>
	</xs:annotation>
	<xs:element name="TimeseriesMetadataExtension" type="tsml:TimeseriesMetadataExtensionType" substitutionGroup="gml:AbstractObject">
		<xs:annotation>
			<xs:documentation>TimeseriesMetadataExtension enables use of TimeseriesML metadata classes in GMLCov XML schema. The associated XML examples demonstrate how this is applied in practice.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="TimeseriesMetadataExtensionType">
		<xs:sequence>
			<xs:element name="defaultPointMetadata" minOccurs="0" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>Default metadata for each point in the timeseries.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="gml:AbstractMemberType">
							<xs:sequence>
								<xs:element ref="tsml:PointMetadata"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="timeseriesMetadata" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Metadata applicable to the whole timeseries or individual regularly spaced segments of an irregularly spaced whole timeseries.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="gml:AbstractMemberType">
							<xs:sequence>
								<xs:element ref="tsml:TimeseriesMetadata"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="annotation" type="tsml:AnnotationCoveragePropertyType" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>An annotation coverage corresponding to points on the timeseries.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TimeseriesMetadataExtensionPropertyType">
		<xs:sequence>
			<xs:element ref="tsml:TimeseriesMetadataExtension"/>
		</xs:sequence>
		<xs:attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</xs:complexType>
	<xs:element name="AnnotationCoverage" type="tsml:AnnotationCoverageType" substitutionGroup="gmlcov:AbstractDiscreteCoverage">
		<xs:annotation>
			<xs:documentation>An annotation coverage can be used to apply metadata to individual points in the timeseries.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="AnnotationCoverageType">
		<xs:complexContent>
			<xs:extension base="gmlcov:AbstractDiscreteCoverageType">
				<xs:sequence/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="AnnotationCoveragePropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="tsml:AnnotationCoverage"/>
		</xs:sequence>
		<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
		<xs:attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</xs:complexType>
	<xs:element name="TimeseriesDomainRange" type="tsml:TimeseriesDomainRangeType" substitutionGroup="gmlcov:AbstractDiscreteCoverage">
		<xs:annotation>
			<xs:documentation>The TimeseriesDomainRange element extends the OGC coverage model with metadata extensions for timeseries data. The metadata classes are the same as for the time, value pair encoding.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="TimeseriesDomainRangeType">
		<xs:complexContent>
			<xs:extension base="gmlcov:AbstractDiscreteCoverageType">
				<xs:sequence>
					<xs:element name="type" type="gml:ReferenceType" minOccurs="0" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>If present, the sub-element 'type' shall indicate the class of timeseries. A register of type identifiers corresponding with the timeseries types in TimeseriesML 1.2, is provided by OGC at http://www.opengis.net/def/timeseriesType/timeseriesML/1.2/</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="metadata" type="tsml:TimeseriesMetadataExtensionPropertyType" minOccurs="0" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>Metadata extension to accommodate TimeseriesML 1.2 metadata classes.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="TimeseriesDomainRangePropertyType">
		<xs:sequence minOccurs="0">
			<xs:element ref="tsml:TimeseriesDomainRange"/>
		</xs:sequence>
		<xs:attributeGroup ref="gml:AssociationAttributeGroup"/>
		<xs:attributeGroup ref="gml:OwnershipAttributeGroup"/>
	</xs:complexType>
	<xs:simpleType name="TimeListSimpleType">
		<xs:annotation>
			<xs:documentation>A list of dateTime instances</xs:documentation>
		</xs:annotation>
		<xs:list itemType="xs:dateTime"/>
	</xs:simpleType>
	<xs:complexType name="TimePositionListType">
		<xs:complexContent>
			<xs:extension base="gml:AbstractTimeObjectType">
				<xs:sequence>
					<xs:element name="timePositionList" type="tsml:TimeListSimpleType"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="TimePositionList" type="tsml:TimePositionListType" substitutionGroup="gml:AbstractTimeObject">
		<xs:annotation>
			<xs:documentation>gml:TimeInstant acts as a zero-dimensional geometric primitive that represents an identifiable position in time.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="TimePeriodType">
		<xs:annotation>
			<xs:documentation>A list of Time Periods</xs:documentation>
		</xs:annotation>	
		<xs:sequence>
			<xs:element ref="gml:TimePeriod" maxOccurs="1"/>	
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TimePeriodListType">	
		<xs:complexContent>
			<xs:extension base="gml:AbstractTimeObjectType">
				<xs:sequence>
					<xs:element name="timePeriod" type="tsml:TimePeriodType" maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="TimePeriodList" type="tsml:TimePeriodListType" substitutionGroup="gml:AbstractTimeObject">
		<xs:annotation>
			<xs:documentation>gml:TimePeriod acts as a one-dimensional geometric primitive that represents an identifiable span of time.</xs:documentation>
		</xs:annotation>
	</xs:element>
</xs:schema>
