<?xml version="1.0" encoding="UTF-8" ?>
<schema targetNamespace="http://www.opengis.net/gml" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified" version="3.0.1" xml:lang="en">
	<annotation>
		<appinfo source="urn:opengis:specification:gml:schema-datums:v3.0c3" />
		<documentation>
			<name>datums.xsd</name>
			<version>3.0</version>
			<scope>How to encode datum definitions. </scope>
			<description>Builds on referenceSystems.xsd to encode the data needed to define datums, including the specific subtypes of datums. Primary editor: Arliss Whiteside. Last updated 2003/05/21. </description>
			<copyright>Copyright (c) 2002-2003 Open GIS Consortium, All Rights Reserved.</copyright>
			<conformance>This schema encodes the Datum (CD_) package of the extended UML Model for OGC Abstract Specification Topic 2: Spatial Referencing by Coordinates. That UML model is adapted from ISO 19111 - Spatial referencing by coordinates, as described in Annex B of Topic 2. </conformance>
		</documentation>
	</annotation> <!-- ======================================================
       includes and imports
	====================================================== -->
	<include schemaLocation="referenceSystems.xsd" /> <!-- ======================================================
       elements and types
	====================================================== -->
	<element name="_Datum" type="gml:AbstractDatumType" abstract="true" substitutionGroup="gml:Definition" /> <!-- =================================================== -->
	<complexType name="AbstractDatumBaseType" abstract="true">
		<annotation>
			<documentation>Basic encoding for datum objects, simplifying and restricting the DefinitionType as needed. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:DefinitionType">
				<sequence>
					<element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded" />
					<element ref="gml:remarks" minOccurs="0">
						<annotation>
							<documentation>Comments on this reference system, including source information. </documentation>
						</annotation>
					</element>
					<element ref="gml:datumName" />
				</sequence>
				<attribute ref="gml:id" use="required" />
			</restriction>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="datumName" type="gml:SimpleNameType" substitutionGroup="gml:name">
		<annotation>
			<documentation>The name by which this datum is identified. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<complexType name="AbstractDatumType" abstract="true">
		<annotation>
			<documentation>A datum specifies the relationship of a coordinate system to the earth, thus creating a coordinate reference system. A datum uses a parameter or set of parameters that determine the location of the origin, the orientation, and the scale of a coordinate reference system. This abstract complexType shall not be used, extended, or restricted, in an Application Schema, to define a concrete subtype with a meaning equivalent to a concrete subtype specified in this document. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractDatumBaseType">
				<sequence>
					<element ref="gml:datumID" minOccurs="0" maxOccurs="unbounded" />
					<element ref="gml:anchorPoint" minOccurs="0" />
					<element ref="gml:realizationEpoch" minOccurs="0" />
					<element ref="gml:validArea" minOccurs="0" />
					<element ref="gml:scope" minOccurs="0" />
				</sequence>
			</extension>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="datumID" type="gml:IdentifierType">
		<annotation>
			<documentation>An identification of a datum. The first datumID, if any, is normally the primary identification code, and any others are aliases. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<element name="anchorPoint" type="gml:CodeType">
		<annotation>
			<documentation>Description, possibly including coordinates, of the point or points used to anchor the datum to the Earth. Also known as the "origin", especially for engineering and image datums. The codeSpace attribute can be used to reference a source of more detailed on this point or surface, or on a set of such descriptions. 
- For a geodetic datum, this point is also known as the fundamental point, which is traditionally the point where the relationship between geoid and ellipsoid is defined. In some cases, the "fundamental point" may consist of a number of points. In those cases, the parameters defining the geoid/ellipsoid relationship have been averaged for these points, and the averages adopted as the datum definition.
- For an engineering datum, the anchor point may be a physical point, or it may be a point with defined coordinates in another CRS.
- For an image datum, the anchor point is usually either the centre of the image or the corner of the image.
- For a temporal datum, this attribute is not defined. Instead of the anchor point, a temporal datum carries a separate time origin of type DateTime. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<element name="realizationEpoch" type="date">
		<annotation>
			<documentation>The time for which this datum definition is valid. This time may be precise (e.g. 1997.0 for IRTF97) or merely a year (e.g. 1983 for NAD83). In the latter case, the epoch usually refers to the year in which a major recalculation of the geodetic control network, underlying the datum, was executed or initiated. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<element name="datumRef" type="gml:DatumRefType" substitutionGroup="gml:dictionaryEntry" /> <!-- =================================================== -->
	<complexType name="DatumRefType">
		<annotation>
			<documentation>Association to a datum, either referencing or containing the definition of that datum. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:DictionaryEntryType">
				<sequence>
					<element ref="gml:_Datum" minOccurs="0" />
				</sequence>
				<attributeGroup ref="gml:AssociationAttributeGroup" />
			</restriction>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="EngineeringDatum" type="gml:EngineeringDatumType" substitutionGroup="gml:_Datum" /> <!-- =================================================== -->
	<complexType name="EngineeringDatumType">
		<annotation>
			<documentation>An engineering datum defines the origin and axes directions of an engineering coordinate reference system. Normally used in a local context only. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractDatumType" />
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="engineeringDatumRef" type="gml:EngineeringDatumRefType" substitutionGroup="gml:datumRef" /> <!-- =================================================== -->
	<complexType name="EngineeringDatumRefType">
		<annotation>
			<documentation>Association to an engineering datum, either referencing or containing the definition of that datum. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:DatumRefType">
				<sequence>
					<element ref="gml:EngineeringDatum" minOccurs="0" />
				</sequence>
				<attributeGroup ref="gml:AssociationAttributeGroup" />
			</restriction>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="ImageDatum" type="gml:ImageDatumType" substitutionGroup="gml:_Datum" /> <!-- =================================================== -->
	<complexType name="ImageDatumType">
		<annotation>
			<documentation>An image datum defines the origin of an image coordinate reference system. Used in a local context only. For more information, see OGC Abstract Specification Topic 2. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractDatumType">
				<sequence>
					<element ref="gml:pixelInCell" />
				</sequence>
			</extension>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="pixelInCell" type="gml:PixelInCellType" /> <!-- =================================================== -->
	<complexType name="PixelInCellType">
		<annotation>
			<documentation>Specification of the way an image grid is associated with the image data attributes. </documentation>
		</annotation>
		<simpleContent>
			<restriction base="gml:CodeType">
				<attribute name="codeSpace" type="anyURI" use="required">
					<annotation>
						<documentation>Reference to a source of information specifying the values and meanings of all the allowed string values for this PixelInCellType. </documentation>
					</annotation>
				</attribute>
			</restriction>
		</simpleContent>
	</complexType> <!-- =================================================== -->
	<element name="imageDatumRef" type="gml:ImageDatumRefType" substitutionGroup="gml:datumRef" /> <!-- =================================================== -->
	<complexType name="ImageDatumRefType">
		<annotation>
			<documentation>Association to an image datum, either referencing or containing the definition of that datum. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:DatumRefType">
				<sequence>
					<element ref="gml:ImageDatum" minOccurs="0" />
				</sequence>
				<attributeGroup ref="gml:AssociationAttributeGroup" />
			</restriction>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="VerticalDatum" type="gml:VerticalDatumType" substitutionGroup="gml:_Datum" /> <!-- =================================================== -->
	<complexType name="VerticalDatumType">
		<annotation>
			<documentation>A textual description and/or a set of parameters identifying a particular reference level surface used as a zero-height surface, including its position and orientation with respect to the Earth for any of the height types recognized by this standard. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractDatumType">
				<sequence>
					<element ref="gml:verticalDatumType" minOccurs="0" />
				</sequence>
			</extension>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="verticalDatumType" type="gml:VerticalDatumTypeType" /> <!-- =================================================== -->
	<complexType name="VerticalDatumTypeType">
		<annotation>
			<documentation>Type of a vertical datum. </documentation>
		</annotation>
		<simpleContent>
			<restriction base="gml:CodeType">
				<attribute name="codeSpace" type="anyURI" use="required">
					<annotation>
						<documentation>Reference to a source of information specifying the values and meanings of all the allowed string values for this VerticalDatumTypeType. </documentation>
					</annotation>
				</attribute>
			</restriction>
		</simpleContent>
	</complexType> <!-- =================================================== -->
	<element name="verticalDatumRef" type="gml:VerticalDatumRefType" substitutionGroup="gml:datumRef" /> <!-- =================================================== -->
	<complexType name="VerticalDatumRefType">
		<annotation>
			<documentation>Association to a vertical datum, either referencing or containing the definition of that datum. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:DatumRefType">
				<sequence>
					<element ref="gml:VerticalDatum" minOccurs="0" />
				</sequence>
				<attributeGroup ref="gml:AssociationAttributeGroup" />
			</restriction>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="TemporalDatum" type="gml:TemporalDatumType" substitutionGroup="gml:_Datum" /> <!-- =================================================== -->
	<complexType name="TemporalDatumBaseType" abstract="true">
		<annotation>
			<documentation>Partially defines the origin of a temporal coordinate reference system. This type restricts the AbstractDatumType to remove the "anchorPoint" and "realizationEpoch" elements. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:AbstractDatumType">
				<sequence>
					<element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded" />
					<element ref="gml:datumName" />
					<element ref="gml:datumID" minOccurs="0" maxOccurs="unbounded" />
					<element ref="gml:validArea" minOccurs="0" />
					<element ref="gml:scope" minOccurs="0" />
				</sequence>
				<attribute ref="gml:id" use="required" />
			</restriction>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<complexType name="TemporalDatumType">
		<annotation>
			<documentation>A temporal datum defines the origin of a temporal coordinate reference system. This type extends the TemporalDatumRestrictionType to add the "origin" element with the dateTime type. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:TemporalDatumBaseType">
				<sequence>
					<element ref="gml:origin" />
				</sequence>
			</extension>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="origin" type="dateTime">
		<annotation>
			<documentation>The date and time origin of this temporal datum. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<element name="temporalDatumRef" type="gml:TemporalDatumRefType" substitutionGroup="gml:datumRef" /> <!-- =================================================== -->
	<complexType name="TemporalDatumRefType">
		<annotation>
			<documentation>Association to a temporal datum, either referencing or containing the definition of that datum. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:DatumRefType">
				<sequence>
					<element ref="gml:TemporalDatum" minOccurs="0" />
				</sequence>
				<attributeGroup ref="gml:AssociationAttributeGroup" />
			</restriction>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="GeodeticDatum" type="gml:GeodeticDatumType" substitutionGroup="gml:_Datum" /> <!-- =================================================== -->
	<complexType name="GeodeticDatumType">
		<annotation>
			<documentation>A geodetic datum defines the location and orientation in 3-dimensional space of a defined ellipsoid (or sphere), or of a Cartesian coordinate system centered in this ellipsoid (or sphere). </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractDatumType">
				<sequence>
					<element ref="gml:usesPrimeMeridian" />
					<element ref="gml:usesEllipsoid" />
				</sequence>
			</extension>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="usesPrimeMeridian" type="gml:PrimeMeridianRefType">
		<annotation>
			<documentation>Association to the prime meridian used by this geodetic datum. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<element name="usesEllipsoid" type="gml:EllipsoidRefType">
		<annotation>
			<documentation>Association to the ellipsoid used by this geodetic datum. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<element name="geodeticDatumRef" type="gml:GeodeticDatumRefType" substitutionGroup="gml:datumRef" /> <!-- =================================================== -->
	<complexType name="GeodeticDatumRefType">
		<annotation>
			<documentation>Association to a geodetic datum, either referencing or containing the definition of that datum. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:DatumRefType">
				<sequence>
					<element ref="gml:GeodeticDatum" minOccurs="0" />
				</sequence>
				<attributeGroup ref="gml:AssociationAttributeGroup" />
			</restriction>
		</complexContent>
	</complexType> <!-- =================================================== --> <!-- =================================================== -->
	<element name="PrimeMeridian" type="gml:PrimeMeridianType" substitutionGroup="gml:Definition" /> <!-- =================================================== -->
	<complexType name="PrimeMeridianBaseType" abstract="true">
		<annotation>
			<documentation>Basic encoding for prime meridian objects, simplifying and restricting the DefinitionType as needed. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:DefinitionType">
				<sequence>
					<element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded" />
					<element ref="gml:remarks" minOccurs="0">
						<annotation>
							<documentation>Comments on or information about this prime meridian, including source information. </documentation>
						</annotation>
					</element>
					<element ref="gml:meridianName" />
				</sequence>
				<attribute ref="gml:id" use="required" />
			</restriction>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="meridianName" type="gml:SimpleNameType" substitutionGroup="gml:name">
		<annotation>
			<documentation>The name by which this prime meridian is identified. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<complexType name="PrimeMeridianType">
		<annotation>
			<documentation>A prime meridian defines the origin from which longitude values are determined.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:PrimeMeridianBaseType">
				<sequence>
					<element ref="gml:meridianID" minOccurs="0" maxOccurs="unbounded" />
					<element ref="gml:greenwichLongitude" />
				</sequence>
			</extension>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="meridianID" type="gml:IdentifierType">
		<annotation>
			<documentation>An identification of this prime meridian. The first meridianID, if any, is normally the primary identification code, and any others are aliases. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<element name="greenwichLongitude" type="gml:AngleChoiceType">
		<annotation>
			<documentation>Longitude of the prime meridian measured from the Greenwich meridian, positive eastward. If the datum type is geodetic and the prime meridian name is not supplied, then the prime meridian name is taken to be "Greenwich" and the Greenwich longitude value is taken to be zero. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<element name="primeMeridianRef" type="gml:PrimeMeridianRefType" substitutionGroup="gml:dictionaryEntry" /> <!-- =================================================== -->
	<complexType name="PrimeMeridianRefType">
		<annotation>
			<documentation>Association to a prime meridian, either referencing or containing the definition of that meridian. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:DictionaryEntryType">
				<sequence>
					<element ref="gml:PrimeMeridian" minOccurs="0" />
				</sequence>
				<attributeGroup ref="gml:AssociationAttributeGroup" />
			</restriction>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="Ellipsoid" type="gml:EllipsoidType" substitutionGroup="gml:Definition" /> <!-- =================================================== -->
	<complexType name="EllipsoidBaseType" abstract="true">
		<annotation>
			<documentation>Basic encoding for ellipsoid objects, simplifying and restricting the DefinitionType as needed. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:DefinitionType">
				<sequence>
					<element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded" />
					<element ref="gml:remarks" minOccurs="0">
						<annotation>
							<documentation>Comments on or information about this ellipsoid, including source information. </documentation>
						</annotation>
					</element>
					<element ref="gml:ellipsoidName" />
				</sequence>
				<attribute ref="gml:id" use="required" />
			</restriction>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="ellipsoidName" type="gml:SimpleNameType" substitutionGroup="gml:name">
		<annotation>
			<documentation>The name by which this ellipsoid is identified. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<complexType name="EllipsoidType">
		<annotation>
			<documentation>An ellipsoid is a geometric figure that can be used to describe the approximate shape of the earth. In mathematical terms, it is a surface formed by the rotation of an ellipse about its minor axis.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:EllipsoidBaseType">
				<sequence>
					<element ref="gml:ellipsoidID" minOccurs="0" maxOccurs="unbounded" />
					<element ref="gml:semiMajorAxis" />
					<element ref="gml:secondDefiningParameter" />
				</sequence>
			</extension>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="ellipsoidID" type="gml:IdentifierType">
		<annotation>
			<documentation>An identification of this ellipsoid. The first ellipsoidID, if any, is normally the primary identification code, and any others are aliases. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<element name="semiMajorAxis" type="gml:LengthType">
		<annotation>
			<documentation>Length of the semi-major axis of the ellipsoid. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<element name="ellipsoidRef" type="gml:EllipsoidRefType" substitutionGroup="gml:dictionaryEntry" /> <!-- =================================================== -->
	<complexType name="EllipsoidRefType">
		<annotation>
			<documentation>Association to an ellipsoid, either referencing or containing the definition of that ellipsoid. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:DictionaryEntryType">
				<sequence>
					<element ref="gml:Ellipsoid" minOccurs="0" />
				</sequence>
				<attributeGroup ref="gml:AssociationAttributeGroup" />
			</restriction>
		</complexContent>
	</complexType> <!-- =================================================== -->
	<element name="secondDefiningParameter" type="gml:SecondDefiningParameterType" /> <!-- =================================================== -->
	<complexType name="SecondDefiningParameterType">
		<annotation>
			<documentation>Definition of the second parameter that defines the shape of an ellipsoid. An ellipsoid requires two defining parameters: semi-major axis and inverse flattening or semi-major axis and semi-minor axis. When the reference body is a sphere rather than an ellipsoid, only a single defining parameter is required, namely the radius of the sphere; in that case, the semi-major axis "degenerates" into the radius of the sphere.</documentation>
		</annotation>
		<choice>
			<element ref="gml:inverseFlattening" />
			<element ref="gml:semiMinorAxis" />
			<element ref="gml:isSphere" />
		</choice>
	</complexType> <!-- =================================================== -->
	<element name="inverseFlattening" type="gml:ScaleType">
		<annotation>
			<documentation>Inverse flattening value of the ellipsoid. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<element name="semiMinorAxis" type="gml:LengthType">
		<annotation>
			<documentation>Length of the semi-minor axis of the ellipsoid. </documentation>
		</annotation>
	</element> <!-- =================================================== -->
	<element name="isSphere">
		<annotation>
			<documentation>The ellipsoid is degenerate and is actually a sphere. The sphere is completely defined by the semi-major axis, which is the radius of the sphere. </documentation>
		</annotation>
		<simpleType>
			<restriction base="string">
				<enumeration value="sphere" />
			</restriction>
		</simpleType>
	</element> <!-- =================================================== -->
</schema>
