<?xml version="1.0" encoding="UTF-8"?>
<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">
	<!-- ================================================= -->
	<complexType name="CoordinatesType">
		<annotation>
			<documentation>This type is deprecated for tuples with ordinate values that are numbers.
CoordinatesType is a text string, intended to be used to record an array of tuples or coordinates. 
While it is not possible to enforce the internal structure of the string through schema validation, some optional attributes have been provided in previous versions of GML to support a description of the internal structure. These attributes are deprecated. The attributes were intended to be used as follows:
Decimal	symbol used for a decimal point (default=”.” a stop or period)
cs        	symbol used to separate components within a tuple or coordinate string (default=”,” a comma)
ts        	symbol used to separate tuples or coordinate strings (default=” “ a space)
Since it is based on the XML Schema string type, CoordinatesType may be used in the construction of tables of tuples or arrays of tuples, including ones that contain mixed text and numeric values.</documentation>
		</annotation>
		<simpleContent>
			<extension base="string">
				<attribute name="decimal" type="string" default="."/>
				<attribute name="cs" type="string" default=","/>
				<attribute name="ts" type="string" default=" "/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<attribute name="id" type="ID">
		<annotation>
			<documentation>The attribute gml:id supports provision of a handle for the XML element representing a GML Object. Its use is mandatory for all GML objects. It is of XML type ID, so is constrained to be unique in the XML document within which it occurs.</documentation>
		</annotation>
	</attribute>
	<!-- ================================================= -->
	<attributeGroup name="SRSReferenceGroup">
		<annotation>
			<documentation>The attribute group SRSReferenceGroup is an optional reference to the CRS used by this geometry, with optional additional information to simplify the processing of the coordinates when a more complete definition of the CRS is not needed. In general the attribute srsName points to a CRS instance of gml:AbstractCoordinateReferenceSystem. For well-known references it is not required that the CRS description exists at the location the URI points to. If no srsName attribute is given, the CRS shall be specified as part of the larger context this geometry element is part of.</documentation>
		</annotation>
		<attribute name="srsName" type="gml:SRSNameRestriction" use="required" fixed="urn:ogc:def:crs:OGC:1.3:CRS84"/>
		<attribute name="srsDimension" type="positiveInteger" use="required" fixed="2"/>
	</attributeGroup>
	<simpleType name="SRSNameRestriction">
		<restriction base="anyURI">
			<pattern value="urn:ogc:def:crs:OGC:1\.3:CRS84"/>
			<!--pattern value="urn:ogc:def:crs:OGC:1\.3:AUTO42001:[0-9]{2}:[0-9]{4}"/-->
		</restriction>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="doubleList">
		<annotation>
			<documentation>A type for a list of values of the respective simple type.</documentation>
		</annotation>
		<list itemType="double"/>
	</simpleType>
	<simpleType name="UomIdentifier">
		<annotation>
			<documentation>The simple type gml:UomIdentifer defines the syntax and value space of the unit of measure identifier.</documentation>
		</annotation>
		<union memberTypes="gml:UomSymbol gml:UomURI"/>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="UomSymbol">
		<annotation>
			<documentation>This type specifies a character string of length at least one, and restricted such that it must not contain any of the following characters: “:” (colon), “ “ (space), (newline), (carriage return), (tab). This allows values corresponding to familiar abbreviations, such as “kg”, “m/s”, etc. 
It is recommended that the symbol be an identifier for a unit of measure as specified in the “Unified Code of Units of Measure" (UCUM) (http://aurora.regenstrief.org/UCUM). This provides a set of symbols and a grammar for constructing identifiers for units of measure that are unique, and may be easily entered with a keyboard supporting the limited character set known as 7-bit ASCII. ISO 2955 formerly provided a specification with this scope, but was withdrawn in 2001. UCUM largely follows ISO 2955 with modifications to remove ambiguities and other problems.</documentation>
		</annotation>
		<restriction base="string">
			<pattern value="[^: \n\r\t]+"/>
		</restriction>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="UomURI">
		<annotation>
			<documentation>This type specifies a URI, restricted such that it must start with one of the following sequences: “#”, “./”, “../”, or a string of characters followed by a “:”. These patterns ensure that the most common URI forms are supported, including absolute and relative URIs and URIs that are simple fragment identifiers, but prohibits certain forms of relative URI that could be mistaken for unit of measure symbol . 
NOTE	It is possible to re-write such a relative URI to conform to the restriction (e.g. “./m/s”).
In an instance document, on elements of type gml:MeasureType the mandatory uom attribute shall carry a value corresponding to either 
-	a conventional unit of measure symbol,
-	a link to a definition of a unit of measure that does not have a conventional symbol, or when it is desired to indicate a precise or variant definition.</documentation>
		</annotation>
		<restriction base="anyURI">
			<pattern value="([a-zA-Z][a-zA-Z0-9\-\+\.]*:|\.\./|\./|#).*"/>
		</restriction>
	</simpleType>
	<!-- ================================================= -->
	<complexType name="TimePositionType" final="#all">
		<simpleContent>
			<extension base="gml:TimePositionUnion"/>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<simpleType name="NilReasonType">
		<annotation>
			<documentation>gml:NilReasonType defines a content model that allows recording of an explanation for a void value or other exception.
gml:NilReasonType is a union of the following enumerated values:
-	inapplicable there is no value
-	missing the correct value is not readily available to the sender of this data. Furthermore, a correct value may not exist
-	template the value will be available later
-	unknown the correct value is not known to, and not computable by, the sender of this data. However, a correct value probably exists
-	withheld the value is not divulged
-	other:text other brief explanation, where text is a string of two or more characters with no included spaces
and
-	anyURI which should refer to a resource which describes the reason for the exception
A particular community may choose to assign more detailed semantics to the standard values provided. Alternatively, the URI method enables a specific or more complete explanation for the absence of a value to be provided elsewhere and indicated by-reference in an instance document.
gml:NilReasonType is used as a member of a union in a number of simple content types where it is necessary to permit a value from the NilReasonType union as an alternative to the primary type.</documentation>
		</annotation>
		<union memberTypes="gml:NilReasonEnumeration anyURI"/>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="NilReasonEnumeration">
		<union>
			<simpleType>
				<restriction base="string">
					<enumeration value="inapplicable"/>
					<enumeration value="missing"/>
					<enumeration value="template"/>
					<enumeration value="unknown"/>
					<enumeration value="withheld"/>
				</restriction>
			</simpleType>
			<simpleType>
				<restriction base="string">
					<pattern value="other:\w{2,}"/>
				</restriction>
			</simpleType>
		</union>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="TimePositionUnion">
		<annotation>
			<documentation>The simple type gml:TimePositionUnion is a union of XML Schema simple types which instantiate the subtypes for temporal position described in ISO 19108.
 An ordinal era may be referenced via URI.  A decimal value may be used to indicate the distance from the scale origin .  time is used for a position that recurs daily (see ISO 19108:2002 5.4.4.2).
 Finally, calendar and clock forms that support the representation of time in systems based on years, months, days, hours, minutes and seconds, in a notation following ISO 8601, are assembled by gml:CalDate</documentation>
		</annotation>
		<union memberTypes="date dateTime"/>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="CalDate">
		<union memberTypes="date gYearMonth gYear"/>
	</simpleType>
	<!-- ================================================= -->
	<element name="Point" type="gml:PointType"/>
	<complexType name="PointType">
		<sequence>
			<element name="pos" type="gml:doubleList">
				<annotation>
					<documentation>Property element for space-delimited tuple of spatial coordinates of point</documentation>
				</annotation>
			</element>
		</sequence>
		<attribute ref="gml:id" use="required"/>
		<attributeGroup ref="gml:SRSReferenceGroup"/>
	</complexType>
	<!-- ================================================= -->
	<simpleType name="TimeIndeterminateValueType">
		<annotation>
			<documentation>These values are interpreted as follows: 
-	“unknown” indicates that no specific value for temporal position is provided.
-	“now” indicates that the specified value shall be replaced with the current temporal position whenever the value is accessed.
-	“before” indicates that the actual temporal position is unknown, but it is known to be before the specified value.
-	“after” indicates that the actual temporal position is unknown, but it is known to be after the specified value.
A value for indeterminatePosition may 
-	be used either alone, or 
-	qualify a specific value for temporal position.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="after"/>
			<enumeration value="before"/>
			<enumeration value="now"/>
			<enumeration value="unknown"/>
		</restriction>
	</simpleType>
</schema>
