Schema Name: gml.xsd
Target Namespace: http://niem.gov/niem/external/ogc-gml/3.1.1/dhs-gmo/1.0.0
Documentation:
A profile of OpenGeospatialConsortium (OpenGIS, OGC) Geography Markup Language (GML) version 3.1.1 schemas for niem version 1.0. Deprecated GML3.1.1 types like gid are eliminated because they will not be included in the ISO TC/211 19136 version of the GML standard. This GML profile includes AssociationAttributeGroup even though niem version 0.2 uses IDREF and IDREFS instead of xlink:href. GML Simple Features does not allow XLinks, and OpenLS does not use them. But they are used for the GML definitions for Coverages, Moving Objects, and throughout the schemas for Observations and Measurements. The attributes in the xlink:simpleLink attributeGroup referenced by gml:AssociationAttributeGroup are optional. So their use in instance documents may be avoided where not allowed or customary. 2006-09-28 Changed namespaces and schema location ns old http://niem.gov/niem/external/gml/3.1.1/dhs-gmo/1.0.0 ns new http://niem.gov/niem/external/ogc-gml/3.1.1/dhs-gmo/1.0.0 ns old http://niem.gov/niem/external/xlink/1.0.0/dhs-gmo/1.0.0 ns new http://niem.gov/niem/external/w3c-xlink/1.0/dhs-gmo/1.0.0 from ../../../../xlink/1.0.0/dhs-gmo/1.0.0/xlinks.xsd to ../../../../w3c-xlink/1.0/dhs-gmo/1.0.0/xlinks.xsd 2006-09-21 Changes 1. Change namespaces following NIEM conventions a) targetNamespace http://niem.gov/niem/external/gml/3.1.1/dhs-gmo/1.0.0 b) xlink namespace http://niem.gov/niem/external/xlink/1.0.0/dhs-gmo/1.0.0 2006-09-19 Changes add definitions used by ISO 19139 Metadata put metadataProperty back in StandardObjectProperties and DefinitionType to support referenceSystems definitions that use it 2006-09-04 Changes 1. Change namespaces following conventions proposed in OGC 05-065r3 to include version and profile information, except that complete version is used instead of BNF "principle version". a) targetNamespace was http://www.opengis.net/gml; changed to http://www.opengis.net/gml/3.1.1/DHS-GMO/1.0.0 b) xlink namespace was http://www.w3.org/1999/xlink; changed to http://www.w3.org/1999/xlink/1.0.0/OGC-DHS-GMO/1.0.0 2. Change xlink import to point to xlink schema in its own versioned directory instead of deprecated schema that references it. 3. Include complete OGC copyright notice from http://www.opengeospatial.org/ogc/software 2006-04-14 Changes move to proposed external directory structure change path to xlinks.xsd 2006-01-02 Changes include appinfo source="" to document source of definitions include base, units, measures, values, temporal, coverage 2006-01-03 include observations 2006-01-05 add documentation 2006-01-09 add back in empty AssociationAttributeGroup Copyright Notices: Copyright (c) 2001-2004 OGC, All Rights Reserved. This OGC work (including software, documents, or other related items) is being provided by the copyright holders under the following license. By obtaining, using and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions: Permission to use, copy, and modify this software and its documentation, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the software and documentation or portions thereof, including modifications, that you make: 1. The full text of this NOTICE in a location viewable to users of the redistributed or derivative work. 2. Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, a short notice of the following form (hypertext is preferred, text is permitted) should be used within the body of any redistributed or derivative code: "Copyright © [$date-of-document] Open Geospatial Consortium, Inc. All Rights Reserved. http://www.opengeospatial.org/ogc/legal (Hypertext is preferred, but a textual representation is permitted.) 3. Notice of any changes or modifications to the OGC files, including the date changes were made. (We recommend you provide URIs to the location from which the code is derived.) THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS. COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION. The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the software without specific, written prior permission. Title to copyright in this software and any associated documentation will at all times remain with copyright holders.
Collapse XSD Schema Code:

<schema 
xmlns="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
targetNamespace="http://niem.gov/niem/external/ogc-gml/3.1.1/dhs-gmo/1.0.0" 
xmlns:gml="http://niem.gov/niem/external/ogc-gml/3.1.1/dhs-gmo/1.0.0"
xmlns:xlink="http://niem.gov/niem/external/w3c-xlink/1.0/dhs-gmo/1.0.0"
xmlns:sch="http://www.ascc.net/xml/schematron" 
elementFormDefault="qualified" version="3.1.1">
	<annotation>
		<documentation>
			A profile of OpenGeospatialConsortium (OpenGIS, OGC) Geography Markup Language (GML) version 3.1.1 schemas for niem version 1.0.   Deprecated GML3.1.1 types like gid are eliminated because they will not be included in the ISO TC/211 19136 version of the GML standard.			
			
			This GML profile includes AssociationAttributeGroup even though niem version 0.2 uses IDREF and IDREFS instead of xlink:href.
			GML Simple Features does not allow XLinks, and OpenLS does not use them.  But they are used for the GML definitions for 
			Coverages, Moving Objects, and throughout the schemas for Observations and Measurements.  The attributes in the xlink:simpleLink 
			attributeGroup referenced by gml:AssociationAttributeGroup are optional.  So their use in instance documents may be avoided 
			where not allowed or customary.
		
     		2006-09-28 Changed namespaces and schema location
     		
				ns old	http://niem.gov/niem/external/gml/3.1.1/dhs-gmo/1.0.0
				ns new	http://niem.gov/niem/external/ogc-gml/3.1.1/dhs-gmo/1.0.0	
					
				ns old	http://niem.gov/niem/external/xlink/1.0.0/dhs-gmo/1.0.0
				ns new	http://niem.gov/niem/external/w3c-xlink/1.0/dhs-gmo/1.0.0		
				from		../../../../xlink/1.0.0/dhs-gmo/1.0.0/xlinks.xsd
				to			../../../../w3c-xlink/1.0/dhs-gmo/1.0.0/xlinks.xsd

			2006-09-21 Changes
				1.  Change namespaces following NIEM conventions
					a) targetNamespace 	http://niem.gov/niem/external/gml/3.1.1/dhs-gmo/1.0.0
					b) xlink namespace	http://niem.gov/niem/external/xlink/1.0.0/dhs-gmo/1.0.0
					
			2006-09-19 Changes
				add definitions used by ISO 19139 Metadata
				put metadataProperty back in StandardObjectProperties and DefinitionType to support referenceSystems definitions that use it

			2006-09-04 Changes
			
				1.  Change namespaces following conventions proposed in OGC 05-065r3 to include version and profile information, 
				      except that complete version is used instead of BNF "principle version".  
				      a) targetNamespace was http://www.opengis.net/gml; changed to http://www.opengis.net/gml/3.1.1/DHS-GMO/1.0.0
					  b) xlink namespace was http://www.w3.org/1999/xlink; changed to http://www.w3.org/1999/xlink/1.0.0/OGC-DHS-GMO/1.0.0
				2.  Change xlink import to point to xlink schema in its own versioned directory instead of deprecated schema that references it.
				3.  Include complete OGC copyright notice from http://www.opengeospatial.org/ogc/software
				
			2006-04-14 Changes
				move to proposed external directory structure
				change path to xlinks.xsd
				
			2006-01-02 Changes
			  include appinfo source="" to document source of definitions
			  include base, units, measures, values, temporal, coverage
		 	
		 	2006-01-03
		 	  include observations
		 	
		 	2006-01-05
		 	  add documentation
		 	      
		 	2006-01-09
		 	  add back in empty AssociationAttributeGroup
		 	  
		 	     
		 	Copyright Notices:

			Copyright (c) 2001-2004 OGC, All Rights Reserved.
		 	
		 	This OGC work (including software, documents, or other related items) is being provided by the copyright holders under the following license. By obtaining, using and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions:

Permission to use, copy, and modify this software and its documentation, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the software and documentation or portions thereof, including modifications, that you make:

   1. The full text of this NOTICE in a location viewable to users of the redistributed or derivative work.
   2. Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, a short notice of the following form (hypertext is preferred, text is permitted) should be used within the body of any redistributed or derivative code: "Copyright © [$date-of-document] Open Geospatial Consortium, Inc. All Rights Reserved. http://www.opengeospatial.org/ogc/legal (Hypertext is preferred, but a textual representation is permitted.)
   3. Notice of any changes or modifications to the OGC files, including the date changes were made. (We recommend you provide URIs to the location from which the code is derived.) 

THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.

COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.

The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the software without specific, written prior permission. Title to copyright in this software and any associated documentation will at all times remain with copyright holders.
     
		 	     
		</documentation>
	</annotation>
	<import namespace="http://niem.gov/niem/external/w3c-xlink/1.0/dhs-gmo/1.0.0" 	
			schemaLocation="../../../../w3c-xlink/1.0/dhs-gmo/1.0.0/xlinks.xsd"/> 
	<!-- =========================================================== -->
	<!-- ============ BASE, DICTIONARY, MEASURES, UNITS =============== -->
	<!-- =========================================================== -->
	<group name="StandardObjectProperties">
		<annotation>
			<documentation>This content model group makes it easier to construct types that 
      derive from AbstractGMLType and its descendents "by restriction".  
      A reference to the group saves having to enumerate the standard object properties.  </documentation>
		</annotation>
		<sequence>
			<element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded"/>
			<element ref="gml:description" minOccurs="0"/>
			<element ref="gml:name" minOccurs="0" maxOccurs="unbounded">
				<annotation>
					<documentation>Multiple names may be provided.  These will often be distinguished by being assigned by different authorities, as indicated by the value of the codeSpace attribute.  In an instance document there will usually only be one name per authority. </documentation>
				</annotation>
			</element>
		</sequence>
	</group>
	<!-- ================================================= -->
	<element name="Null" type="gml:NullType"/>
	<!-- ================================================= -->
	<simpleType name="NullType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:basicTypes:3.1.1">basicTypes.xsd</appinfo>
			<documentation>Utility type for null elements.  The value may be selected from one of the enumerated tokens, or may be a URI in which case this should identify a resource which describes the reason for the null. </documentation>
		</annotation>
		<union memberTypes="gml:NullEnumeration anyURI"/>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="NullEnumeration">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:basicTypes:3.1.1">basicTypes.xsd</appinfo>
			<documentation> Some common reasons for a null value:   
			
        innapplicable - the object does not have a 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:reason - as indicated by "reason" string
        
        Specific communities may agree to assign more strict semantics when these terms are used in a particular context.  
      </documentation>
		</annotation>
		<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="booleanOrNull">
		<annotation>
			<documentation>Union of the XML Schema boolean type and the GML Nulltype.  An element which uses this type may have content which is either a boolean {0,1,true,false} or a value from Nulltype</documentation>
		</annotation>
		<union memberTypes="gml:NullEnumeration boolean anyURI"/>
	</simpleType>
	<!-- =========================================================== -->
	<simpleType name="booleanOrNullList">
		<annotation>
			<documentation>XML List based on the union type defined above.  An element declared with this type contains a space-separated list of boolean values {0,1,true,false} with null values interspersed as needed</documentation>
		</annotation>
		<list itemType="gml:booleanOrNull"/>
	</simpleType>
	<!-- =========================================================== -->
	<simpleType name="booleanList">
		<annotation>
			<documentation>XML List based on XML Schema boolean type.  An element of this type contains a space-separated list of boolean values {0,1,true,false}</documentation>
		</annotation>
		<list itemType="boolean"/>
	</simpleType>
	<!-- =========================================================== -->
	<!-- =========================================================== -->
	<simpleType name="stringOrNull">
		<annotation>
			<documentation>Union of the XML Schema string type and the GML Nulltype.  An element which uses this type may have content which is either a string or a value from Nulltype.  Note that a "string" may contain whitespace.  </documentation>
		</annotation>
		<union memberTypes="gml:NullEnumeration string anyURI"/>
	</simpleType>
	<!-- =========================================================== -->
	<simpleType name="NameOrNull">
		<annotation>
			<documentation>Union of the XML Schema Name type and the GML Nulltype.  An element which uses this type may have content which is either a Name or a value from Nulltype.  Note that a "Name" may not contain whitespace.  </documentation>
		</annotation>
		<union memberTypes="gml:NullEnumeration Name anyURI"/>
	</simpleType>
	<!-- =========================================================== -->
	<simpleType name="NameOrNullList">
		<annotation>
			<documentation>XML List based on the union type defined above.  An element declared with this type contains a space-separated list of Name values with null values interspersed as needed</documentation>
		</annotation>
		<list itemType="gml:NameOrNull"/>
	</simpleType>
	<!-- =========================================================== -->
	<simpleType name="NameList">
		<annotation>
			<documentation>XML List based on XML Schema Name type.  An element of this type contains a space-separated list of Name values</documentation>
		</annotation>
		<list itemType="Name"/>
	</simpleType>
	<!-- =========================================================== -->
	<simpleType name="doubleOrNull">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:basicTypes:3.1.1">basicTypes.xsd</appinfo>
			<documentation>Union of the XML Schema double type and the GML Nulltype.  An element which uses this type may have content which is either a double or a value from Nulltype</documentation>
		</annotation>
		<union memberTypes="gml:NullEnumeration double anyURI"/>
	</simpleType>
	<!-- =========================================================== -->
	<simpleType name="doubleOrNullList">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:basicTypes:3.1.1">basicTypes.xsd</appinfo>
			<documentation>XML List based on the union type defined above.  An element declared with this type contains a space-separated list of double values with null values interspersed as needed</documentation>
		</annotation>
		<list itemType="gml:doubleOrNull"/>
	</simpleType>
	<!-- =========================================================== -->
	<simpleType name="doubleList">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:basicTypes:3.1.1">basicTypes.xsd</appinfo>
			<documentation>XML List based on XML Schema double type.  An element of this type contains a space-separated list of double values</documentation>
		</annotation>
		<list itemType="double"/>
	</simpleType>
	<!-- ================================================= -->
	<simpleType name="integerOrNull">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:basicTypes:3.1.1">basicTypes.xsd</appinfo>
			<documentation>Union of the XML Schema integer type and the GML Nulltype.  An element which uses this type may have content which is either an integer or a value from Nulltype</documentation>
		</annotation>
		<union memberTypes="gml:NullEnumeration integer anyURI"/>
	</simpleType>
	<!-- =========================================================== -->
	<simpleType name="integerOrNullList">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:basicTypes:3.1.1">basicTypes.xsd</appinfo>
			<documentation>XML List based on the union type defined above.  An element declared with this type contains a space-separated list of integer values with null values interspersed as needed</documentation>
		</annotation>
		<list itemType="gml:integerOrNull"/>
	</simpleType>
	<!-- =========================================================== -->
	<simpleType name="integerList">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:basicTypes:3.1.1">basicTypes.xsd</appinfo>
			<documentation>XML List based on XML Schema integer type.  An element of this type contains a space-separated list of integer values</documentation>
		</annotation>
		<list itemType="integer"/>
	</simpleType>
	<!-- =========================================================== -->
	<element name="name" type="gml:CodeType">
		<annotation>
			<documentation>Label for the object, normally a descriptive name. An object may have several names, typically assigned by different authorities.  The authority for a name is indicated by the value of its (optional) codeSpace attribute.  The name may or may not be unique, as determined by the rules of the organization responsible for the codeSpace. </documentation>
		</annotation>
	</element>
	<!-- =========================================================== -->
	<complexType name="CodeType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:basicTypes:3.1.1">basicTypes.xsd</appinfo>
			<documentation>Name or code with an (optional) authority.  Text token.  
      If the codeSpace attribute is present, then its value should identify a dictionary, thesaurus 
      or authority for the term, such as the organisation who assigned the value, 
      or the dictionary from which it is taken.  
      A text string with an optional codeSpace attribute. </documentation>
		</annotation>
		<simpleContent>
			<extension base="string">
				<attribute name="codeSpace" type="anyURI" use="optional"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="CodeListType">
		<annotation>
			<documentation>List of values on a uniform nominal scale.  List of text tokens.   
      In a list context a token should not include any spaces, so xsd:Name is used instead of xsd:string.   
      If a codeSpace attribute is present, then its value is a reference to 
      a Reference System for the value, a dictionary or code list.</documentation>
		</annotation>
		<simpleContent>
			<extension base="gml:NameList">
				<attribute name="codeSpace" type="anyURI" use="optional"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="CodeOrNullListType">
		<annotation>
			<documentation>List of values on a uniform nominal scale.  List of text tokens.   
      In a list context a token should not include any spaces, so xsd:Name is used instead of xsd:string.  
      A member of the list may be a typed null.  
      If a codeSpace attribute is present, then its value is a reference to 
      a Reference System for the value, a dictionary or code list.</documentation>
		</annotation>
		<simpleContent>
			<extension base="gml:NameOrNullList">
				<attribute name="codeSpace" type="anyURI" use="optional"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="MeasureType">
		<annotation>
			<documentation>Number with a scale.  
      The value of uom (Units Of Measure) attribute is a reference to a Reference System for the amount, either a ratio or position scale. </documentation>
		</annotation>
		<simpleContent>
			<extension base="double">
				<attribute name="uom" type="anyURI" use="required"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="MeasureListType">
		<annotation>
			<documentation>List of numbers with a uniform scale.  
      The value of uom (Units Of Measure) attribute is a reference to 
      a Reference System for the amount, either a ratio or position scale. </documentation>
		</annotation>
		<simpleContent>
			<extension base="gml:doubleList">
				<attribute name="uom" type="anyURI" use="required"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="MeasureOrNullListType">
		<annotation>
			<documentation>List of numbers with a uniform scale.  
      A member of the list may be a typed null. 
      The value of uom (Units Of Measure) attribute is a reference to 
      a Reference System for the amount, either a ratio or position scale. </documentation>
		</annotation>
		<simpleContent>
			<extension base="gml:doubleOrNullList">
				<attribute name="uom" type="anyURI" use="required"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="LengthType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-measures:3.1.1">measures.xsd</appinfo>
			<documentation>Value of a length (or distance) quantity, with its units. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for a length, such as metres or feet. </documentation>
		</annotation>
		<simpleContent>
			<restriction base="gml:MeasureType"/>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="AngleType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-measures:3.1.1">measures.xsd</appinfo>
			<documentation>Value of an angle quantity recorded as a single number, with its units. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for an angle, such as degrees or radians. </documentation>
		</annotation>
		<simpleContent>
			<restriction base="gml:MeasureType"/>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<element name="unitOfMeasure" type="gml:UnitOfMeasureType"/>
	<!-- =========================================================== -->
	<complexType name="UnitOfMeasureType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-units:3.1.1"/>
			<documentation>Reference to a unit of measure definition that applies to all the numerical values described by the element containing this element. Notice that a complexType which needs to include the uom attribute can do so by extending this complexType. Alternately, this complexType can be used as a pattern for a new complexType. </documentation>
		</annotation>
		<sequence/>
		<attribute name="uom" type="anyURI" use="required">
			<annotation>
				<documentation>Reference to a unit of measure definition, usually within the same XML document but possibly outside the XML document which contains this reference. For a reference within the same XML document, the "#" symbol should be used, followed by a text abbreviation of the unit name. However, the "#" symbol may be optional, and still may be interpreted as a reference. </documentation>
			</annotation>
		</attribute>
	</complexType>
	<!-- =========================================================== -->
	<element name="description" type="gml:StringOrRefType">
		<annotation>
			<documentation>Contains a simple text description of the object, or refers to an external description.  </documentation>
		</annotation>
	</element>
	<!-- =========================================================== -->
	<complexType name="StringOrRefType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:basicTypes:3.1.1">basicTypes.xsd</appinfo>
			<documentation>
This type is available wherever there is a need for a "text" type property. It is of string type, so the text can be included inline.
As a profile of the GML StringOrRefType, this definition has no capability for remote references, because niem does not currently use xlinks, no uses of xlinks are
included in the first version of this schema for niem. 
 </documentation>
		</annotation>
		<simpleContent>
			<extension base="string">
				<attributeGroup ref="gml:AssociationAttributeGroup"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ===================================================== -->
	<element name="_Object" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:gmlBase:3.1.1">gmlBase.xsd</appinfo>
			<documentation>This abstract element is the head of a substitutionGroup hierararchy which may contain either simpleContent or complexContent elements.  It is used to assert the model position of "class" elements declared in other GML schemas.  </documentation>
		</annotation>
	</element>
	<!-- ================================================= -->
	<attribute name="id" type="ID">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:gmlBase:3.1.1">gmlBase.xsd</appinfo>
			<documentation>Database handle for the object.  It is of XML type ID, so is constrained to be unique in the XML document within which it occurs.  An external identifier for the object in the form of a URI may be constructed using standard XML and XPointer methods.  This is done by concatenating the URI for the document, a fragment separator, and the value of the id attribute.  </documentation>
		</annotation>
	</attribute>
	<!-- ================================================= -->
	<complexType name="AbstractGMLType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:gmlBase:3.1.1">gmlBase.xsd</appinfo>
			<documentation>All complexContent GML elements are directly or indirectly derived from this abstract supertype 
	to establish a hierarchy of GML types that may be distinguished from other XML types by their ancestry. 
	Elements in this hierarchy may have an ID and are thus referenceable.  </documentation>
		</annotation>
		<sequence>
			<group ref="gml:StandardObjectProperties"/>
		</sequence>
		<attribute ref="gml:id" use="optional"/>
	</complexType>
	<!-- ================================================= -->
	<element name="_GML" type="gml:AbstractGMLType" abstract="true" substitutionGroup="gml:_Object">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:gmlBase:3.1.1">gmlBase.xsd</appinfo>
			<documentation>Global element which acts as the head of a substitution group that may include any element which is a GML feature, object, geometry or complex value</documentation>
		</annotation>
	</element>
	<!-- ================================================= -->
	<element name="_association" type="gml:AssociationType" abstract="true"/>
	<!-- =========================================================== -->
	<attribute name="remoteSchema" type="anyURI">
		<annotation>
			<documentation>Reference to an XML Schema fragment that specifies the content model of the propertys value. This is in conformance with the XML Schema Section 4.14 Referencing Schemas from Elsewhere. </documentation>
		</annotation>
	</attribute>
	<!-- =========================================================== -->
	<attributeGroup name="AssociationAttributeGroup">
		<annotation>
			<documentation>Attribute group used to enable property elements to refer to their value remotely. It contains the simple link components from xlinks.xsd, with all members optional, and the remoteSchema attribute, which is also optional.  These attributes can be attached to any element, thus allowing it to act as a pointer. The 'remoteSchema' attribute allows an element  that carries link attributes to indicate that the element is declared  in a remote schema rather than by the schema that constrains the current document instance. 
			</documentation>
		</annotation>
		<attributeGroup ref="xlink:simpleLink"/>
		<attribute ref="gml:remoteSchema" use="optional"/>
	</attributeGroup>
	<!-- =========================================================== -->
	<complexType name="AssociationType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:gmlBase:3.1.1">gmlBase.xsd</appinfo>
			<documentation>  A pattern or base for derived types used to specify complex types corresponding to an  unspecified UML association - either composition or aggregation.  Restricts the cardinality of Objects contained in the association to a maximum of one.  An instance of this type can contain an element representing an Object, or reference one remotely via an xlink:href, but may not do both.
Descendents of this type can be restricted in an application schema to allow only specified classes as valid participants in the aggregation
</documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_Object"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =========================================================== -->
	<element name="member" type="gml:AssociationType"/>
	<!-- =========================================================== -->
	<element name="_reference" type="gml:ReferenceType" abstract="true"/>
	<!-- =========================================================== -->
	<complexType name="ReferenceType">
		<annotation>
			<documentation>  A pattern or base for derived types used to specify complex types corresponding to a UML aggregation association.  An instance of this type serves as a pointer to a remote Object.  
 </documentation>
		</annotation>
		<sequence/>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =========================================================== -->
	<group name="StandardDefinitionProperties">
		<annotation>
			<documentation>This content model group makes it easier to construct types that 
      derive from DefinitionType and its descendents "by restriction".  
      A reference to the group saves having to enumerate the standard definition properties. 
      See definition of StandardObjectProperties for more documentation</documentation>
		</annotation>
		<sequence>
			<element ref="gml:description" minOccurs="0"/>
			<element ref="gml:name" maxOccurs="unbounded"/>
		</sequence>
	</group>
	<!-- ===================================================== -->
	<element name="Definition" type="gml:DefinitionType" substitutionGroup="gml:_GML"/>
	<!-- ===================================================== -->
	<complexType name="DefinitionType">
		<annotation>
			<documentation>A definition, which can be included in or referenced by a dictionary. In this extended type, the inherited "description" optional element can hold the definition whenever only text is needed. The inherited "name" elements can provide one or more brief terms for which this is the definition. 
The gml:id attribute is required - it must be possible to reference this definition using this handle.  </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:AbstractGMLType">
				<sequence>
					<element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="gml:description" minOccurs="0"/>
					<element ref="gml:name" maxOccurs="unbounded"/>
				</sequence>
				<attribute ref="gml:id" use="required"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- ===================================================== -->
	<element name="Dictionary" type="gml:DictionaryType" substitutionGroup="gml:Definition"/>
	<element name="DefinitionCollection" type="gml:DictionaryType" substitutionGroup="gml:Definition"/>
	<!-- ===================================================== -->
	<complexType name="DictionaryType">
		<annotation>
			<documentation>A non-abstract bag that is specialized for use as a dictionary which contains a set of definitions. These definitions are referenced from other places, in the same and different XML documents. In this restricted type, the inherited optional "description" element can be used for a description of this dictionary. The inherited optional "name" element can be used for the name(s) of this dictionary. The inherited "metaDataProperty" elements can be used to reference or contain more information about this dictionary. The inherited required gml:id attribute allows the dictionary to be referenced using this handle. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:DefinitionType">
				<sequence minOccurs="0" maxOccurs="unbounded">
					<choice>
						<element ref="gml:dictionaryEntry">
							<annotation>
								<documentation>An entry in this dictionary. The content of an entry can itself be a lower level dictionary or definition collection. This element follows the standard GML property model, so the value may be provided directly or by reference. Note that if the value is provided by reference, this definition does not carry a handle (gml:id) in this context, so does not allow external references to this specific entry in this context. When used in this way the referenced definition will usually be in a dictionary in the same XML document. </documentation>
							</annotation>
						</element>
					</choice>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ===================================================== -->
	<element name="dictionaryEntry" type="gml:DictionaryEntryType"/>
	<element name="definitionMember" type="gml:DictionaryEntryType" substitutionGroup="gml:dictionaryEntry"/>
	<!-- ===================================================== -->
	<complexType name="DictionaryEntryType">
		<annotation>
			<documentation>An entry in a dictionary of definitions. An instance of this type contains or refers to a definition object.  

The number of definitions contained in this dictionaryEntry is restricted to one, but a DefinitionCollection or Dictionary that contains multiple definitions can be substituted if needed. Specialized descendents of this dictionaryEntry might be restricted in an application schema to allow only including specified types of definitions as valid entries in a dictionary. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:Definition">
				<annotation>
					<documentation>This element in a dictionary entry contains the actual definition. </documentation>
				</annotation>
			</element>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<!-- ================== GEOMETRY ===================== -->
	<!-- ================================================= -->
	<complexType name="AbstractGeometricPrimitiveType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>This is the abstract root type of the geometric primitives. A geometric primitive is a geometric object that is not 
			decomposed further into other primitives in the system. All primitives are oriented in the direction implied by the sequence of their 
			coordinate tuples.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeometryType"/>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="_GeometricPrimitive" type="gml:AbstractGeometricPrimitiveType" abstract="true" substitutionGroup="gml:_Geometry">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>The "_GeometricPrimitive" element is the abstract head of the substituition group for all (pre- and user-defined) 
			geometric primitives.</documentation>
		</annotation>
	</element>
	<!-- ================================================= -->
	<complexType name="AbstractGeometryType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>All geometry elements are derived directly or indirectly from this abstract supertype. A geometry element may 
			have an identifying attribute ("gml:id"), a name (attribute "name") and a description (attribute "description"). It may be associated 
			with a spatial reference system (attribute "srsName"). The following rules shall be adhered: - Every geometry type shall derive 
			from this abstract type. - Every geometry element (i.e. an element of a geometry type) shall be directly or indirectly in the 
			substitution group of _Geometry.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGMLType">
				<attributeGroup ref="gml:SRSReferenceGroup"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<attributeGroup name="SRSReferenceGroup">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>Optional reference to the CRS used by this geometry, with optional additional information to simplify use when 
			a more complete definition of the CRS is not needed.</documentation>
		</annotation>
		<attribute name="srsName" type="anyURI" use="optional">
			<annotation>
				<documentation>In general this reference points to a CRS instance of gml:CoordinateReferenceSystemType 
				(see coordinateReferenceSystems.xsd). 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 must be specified as part of the larger context this 
				geometry element is part of, e.g. a geometric element like point, curve, etc. It is expected that this attribute will be specified 
				at the direct position level only in rare cases.</documentation>
			</annotation>
		</attribute>
		<attribute name="srsDimension" type="positiveInteger" use="optional">
			<annotation>
				<documentation>The "srsDimension" is the length of coordinate sequence (the number of entries in the list). This dimension is 
				specified by the coordinate reference system. When the srsName attribute is omitted, this attribute shall be omitted.</documentation>
			</annotation>
		</attribute>
		<!--		
			<attributeGroup ref="gml:SRSInformationGroup"/>
              -->
	</attributeGroup>
	<!-- ================================================= -->
	<element name="_Geometry" type="gml:AbstractGeometryType" abstract="true" substitutionGroup="gml:_GML">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>The "_Geometry" element is the abstract head of the substituition group for all geometry elements of GML 3. This 
			includes pre-defined and user-defined geometry elements. Any geometry element must be a direct or indirect extension/restriction 
			of AbstractGeometryType and must be directly or indirectly in the substitution group of "_Geometry".</documentation>
		</annotation>
	</element>
	<!-- ================================================= -->
	<element name="geometryMember" type="gml:GeometryPropertyType"/>
	<!-- ================================================= -->
	<complexType name="GeometryPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>A geometric property is any geometry element encapsulated in an element of this type.
			
			2006-01-07 PwD derive from AssociationType to fix om:geometryResult membership in gml:resultOf substituion group
			</documentation>
		</annotation>
		<!--		<complexContent>
			<restriction base="gml:AssociationType"> -->
		<sequence minOccurs="0">
			<element ref="gml:_Geometry"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
		<!--		</restriction>
		</complexContent> -->
	</complexType>
	<!-- ================================================= -->
	<element name="pos" type="gml:DirectPositionType"/>
	<!-- ================================================= -->
	<complexType name="DirectPositionType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>DirectPosition instances hold the coordinates for a position within some coordinate reference system (CRS). Since 
			DirectPositions, as data types, will often be included in larger objects (such as geometry elements) that have references to CRS, the 
			"srsName" attribute will in general be missing, if this particular DirectPosition is included in a larger element with such a reference to a 
			CRS. In this case, the CRS is implicitly assumed to take on the value of the containing object's CRS.</documentation>
		</annotation>
		<simpleContent>
			<extension base="gml:doubleList">
				<attributeGroup ref="gml:SRSReferenceGroup"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ================================================= -->
	<element name="posList" type="gml:DirectPositionListType"/>
	<!-- ============================================================== -->
	<complexType name="DirectPositionListType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>DirectPositionList instances hold the coordinates for a sequence of direct positions within the same coordinate 
			reference system (CRS).</documentation>
		</annotation>
		<simpleContent>
			<extension base="gml:doubleList">
				<attributeGroup ref="gml:SRSReferenceGroup"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ============================================================== -->
	<element name="vector" type="gml:VectorType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
		</annotation>
	</element>
	<!-- ============================================================== -->
	<complexType name="VectorType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>Vector instances hold the compoents for a (usually spatial) vector within some coordinate reference system (CRS). 
			Since Vectors will often be included in larger objects that have references to CRS, the "srsName" attribute may be missing. 
			In this case, the CRS is implicitly assumed to take on the value of the containing object's CRS.

			Note that this content model is the same as DirectPositionType, but is defined separately to reflect the distinct semantics, and to avoid validation problems. SJDC 2004-12-02
			</documentation>
		</annotation>
		<simpleContent>
			<extension base="gml:doubleList">
				<attributeGroup ref="gml:SRSReferenceGroup"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ============================================================== -->
	<element name="Point" type="gml:PointType" substitutionGroup="gml:_GeometricPrimitive"/>
	<!-- ================================================= -->
	<complexType name="PointType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>A Point is defined by a single coordinate tuple.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeometricPrimitiveType">
				<sequence>
					<element ref="gml:pos"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="pointProperty" type="gml:PointPropertyType"/>
	<!-- ============================================================== -->
	<element name="pointMember" type="gml:PointPropertyType"/>
	<!-- ============================================================== -->
	<complexType name="PointPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>
			A property that has a point as its value domain can be an appropriate geometry element encapsulated in an 
			element of this type</documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:Point"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ============================================================== -->
	<element name="_Curve" type="gml:AbstractCurveType" abstract="true" substitutionGroup="gml:_GeometricPrimitive">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>The "_Curve" element is the abstract head of the substituition group for all (continuous) curve elements.</documentation>
		</annotation>
	</element>
	<!-- ================================================= -->
	<complexType name="AbstractCurveType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>An abstraction of a curve to support the different levels of complexity. The curve can always be viewed as a geometric 
			primitive, i.e. is continuous.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeometricPrimitiveType"/>
		</complexContent>
	</complexType>
	<!-- ============================================================== -->
	<element name="curveProperty" type="gml:CurvePropertyType"/>
	<!-- ============================================================== -->
	<element name="curveMember" type="gml:CurvePropertyType"/>
	<!-- ============================================================== -->
	<complexType name="CurvePropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>A property that has a curve as its value domain as an appropriate geometry element encapsulated in an 
			element of this type. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_Curve"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ============================================================== -->
	<element name="LineString" type="gml:LineStringType" substitutionGroup="gml:_Curve"/>
	<!-- ================================================= -->
	<complexType name="LineStringType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>A LineString is a special curve that consists of a single segment with linear interpolation. It is defined by two or more coordinate 
			tuples, with linear interpolation between them. It is backwards compatible with the LineString of GML 2, GM_LineString of ISO 19107 is 
			implemented by LineStringSegment.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCurveType">
				<sequence>
					<annotation>
						<documentation>GML supports two different ways to specify the control points of a line string. 1. A sequence of "pos" 
							(DirectPositionType) or "pointProperty" (PointPropertyType) elements. "pos" elements are control points that are only part 
							of this curve, "pointProperty" elements contain a point that may be referenced from other geometry elements or reference 
							another point defined outside of this curve (reuse of existing points). 2. The "posList" element allows for a compact way to 
							specifiy the coordinates of the control points, if all control points are in the same coordinate reference systems and belong 
							to this curve only. The number of direct positions in the list must be at least two.</documentation>
					</annotation>
					<element ref="gml:posList"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ============================================================== -->
	<complexType name="AbstractRingType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic2d:3.1.1">geometryBasic2d.xsd</appinfo>
			<documentation>
				An abstraction of a ring to support surface boundaries of different complexity.
			</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeometryType"/>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="_Ring" type="gml:AbstractRingType" abstract="true" substitutionGroup="gml:_Geometry">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic2d:3.1.1">geometryBasic2d.xsd</appinfo>
			<documentation>The "_Ring" element is the abstract head of the substituition group for all closed boundaries of a surface patch.</documentation>
		</annotation>
	</element>
	<!-- ================================================= -->
	<element name="exterior" type="gml:AbstractRingPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic2d:3.1.1">geometryBasic2d.xsd</appinfo>
			<documentation>A boundary of a surface consists of a number of rings. In the normal 2D case, one of these rings is distinguished as being the exterior boundary. In a general manifold this is not always possible, in which case all boundaries shall be listed as interior boundaries, and the exterior will be empty.</documentation>
		</annotation>
	</element>
	<!-- ================================================= -->
	<element name="interior" type="gml:AbstractRingPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic2d:3.1.1">geometryBasic2d.xsd</appinfo>
			<documentation>A boundary of a surface consists of a number of rings. The "interior" rings seperate the surface / surface patch from the area enclosed by the rings.</documentation>
		</annotation>
	</element>
	<!-- ================================================= -->
	<complexType name="AbstractRingPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic2d:3.1.1">geometryBasic2d.xsd</appinfo>
			<documentation>
			        Encapsulates a ring to represent the surface boundary property of a surface.
			</documentation>
		</annotation>
		<sequence>
			<element ref="gml:_Ring"/>
		</sequence>
	</complexType>
	<!-- ================================================= -->
	<element name="LinearRing" type="gml:LinearRingType" substitutionGroup="gml:_Ring"/>
	<!-- ================================================= -->
	<complexType name="LinearRingType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic2d:3.1.1">geometryBasic2d.xsd</appinfo>
			<documentation>A LinearRing is defined by four or more coordinate tuples, with linear interpolation between them; the first and last coordinates must be coincident.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractRingType">
				<sequence>
					<annotation>
						<documentation>GML supports two different ways to specify the control points of a linear ring.
1. A sequence of "pos" (DirectPositionType) or "pointProperty" (PointPropertyType) elements. "pos" elements are control points that are only part of this ring, "pointProperty" elements contain a point that may be referenced from other geometry elements or reference another point defined outside of this ring (reuse of existing points).
2. The "posList" element allows for a compact way to specifiy the coordinates of the control points, if all control points are in the same coordinate reference systems and belong to this ring only. The number of direct positions in the list must be at least four.</documentation>
					</annotation>
					<element ref="gml:posList"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="AbstractSurfaceType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic2d:3.1.1">geometryBasic2d.xsd</appinfo>
			<documentation>
				An abstraction of a surface to support the different levels of complexity. A surface is always a continuous region of a plane.
			</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeometricPrimitiveType"/>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="_Surface" type="gml:AbstractSurfaceType" abstract="true" substitutionGroup="gml:_GeometricPrimitive">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic2d:3.1.1">geometryBasic2d.xsd</appinfo>
			<documentation>The "_Surface" element is the abstract head of the substituition group for all (continuous) surface elements.</documentation>
		</annotation>
	</element>
	<!-- ================================================= -->
	<element name="surfaceMember" type="gml:SurfacePropertyType"/>
	<!-- ================================================= -->
	<element name="surfaceProperty" type="gml:SurfacePropertyType"/>
	<!-- ================================================= -->
	<complexType name="SurfacePropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic2d:3.1.1">geometryBasic2d.xsd</appinfo>
			<documentation>A property that has a surface as its value domain as an appropriate geometry element encapsulated in an element of this type.</documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_Surface"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="Polygon" type="gml:PolygonType" substitutionGroup="gml:_Surface"/>
	<!-- ================================================= -->
	<complexType name="PolygonType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic2d:3.1.1">geometryBasic2d.xsd</appinfo>
			<documentation>A Polygon is a special surface that is defined by a single surface patch. The boundary of this patch is coplanar and the polygon uses planar interpolation in its interior. It is backwards compatible with the Polygon of GML 2, GM_Polygon of ISO 19107 is implemented by PolygonPatch.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractSurfaceType">
				<sequence>
					<element ref="gml:exterior" minOccurs="0"/>
					<element ref="gml:interior" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="AbstractGeometricAggregateType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryAggregates:3.1.1">geometryAggregates.xsd</appinfo>
			<documentation>This is the abstract root type of the geometric aggregates.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeometryType"/>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="_GeometricAggregate" type="gml:AbstractGeometricAggregateType" abstract="true" substitutionGroup="gml:_Geometry">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryAggregates:3.1.1">geometryAggregates.xsd</appinfo>
			<documentation>The "_GeometricAggregate" element is the abstract head of the substituition group for all geometric aggremates.</documentation>
		</annotation>
	</element>
	<!-- =========================================================== -->
	<element name="MultiGeometry" type="gml:MultiGeometryType" substitutionGroup="gml:_GeometricAggregate"/>
	<!-- ======================================================= -->
	<complexType name="MultiGeometryType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryAggregates:3.1.1">geometryAggregates.xsd</appinfo>
			<documentation>
				A geometry collection must include one or more geometries, referenced through geometryMember elements.
			</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeometricAggregateType">
				<sequence>
					<annotation>
						<documentation>The members of the geometric aggregate can be specified using the "standard" property.</documentation>
					</annotation>
					<element ref="gml:geometryMember" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="multiGeometryProperty" type="gml:MultiGeometryPropertyType"/>
	<!-- =========================================================== -->
	<complexType name="MultiGeometryPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryAggregates:3.1.1">geometryAggregates.xsd</appinfo>
			<documentation>A property that has a geometric aggregate as its value domain an appropriate geometry element encapsulated in an element of this type.</documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_GeometricAggregate"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =========================================================== -->
	<element name="MultiPoint" type="gml:MultiPointType" substitutionGroup="gml:_GeometricAggregate"/>
	<!-- ======================================================= -->
	<complexType name="MultiPointType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryAggregates:3.1.1">geometryAggregates.xsd</appinfo>
			<documentation>
				A MultiPoint is defined by one or more Points, referenced through pointMember elements.
			</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeometricAggregateType">
				<sequence>
					<annotation>
						<documentation>The members of the geometric aggregate can be specified using the "standard" property.</documentation>
					</annotation>
					<element ref="gml:pointMember" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="multiPointProperty" type="gml:MultiPointPropertyType"/>
	<!-- =========================================================== -->
	<complexType name="MultiPointPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryAggregates:3.1.1">geometryAggregates.xsd</appinfo>
			<documentation>A property that has a collection of points as its value domain an appropriate geometry element encapsulated in an element of this type.</documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:MultiPoint"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =========================================================== -->
	<element name="MultiCurve" type="gml:MultiCurveType" substitutionGroup="gml:_GeometricAggregate"/>
	<!-- ======================================================= -->
	<complexType name="MultiCurveType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryAggregates:3.1.1">geometryAggregates.xsd</appinfo>
			<documentation>
				A MultiCurve is defined by one or more Curves, referenced through curveMember elements.
			</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeometricAggregateType">
				<sequence>
					<annotation>
						<documentation>The members of the geometric aggregate can be specified using the "standard" property.</documentation>
					</annotation>
					<element ref="gml:curveMember" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="multiCurveProperty" type="gml:MultiCurvePropertyType"/>
	<!-- =========================================================== -->
	<complexType name="MultiCurvePropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryAggregates:3.1.1">geometryAggregates.xsd</appinfo>
			<documentation>A property that has a collection of curves as its value domain as an appropriate geometry element encapsulated in an element of this type.</documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:MultiCurve"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =========================================================== -->
	<element name="MultiSurface" type="gml:MultiSurfaceType" substitutionGroup="gml:_GeometricAggregate"/>
	<!-- ======================================================= -->
	<complexType name="MultiSurfaceType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryAggregates:3.1.1">geometryAggregates.xsd</appinfo>
			<documentation>
				A MultiSurface is defined by one or more Surfaces, referenced through surfaceMember elements. 
			</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeometricAggregateType">
				<sequence>
					<annotation>
						<documentation>The members of the geometric aggregate can be specified either using the "standard" property or the array property style. It is also valid to use both the "standard" and the array property style in the same collection.
NOTE: Array properties cannot reference remote geometry elements.</documentation>
					</annotation>
					<element ref="gml:surfaceMember" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<element name="multiSurfaceProperty" type="gml:MultiSurfacePropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryAggregates:3.1.1">geometryAggregates.xsd</appinfo>
			<documentation>This property element contains the "multi surface" element. multiSurfaceProperty is the predefined property which can be used by GML Application Schemas whenever a GML Feature has a property with a value that is substitutable for MultiSurface.</documentation>
		</annotation>
	</element>
	<!-- =========================================================== -->
	<complexType name="MultiSurfacePropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryAggregates:3.1.1">geometryAggregates.xsd</appinfo>
			<documentation>A property that has a collection of surfaces as its value domain as an appropriate geometry element encapsulated in an element of this type.</documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:MultiSurface"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ============================================================ -->
	<simpleType name="SurfaceInterpolationType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryPrimitives:3.1.1">geometryPrimitives.xsd</appinfo>
			<documentation>SurfaceInterpolationType is a list of codes that may be used to identify the interpolation mechanisms specified by an
application schema.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="none"/>
			<enumeration value="planar"/>
			<enumeration value="spherical"/>
		</restriction>
	</simpleType>
	<!-- ================================================= -->
	<element name="Envelope" type="gml:EnvelopeType"/>
	<!-- ================================================= -->
	<complexType name="EnvelopeType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryBasic0d1d:v3.1.1">geometryBasic0d1d.xsd</appinfo>
			<documentation>Envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions. The first direct 
			position is the "lower corner" (a coordinate position consisting of all the minimal ordinates for each dimension for all points within the envelope), 
			the second one the "upper corner" (a coordinate position consisting of all the maximal ordinates for each dimension for all points within the 
			envelope).</documentation>
		</annotation>
		<sequence>
			<element name="lowerCorner" type="gml:DirectPositionType"/>
			<element name="upperCorner" type="gml:DirectPositionType"/>
		</sequence>
		<attributeGroup ref="gml:SRSReferenceGroup"/>
	</complexType>
	<!-- ================================================= -->
	<element name="CircleByCenterPoint" type="gml:CircleByCenterPointType" substitutionGroup="gml:ArcByCenterPoint"/>
	<!-- ================================================= -->
	<complexType name="CircleByCenterPointType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryPrimitives:3.1.1">geometryPrimitives.xsd</appinfo>
			<documentation>A CircleByCenterPoint is an ArcByCenterPoint with identical start and end angle to form a full circle. Again, this represenation can be used only in 2D.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:ArcByCenterPointType"/>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="ArcByCenterPointType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryPrimitives:3.1.1">geometryPrimitives.xsd</appinfo>
			<documentation>
				This variant of the arc requires that the points on the arc have to be computed instead of storing the coordinates directly. The control point is the center point of the arc plus the radius and the bearing at start and end. This represenation can be used only in 2D.
			</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCurveSegmentType">
				<sequence>
					<annotation>
						<documentation>GML supports two different ways to specify the control points of a curve segment.
1. A "pos" (DirectPositionType) or "pointProperty" (PointPropertyType) element. The "pos" element contains a center point that is only part of this curve segment, a "pointProperty" element contains a point that may be referenced from other geometry elements or reference another point defined outside of this curve segment (reuse of existing points).
2. The "posList" element can be used to specifiy the coordinates of the center point, too. The number of direct positions in the list must be one.</documentation>
					</annotation>
					<element ref="gml:pos"/>
					<element name="radius" type="gml:LengthType">
						<annotation>
							<documentation>The radius of the arc.</documentation>
						</annotation>
					</element>
					<element name="startAngle" type="gml:AngleType" minOccurs="0">
						<annotation>
							<documentation>The bearing of the arc at the start.</documentation>
						</annotation>
					</element>
					<element name="endAngle" type="gml:AngleType" minOccurs="0">
						<annotation>
							<documentation>The bearing of the arc at the end.</documentation>
						</annotation>
					</element>
				</sequence>
				<attribute name="interpolation" type="gml:CurveInterpolationType" fixed="circularArcCenterPointWithRadius">
					<annotation>
						<documentation>The attribute "interpolation" specifies the curve interpolation mechanism used for this segment. This mechanism
uses the control points and control parameters to determine the position of this curve segment. For an ArcByCenterPoint the interpolation is fixed as "circularArcCenterPointWithRadius".</documentation>
					</annotation>
				</attribute>
				<attribute name="numArc" type="integer" use="required" fixed="1">
					<annotation>
						<documentation>Since this type describes always a single arc, the attribute is fixed to "1".</documentation>
					</annotation>
				</attribute>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================= -->
	<complexType name="AbstractCurveSegmentType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryPrimitives:3.1.1">geometryPrimitives.xsd</appinfo>
			<documentation>
				Curve segment defines a homogeneous segment of a curve.
			</documentation>
		</annotation>
		<sequence/>
	</complexType>
	<!-- ================================================= -->
	<simpleType name="CurveInterpolationType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryPrimitives:3.1.1">geometryPrimitives.xsd</appinfo>
			<documentation>CurveInterpolationType is a list of codes that may be used to identify the interpolation mechanisms specified by an
application schema.  "linear" and "geodesic" were the only enumerations in the origial geometry.xsd for XLS.  But this was insufficient to pass Xerces schema validation because ArcByCenterPointType uses circularArcCenterPointWithRadius as a fixed interpolation type. So it has been added here.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="linear"/>
			<enumeration value="geodesic"/>
			<enumeration value="circularArcCenterPointWithRadius"/>
		</restriction>
	</simpleType>
	<!-- ================================================= -->
	<element name="ArcByCenterPoint" type="gml:ArcByCenterPointType" substitutionGroup="gml:_CurveSegment"/>
	<!-- ================================================= -->
	<element name="_CurveSegment" type="gml:AbstractCurveSegmentType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:geometryPrimitives:3.1.1">geometryPrimitives.xsd</appinfo>
			<documentation>The "_CurveSegment" element is the abstract head of the substituition group for all curve segment elements, i.e. continuous segments of the same interpolation mechanism.</documentation>
		</annotation>
	</element>
	<!-- ================================================= -->
	<!-- ============================================================== -->
	<!-- ======================= FEATURE  ============================== -->
	<!-- ============================================================== -->
	<element name="boundedBy" type="gml:BoundingShapeType"/>
	<!-- ================================================= -->
	<complexType name="BoundingShapeType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:feature:v3.1.1">feature.xsd</appinfo>
			<documentation>Bounding shape.</documentation>
		</annotation>
		<sequence>
			<choice>
				<element ref="gml:Envelope"/>
				<element ref="gml:Null"/>
			</choice>
		</sequence>
	</complexType>
	<!-- ================================================= -->
	<element name="_Feature" type="gml:AbstractFeatureType" abstract="true" substitutionGroup="gml:_GML"/>
	<!-- =========================================================== -->
	<complexType name="AbstractFeatureType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:feature:v3.1.1">feature.xsd</appinfo>
			<documentation> An abstract feature provides a set of common properties, including id, metaDataProperty, name and description inherited from AbstractGMLType, plus boundedBy.    A concrete feature type must derive from this type and specify additional  properties in an application schema. A feature must possess an identifying attribute ('id' - 'fid' has been deprecated).  </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGMLType">
				<sequence>
					<element ref="gml:boundedBy" minOccurs="0"/>
					<!-- additional properties must be specified in an application schema -->
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ============================================================== -->
	<!-- ===== property for feature association ==== -->
	<element name="featureMember" type="gml:FeaturePropertyType"/>
	<element name="featureProperty" type="gml:FeaturePropertyType"/>
	<!-- ============================================================== -->
	<complexType name="FeaturePropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:feature:v3.1.1">feature.xsd</appinfo>
			<documentation>Container for a feature - follow gml:AssociationType pattern.</documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_Feature"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ============================================================== -->
	<element name="_FeatureCollection" type="gml:AbstractFeatureCollectionType" abstract="true" substitutionGroup="gml:_Feature"/>
	<!-- ===========================================================   -->
	<complexType name="AbstractFeatureCollectionType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:feature:v3.1.1">feature.xsd</appinfo>
			<documentation> A feature collection contains zero or more features.  </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractFeatureType">
				<sequence>
					<element ref="gml:featureMember" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="FeatureCollection" type="gml:FeatureCollectionType" substitutionGroup="gml:_Feature"/>
	<!-- =========================================================== -->
	<complexType name="FeatureCollectionType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:feature:v3.1.1">feature.xsd</appinfo>
			<documentation> Concrete generic feature collection.  </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractFeatureCollectionType"/>
		</complexContent>
	</complexType>
	<!-- ============================================================== -->
	<!-- ========================= TEMPORAL  =========================== -->
	<!-- ================================================================== -->
	<!-- ==== Time Object ===== -->
	<!-- ================================================================== -->
	<element name="_TimeObject" type="gml:AbstractTimeObjectType" abstract="true" substitutionGroup="gml:_GML">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation xml:lang="en">
      This abstract element acts as the head of the substitution group for temporal primitives and complexes.  
      </documentation>
		</annotation>
	</element>
	<!-- ===================================== -->
	<complexType name="AbstractTimeObjectType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation xml:lang="en">
      The abstract supertype for temporal objects.
      </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGMLType"/>
		</complexContent>
	</complexType>
	<!-- ================================================================== -->
	<!-- ==== Time Complex (for SWE) ===== -->
	<!-- ================================================================== -->
	<element name="_TimeComplex" type="gml:AbstractTimeComplexType" abstract="true" substitutionGroup="gml:_TimeObject">
		<annotation>
			<documentation xml:lang="en">
			This abstract element acts as the head of the substitution group for temporal complexes. 
			Temporal complex is an aggregation of temporal primitives as its components, 
			represents a temporal geometric complex and a temporal topology complex. 
			N.B. Temporal geometric complex is not defined in this schema. 
			</documentation>
		</annotation>
	</element>
	<!-- ================================================================== -->
	<complexType name="AbstractTimeComplexType" abstract="true">
		<annotation>
			<documentation xml:lang="en">
	The abstract supertype for temporal complexes. 
	</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractTimeObjectType"/>
		</complexContent>
	</complexType>
	<!-- ================================================================== -->
	<!-- ==== Time Primitive ===== -->
	<!-- ================================================================== -->
	<element name="_TimePrimitive" type="gml:AbstractTimePrimitiveType" abstract="true" substitutionGroup="gml:_TimeObject">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation xml:lang="en">
      This abstract element acts as the head of the substitution group for temporal primitives.  
      </documentation>
		</annotation>
	</element>
	<!-- ===================================== -->
	<complexType name="AbstractTimePrimitiveType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation xml:lang="en">
      The abstract supertype for temporal primitives.
      </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractTimeObjectType">
				<sequence>
					<element name="relatedTime" type="gml:RelatedTimeType" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================================== -->
	<complexType name="TimePrimitivePropertyType">
		<annotation>
			<documentation>
				2006-01-07 PwD derive from AssociationType to allow
				om:temporalResult as member of gml:resultOf substitutionGroup
			</documentation>
		</annotation>
		<!--	<complexContent>
			<restriction base="gml:AssociationType"> -->
		<sequence minOccurs="0">
			<element ref="gml:_TimePrimitive"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
		<!--		</restriction>
		</complexContent> -->
	</complexType>
	<!-- ================================================================== -->
	<element name="validTime" type="gml:TimePrimitivePropertyType"/>
	<!-- ================================================================== -->
	<complexType name="RelatedTimeType">
		<complexContent>
			<extension base="gml:TimePrimitivePropertyType">
				<attribute name="relativePosition">
					<simpleType>
						<restriction base="string">
							<enumeration value="Before"/>
							<enumeration value="After"/>
							<enumeration value="Begins"/>
							<enumeration value="Ends"/>
							<enumeration value="During"/>
							<enumeration value="Equals"/>
							<enumeration value="Contains"/>
							<enumeration value="Overlaps"/>
							<enumeration value="Meets"/>
							<enumeration value="OverlappedBy"/>
							<enumeration value="MetBy"/>
							<enumeration value="BegunBy"/>
							<enumeration value="EndedBy"/>
						</restriction>
					</simpleType>
				</attribute>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================================== -->
	<!-- ==== Time Geometric Primitive ===== -->
	<!-- ================================================================== -->
	<element name="_TimeGeometricPrimitive" type="gml:AbstractTimeGeometricPrimitiveType" abstract="true" substitutionGroup="gml:_TimePrimitive">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation xml:lang="en">
      This abstract element acts as the head of the substitution group for temporal geometric primitives.  
      </documentation>
		</annotation>
	</element>
	<!-- ===================================== -->
	<complexType name="AbstractTimeGeometricPrimitiveType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation xml:lang="en">
      The abstract supertype for temporal geometric primitives.
       A temporal geometry must be associated with a temporal reference system via URI. 
       The Gregorian calendar with UTC is the default reference system, following ISO 
       8601. Other reference systems in common use include the GPS calendar and the 
       Julian calendar.
      </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractTimePrimitiveType">
				<attribute name="frame" type="anyURI" use="optional" default="#ISO-8601"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================================== -->
	<complexType name="TimeGeometricPrimitivePropertyType">
		<sequence minOccurs="0">
			<element ref="gml:_TimeGeometricPrimitive"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================================== -->
	<!-- ==== Time Instant ===== -->
	<!-- ================================================================== -->
	<element name="TimeInstant" type="gml:TimeInstantType" substitutionGroup="gml:_TimeGeometricPrimitive"/>
	<!-- ===================================== -->
	<complexType name="TimeInstantType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation>Omit back-pointers begunBy, endedBy.  </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractTimeGeometricPrimitiveType">
				<sequence>
					<element ref="gml:timePosition"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================================== -->
	<complexType name="TimeInstantPropertyType">
		<sequence minOccurs="0">
			<element ref="gml:TimeInstant"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================================== -->
	<!-- ==== Time Period ===== -->
	<!-- ================================================================== -->
	<element name="TimePeriod" type="gml:TimePeriodType" substitutionGroup="gml:_TimeGeometricPrimitive"/>
	<!-- ===================================== -->
	<complexType name="TimePeriodType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractTimeGeometricPrimitiveType">
				<sequence>
					<choice>
						<element name="beginPosition" type="gml:TimePositionType"/>
						<element name="begin" type="gml:TimeInstantPropertyType"/>
					</choice>
					<choice>
						<element name="endPosition" type="gml:TimePositionType"/>
						<element name="end" type="gml:TimeInstantPropertyType"/>
					</choice>
					<group ref="gml:timeLength" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ================================================================== -->
	<complexType name="TimePeriodPropertyType">
		<sequence minOccurs="0">
			<element ref="gml:TimePeriod"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================================== -->
	<!-- ==== duration & interval ===== -->
	<!-- ================================================================== -->
	<group name="timeLength">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation>This model group is provided as an alternative to the abstract susbstitutionGroup head _timeLength.
		ISO 19136 comment 411</documentation>
		</annotation>
		<choice>
			<element ref="gml:duration"/>
			<element ref="gml:timeInterval"/>
		</choice>
	</group>
	<!-- ================================================================== -->
	<element name="duration" type="duration">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation xml:lang="en">
      This element is an instance of the primitive xsd:duration simple type to 
      enable use of the ISO 8601 syntax for temporal length (e.g. P5DT4H30M). 
      It is a valid subtype of TimeDurationType according to section 3.14.6, 
      rule 2.2.4 in XML Schema, Part 1.
      </documentation>
		</annotation>
	</element>
	<!-- ================================================================== -->
	<element name="timeInterval" type="gml:TimeIntervalLengthType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation>
			This element is a valid subtype of TimeDurationType 
			according to section 3.14.6, rule 2.2.4 in XML Schema, Part 1.
      </documentation>
		</annotation>
	</element>
	<!-- ===================================== -->
	<complexType name="TimeIntervalLengthType" final="#all">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation xml:lang="en">
      This type extends the built-in xsd:decimal simple type to allow floating-point 
      values for temporal length. According to  the ISO 11404 model you have to use 
      positiveInteger together with appropriate values for radix and factor. The 
      resolution of the time interval is to one radix ^(-factor) of the specified 
      time unit (e.g. unit="second", radix="10", factor="3" specifies a resolution 
      of milliseconds). It is a subtype of TimeDurationType.
      </documentation>
		</annotation>
		<simpleContent>
			<extension base="decimal">
				<attribute name="unit" type="gml:TimeUnitType" use="required"/>
				<attribute name="radix" type="positiveInteger" use="optional"/>
				<attribute name="factor" type="integer" use="optional"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ================================================================== -->
	<simpleType name="TimeUnitType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation xml:lang="en">
        Standard units for measuring time intervals (see ISO 31-1).
      </documentation>
		</annotation>
		<union>
			<simpleType>
				<restriction base="string">
					<enumeration value="year"/>
					<enumeration value="day"/>
					<enumeration value="hour"/>
					<enumeration value="minute"/>
					<enumeration value="second"/>
				</restriction>
			</simpleType>
			<simpleType>
				<restriction base="string">
					<pattern value="other:\w{2,}"/>
				</restriction>
			</simpleType>
		</union>
	</simpleType>
	<!-- ================================================================== -->
	<!-- ==== Time Position ===== -->
	<!-- ================================================================== -->
	<element name="timePosition" type="gml:TimePositionType">
		<annotation>
			<documentation>Direct representation of a temporal position</documentation>
		</annotation>
	</element>
	<!-- ================================================================== -->
	<complexType name="TimePositionType" final="#all">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation xml:lang="en">Direct representation of a temporal position. 
      Indeterminate time values are also allowed, as described in ISO 19108. The indeterminatePosition 
      attribute can be used alone or it can qualify a specific value for temporal position (e.g. before 
      2002-12, after 1019624400). 
      For time values that identify position within a calendar, the calendarEraName attribute provides 
      the name of the calendar era to which the date is referenced (e.g. the Meiji era of the Japanese calendar).
      </documentation>
		</annotation>
		<simpleContent>
			<extension base="gml:TimePositionUnion">
				<attribute name="frame" type="anyURI" use="optional" default="#ISO-8601"/>
				<attribute name="calendarEraName" type="string" use="optional"/>
				<attribute name="indeterminatePosition" type="gml:TimeIndeterminateValueType" use="optional"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- ================================================================== -->
	<simpleType name="TimePositionUnion">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation xml:lang="en">
      The ISO 19108:2002 hierarchy of subtypes for temporal position are collapsed 
      by defining a union of XML Schema simple types for indicating temporal position relative 
      to a specific reference system. 
      
      Dates and dateTime may be indicated with varying degrees of precision.  
      dateTime by itself does not allow right-truncation, except for fractions of seconds. 
      When used with non-Gregorian calendars based on years, months, days, 
      the same lexical representation should still be used, with leading zeros added if the 
      year value would otherwise have fewer than four digits.  
      
      An ordinal position may be referenced via URI identifying the definition of an ordinal era.  
      
      A time coordinate value is indicated as a decimal (e.g. UNIX time, GPS calendar).
      </documentation>
		</annotation>
		<union memberTypes="gml:CalDate time dateTime anyURI decimal"/>
	</simpleType>
	<!-- ================================================================== -->
	<simpleType name="CalDate">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation xml:lang="en">
      Calendar dates may be indicated with varying degrees of precision, 
      using year, year-month, date. 
      When used with non-Gregorian calendars based on years, months, days, 
      the same lexical representation should still be used, with leading zeros added if the 
      year value would otherwise have fewer than four digits.  
      time is used for a position that recurs daily (see clause 5.4.4.2 of ISO 19108:2002).  
      </documentation>
		</annotation>
		<union memberTypes="date gYearMonth gYear"/>
	</simpleType>
	<!-- ================================================================== -->
	<simpleType name="TimeIndeterminateValueType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:temporal:3.1.1">temporal.xsd</appinfo>
			<documentation xml:lang="en">
        This enumerated data type specifies values for indeterminate positions.
      </documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="after"/>
			<enumeration value="before"/>
			<enumeration value="now"/>
			<enumeration value="unknown"/>
		</restriction>
	</simpleType>
	<!-- ============================================================== -->
	<!-- =============== VALUES (for Coverage) ============================= -->
	<!-- ================================================================== -->
	<group name="Value">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Utility choice group which unifies generic Values defined in this schema document with 
			Geometry and Temporal objects and the Measures described above, 
			so that any of these may be used within aggregate Values.</documentation>
		</annotation>
		<choice>
			<group ref="gml:ValueObject"/>
			<element ref="gml:_Object"/>
			<element ref="gml:Null"/>
			<!-- <element ref="gml:_Value"/> -->
			<!--			<element ref="gml:_Geometry"/>
			<element ref="gml:_TimeObject"/> -->
		</choice>
	</group>
	<!-- ====================================================================== -->
	<group name="ValueObject">
		<choice>
			<group ref="gml:ScalarValue"/>
			<group ref="gml:ScalarValueList"/>
			<group ref="gml:ValueExtent"/>
			<element ref="gml:CompositeValue"/>
		</choice>
	</group>
	<!-- ====================================================================== -->
	<group name="ScalarValue">
		<choice>
			<element ref="gml:Boolean"/>
			<element ref="gml:Category"/>
			<element ref="gml:Quantity"/>
			<element ref="gml:Count"/>
		</choice>
	</group>
	<!-- ======================================================================  -->
	<group name="ScalarValueList">
		<choice>
			<element ref="gml:BooleanList"/>
			<element ref="gml:CategoryList"/>
			<element ref="gml:QuantityList"/>
			<element ref="gml:CountList"/>
		</choice>
	</group>
	<!-- ====================================================================== -->
	<element name="Boolean" type="boolean">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>A value from two-valued logic, using the XML Schema boolean type.  An instance may take the values {true, false, 1, 0}.</documentation>
		</annotation>
	</element>
	<!-- ============================================================== -->
	<element name="BooleanList" type="gml:booleanOrNullList">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>XML List based on XML Schema boolean type.  An element of this type contains a space-separated list of boolean values {0,1,true,false}</documentation>
		</annotation>
	</element>
	<!-- ============================================================== -->
	<element name="Category" type="gml:CodeType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>A term representing a classification.  It has an optional XML attribute codeSpace, whose value is a URI which identifies a dictionary, codelist or authority for the term.</documentation>
		</annotation>
	</element>
	<!-- ============================================================== -->
	<element name="CategoryList" type="gml:CodeOrNullListType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>A space-separated list of terms or nulls.  A single XML attribute codeSpace may be provided, which authorises all the terms in the list.</documentation>
		</annotation>
	</element>
	<!-- ============================================================== -->
	<element name="Quantity" type="gml:MeasureType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>A numeric value with a scale.  The content of the element is an amount using the XML Schema type double which permits decimal or scientific notation.  An XML attribute uom (unit of measure) is required, whose value is a URI which identifies the definition of the scale or units by which the numeric value must be multiplied.</documentation>
		</annotation>
	</element>
	<!-- ============================================================== -->
	<element name="QuantityList" type="gml:MeasureOrNullListType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>A space separated list of amounts or nulls.  The amounts use the XML Schema type double.  A single XML attribute uom (unit of measure) is required, whose value is a URI which identifies the definition of the scale or units by which all the amounts in the list must be multiplied.</documentation>
		</annotation>
	</element>
	<!-- ============================================================== -->
	<element name="Count" type="integer">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>An integer representing a frequency of occurrence.</documentation>
		</annotation>
	</element>
	<!-- ============================================================== -->
	<element name="CountList" type="gml:integerOrNullList">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>A space-separated list of integers or nulls.</documentation>
		</annotation>
	</element>
	<!-- ============================================================== -->
	<complexType name="CompositeValueType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Aggregate value built from other Values using the Composite pattern. It contains zero or an arbitrary number of valueComponent elements, and zero or one valueComponents elements.  It may be used for strongly coupled aggregates (vectors, tensors) or for arbitrary collections of values.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGMLType">
				<sequence>
					<element ref="gml:valueComponent" minOccurs="0" maxOccurs="unbounded"/>
					<!-- <element ref="gml:valueComponents" minOccurs="0"/> -->
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ============================================================== -->
	<element name="CompositeValue" type="gml:CompositeValueType">
		<annotation>
			<documentation>Aggregate value built using the Composite pattern.</documentation>
		</annotation>
	</element>
	<!-- ========================= ValueArray ========================== -->
	<complexType name="ValueArrayType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>A Value Array is used for homogeneous arrays of primitive and aggregate values.  The member values may be scalars, composites, arrays or lists.  ValueArray has the same content model as CompositeValue, but the member values must be homogeneous.  The element declaration contains a Schematron constraint which expresses this restriction precisely.            Since the members are homogeneous, the referenceSystem (uom, codeSpace) may be specified on the ValueArray itself and implicitly inherited by all the members if desired.    Note that a_ScalarValueList is preferred for arrays of Scalar Values since this is a more efficient encoding.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:CompositeValueType">
				<attributeGroup ref="gml:referenceSystem"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- ====================================================================== -->
	<element name="ValueArray" type="gml:ValueArrayType" substitutionGroup="gml:CompositeValue">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>A Value Array is used for homogeneous arrays of primitive and aggregate values.   _ScalarValueList is preferred for arrays of Scalar Values since this is more efficient.  Since "choice" is not available for attribute groups, an external constraint (e.g. Schematron) would be required to enforce the selection of only one of these through schema validation</documentation>
		</annotation>
	</element>
	<!-- attribute group required for ValueArray -->
	<attributeGroup name="referenceSystem">
		<attribute name="codeSpace" type="anyURI" use="optional"/>
		<attribute name="uom" type="anyURI" use="optional"/>
	</attributeGroup>
	<!-- ====================================================================== -->
	<element name="valueComponents" type="gml:ValueArrayPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Element which refers to, or contains, a set of homogeneously typed Values.</documentation>
		</annotation>
	</element>
	<!-- ====================================================================== -->
	<complexType name="ValueArrayPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>GML property which refers to, or contains, a set of homogeneously typed Values.
			
			PwD 2006-01-07 derive from gml:AssociationType
			</documentation>
		</annotation>
		<!--		<complexContent>
			<restriction base="gml:AssociationType">  -->
		<sequence>
			<group ref="gml:Value" maxOccurs="unbounded"/>
		</sequence>
		<!--		</restriction>
		</complexContent> -->
	</complexType>
	<!-- ============================================================== -->
	<complexType name="ScalarValuePropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Property whose content is a scalar value.</documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:ValuePropertyType">
				<sequence minOccurs="0">
					<!-- <element ref="gml:_ScalarValue"/> -->
					<group ref="gml:ScalarValue"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<!-- ============================================================== -->
	<complexType name="BooleanPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Property whose content is a Boolean value.</documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:ValuePropertyType">
				<sequence minOccurs="0">
					<element ref="gml:Boolean"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<!-- ============================================================== -->
	<complexType name="CategoryPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Property whose content is a Category.</documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:ValuePropertyType">
				<sequence minOccurs="0">
					<element ref="gml:Category"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<!-- ============================================================== -->
	<complexType name="QuantityPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Property whose content is a Quantity.</documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:ValuePropertyType">
				<sequence minOccurs="0">
					<element ref="gml:Quantity"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<!-- ============================================================== -->
	<complexType name="CountPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Property whose content is a Count.</documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:ValuePropertyType">
				<sequence minOccurs="0">
					<element ref="gml:Count"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<!-- ====================== Typed ValueExtents ============================ -->
	<group name="ValueExtent">
		<choice>
			<element ref="gml:CategoryExtent"/>
			<element ref="gml:QuantityExtent"/>
			<element ref="gml:CountExtent"/>
		</choice>
	</group>
	<!-- ====================================================================== -->
	<element name="QuantityExtent" type="gml:QuantityExtentType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Utility element to store a 2-point range of numeric values. If one member is a null, then this is a single ended interval.</documentation>
		</annotation>
	</element>
	<!-- ====================================================================== -->
	<complexType name="QuantityExtentType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Restriction of list type to store a 2-point range of numeric values. If one member is a null, then this is a single ended interval.</documentation>
		</annotation>
		<simpleContent>
			<restriction base="gml:MeasureOrNullListType">
				<length value="2"/>
			</restriction>
		</simpleContent>
	</complexType>
	<!-- ====================================================================== -->
	<element name="CategoryExtent" type="gml:CategoryExtentType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Utility element to store a 2-point range of ordinal values. If one member is a null, then this is a single ended interval.</documentation>
		</annotation>
	</element>
	<!-- ====================================================================== -->
	<complexType name="CategoryExtentType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Restriction of list type to store a 2-point range of ordinal values. If one member is a null, then this is a single ended interval.</documentation>
		</annotation>
		<simpleContent>
			<restriction base="gml:CodeOrNullListType">
				<length value="2"/>
			</restriction>
		</simpleContent>
	</complexType>
	<!-- ====================================================================== -->
	<element name="CountExtent" type="gml:CountExtentType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Utility element to store a 2-point range of frequency values. If one member is a null, then this is a single ended interval.</documentation>
		</annotation>
	</element>
	<!-- ====================================================================== -->
	<simpleType name="CountExtentType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Restriction of list type to store a 2-point range of frequency values. If one member is a null, then this is a single ended interval.</documentation>
		</annotation>
		<restriction base="gml:integerOrNullList">
			<length value="2"/>
		</restriction>
	</simpleType>
	<!-- ===================== pieces needed for compositing ==================== -->
	<element name="valueProperty" type="gml:ValuePropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Element which refers to, or contains, a Value</documentation>
		</annotation>
	</element>
	<!-- ====================================================================== -->
	<element name="valueComponent" type="gml:ValuePropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>Element which refers to, or contains, a Value.  This version is used in CompositeValues.</documentation>
		</annotation>
	</element>
	<!-- ====================================================================== -->
	<complexType name="ValuePropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:valueObjects:3.1.1">valueObjects.xsd</appinfo>
			<documentation>GML property which refers to, or contains, a Value
			</documentation>
		</annotation>
		<sequence minOccurs="0">
			<group ref="gml:Value"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ============================================================== -->
	<!-- ======================= COVERAGE  ============================ -->
	<!-- ============================================================== -->
	<element name="_ImplicitGeometry" type="gml:AbstractGeometryType" abstract="true" substitutionGroup="gml:_Geometry"/>
	<!-- =========================================================== -->
	<element name="Grid" type="gml:GridType" substitutionGroup="gml:_ImplicitGeometry"/>
	<!-- =========================================================== -->
	<complexType name="GridType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:grids:3.1.1">grids.xsd</appinfo>
			<documentation>An unrectified grid, which is a network composed of two or more sets of equally spaced parallel lines in which the members of each set intersect the members of the other sets at right angles.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeometryType">
				<sequence>
					<element name="limits" type="gml:GridLimitsType"/>
					<element name="axisName" type="string" maxOccurs="unbounded"/>
				</sequence>
				<attribute name="dimension" type="positiveInteger" use="required"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="GridLimitsType">
		<sequence>
			<element name="GridEnvelope" type="gml:GridEnvelopeType"/>
		</sequence>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="GridEnvelopeType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:grids:3.1.1">grids.xsd</appinfo>
			<documentation>Provides grid coordinate values for the diametrically opposed corners of an envelope that bounds a section of grid. The value of a single coordinate is the number of offsets from the origin of the grid in the direction of a specific axis.</documentation>
		</annotation>
		<sequence>
			<element name="low" type="gml:integerList"/>
			<element name="high" type="gml:integerList"/>
		</sequence>
	</complexType>
	<!-- =========================================================== -->
	<element name="RectifiedGrid" type="gml:RectifiedGridType" substitutionGroup="gml:_ImplicitGeometry">
		<annotation>
			<documentation>Should be substitutionGroup="gml:Grid" but changed in order to accomplish Xerces-J schema validation</documentation>
		</annotation>
	</element>
	<!-- =========================================================== -->
	<complexType name="RectifiedGridType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:grids:3.1.1">grids.xsd</appinfo>
			<documentation>A rectified grid has an origin and vectors that define its post locations.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:GridType">
				<sequence>
					<element name="origin" type="gml:PointPropertyType"/>
					<element name="offsetVector" type="gml:VectorType" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- ============================================================== -->
	<element name="_Coverage" type="gml:AbstractCoverageType" abstract="true" substitutionGroup="gml:_Feature"/>
	<!-- =========================================================== -->
	<complexType name="AbstractCoverageType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
			<documentation>Abstract element which acts as the head of a substitution group for coverages. Note that a coverage is a GML feature.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractFeatureType">
				<sequence>
					<element ref="gml:domainSet"/>
					<element ref="gml:rangeSet"/>
				</sequence>
				<attribute name="dimension" type="positiveInteger" use="optional"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="_ContinuousCoverage" type="gml:AbstractContinuousCoverageType" abstract="true" substitutionGroup="gml:_Coverage"/>
	<!-- =========================================================== -->
	<complexType name="AbstractContinuousCoverageType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
			<documentation>A continuous coverage as defined in ISO 19123 is a coverage that can return different values for the same feature attribute at different direct positions within a single spatiotemporal object in its spatiotemporal domain</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoverageType">
				<sequence>
					<element ref="gml:coverageFunction" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="_DiscreteCoverage" type="gml:AbstractDiscreteCoverageType" abstract="true" substitutionGroup="gml:_Coverage"/>
	<!-- =========================================================== -->
	<complexType name="AbstractDiscreteCoverageType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
			<documentation>A discrete coverage consists of a domain set, range set and optionally a coverage function. The domain set consists of either geometry or temporal objects, finite in number. The range set is comprised of a finite number of attribute values each of which is associated to every direct position within any single spatiotemporal object in the domain. In other words, the range values are constant on each spatiotemporal object in the domain. This coverage function maps each element from the coverage domain to an element in its range. This definition conforms to ISO 19123.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoverageType">
				<sequence>
					<element ref="gml:coverageFunction" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="domainSet" type="gml:DomainSetType"/>
	<!-- =========================================================== -->
	<complexType name="DomainSetType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
			<documentation>The spatiotemporal domain of a coverage.  
  Typically 
  * a geometry collection, 
  * an implicit geometry (e.g. a grid), 
  * an explicit or implicit collection of time instances or periods has been removed as an option here

N.B. Temporal geometric complexes and temporal grids are not yet implemented in GML.</documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_Geometry"/>
			<!--
			<choice>
				<element ref="gml:_Geometry"/>
				<element ref="gml:_TimeObject"/>			
			</choice>  
		-->
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =========================================================== -->
	<element name="rangeSet" type="gml:RangeSetType"/>
	<!-- =========================================================== -->
	<complexType name="RangeSetType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
		</annotation>
		<choice>
			<element ref="gml:ValueArray" maxOccurs="unbounded">
				<annotation>
					<documentation>each member _Value holds a tuple or "row" from the equivalent table</documentation>
				</annotation>
			</element>
			<group ref="gml:ScalarValueList" maxOccurs="unbounded">
				<annotation>
					<documentation>each list holds the complete set of one scalar component from the values - i.e. a "column" from the equivalent table</documentation>
				</annotation>
			</group>
			<element ref="gml:DataBlock">
				<annotation>
					<documentation>Its tuple list holds the values as space-separated tuples each of which contains comma-separated components, and the tuple structure is specified using the rangeParameters property.</documentation>
				</annotation>
			</element>
		</choice>
	</complexType>
	<!-- =========================================================== -->
	<element name="coverageFunction" type="gml:CoverageFunctionType"/>
	<!-- =========================================================== -->
	<complexType name="CoverageFunctionType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
			<documentation>The function or rule which defines the map from members of the domainSet to the range.  
      More functions will be added to this list</documentation>
		</annotation>
		<choice>
			<element ref="gml:MappingRule"/>
			<element ref="gml:GridFunction"/>
		</choice>
	</complexType>
	<!-- =========================================================== -->
	<!-- ============== Components for encoding the rangeSet ============= -->
	<!-- =========================================================== -->
	<element name="DataBlock" type="gml:DataBlockType"/>
	<!-- =========================================================== -->
	<complexType name="DataBlockType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
		</annotation>
		<sequence>
			<element ref="gml:rangeParameters"/>
			<element ref="gml:doubleOrNullTupleList"/>
		</sequence>
	</complexType>
	<!-- =========================================================== -->
	<element name="doubleOrNullTupleList" type="gml:doubleOrNullList"/>
	<!-- =========================================================== -->
	<element name="rangeParameters" type="gml:RangeParametersType"/>
	<!-- =========================================================== -->
	<complexType name="RangeParametersType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
			<documentation>Metadata about the rangeSet.  Definition of record structure.   
      This is required if the rangeSet is encoded in a DataBlock.  
      We use a gml:_Value with empty values as a map of the composite value structure.</documentation>
		</annotation>
		<sequence minOccurs="0">
			<group ref="gml:ValueObject"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =========================================================== -->
	<!-- ============= Components for coverageFunctions ================ -->
	<!-- =========================================================== -->
	<element name="MappingRule" type="gml:StringOrRefType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
			<documentation>Description of a rule for associating members from the domainSet with members of the rangeSet.</documentation>
		</annotation>
	</element>
	<!-- =========================================================== -->
	<element name="GridFunction" type="gml:GridFunctionType"/>
	<!-- =========================================================== -->
	<complexType name="GridFunctionType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
			<documentation>Defines how values in the domain are mapped to the range set. The start point and the sequencing rule are specified here.</documentation>
		</annotation>
		<sequence>
			<element name="sequenceRule" type="gml:SequenceRuleType" minOccurs="0">
				<annotation>
					<documentation>If absent, the implied value is "Linear".</documentation>
				</annotation>
			</element>
			<element name="startPoint" type="gml:integerList" minOccurs="0">
				<annotation>
					<documentation>Index position of the first grid post, which must lie somwhere in the GridEnvelope.  If absent, the startPoint is equal to the value of gridEnvelope::low from the grid definition.</documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<!-- =========================================================== -->
	<element name="IndexMap" type="gml:IndexMapType" substitutionGroup="gml:GridFunction"/>
	<!-- =========================================================== -->
	<complexType name="IndexMapType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
			<documentation>Exends GridFunctionType with a lookUpTable.  This contains a list of indexes of members within the rangeSet corresponding with the members of the domainSet.  The domainSet is traversed in list order if it is enumerated explicitly, or in the order specified by a SequenceRule if the domain is an implicit set.    The length of the lookUpTable corresponds with the length of the subset of the domainSet for which the coverage is defined.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:GridFunctionType">
				<sequence>
					<element name="lookUpTable" type="gml:integerList"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="SequenceRuleType">
		<simpleContent>
			<extension base="gml:SequenceRuleNames">
				<attribute name="order" type="gml:IncrementOrder" use="optional"/>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<simpleType name="SequenceRuleNames">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
			<documentation>List of codes (adopted from ISO 19123 Annex C) that identifies the rule for traversing a grid to correspond with the sequence of members of the rangeSet.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="Linear"/>
			<enumeration value="Boustrophedonic"/>
			<enumeration value="Cantor-diagonal"/>
			<enumeration value="Spiral"/>
			<enumeration value="Morton"/>
			<enumeration value="Hilbert"/>
		</restriction>
	</simpleType>
	<!-- =========================================================== -->
	<simpleType name="IncrementOrder">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
			<documentation>The enumeration value here indicates the incrementation order  to be used on the first 2 axes, i.e. "+x-y" means that the points on the first axis are to be traversed from lowest to highest and  the points on the second axis are to be traversed from highest to lowest. The points on all other axes (if any) beyond the first 2 are assumed to increment from lowest to highest.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="+x+y"/>
			<enumeration value="+y+x"/>
			<enumeration value="+x-y"/>
			<enumeration value="-x-y"/>
		</restriction>
	</simpleType>
	<!-- =========================================================== -->
	<!-- == Specialised Coverage types - typed by the structure of the domain set == -->
	<!-- =========================================================== -->
	<element name="MultiPointCoverage" type="gml:MultiPointCoverageType" substitutionGroup="gml:_DiscreteCoverage"/>
	<!-- =========================================================== -->
	<complexType name="MultiPointCoverageType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
			<documentation>A discrete coverage type whose domain is defined by a collection of point</documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:AbstractDiscreteCoverageType">
				<sequence>
					<element ref="gml:boundedBy" minOccurs="0"/>
					<element ref="gml:multiPointDomain"/>
					<element ref="gml:rangeSet"/>
					<element ref="gml:coverageFunction" minOccurs="0"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="multiPointDomain" type="gml:MultiPointDomainType" substitutionGroup="gml:domainSet"/>
	<!-- =========================================================== -->
	<complexType name="MultiPointDomainType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
		</annotation>
		<complexContent>
			<restriction base="gml:DomainSetType">
				<sequence minOccurs="0">
					<element ref="gml:MultiPoint"/>
				</sequence>
				<attributeGroup ref="gml:AssociationAttributeGroup"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="MultiCurveCoverage" type="gml:MultiCurveCoverageType" substitutionGroup="gml:_DiscreteCoverage"/>
	<!-- =========================================================== -->
	<complexType name="MultiCurveCoverageType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
			<documentation>A discrete coverage type whose domain is defined by a collection of curves.</documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:AbstractDiscreteCoverageType">
				<sequence>
					<element ref="gml:boundedBy" minOccurs="0"/>
					<element ref="gml:multiCurveDomain"/>
					<element ref="gml:rangeSet"/>
					<element ref="gml:coverageFunction" minOccurs="0"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="multiCurveDomain" type="gml:MultiCurveDomainType" substitutionGroup="gml:domainSet"/>
	<!-- =========================================================== -->
	<complexType name="MultiCurveDomainType">
		<complexContent>
			<restriction base="gml:DomainSetType">
				<sequence minOccurs="0">
					<element ref="gml:MultiCurve"/>
				</sequence>
				<attributeGroup ref="gml:AssociationAttributeGroup"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="MultiSurfaceCoverage" type="gml:MultiSurfaceCoverageType" substitutionGroup="gml:_DiscreteCoverage"/>
	<!-- =========================================================== -->
	<complexType name="MultiSurfaceCoverageType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
			<documentation>A discrete coverage type whose domain is defined by a collection of surface patches (includes polygons, triangles, rectangles, etc).</documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:AbstractDiscreteCoverageType">
				<sequence>
					<element ref="gml:boundedBy" minOccurs="0"/>
					<element ref="gml:multiSurfaceDomain"/>
					<element ref="gml:rangeSet"/>
					<element ref="gml:coverageFunction" minOccurs="0"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="multiSurfaceDomain" type="gml:MultiSurfaceDomainType" substitutionGroup="gml:domainSet"/>
	<!-- =========================================================== -->
	<complexType name="MultiSurfaceDomainType">
		<complexContent>
			<restriction base="gml:DomainSetType">
				<sequence minOccurs="0">
					<element ref="gml:MultiSurface"/>
				</sequence>
				<attributeGroup ref="gml:AssociationAttributeGroup"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="GridCoverage" type="gml:GridCoverageType" substitutionGroup="gml:_DiscreteCoverage"/>
	<!-- =========================================================== -->
	<complexType name="GridCoverageType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
		</annotation>
		<complexContent>
			<restriction base="gml:AbstractDiscreteCoverageType">
				<sequence>
					<element ref="gml:boundedBy" minOccurs="0"/>
					<element ref="gml:gridDomain"/>
					<element ref="gml:rangeSet"/>
					<element ref="gml:coverageFunction" minOccurs="0"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="gridDomain" type="gml:GridDomainType" substitutionGroup="gml:domainSet"/>
	<!-- =========================================================== -->
	<complexType name="GridDomainType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
		</annotation>
		<complexContent>
			<restriction base="gml:DomainSetType">
				<sequence minOccurs="0">
					<element ref="gml:Grid"/>
				</sequence>
				<attributeGroup ref="gml:AssociationAttributeGroup"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="RectifiedGridCoverage" type="gml:RectifiedGridCoverageType" substitutionGroup="gml:_DiscreteCoverage"/>
	<!-- =========================================================== -->
	<complexType name="RectifiedGridCoverageType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
		</annotation>
		<complexContent>
			<restriction base="gml:AbstractDiscreteCoverageType">
				<sequence>
					<element ref="gml:boundedBy" minOccurs="0"/>
					<element ref="gml:rectifiedGridDomain"/>
					<element ref="gml:rangeSet"/>
					<element ref="gml:coverageFunction" minOccurs="0"/>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="rectifiedGridDomain" type="gml:RectifiedGridDomainType" substitutionGroup="gml:domainSet"/>
	<!-- =========================================================== -->
	<complexType name="RectifiedGridDomainType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
		</annotation>
		<complexContent>
			<restriction base="gml:DomainSetType">
				<sequence minOccurs="0">
					<element ref="gml:RectifiedGrid"/>
				</sequence>
				<attributeGroup ref="gml:AssociationAttributeGroup"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- ============================================================== -->
	<!-- ======================= OBSERVATION  ========================= -->
	<!-- ============================================================== -->
	<element name="direction" type="gml:DirectionPropertyType"/>
	<!--===================================================================  -->
	<complexType name="DirectionPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:direction:3.1.1">direction.xsd</appinfo>
			<documentation/>
		</annotation>
		<choice>
			<element ref="gml:DirectionVector"/>
			<element ref="gml:CompassPoint"/>
			<element name="DirectionKeyword" type="gml:CodeType"/>
			<element name="DirectionString" type="gml:StringOrRefType"/>
		</choice>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!--===================================================================  -->
	<element name="DirectionVector" type="gml:DirectionVectorType"/>
	<!--===================================================================  -->
	<complexType name="DirectionVectorType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:direction:3.1.1">direction.xsd</appinfo>
			<documentation>Direction expressed as a vector, either using components, or using angles.  </documentation>
		</annotation>
		<choice>
			<element ref="gml:vector"/>
			<sequence>
				<element name="horizontalAngle" type="gml:AngleType"/>
				<element name="verticalAngle" type="gml:AngleType"/>
			</sequence>
		</choice>
	</complexType>
	<!--===================================================================  -->
	<element name="CompassPoint" type="gml:CompassPointEnumeration"/>
	<!--===================================================================  -->
	<simpleType name="CompassPointEnumeration">
		<restriction base="string">
			<enumeration value="N"/>
			<enumeration value="NNE"/>
			<enumeration value="NE"/>
			<enumeration value="ENE"/>
			<enumeration value="E"/>
			<enumeration value="ESE"/>
			<enumeration value="SE"/>
			<enumeration value="SSE"/>
			<enumeration value="S"/>
			<enumeration value="SSW"/>
			<enumeration value="SW"/>
			<enumeration value="WSW"/>
			<enumeration value="W"/>
			<enumeration value="WNW"/>
			<enumeration value="NW"/>
			<enumeration value="NNW"/>
		</restriction>
	</simpleType>
	<!--===================================================================  -->
	<!-- ============================================================== -->
	<element name="using" type="gml:FeaturePropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:observation:3.1.1">observation.xsd</appinfo>
			<documentation>This element contains or points to a description of a sensor, instrument or procedure used for the observation</documentation>
		</annotation>
	</element>
	<!-- =================================================================== -->
	<element name="target" type="gml:TargetPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:observation:3.1.1">observation.xsd</appinfo>
			<documentation>This element contains or points to the specimen, region or station which is the object of the observation</documentation>
		</annotation>
	</element>
	<!-- =================================================================== -->
	<element name="subject" type="gml:TargetPropertyType" substitutionGroup="gml:target">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:observation:3.1.1">observation.xsd</appinfo>
			<documentation>Synonym for target - common word used for photographs</documentation>
		</annotation>
	</element>
	<!-- =================================================================== -->
	<complexType name="TargetPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:observation:3.1.1">observation.xsd</appinfo>
			<documentation>Container for an object representing the target or subject of an observation.</documentation>
		</annotation>
		<sequence minOccurs="0">
			<choice>
				<element ref="gml:_Feature"/>
				<element ref="gml:_Geometry"/>
			</choice>
		</sequence>
	</complexType>
	<!-- =================================================================== -->
	<!--	
	<element name="resultOf" type="gml:AssociationType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:observation:3.1.1">observation.xsd</appinfo>
			<documentation>The result of the observation: an image, external object, etc</documentation>
		</annotation>
	</element>
	-->
	<!-- =================================================================== -->
	<!-- removed gml defs to work around resultOf problem -->
	<!-- ============================================================== -->
	<!-- ========================= ROUTE  ============================== -->
	<!-- ============================================================== -->
	<!-- ============================================================== -->
	<!-- ===================== MOBILE OBJECT  ========================== -->
	<!-- ============================================================== -->
	<element name="dataSource" type="gml:StringOrRefType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:dynamicFeature:3.1.1"/>
		</annotation>
	</element>
	<!-- ================================================================== -->
	<element name="status" type="gml:StringOrRefType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:dynamicFeature:3.1.1"/>
		</annotation>
	</element>
	<!-- ================================================================== -->
	<element name="_TimeSlice" type="gml:AbstractTimeSliceType" abstract="true" substitutionGroup="gml:_GML">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:dynamicFeature:3.1.1"/>
		</annotation>
	</element>
	<!-- ============================================================== -->
	<complexType name="AbstractTimeSliceType" abstract="true">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:dynamicFeature:3.1.1"/>
			<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="history" type="gml:HistoryPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:dynamicFeature:3.1.1"/>
		</annotation>
	</element>
	<!-- ================================================================== -->
	<complexType name="HistoryPropertyType">
		<annotation>
			<appinfo source="urn:opengis:specification:gml:schema-xsd:dynamicFeature:3.1.1"/>
			<documentation xml:lang="en">
        The history relationship associates a feature with a sequence of TimeSlice instances.
      </documentation>
		</annotation>
		<sequence>
			<element ref="gml:_TimeSlice" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
	<!-- ================================================================== -->
	<!-- ============= definitions used by ISO 19139 metadata ===================== -->
	<!-- ================================================================== -->
	<!-- =============coordinateReferenceSystems.xsd"   ========================= -->
	<!-- ================================================================== -->
	<element name="_CoordinateReferenceSystem" type="gml:AbstractReferenceSystemType" abstract="true" substitutionGroup="gml:_CRS">
		<annotation>
			<documentation>A coordinate reference system consists of an ordered sequence of coordinate system axes that are related to the earth through a datum. A coordinate reference system is defined by one datum and by one coordinate system. Most coordinate reference system do not move relative to the earth, except for engineering coordinate reference systems defined on moving platforms such as cars, ships, aircraft, and spacecraft. For further information, see OGC Abstract Specification Topic 2.

Coordinate reference systems are commonly divided into sub-types. The common classification criterion for sub-typing of coordinate reference systems is the way in which they deal with earth curvature. This has a direct effect on the portion of the earth's surface that can be covered by that type of CRS with an acceptable degree of error. The exception to the rule is the subtype "Temporal" which has been added by analogy. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="coordinateReferenceSystemRef" type="gml:CoordinateReferenceSystemRefType"/>
	<!-- =================================================== -->
	<complexType name="CoordinateReferenceSystemRefType">
		<annotation>
			<documentation>Association to a coordinate reference system, either referencing or containing the definition of that reference system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_CoordinateReferenceSystem"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="CompoundCRS" type="gml:CompoundCRSType" substitutionGroup="gml:_CRS"/>
	<!-- =================================================== -->
	<complexType name="CompoundCRSType">
		<annotation>
			<documentation>A coordinate reference system describing the position of points through two or more independent coordinate reference systems. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractReferenceSystemType">
				<sequence>
					<element ref="gml:includesCRS" minOccurs="2" maxOccurs="unbounded">
						<annotation>
							<documentation>Ordered sequence of associations to all the component coordinate reference systems included in this compound coordinate reference system. </documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="includesCRS" type="gml:CoordinateReferenceSystemRefType">
		<annotation>
			<documentation>An association to a component coordinate reference system included in this compound coordinate reference system. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="compoundCRSRef" type="gml:CompoundCRSRefType"/>
	<!-- =================================================== -->
	<complexType name="CompoundCRSRefType">
		<annotation>
			<documentation>Association to a compound coordinate reference system, either referencing or containing the definition of that reference system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:CompoundCRS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="GeographicCRS" type="gml:GeographicCRSType" substitutionGroup="gml:_CoordinateReferenceSystem"/>
	<!-- =================================================== -->
	<complexType name="GeographicCRSType">
		<annotation>
			<documentation>A coordinate reference system based on an ellipsoidal approximation of the geoid; this provides an accurate representation of the geometry of geographic features for a large portion of the earth's surface.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractReferenceSystemType">
				<sequence>
					<element ref="gml:usesEllipsoidalCS"/>
					<element ref="gml:usesGeodeticDatum"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="usesEllipsoidalCS" type="gml:EllipsoidalCSRefType">
		<annotation>
			<documentation>Association to the ellipsoidal coordinate system used by this CRS. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="usesGeodeticDatum" type="gml:GeodeticDatumRefType">
		<annotation>
			<documentation>Association to the geodetic datum used by this CRS. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="geographicCRSRef" type="gml:GeographicCRSRefType"/>
	<!-- =================================================== -->
	<complexType name="GeographicCRSRefType">
		<annotation>
			<documentation>Association to a geographic coordinate reference system, either referencing or containing the definition of that reference system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:GeographicCRS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="VerticalCRS" type="gml:VerticalCRSType" substitutionGroup="gml:_CoordinateReferenceSystem"/>
	<!-- =================================================== -->
	<complexType name="VerticalCRSType">
		<annotation>
			<documentation>A 1D coordinate reference system used for recording heights or depths. Vertical CRSs make use of the direction of gravity to define the concept of height or depth, but the relationship with gravity may not be straightforward. By implication, ellipsoidal heights (h) cannot be captured in a vertical coordinate reference system. Ellipsoidal heights cannot exist independently, but only as an inseparable part of a 3D coordinate tuple defined in a geographic 3D coordinate reference system. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractReferenceSystemType">
				<sequence>
					<element ref="gml:usesVerticalCS"/>
					<element ref="gml:usesVerticalDatum"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="usesVerticalCS" type="gml:VerticalCSRefType">
		<annotation>
			<documentation>Association to the vertical coordinate system used by this CRS. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="usesVerticalDatum" type="gml:VerticalDatumRefType">
		<annotation>
			<documentation>Association to the vertical datum used by this CRS. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="verticalCRSRef" type="gml:VerticalCRSRefType"/>
	<!-- =================================================== -->
	<complexType name="VerticalCRSRefType">
		<annotation>
			<documentation>Association to a vertical coordinate reference system, either referencing or containing the definition of that reference system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:VerticalCRS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="GeocentricCRS" type="gml:GeocentricCRSType" substitutionGroup="gml:_CoordinateReferenceSystem"/>
	<!-- =================================================== -->
	<complexType name="GeocentricCRSType">
		<annotation>
			<documentation>A 3D coordinate reference system with the origin at the approximate centre of mass of the earth. A geocentric CRS deals with the earth's curvature by taking a 3D spatial view, which obviates the need to model the earth's curvature. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractReferenceSystemType">
				<sequence>
					<choice>
						<element ref="gml:usesCartesianCS"/>
						<element ref="gml:usesSphericalCS"/>
					</choice>
					<element ref="gml:usesGeodeticDatum"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="usesCartesianCS" type="gml:CartesianCSRefType">
		<annotation>
			<documentation>Association to the Cartesian coordinate system used by this CRS. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="usesSphericalCS" type="gml:SphericalCSRefType">
		<annotation>
			<documentation>Association to the spherical coordinate system used by this CRS.</documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="geocentricCRSRef" type="gml:GeocentricCRSRefType"/>
	<!-- =================================================== -->
	<complexType name="GeocentricCRSRefType">
		<annotation>
			<documentation>Association to a geocentric coordinate reference system, either referencing or containing the definition of that reference system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:GeocentricCRS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="_GeneralDerivedCRS" type="gml:AbstractGeneralDerivedCRSType" abstract="true" substitutionGroup="gml:_CoordinateReferenceSystem"/>
	<!-- =================================================== -->
	<complexType name="AbstractGeneralDerivedCRSType" abstract="true">
		<annotation>
			<documentation>A coordinate reference system that is defined by its coordinate conversion from another coordinate reference system (not by a datum). 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:AbstractReferenceSystemType">
				<sequence>
					<element ref="gml:baseCRS"/>
					<element ref="gml:definedByConversion"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="baseCRS" type="gml:CoordinateReferenceSystemRefType">
		<annotation>
			<documentation>Association to the coordinate reference system used by this derived CRS. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="definedByConversion" type="gml:GeneralConversionRefType">
		<annotation>
			<documentation>Association to the coordinate conversion used to define this derived CRS. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="ProjectedCRS" type="gml:ProjectedCRSType" substitutionGroup="gml:_GeneralDerivedCRS"/>
	<!-- =================================================== -->
	<complexType name="ProjectedCRSType">
		<annotation>
			<documentation>A 2D coordinate reference system used to approximate the shape of the earth on a planar surface, but in such a way that the distortion that is inherent to the approximation is carefully controlled and known. Distortion correction is commonly applied to calculated bearings and distances to produce values that are a close match to actual field values. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralDerivedCRSType">
				<sequence>
					<element ref="gml:usesCartesianCS"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="projectedCRSRef" type="gml:ProjectedCRSRefType"/>
	<!-- =================================================== -->
	<complexType name="ProjectedCRSRefType">
		<annotation>
			<documentation>Association to a projected coordinate reference system, either referencing or containing the definition of that reference system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:ProjectedCRS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="DerivedCRS" type="gml:DerivedCRSType" substitutionGroup="gml:_GeneralDerivedCRS"/>
	<!-- =================================================== -->
	<complexType name="DerivedCRSType">
		<annotation>
			<documentation>A coordinate reference system that is defined by its coordinate conversion from another coordinate reference system but is not a projected coordinate reference system. This category includes coordinate reference systems derived from a projected coordinate reference system. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralDerivedCRSType">
				<sequence>
					<element ref="gml:derivedCRSType"/>
					<element ref="gml:usesCS"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="derivedCRSType" type="gml:DerivedCRSTypeType"/>
	<!-- =================================================== -->
	<complexType name="DerivedCRSTypeType">
		<annotation>
			<documentation>Type of a derived coordinate reference system. </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 DerivedCRSTypeType. </documentation>
					</annotation>
				</attribute>
			</restriction>
		</simpleContent>
	</complexType>
	<!-- =================================================== -->
	<element name="usesCS" type="gml:CoordinateSystemRefType">
		<annotation>
			<documentation>Association to the coordinate system used by this CRS. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="derivedCRSRef" type="gml:DerivedCRSRefType"/>
	<!-- =================================================== -->
	<complexType name="DerivedCRSRefType">
		<annotation>
			<documentation>Association to a non-projected derived coordinate reference system, either referencing or containing the definition of that reference system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:DerivedCRS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="EngineeringCRS" type="gml:EngineeringCRSType" substitutionGroup="gml:_CoordinateReferenceSystem"/>
	<!-- =================================================== -->
	<complexType name="EngineeringCRSType">
		<annotation>
			<documentation>A contextually local coordinate reference system; which can be divided into two broad categories:
- earth-fixed systems applied to engineering activities on or near the surface of the earth;
- CRSs on moving platforms such as road vehicles, vessels, aircraft, or spacecraft.
For further information, see OGC Abstract Specification Topic 2. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractReferenceSystemType">
				<sequence>
					<element ref="gml:usesCS"/>
					<element ref="gml:usesEngineeringDatum"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="usesEngineeringDatum" type="gml:EngineeringDatumRefType">
		<annotation>
			<documentation>Association to the engineering datum used by this CRS. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="engineeringCRSRef" type="gml:EngineeringCRSRefType"/>
	<!-- =================================================== -->
	<complexType name="EngineeringCRSRefType">
		<annotation>
			<documentation>Association to an engineering coordinate reference system, either referencing or containing the definition of that reference system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:EngineeringCRS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="ImageCRS" type="gml:ImageCRSType" substitutionGroup="gml:_CoordinateReferenceSystem"/>
	<!-- =================================================== -->
	<complexType name="ImageCRSType">
		<annotation>
			<documentation>An engineering coordinate reference system applied to locations in images. Image coordinate reference systems are treated as a separate sub-type because a separate user community exists for images with its own terms of reference. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractReferenceSystemType">
				<sequence>
					<choice>
						<element ref="gml:usesCartesianCS"/>
						<element ref="gml:usesObliqueCartesianCS"/>
					</choice>
					<element ref="gml:usesImageDatum"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="usesObliqueCartesianCS" type="gml:ObliqueCartesianCSRefType">
		<annotation>
			<documentation>Association to the oblique Cartesian coordinate system used by this CRS.</documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="usesImageDatum" type="gml:ImageDatumRefType">
		<annotation>
			<documentation>Association to the image datum used by this CRS. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="imageCRSRef" type="gml:ImageCRSRefType"/>
	<!-- =================================================== -->
	<complexType name="ImageCRSRefType">
		<annotation>
			<documentation>Association to an image coordinate reference system, either referencing or containing the definition of that reference system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:ImageCRS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="TemporalCRS" type="gml:TemporalCRSType" substitutionGroup="gml:_CoordinateReferenceSystem"/>
	<!-- =================================================== -->
	<complexType name="TemporalCRSType">
		<annotation>
			<documentation>A 1D coordinate reference system used for the recording of time. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractReferenceSystemType">
				<sequence>
					<element ref="gml:usesTemporalCS"/>
					<element ref="gml:usesTemporalDatum"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="usesTemporalCS" type="gml:TemporalCSRefType">
		<annotation>
			<documentation>Association to the temporal coordinate system used by this CRS. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="usesTemporalDatum" type="gml:TemporalDatumRefType">
		<annotation>
			<documentation>Association to the temporal datum used by this CRS. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="temporalCRSRef" type="gml:TemporalCRSRefType"/>
	<!-- =================================================== -->
	<complexType name="TemporalCRSRefType">
		<annotation>
			<documentation>Association to a temporal coordinate reference system, either referencing or containing the definition of that reference system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:TemporalCRS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================================== -->	
	<!-- ==================== coordinateSystems.xsd"   ========================= -->
	<!-- ================================================================== -->
	<element name="CoordinateSystemAxis" type="gml:CoordinateSystemAxisType" substitutionGroup="gml:Definition"/>
	<!-- =================================================== -->
	<complexType name="CoordinateSystemAxisBaseType" abstract="true">
		<annotation>
			<documentation>Basic encoding for coordinate system axis 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:name">
						<annotation>
							<documentation>The name by which this coordinate system axis is identified. </documentation>
						</annotation>
					</element>
				</sequence>
				<attribute ref="gml:id" use="required"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<complexType name="CoordinateSystemAxisType">
		<annotation>
			<documentation>Definition of a coordinate system axis. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:CoordinateSystemAxisBaseType">
				<sequence>
					<element ref="gml:axisID" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Set of alternative identifications of this coordinate system axis. The first axisID, if any, is normally the primary identification code, and any others are aliases. </documentation>
						</annotation>
					</element>
					<element ref="gml:remarks" minOccurs="0">
						<annotation>
							<documentation>Comments on or information about this coordinate system axis, including data source information. </documentation>
						</annotation>
					</element>
					<element ref="gml:axisAbbrev"/>
					<element ref="gml:axisDirection"/>
				</sequence>
				<attribute ref="gml:uom" use="required"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="axisID" type="gml:IdentifierType">
		<annotation>
			<documentation>An identification of a coordinate system axis. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="axisAbbrev" type="gml:CodeType">
		<annotation>
			<documentation>The abbreviation used for this coordinate system axis. This abbreviation can be used to identify the ordinates in a coordinate tuple. Examples are X and Y. The codeSpace attribute can reference a source of more information on a set of standardized abbreviations, or on this abbreviation. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="axisDirection" type="gml:CodeType">
		<annotation>
			<documentation>Direction of this coordinate system axis (or in the case of Cartesian projected coordinates, the direction of this coordinate system axis at the origin). Examples: north or south, east or west, up or down. Within any set of coordinate system axes, only one of each pair of terms can be used. For earth-fixed CRSs, this direction is often approximate and intended to provide a human interpretable meaning to the axis. When a geodetic datum is used, the precise directions of the axes may therefore vary slightly from this approximate direction. Note that an EngineeringCRS can include specific descriptions of the directions of its coordinate system axes. For example, the path of a linear CRS axis can be referenced in another document, such as referencing a GML feature that references or includes a curve geometry. The codeSpace attribute can reference a source of more information on a set of standardized directions, or on this direction. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<attribute name="uom" type="anyURI">
		<annotation>
			<documentation>Identifier of the unit of measure used for this coordinate system axis. The value of this coordinate in a coordinate tuple shall be recorded using this unit of measure, whenever those coordinates use a coordinate reference system that uses a coordinate system that uses this axis.</documentation>
		</annotation>
	</attribute>
	<!-- =================================================== -->
	<element name="coordinateSystemAxisRef" type="gml:CoordinateSystemAxisRefType"/>
	<!-- =================================================== -->
	<complexType name="CoordinateSystemAxisRefType">
		<annotation>
			<documentation>Association to a coordinate system axis, either referencing or containing the definition of that axis. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:CoordinateSystemAxis"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<!-- =================================================== -->
	<element name="_CoordinateSystem" type="gml:AbstractCoordinateSystemType" abstract="true" substitutionGroup="gml:Definition"/>
	<!-- =================================================== -->
	<complexType name="AbstractCoordinateSystemBaseType" abstract="true">
		<annotation>
			<documentation>Basic encoding for coordinate system 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:csName"/>
				</sequence>
				<attribute ref="gml:id" use="required"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="csName" type="gml:CodeType" substitutionGroup="gml:name">
		<annotation>
			<documentation>The name by which this coordinate system is identified. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<complexType name="AbstractCoordinateSystemType" abstract="true">
		<annotation>
			<documentation>A coordinate system (CS) is the set of coordinate system axes that spans a given coordinate space. A CS is derived from a set of (mathematical) rules for specifying how coordinates in a given space are to be assigned to points. The coordinate values in a coordinate tuple shall be recorded in the order in which the coordinate system axes associations are recorded, whenever those coordinates use a coordinate reference system that uses this coordinate 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:AbstractCoordinateSystemBaseType">
				<sequence>
					<element ref="gml:csID" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Set of alternative identifications of this coordinate system. The first csID, if any, is normally the primary identification code, and any others are aliases. </documentation>
						</annotation>
					</element>
					<element ref="gml:remarks" minOccurs="0">
						<annotation>
							<documentation>Comments on or information about this coordinate system, including data source information. </documentation>
						</annotation>
					</element>
					<element ref="gml:usesAxis" maxOccurs="unbounded">
						<annotation>
							<documentation>Ordered sequence of associations to the coordinate system axes included in this coordinate system. </documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="csID" type="gml:IdentifierType">
		<annotation>
			<documentation>An identification of a coordinate system. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="usesAxis" type="gml:CoordinateSystemAxisRefType">
		<annotation>
			<documentation>Association to a coordinate system axis. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="coordinateSystemRef" type="gml:CoordinateSystemRefType"/>
	<!-- =================================================== -->
	<complexType name="CoordinateSystemRefType">
		<annotation>
			<documentation>Association to a coordinate system, either referencing or containing the definition of that coordinate system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_CoordinateSystem"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="EllipsoidalCS" type="gml:EllipsoidalCSType" substitutionGroup="gml:_CoordinateSystem"/>
	<!-- =================================================== -->
	<complexType name="EllipsoidalCSType">
		<annotation>
			<documentation>A two- or three-dimensional coordinate system in which position is specified by geodetic latitude, geodetic longitude, and (in the three-dimensional case) ellipsoidal height. An EllipsoidalCS shall have two or three usesAxis associations. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoordinateSystemType"/>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="ellipsoidalCSRef" type="gml:EllipsoidalCSRefType"/>
	<!-- =================================================== -->
	<complexType name="EllipsoidalCSRefType">
		<annotation>
			<documentation>Association to an ellipsoidal coordinate system, either referencing or containing the definition of that coordinate system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:EllipsoidalCS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="CartesianCS" type="gml:CartesianCSType" substitutionGroup="gml:_CoordinateSystem"/>
	<!-- =================================================== -->
	<complexType name="CartesianCSType">
		<annotation>
			<documentation>A 1-, 2-, or 3-dimensional coordinate system. Gives the position of points relative to orthogonal straight axes in the 2- and 3-dimensional cases. In the 1-dimensional case, it contains a single straight coordinate axis. In the multi-dimensional case, all axes shall have the same length unit of measure. A CartesianCS shall have one, two, or three usesAxis associations. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoordinateSystemType"/>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="cartesianCSRef" type="gml:CartesianCSRefType"/>
	<!-- =================================================== -->
	<complexType name="CartesianCSRefType">
		<annotation>
			<documentation>Association to a Cartesian coordinate system, either referencing or containing the definition of that coordinate system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:CartesianCS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="VerticalCS" type="gml:VerticalCSType" substitutionGroup="gml:_CoordinateSystem"/>
	<!-- =================================================== -->
	<complexType name="VerticalCSType">
		<annotation>
			<documentation>A one-dimensional coordinate system used to record the heights (or depths) of points. Such a coordinate system is usually dependent on the Earth's gravity field, perhaps loosely as when atmospheric pressure is the basis for the vertical coordinate system axis. A VerticalCS shall have one usesAxis association. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoordinateSystemType"/>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="verticalCSRef" type="gml:VerticalCSRefType"/>
	<!-- =================================================== -->
	<complexType name="VerticalCSRefType">
		<annotation>
			<documentation>Association to a vertical coordinate system, either referencing or containing the definition of that coordinate system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:VerticalCS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="TemporalCS" type="gml:TemporalCSType" substitutionGroup="gml:_CoordinateSystem"/>
	<!-- =================================================== -->
	<complexType name="TemporalCSType">
		<annotation>
			<documentation>A one-dimensional coordinate system containing a single time axis, used to describe the temporal position of a point in the specified time units from a specified time origin. A TemporalCS shall have one usesAxis association. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoordinateSystemType"/>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="temporalCSRef" type="gml:TemporalCSRefType"/>
	<!-- =================================================== -->
	<complexType name="TemporalCSRefType">
		<annotation>
			<documentation>Association to a temporal coordinate system, either referencing or containing the definition of that coordinate system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:TemporalCS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="LinearCS" type="gml:LinearCSType" substitutionGroup="gml:_CoordinateSystem"/>
	<!-- =================================================== -->
	<complexType name="LinearCSType">
		<annotation>
			<documentation>A one-dimensional coordinate system that consists of the points that lie on the single axis described. The associated ordinate is the distance from the specified origin to the point along the axis. Example: usage of the line feature representing a road to describe points on or along that road. A LinearCS shall have one usesAxis association. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoordinateSystemType"/>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="linearCSRef" type="gml:LinearCSRefType"/>
	<!-- =================================================== -->
	<complexType name="LinearCSRefType">
		<annotation>
			<documentation>Association to a linear coordinate system, either referencing or containing the definition of that coordinate system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:LinearCS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="UserDefinedCS" type="gml:UserDefinedCSType" substitutionGroup="gml:_CoordinateSystem"/>
	<!-- =================================================== -->
	<complexType name="UserDefinedCSType">
		<annotation>
			<documentation>A two- or three-dimensional coordinate system that consists of any combination of coordinate axes not covered by any other coordinate system type. An example is a multilinear coordinate system which contains one coordinate axis that may have any 1-D shape which has no intersections with itself. This non-straight axis is supplemented by one or two straight axes to complete a 2 or 3 dimensional coordinate system. The non-straight axis is typically incrementally straight or curved. A UserDefinedCS shall have two or three usesAxis associations. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoordinateSystemType"/>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="userDefinedCSRef" type="gml:UserDefinedCSRefType"/>
	<!-- =================================================== -->
	<complexType name="UserDefinedCSRefType">
		<annotation>
			<documentation>Association to a user-defined coordinate system, either referencing or containing the definition of that coordinate system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:UserDefinedCS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="SphericalCS" type="gml:SphericalCSType" substitutionGroup="gml:_CoordinateSystem"/>
	<!-- =================================================== -->
	<complexType name="SphericalCSType">
		<annotation>
			<documentation>A three-dimensional coordinate system with one distance measured from the origin and two angular coordinates. Not to be confused with an ellipsoidal coordinate system based on an ellipsoid "degenerated" into a sphere. A SphericalCS shall have three usesAxis associations. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoordinateSystemType"/>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="sphericalCSRef" type="gml:SphericalCSRefType"/>
	<!-- =================================================== -->
	<complexType name="SphericalCSRefType">
		<annotation>
			<documentation>Association to a spherical coordinate system, either referencing or containing the definition of that coordinate system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:SphericalCS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="PolarCS" type="gml:PolarCSType" substitutionGroup="gml:_CoordinateSystem"/>
	<!-- =================================================== -->
	<complexType name="PolarCSType">
		<annotation>
			<documentation>A two-dimensional coordinate system in which position is specified by the distance from the origin and the angle between the line from the origin to a point and a reference direction. A PolarCS shall have two usesAxis associations. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoordinateSystemType"/>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="polarCSRef" type="gml:PolarCSRefType"/>
	<!-- =================================================== -->
	<complexType name="PolarCSRefType">
		<annotation>
			<documentation>Association to a polar coordinate system, either referencing or containing the definition of that coordinate system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:PolarCS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="CylindricalCS" type="gml:CylindricalCSType" substitutionGroup="gml:_CoordinateSystem"/>
	<!-- =================================================== -->
	<complexType name="CylindricalCSType">
		<annotation>
			<documentation>A three-dimensional coordinate system consisting of a polar coordinate system extended by a straight coordinate axis perpendicular to the plane spanned by the polar coordinate system. A CylindricalCS shall have three usesAxis associations. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoordinateSystemType"/>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="cylindricalCSRef" type="gml:CylindricalCSRefType"/>
	<!-- =================================================== -->
	<complexType name="CylindricalCSRefType">
		<annotation>
			<documentation>Association to a cylindrical coordinate system, either referencing or containing the definition of that coordinate system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:CylindricalCS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="ObliqueCartesianCS" type="gml:ObliqueCartesianCSType" substitutionGroup="gml:_CoordinateSystem"/>
	<!-- =================================================== -->
	<complexType name="ObliqueCartesianCSType">
		<annotation>
			<documentation>A two- or three-dimensional coordinate system with straight axes that are not necessarily orthogonal. An ObliqueCartesianCS shall have two or three usesAxis associations. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoordinateSystemType"/>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="obliqueCartesianCSRef" type="gml:ObliqueCartesianCSRefType"/>
	<!-- =================================================== -->
	<complexType name="ObliqueCartesianCSRefType">
		<annotation>
			<documentation>Association to an oblique-Cartesian coordinate system, either referencing or containing the definition of that coordinate system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:ObliqueCartesianCS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================================== -->	
	<!-- =================== coordinateOperations.xsd"   ========================= -->
	<!-- ================================================================== -->
	<element name="_CoordinateOperation" type="gml:AbstractCoordinateOperationType" abstract="true" substitutionGroup="gml:Definition"/>
	<!-- =================================================== -->
	<complexType name="AbstractCoordinateOperationBaseType" abstract="true">
		<annotation>
			<documentation>Basic encoding for coordinate operation 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:coordinateOperationName"/>
				</sequence>
				<attribute ref="gml:id" use="required"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="coordinateOperationName" type="gml:CodeType" substitutionGroup="gml:name">
		<annotation>
			<documentation>The name by which this coordinate operation is identified. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<complexType name="AbstractCoordinateOperationType" abstract="true">
		<annotation>
			<documentation>A mathematical operation on coordinates that transforms or converts coordinates to another coordinate reference system. Many but not all coordinate operations (from CRS A to CRS B) also uniquely define the inverse operation (from CRS B to CRS A). In some cases, the operation method algorithm for the inverse operation is the same as for the forward algorithm, but the signs of some operation parameter values must be reversed. In other cases, different algorithms are required for the forward and inverse operations, but the same operation parameter values are used. If (some) entirely different parameter values are needed, a different coordinate operation shall be defined.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoordinateOperationBaseType">
				<sequence>
					<element ref="gml:coordinateOperationID" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Set of alternative identifications of this coordinate operation. The first coordinateOperationID, if any, is normally the primary identification code, and any others are aliases. </documentation>
						</annotation>
					</element>
					<element ref="gml:remarks" minOccurs="0">
						<annotation>
							<documentation>Comments on or information about this coordinate operation, including source information. </documentation>
						</annotation>
					</element>
					<element ref="gml:operationVersion" minOccurs="0"/>
					<element ref="gml:validArea" minOccurs="0"/>
					<element ref="gml:scope" minOccurs="0"/>
					<element ref="gml:_positionalAccuracy" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Unordered set of estimates of the impact of this coordinate operation on point position accuracy. Gives position error estimates for target coordinates of this coordinate operation, assuming no errors in source coordinates. </documentation>
						</annotation>
					</element>
					<element ref="gml:sourceCRS" minOccurs="0"/>
					<element ref="gml:targetCRS" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="coordinateOperationID" type="gml:IdentifierType">
		<annotation>
			<documentation>An identification of a coordinate operation. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="operationVersion" type="string">
		<annotation>
			<documentation>Version of the coordinate transformation (i.e., instantiation due to the stochastic nature of the parameters). Mandatory when describing a transformation, and should not be supplied for a conversion. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="sourceCRS" type="gml:CRSRefType">
		<annotation>
			<documentation>Association to the source CRS (coordinate reference system) of this coordinate operation. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="targetCRS" type="gml:CRSRefType">
		<annotation>
			<documentation>Association to the target CRS (coordinate reference system) of this coordinate operation. For constraints on multiplicity of "sourceCRS" and "targetCRS", see UML model of Coordinate Operation package in OGC Abstract Specification topic 2. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="coordinateOperationRef" type="gml:CoordinateOperationRefType"/>
	<!-- =================================================== -->
	<complexType name="CoordinateOperationRefType">
		<annotation>
			<documentation>Association to a coordinate operation, either referencing or containing the definition of that coordinate operation. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_CoordinateOperation"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="ConcatenatedOperation" type="gml:ConcatenatedOperationType" substitutionGroup="gml:_CoordinateOperation"/>
	<!-- =================================================== -->
	<complexType name="ConcatenatedOperationType">
		<annotation>
			<documentation>An ordered sequence of two or more single coordinate operations. The sequence of operations is constrained by the requirement that the source coordinate reference system of step (n+1) must be the same as the target coordinate reference system of step (n). The source coordinate reference system of the first step and the target coordinate reference system of the last step are the source and target coordinate reference system associated with the concatenated operation. Instead of a forward operation, an inverse operation may be used for one or more of the operation steps mentioned above, if the inverse operation is uniquely defined by the forward operation.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoordinateOperationType">
				<sequence>
					<element ref="gml:usesSingleOperation" minOccurs="2" maxOccurs="unbounded">
						<annotation>
							<documentation>Ordered sequence of associations to the two or more single operations used by this concatenated operation. </documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="usesSingleOperation" type="gml:SingleOperationRefType">
		<annotation>
			<documentation>Association to a single operation. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="concatenatedOperationRef" type="gml:ConcatenatedOperationRefType"/>
	<!-- =================================================== -->
	<complexType name="ConcatenatedOperationRefType">
		<annotation>
			<documentation>Association to a concatenated operation, either referencing or containing the definition of that concatenated operation. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:ConcatenatedOperation"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="_SingleOperation" type="gml:AbstractCoordinateOperationType" abstract="true" substitutionGroup="gml:_CoordinateOperation">
		<annotation>
			<documentation>A single (not concatenated) coordinate operation. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="singleOperationRef" type="gml:SingleOperationRefType"/>
	<!-- =================================================== -->
	<complexType name="SingleOperationRefType">
		<annotation>
			<documentation>Association to a single operation, either referencing or containing the definition of that single operation. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_SingleOperation"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="PassThroughOperation" type="gml:PassThroughOperationType" substitutionGroup="gml:_SingleOperation"/>
	<!-- =================================================== -->
	<complexType name="PassThroughOperationType">
		<annotation>
			<documentation>A pass-through operation specifies that a subset of a coordinate tuple is subject to a specific coordinate operation. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractCoordinateOperationType">
				<sequence>
					<element ref="gml:modifiedCoordinate" maxOccurs="unbounded">
						<annotation>
							<documentation>Ordered sequence of positive integers defining the positions in a coordinate tuple of the coordinates affected by this pass-through operation. </documentation>
						</annotation>
					</element>
					<element ref="gml:usesOperation"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="modifiedCoordinate" type="positiveInteger">
		<annotation>
			<documentation>A positive integer defining a position in a coordinate tuple. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="usesOperation" type="gml:OperationRefType">
		<annotation>
			<documentation>Association to the operation applied to the specified ordinates. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="passThroughOperationRef" type="gml:PassThroughOperationRefType"/>
	<!-- =================================================== -->
	<complexType name="PassThroughOperationRefType">
		<annotation>
			<documentation>Association to a pass through operation, either referencing or containing the definition of that pass through operation. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:PassThroughOperation"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="_Operation" type="gml:AbstractCoordinateOperationType" abstract="true" substitutionGroup="gml:_SingleOperation">
		<annotation>
			<documentation>A parameterized mathematical operation on coordinates that transforms or converts coordinates to another coordinate reference system. This coordinate operation uses an operation method, usually with associated parameter values. However, operation methods and parameter values are directly associated with concrete subtypes, not with this abstract type.

This abstract complexType shall not be directly used, extended, or restricted in a compliant Application Schema. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="operationRef" type="gml:OperationRefType"/>
	<!-- =================================================== -->
	<complexType name="OperationRefType">
		<annotation>
			<documentation>Association to an abstract operation, either referencing or containing the definition of that operation. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_Operation"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<!-- =================================================== -->
	<element name="_GeneralConversion" type="gml:AbstractGeneralConversionType" abstract="true" substitutionGroup="gml:_Operation"/>
	<!-- =================================================== -->
	<complexType name="AbstractGeneralConversionType" abstract="true">
		<annotation>
			<documentation>An abstract operation on coordinates that does not include any change of datum. The best-known example of a coordinate conversion is a map projection. The parameters describing coordinate conversions are defined rather than empirically derived. Note that some conversions have no parameters.

This abstract complexType is expected to be extended for well-known operation methods with many Conversion instances, in Application Schemas that define operation-method-specialized element names and contents. This conversion uses an operation method, usually with associated parameter values. However, operation methods and parameter values are directly associated with concrete subtypes, not with this abstract type. All concrete types derived from this type shall extend this type to include a "usesMethod" element that references the "OperationMethod" element. Similarly, all concrete types derived from this type shall extend this type to include zero or more elements each named "uses...Value" that each use the type of an element substitutable for the "_generalParameterValue" element. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:AbstractCoordinateOperationType">
				<sequence>
					<element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="gml:coordinateOperationName"/>
					<element ref="gml:coordinateOperationID" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="gml:remarks" minOccurs="0"/>
					<element ref="gml:validArea" minOccurs="0"/>
					<element ref="gml:scope" minOccurs="0"/>
					<element ref="gml:_positionalAccuracy" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
				<attribute ref="gml:id" use="required"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="generalConversionRef" type="gml:GeneralConversionRefType"/>
	<!-- =================================================== -->
	<complexType name="GeneralConversionRefType">
		<annotation>
			<documentation>Association to a general conversion, either referencing or containing the definition of that conversion. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_GeneralConversion"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="Conversion" type="gml:ConversionType" substitutionGroup="gml:_GeneralConversion"/>
	<!-- =================================================== -->
	<complexType name="ConversionType">
		<annotation>
			<documentation>A concrete operation on coordinates that does not include any change of Datum. The best-known example of a coordinate conversion is a map projection. The parameters describing coordinate conversions are defined rather than empirically derived. Note that some conversions have no parameters.

This concrete complexType can be used with all operation methods, without using an Application Schema that defines operation-method-specialized element names and contents, especially for methods with only one Conversion instance. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralConversionType">
				<sequence>
					<element ref="gml:usesMethod"/>
					<element ref="gml:usesValue" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Unordered list of composition associations to the set of parameter values used by this conversion operation. </documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="usesMethod" type="gml:OperationMethodRefType">
		<annotation>
			<documentation>Association to the operation method used by this coordinate operation. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="usesValue" type="gml:ParameterValueType">
		<annotation>
			<documentation>Composition association to a parameter value used by this coordinate operation. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="conversionRef" type="gml:ConversionRefType"/>
	<!-- =================================================== -->
	<complexType name="ConversionRefType">
		<annotation>
			<documentation>Association to a concrete general-purpose conversion, either referencing or containing the definition of that conversion. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:Conversion"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="_GeneralTransformation" type="gml:AbstractGeneralTransformationType" abstract="true" substitutionGroup="gml:_Operation"/>
	<!-- =================================================== -->
	<complexType name="AbstractGeneralTransformationType" abstract="true">
		<annotation>
			<documentation>An abstract operation on coordinates that usually includes a change of Datum. The parameters of a coordinate transformation are empirically derived from data containing the coordinates of a series of points in both coordinate reference systems. This computational process is usually "over-determined", allowing derivation of error (or accuracy) estimates for the transformation. Also, the stochastic nature of the parameters may result in multiple (different) versions of the same coordinate transformation.

This abstract complexType is expected to be extended for well-known operation methods with many Transformation instances, in Application Schemas that define operation-method-specialized value element names and contents. This transformation uses an operation method with associated parameter values. However, operation methods and parameter values are directly associated with concrete subtypes, not with this abstract type. All concrete types derived from this type shall extend this type to include a "usesMethod" element that references one "OperationMethod" element. Similarly, all concrete types derived from this type shall extend this type to include one or more elements each named "uses...Value" that each use the type of an element substitutable for the "_generalParameterValue" element. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:AbstractCoordinateOperationType">
				<sequence>
					<element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="gml:coordinateOperationName"/>
					<element ref="gml:coordinateOperationID" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="gml:remarks" minOccurs="0"/>
					<element ref="gml:operationVersion"/>
					<element ref="gml:validArea" minOccurs="0"/>
					<element ref="gml:scope" minOccurs="0"/>
					<element ref="gml:_positionalAccuracy" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="gml:sourceCRS"/>
					<element ref="gml:targetCRS"/>
				</sequence>
				<attribute ref="gml:id" use="required"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="generalTransformationRef" type="gml:GeneralTransformationRefType"/>
	<!-- =================================================== -->
	<complexType name="GeneralTransformationRefType">
		<annotation>
			<documentation>Association to a general transformation, either referencing or containing the definition of that transformation. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_GeneralTransformation"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="Transformation" type="gml:TransformationType" substitutionGroup="gml:_GeneralTransformation"/>
	<!-- =================================================== -->
	<complexType name="TransformationType">
		<annotation>
			<documentation>A concrete operation on coordinates that usually includes a change of datum. The parameters of a coordinate transformation are empirically derived from data containing the coordinates of a series of points in both coordinate reference systems. This computational process is usually "over-determined", allowing derivation of error (or accuracy) estimates for the transformation. Also, the stochastic nature of the parameters may result in multiple (different) versions of the same coordinate transformation.

This concrete complexType can be used for all operation methods, without using an Application Schema that defines operation-method-specialized element names and contents, especially for methods with only one Transformation instance. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralTransformationType">
				<sequence>
					<element ref="gml:usesMethod"/>
					<element ref="gml:usesValue" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Unordered set of composition associations to the set of parameter values used by this transformation operation. </documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="transformationRef" type="gml:TransformationRefType"/>
	<!-- =================================================== -->
	<complexType name="TransformationRefType">
		<annotation>
			<documentation>Association to a transformation, either referencing or containing the definition of that transformation. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:Transformation"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<!-- =================================================== -->
	<element name="_generalParameterValue" type="gml:AbstractGeneralParameterValueType" abstract="true"/>
	<!-- =================================================== -->
	<complexType name="AbstractGeneralParameterValueType" abstract="true">
		<annotation>
			<documentation>Abstract parameter value or group of parameter values.
			
This abstract complexType is expected to be extended and restricted for well-known operation methods with many instances, in Application Schemas that define operation-method-specialized element names and contents. Specific parameter value elements are directly contained in concrete subtypes, not in this abstract type. All concrete types derived from this type shall extend this type to include one "...Value" element with an appropriate type, which should be one of the element types allowed in the ParameterValueType. In addition, all derived concrete types shall extend this type to include a "valueOfParameter" element that references one element substitutable for the "OperationParameter" element. </documentation>
		</annotation>
		<sequence/>
	</complexType>
	<!-- =================================================== -->
	<element name="parameterValue" type="gml:ParameterValueType" substitutionGroup="gml:_generalParameterValue"/>
	<!-- =================================================== -->
	<complexType name="ParameterValueType">
		<annotation>
			<documentation>A parameter value, ordered sequence of values, or reference to a file of parameter values. This concrete complexType can be used for operation methods without using an Application Schema that defines operation-method-specialized element names and contents, especially for methods with only one instance. This complexType can be used, extended, or restricted for well-known operation methods, especially for methods with many instances. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<choice>
						<element ref="gml:value"/>
						<element ref="gml:dmsAngleValue"/>
						<element ref="gml:stringValue"/>
						<element ref="gml:integerValue"/>
						<element ref="gml:booleanValue"/>
						<element ref="gml:valueList"/>
						<element ref="gml:integerValueList"/>
						<element ref="gml:valueFile"/>
					</choice>
					<element ref="gml:valueOfParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="value" type="gml:MeasureType">
		<annotation>
			<documentation>Numeric value of an operation parameter, with its associated unit of measure. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="dmsAngleValue" type="gml:DMSAngleType">
		<annotation>
			<documentation>Value of an angle operation parameter, in either degree-minute-second format or single value format. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="stringValue" type="string">
		<annotation>
			<documentation>String value of an operation parameter. A string value does not have an associated unit of measure. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="integerValue" type="positiveInteger">
		<annotation>
			<documentation>Positive integer value of an operation parameter, usually used for a count. An integer value does not have an associated unit of measure. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="booleanValue" type="boolean">
		<annotation>
			<documentation>Boolean value of an operation parameter. A Boolean value does not have an associated unit of measure. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="valueList" type="gml:MeasureListType">
		<annotation>
			<documentation>Ordered sequence of two or more numeric values of an operation parameter list, where each value has the same associated unit of measure. An element of this type contains a space-separated sequence of double values. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="integerValueList" type="gml:integerList">
		<annotation>
			<documentation>Ordered sequence of two or more integer values of an operation parameter list, usually used for counts. These integer values do not have an associated unit of measure. An element of this type contains a space-separated sequence of integer values. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="valueFile" type="anyURI">
		<annotation>
			<documentation>Reference to a file or a part of a file containing one or more parameter values, each numeric value with its associated unit of measure. When referencing a part of a file, that file must contain multiple identified parts, such as an XML encoded document. Furthermore, the referenced file or part of a file can reference another part of the same or different files, as allowed in XML documents. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="valueOfParameter" type="gml:OperationParameterRefType">
		<annotation>
			<documentation>Association to the operation parameter that this is a value of. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<!-- =================================================== -->
	<element name="parameterValueGroup" type="gml:ParameterValueGroupType" substitutionGroup="gml:_generalParameterValue"/>
	<!-- =================================================== -->
	<complexType name="ParameterValueGroupType">
		<annotation>
			<documentation>A group of related parameter values. The same group can be repeated more than once in a Conversion, Transformation, or higher level parameterValueGroup, if those instances contain different values of one or more parameterValues which suitably distinquish among those groups. This concrete complexType can be used for operation methods without using an Application Schema that defines operation-method-specialized element names and contents, especially for methods with only one instance. This complexType can be used, extended, or restricted for well-known operation methods, especially for methods with many instances. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractGeneralParameterValueType">
				<sequence>
					<element ref="gml:includesValue" minOccurs="2" maxOccurs="unbounded">
						<annotation>
							<documentation>Unordered set of composition associations to the parameter values and groups of values included in this group. </documentation>
						</annotation>
					</element>
					<element ref="gml:valuesOfGroup"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="includesValue" type="gml:AbstractGeneralParameterValueType" substitutionGroup="gml:_generalParameterValue">
		<annotation>
			<documentation>A composition association to a parameter value or group of values included in this group. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="valuesOfGroup" type="gml:OperationParameterGroupRefType">
		<annotation>
			<documentation>Association to the operation parameter group for which this element provides parameter values. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<!-- =================================================== -->
	<element name="OperationMethod" type="gml:OperationMethodType" substitutionGroup="gml:Definition"/>
	<!-- =================================================== -->
	<complexType name="OperationMethodBaseType" abstract="true">
		<annotation>
			<documentation>Basic encoding for operation method 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:methodName"/>
				</sequence>
				<attribute ref="gml:id" use="required"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="methodName" type="gml:CodeType" substitutionGroup="gml:name">
		<annotation>
			<documentation>The name by which this operation method is identified. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<complexType name="OperationMethodType">
		<annotation>
			<documentation>Definition of an algorithm used to perform a coordinate operation. Most operation methods use a number of operation parameters, although some coordinate conversions use none. Each coordinate operation using the method assigns values to these parameters. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:OperationMethodBaseType">
				<sequence>
					<element ref="gml:methodID" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Set of alternative identifications of this operation method. The first methodID, if any, is normally the primary identification code, and any others are aliases. </documentation>
						</annotation>
					</element>
					<element ref="gml:remarks" minOccurs="0">
						<annotation>
							<documentation>Comments on or information about this operation method, including source information.</documentation>
						</annotation>
					</element>
					<element ref="gml:methodFormula"/>
					<element ref="gml:sourceDimensions"/>
					<element ref="gml:targetDimensions"/>
					<element ref="gml:usesParameter" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Unordered list of associations to the set of operation parameters and parameter groups used by this operation method. </documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="methodID" type="gml:IdentifierType">
		<annotation>
			<documentation>An identification of an operation method. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="methodFormula" type="gml:CodeType">
		<annotation>
			<documentation>Formula(s) used by this operation method. The value may be a reference to a publication. Note that the operation method may not be analytic, in which case this element references or contains the procedure, not an analytic formula.</documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="sourceDimensions" type="positiveInteger">
		<annotation>
			<documentation>Number of dimensions in the source CRS of this operation method. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="targetDimensions" type="positiveInteger">
		<annotation>
			<documentation>Number of dimensions in the target CRS of this operation method. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="usesParameter" type="gml:AbstractGeneralOperationParameterRefType">
		<annotation>
			<documentation>Association to an operation parameter or parameter group used by this operation method. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="operationMethodRef" type="gml:OperationMethodRefType"/>
	<!-- =================================================== -->
	<complexType name="OperationMethodRefType">
		<annotation>
			<documentation>Association to a concrete general-purpose operation method, either referencing or containing the definition of that method. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:OperationMethod"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<!-- =================================================== -->
	<element name="_GeneralOperationParameter" type="gml:AbstractGeneralOperationParameterType" abstract="true" substitutionGroup="gml:Definition"/>
	<!-- =================================================== -->
	<complexType name="AbstractGeneralOperationParameterType" abstract="true">
		<annotation>
			<documentation>Abstract definition of a parameter or group of parameters used by an operation method. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:DefinitionType">
				<sequence>
					<element ref="gml:minimumOccurs" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="minimumOccurs" type="nonNegativeInteger">
		<annotation>
			<documentation>The minimum number of times that values for this parameter group or parameter are required. If this attribute is omitted, the minimum number is one. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="abstractGeneralOperationParameterRef" type="gml:AbstractGeneralOperationParameterRefType"/>
	<!-- =================================================== -->
	<complexType name="AbstractGeneralOperationParameterRefType">
		<annotation>
			<documentation>Association to an operation parameter or group, either referencing or containing the definition of that parameter or group. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_GeneralOperationParameter"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="OperationParameter" type="gml:OperationParameterType" substitutionGroup="gml:_GeneralOperationParameter"/>
	<!-- =================================================== -->
	<complexType name="OperationParameterBaseType" abstract="true">
		<annotation>
			<documentation>Basic encoding for operation parameter objects, simplifying and restricting the DefinitionType as needed. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:AbstractGeneralOperationParameterType">
				<sequence>
					<element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="gml:parameterName"/>
					<element ref="gml:minimumOccurs" minOccurs="0"/>
				</sequence>
				<attribute ref="gml:id" use="required"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="parameterName" type="gml:CodeType" substitutionGroup="gml:name">
		<annotation>
			<documentation>The name by which this operation parameter is identified. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<complexType name="OperationParameterType">
		<annotation>
			<documentation>The definition of a parameter used by an operation method. Most parameter values are numeric, but other types of parameter values are possible. This complexType is expected to be used or extended for all operation methods, without defining operation-method-specialized element names.  </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:OperationParameterBaseType">
				<sequence>
					<element ref="gml:parameterID" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Set of alternative identifications of this operation parameter. The first parameterID, if any, is normally the primary identification code, and any others are aliases. </documentation>
						</annotation>
					</element>
					<element ref="gml:remarks" minOccurs="0">
						<annotation>
							<documentation>Comments on or information about this operation parameter, including source information. </documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="parameterID" type="gml:IdentifierType">
		<annotation>
			<documentation>An identification of an operation parameter. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="operationParameterRef" type="gml:OperationParameterRefType"/>
	<!-- =================================================== -->
	<complexType name="OperationParameterRefType">
		<annotation>
			<documentation>Association to an operation parameter, either referencing or containing the definition of that parameter. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:OperationParameter"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="OperationParameterGroup" type="gml:OperationParameterGroupType" substitutionGroup="gml:_GeneralOperationParameter"/>
	<!-- =================================================== -->
	<complexType name="OperationParameterGroupBaseType" abstract="true">
		<annotation>
			<documentation>Basic encoding for operation parameter group objects, simplifying and restricting the DefinitionType as needed. </documentation>
		</annotation>
		<complexContent>
			<restriction base="gml:AbstractGeneralOperationParameterType">
				<sequence>
					<element ref="gml:metaDataProperty" minOccurs="0" maxOccurs="unbounded"/>
					<element ref="gml:groupName"/>
					<element ref="gml:minimumOccurs" minOccurs="0"/>
				</sequence>
				<attribute ref="gml:id" use="required"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="groupName" type="gml:CodeType" substitutionGroup="gml:name">
		<annotation>
			<documentation>The name by which this operation parameter group is identified. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<complexType name="OperationParameterGroupType">
		<annotation>
			<documentation>The definition of a group of parameters used by an operation method. This complexType is expected to be used or extended for all applicable operation methods, without defining operation-method-specialized element names.  </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:OperationParameterGroupBaseType">
				<sequence>
					<element ref="gml:groupID" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Set of alternative identifications of this operation parameter group. The first groupID, if any, is normally the primary identification code, and any others are aliases. </documentation>
						</annotation>
					</element>
					<element ref="gml:remarks" minOccurs="0">
						<annotation>
							<documentation>Comments on or information about this operation parameter group, including source information. </documentation>
						</annotation>
					</element>
					<element ref="gml:maximumOccurs" minOccurs="0"/>
					<element ref="gml:includesParameter" minOccurs="2" maxOccurs="unbounded">
						<annotation>
							<documentation>Unordered list of associations to the set of operation parameters that are members of this group. </documentation>
						</annotation>
					</element>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="groupID" type="gml:IdentifierType">
		<annotation>
			<documentation>An identification of an operation parameter group. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="maximumOccurs" type="positiveInteger">
		<annotation>
			<documentation>The maximum number of times that values for this parameter group can be included. If this attribute is omitted, the maximum number is one. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="includesParameter" type="gml:AbstractGeneralOperationParameterRefType">
		<annotation>
			<documentation>Association to an operation parameter that is a member of a group. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="operationParameterGroupRef" type="gml:OperationParameterRefType"/>
	<!-- =================================================== -->
	<complexType name="OperationParameterGroupRefType">
		<annotation>
			<documentation>Association to an operation parameter, either referencing or containing the definition of that parameter. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:OperationParameterGroup"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- ================================================================== -->	
	<!-- ============================== datums.xsd"   ========================= -->
	<!-- ================================================================== -->
	<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:datumName"/>
				</sequence>
				<attribute ref="gml:id" use="required"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="datumName" type="gml:CodeType" 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 of the coordinate reference system. Each datum subtype can be associated with only specific types of coordinate systems. 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">
						<annotation>
							<documentation>Set of alternative identifications of this datum. The first datumID, if any, is normally the primary identification code, and any others are aliases. </documentation>
						</annotation>
					</element>
					<element ref="gml:remarks" minOccurs="0">
						<annotation>
							<documentation>Comments on this reference system, including source information. </documentation>
						</annotation>
					</element>
					<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. </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. When appropriate, the coordinates of this anchor point can be referenced in another document, such as referencing a GML feature that references or includes a point position.
- 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 after 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. An old datum can remain valid after a new datum is defined. Alternatively, a datum may be superseded by a later datum, in which case the realization epoch for the new datum defines the upper limit for the validity of the superseded datum. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="datumRef" type="gml:DatumRefType"/>
	<!-- =================================================== -->
	<complexType name="DatumRefType">
		<annotation>
			<documentation>Association to a datum, either referencing or containing the definition of that datum. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_Datum"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="EngineeringDatum" type="gml:EngineeringDatumType" substitutionGroup="gml:_Datum"/>
	<!-- =================================================== -->
	<complexType name="EngineeringDatumType">
		<annotation>
			<documentation>An engineering datum defines the origin of an engineering coordinate reference system, and is used in a region around that origin. This origin can be fixed with respect to the earth (such as a defined point at a construction site), or be a defined point on a moving vehicle (such as on a ship or satellite). </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractDatumType"/>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="engineeringDatumRef" type="gml:EngineeringDatumRefType"/>
	<!-- =================================================== -->
	<complexType name="EngineeringDatumRefType">
		<annotation>
			<documentation>Association to an engineering datum, either referencing or containing the definition of that datum. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:EngineeringDatum"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</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, and is 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"/>
	<!-- =================================================== -->
	<complexType name="ImageDatumRefType">
		<annotation>
			<documentation>Association to an image datum, either referencing or containing the definition of that datum. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:ImageDatum"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</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 with respect to the Earth for any of the height types recognized by this standard. There are several types of Vertical Datums, and each may place constraints on the Coordinate Axis with which it is combined to create a Vertical CRS. </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"/>
	<!-- =================================================== -->
	<complexType name="VerticalDatumRefType">
		<annotation>
			<documentation>Association to a vertical datum, either referencing or containing the definition of that datum. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:VerticalDatum"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</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>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"/>
	<!-- =================================================== -->
	<complexType name="TemporalDatumRefType">
		<annotation>
			<documentation>Association to a temporal datum, either referencing or containing the definition of that datum. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:TemporalDatum"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="GeodeticDatum" type="gml:GeodeticDatumType" substitutionGroup="gml:_Datum"/>
	<!-- =================================================== -->
	<complexType name="GeodeticDatumType">
		<annotation>
			<documentation>A geodetic datum defines the precise location and orientation in 3-dimensional space of a defined ellipsoid (or sphere) that approximates the shape of the earth, 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"/>
	<!-- =================================================== -->
	<complexType name="GeodeticDatumRefType">
		<annotation>
			<documentation>Association to a geodetic datum, either referencing or containing the definition of that datum. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:GeodeticDatum"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</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:meridianName"/>
				</sequence>
				<attribute ref="gml:id" use="required"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="meridianName" type="gml:CodeType" substitutionGroup="gml:name">
		<annotation>
			<documentation>The name by which this prime meridian is identified. The meridianName most common value is Greenwich, and that value shall be used when the greenwichLongitude value is zero. </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">
						<annotation>
							<documentation>Set of alternative identifications of this prime meridian. The first meridianID, if any, is normally the primary identification code, and any others are aliases. </documentation>
						</annotation>
					</element>
					<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:greenwichLongitude"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="meridianID" type="gml:IdentifierType">
		<annotation>
			<documentation>An identification of a prime meridian. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="greenwichLongitude" type="gml:AngleChoiceType">
		<annotation>
			<documentation>Longitude of the prime meridian measured from the Greenwich meridian, positive eastward. The greenwichLongitude most common value is zero, and that value shall be used when the meridianName value is Greenwich. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="primeMeridianRef" type="gml:PrimeMeridianRefType"/>
	<!-- =================================================== -->
	<complexType name="PrimeMeridianRefType">
		<annotation>
			<documentation>Association to a prime meridian, either referencing or containing the definition of that meridian. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:PrimeMeridian"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</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:ellipsoidName"/>
				</sequence>
				<attribute ref="gml:id" use="required"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="ellipsoidName" type="gml:CodeType" 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">
						<annotation>
							<documentation>Set of alternative identifications of this ellipsoid. The first ellipsoidID, if any, is normally the primary identification code, and any others are aliases. </documentation>
						</annotation>
					</element>
					<element ref="gml:remarks" minOccurs="0">
						<annotation>
							<documentation>Comments on or information about this ellipsoid, including source information. </documentation>
						</annotation>
					</element>
					<element ref="gml:semiMajorAxis"/>
					<element ref="gml:secondDefiningParameter"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="ellipsoidID" type="gml:IdentifierType">
		<annotation>
			<documentation>An identification of an ellipsoid. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="semiMajorAxis" type="gml:MeasureType">
		<annotation>
			<documentation>Length of the semi-major axis of the ellipsoid, with its units. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for a length, such as metres or feet. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="ellipsoidRef" type="gml:EllipsoidRefType"/>
	<!-- =================================================== -->
	<complexType name="EllipsoidRefType">
		<annotation>
			<documentation>Association to an ellipsoid, either referencing or containing the definition of that ellipsoid. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:Ellipsoid"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</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:MeasureType">
		<annotation>
			<documentation>Inverse flattening value of the ellipsoid. Value is a scale factor (or ratio) that has no physical unit. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for a scale factor, such as percent, permil, or parts-per-million. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="semiMinorAxis" type="gml:MeasureType">
		<annotation>
			<documentation>Length of the semi-minor axis of the ellipsoid. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for a length, such as metres or feet. </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>
	<!-- ================================================================== -->	
	<!-- ============= referenceSystems.xsd"   ========================= -->
	<!-- ================================================================== -->
	<element name="_ReferenceSystem" type="gml:AbstractReferenceSystemType" abstract="true" substitutionGroup="gml:Definition"/>
	<!-- =================================================== -->
	<complexType name="AbstractReferenceSystemBaseType" abstract="true">
		<annotation>
			<documentation>Basic encoding for reference system 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:srsName"/>
				</sequence>
				<attribute ref="gml:id" use="required"/>
			</restriction>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="srsName" type="gml:CodeType" substitutionGroup="gml:name">
		<annotation>
			<documentation>The name by which this reference system is identified. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<complexType name="AbstractReferenceSystemType" abstract="true">
		<annotation>
			<documentation>Description of a spatial and/or temporal reference system used by a dataset. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:AbstractReferenceSystemBaseType">
				<sequence>
					<element ref="gml:srsID" minOccurs="0" maxOccurs="unbounded">
						<annotation>
							<documentation>Set of alterative identifications of this reference system. The first srsID, if any, is normally the primary identification code, and any others are aliases. </documentation>
						</annotation>
					</element>
					<element ref="gml:remarks" minOccurs="0">
						<annotation>
							<documentation>Comments on or information about this reference system, including source information. </documentation>
						</annotation>
					</element>
					<element ref="gml:validArea" minOccurs="0"/>
					<element ref="gml:scope" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =================================================== -->
	<element name="srsID" type="gml:IdentifierType">
		<annotation>
			<documentation>An identification of a reference system. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="referenceSystemRef" type="gml:ReferenceSystemRefType"/>
	<!-- =================================================== -->
	<complexType name="ReferenceSystemRefType">
		<annotation>
			<documentation>Association to a reference system, either referencing or containing the definition of that reference system. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_ReferenceSystem"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<element name="_CRS" type="gml:AbstractReferenceSystemType" abstract="true" substitutionGroup="gml:_ReferenceSystem">
		<annotation>
			<documentation>Abstract coordinate reference system, usually defined by a coordinate system and a datum. 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>
	</element>
	<!-- =================================================== -->
	<element name="crsRef" type="gml:CRSRefType"/>
	<!-- =================================================== -->
	<complexType name="CRSRefType">
		<annotation>
			<documentation>Association to a CRS abstract coordinate reference system, either referencing or containing the definition of that CRS. </documentation>
		</annotation>
		<sequence minOccurs="0">
			<element ref="gml:_CRS"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
	</complexType>
	<!-- =================================================== -->
	<!-- =================================================== -->
	<complexType name="IdentifierType">
		<annotation>
			<documentation>An identification of a CRS object. The first use of the IdentifierType for an object, if any, is normally the primary identification code, and any others are aliases. </documentation>
		</annotation>
		<sequence>
			<element ref="gml:name">
				<annotation>
					<documentation>The code or name for this Identifier, often from a controlled list or pattern defined by a code space. The optional codeSpace attribute is normally included to identify or reference a code space within which one or more codes are defined. This code space is often defined by some authority organization, where one organization may define multiple code spaces. The range and format of each Code Space identifier is defined by that code space authority. Information about that code space authority can be included as metaDataProperty elements which are optionally allowed in all CRS objects. </documentation>
				</annotation>
			</element>
			<element ref="gml:version" minOccurs="0"/>
			<element ref="gml:remarks" minOccurs="0">
				<annotation>
					<documentation>Remarks about this code or alias. </documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<!-- =================================================== -->
	<element name="version" type="string">
		<annotation>
			<documentation>Identifier of the version of the associated codeSpace or code, as specified by the codeSpace or code authority. This version is included only when the "code" or "codeSpace" uses versions. When appropriate, the version is identified by the effective date, coded using ISO 8601 date format. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="remarks" type="gml:StringOrRefType">
		<annotation>
			<documentation>Information about this object or code. Contains text or refers to external text.  </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="scope" type="string">
		<annotation>
			<documentation>Description of domain of usage, or limitations of usage, for which this CRS object is valid. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="validArea" type="gml:ExtentType">
		<annotation>
			<documentation>Area or region in which this CRS object is valid. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<complexType name="ExtentType">
		<annotation>
			<documentation>Information about the spatial, vertical, and/or temporal extent of a reference system object. Constraints: At least one of the elements "description", "boundingBox", "boundingPolygon", "verticalExtent", and temporalExtent" must be included, but more that one can be included when appropriate. Furthermore, more than one "boundingBox", "boundingPolygon", "verticalExtent", and/or temporalExtent" element can be included, with more than one meaning the union of the individual domains. </documentation>
		</annotation>
		<sequence>
			<element ref="gml:description" minOccurs="0">
				<annotation>
					<documentation>Description of spatial and/or temporal extent of this object. </documentation>
				</annotation>
			</element>
			<choice>
				<annotation>
					<documentation>Geographic domain of this reference system object. </documentation>
				</annotation>
				<element ref="gml:boundingBox" minOccurs="0" maxOccurs="unbounded">
					<annotation>
						<documentation>Unordered list of bounding boxes (or envelopes) whose union describes the spatial domain of this object. </documentation>
					</annotation>
				</element>
				<element ref="gml:boundingPolygon" minOccurs="0" maxOccurs="unbounded">
					<annotation>
						<documentation>Unordered list of bounding polygons whose union describes the spatial domain of this object. </documentation>
					</annotation>
				</element>
			</choice>
			<element ref="gml:verticalExtent" minOccurs="0" maxOccurs="unbounded">
				<annotation>
					<documentation>Unordered list of vertical intervals whose union describes the spatial domain of this object. </documentation>
				</annotation>
			</element>
			<element ref="gml:temporalExtent" minOccurs="0" maxOccurs="unbounded">
				<annotation>
					<documentation>Unordered list of time periods whose union describes the spatial domain of this object. </documentation>
				</annotation>
			</element>
		</sequence>
	</complexType>
	<!-- =================================================== -->
	<element name="boundingBox" type="gml:EnvelopeType">
		<annotation>
			<documentation>A bounding box (or envelope) defining the spatial domain of this object. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="boundingPolygon" type="gml:PolygonType">
		<annotation>
			<documentation>A bounding polygon defining the horizontal spatial domain of this object. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="verticalExtent" type="gml:EnvelopeType">
		<annotation>
			<documentation>An interval defining the vertical spatial domain of this object. </documentation>
		</annotation>
	</element>
	<!-- =================================================== -->
	<element name="temporalExtent" type="gml:TimePeriodType">
		<annotation>
			<documentation>A time period defining the temporal domain of this object. </documentation>
		</annotation>
	</element>
	<!-- ================================================================== -->
	<!-- ========================= units.xsd ============================== -->
	<!-- ================================================================== -->
	<!-- =========================================================== -->
	<element name="UnitDefinition" type="gml:UnitDefinitionType" substitutionGroup="gml:Definition"/>
	<!-- =========================================================== -->
	<complexType name="UnitDefinitionType">
		<annotation>
			<documentation>Definition of a unit of measure (or uom). The definition includes a quantityType property, which indicates the phenomenon to which the units apply, and a catalogSymbol, which gives the short symbol used for this unit. This element is used when the relationship of this unit to other units or units systems is unknown.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:DefinitionType">
				<sequence>
					<element ref="gml:quantityType"/>
					<element ref="gml:catalogSymbol" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="BaseUnit" type="gml:BaseUnitType" substitutionGroup="gml:UnitDefinition"/>
	<!-- =========================================================== -->
	<complexType name="BaseUnitType">
		<annotation>
			<documentation>Definition of a unit of measure which is a base unit from the system of units.  A base unit cannot be derived by combination of other base units within this system.  Sometimes known as "fundamental unit".  </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:UnitDefinitionType">
				<sequence>
					<element name="unitsSystem" type="gml:ReferenceType"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="DerivedUnit" type="gml:DerivedUnitType" substitutionGroup="gml:UnitDefinition"/>
	<!-- ============================================================ -->
	<complexType name="DerivedUnitType">
		<annotation>
			<documentation>Definition of a unit of measure which is defined through algebraic combination of more primitive units, which are usually base units from a particular system of units. Derived units based directly on base units are usually preferred for quantities other than the base units or fundamental quantities within a system.  If a derived unit is not the preferred unit, the ConventionalUnit element should be used instead.</documentation>
		</annotation>
		<complexContent>
			<extension base="gml:UnitDefinitionType">
				<sequence>
					<element ref="gml:derivationUnitTerm" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="ConventionalUnit" type="gml:ConventionalUnitType" substitutionGroup="gml:UnitDefinition"/>
	<!-- =========================================================== -->
	<complexType name="ConventionalUnitType">
		<annotation>
			<documentation>Definition of a unit of measure which is related to a preferred unit for this quantity type through a conversion formula.  A method for deriving this unit by algebraic combination of more primitive units, may also be provided.  </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:UnitDefinitionType">
				<sequence>
					<choice>
						<element ref="gml:conversionToPreferredUnit"/>
						<element ref="gml:roughConversionToPreferredUnit"/>
					</choice>
					<element ref="gml:derivationUnitTerm" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="quantityType" type="gml:StringOrRefType">
		<annotation>
			<documentation>Informal description of the phenomenon or type of quantity that is measured or observed. For example, "length", "angle", "time", "pressure", or "temperature". When the quantity is the result of an observation or measurement, this term is known as Observable Type or Measurand. </documentation>
		</annotation>
	</element>
	<!-- =========================================================== -->
	<element name="catalogSymbol" type="gml:CodeType">
		<annotation>
			<documentation>For global understanding of a unit of measure, it is often possible to reference an item in a catalog of units, using a symbol in that catalog. The "codeSpace" attribute in "CodeType" identifies a namespace for the catalog symbol value, and might reference the catalog. The "string" value in "CodeType" contains the value of a symbol that is unique within this catalog namespace. This symbol often appears explicitly in the catalog, but it could be a combination of symbols using a specified algebra of units. For example, the symbol "cm" might indicate that it is the "m" symbol combined with the "c" prefix. </documentation>
		</annotation>
	</element>
	<!-- =========================================================== -->
	<element name="derivationUnitTerm" type="gml:DerivationUnitTermType"/>
	<!-- =========================================================== -->
	<complexType name="DerivationUnitTermType">
		<annotation>
			<documentation>Definition of one unit term for a derived unit of measure. This unit term references another unit of measure (uom) and provides an integer exponent applied to that unit in defining the compound unit. The exponent can be positive or negative, but not zero. </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:UnitOfMeasureType">
				<attribute name="exponent" type="integer"/>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<element name="conversionToPreferredUnit" type="gml:ConversionToPreferredUnitType">
		<annotation>
			<documentation>This element is included when this unit has an accurate conversion to the preferred unit for this quantity type. </documentation>
		</annotation>
	</element>
	<!-- =========================================================== -->
	<element name="roughConversionToPreferredUnit" type="gml:ConversionToPreferredUnitType">
		<annotation>
			<documentation>This element is included when the correct definition of this unit is unknown, but this unit has a rough or inaccurate conversion to the preferred unit for this quantity type. </documentation>
		</annotation>
	</element>
	<!-- =========================================================== -->
	<complexType name="ConversionToPreferredUnitType">
		<annotation>
			<documentation>Relation of a unit to the preferred unit for this quantity type, specified by an arithmetic conversion (scaling and/or offset). A preferred unit is either a base unit or a derived unit selected for all units of one quantity type. The mandatory attribute "uom" shall reference the preferred unit that this conversion applies to. The conversion is specified by one of two alternative elements: "factor" or "formula". </documentation>
		</annotation>
		<complexContent>
			<extension base="gml:UnitOfMeasureType">
				<choice>
					<element name="factor" type="double">
						<annotation>
							<documentation>Specification of the scale factor by which a value using this unit of measure can be multiplied to obtain the corresponding value using the preferred unit of measure. </documentation>
						</annotation>
					</element>
					<element name="formula" type="gml:FormulaType">
						<annotation>
							<documentation>Specification of the formula by which a value using this unit of measure can be converted to obtain the corresponding value using the preferred unit of measure. </documentation>
						</annotation>
					</element>
				</choice>
			</extension>
		</complexContent>
	</complexType>
	<!-- =========================================================== -->
	<complexType name="FormulaType">
		<annotation>
			<documentation>Paremeters of a simple formula by which a value using this unit of measure can be converted to the corresponding value using the preferred unit of measure. The formula element contains elements a, b, c and d, whose values use the XML Schema type "double". These values are used in the formula y = (a + bx) / (c + dx), where x is a value using this unit, and y is the corresponding value using the preferred unit. The elements a and d are optional, and if values are not provided, those parameters are considered to be zero. If values are not provided for both a and d, the formula is equivalent to a fraction with numerator and denominator parameters. </documentation>
		</annotation>
		<sequence>
			<element name="a" type="double" minOccurs="0"/>
			<element name="b" type="double"/>
			<element name="c" type="double"/>
			<element name="d" type="double" minOccurs="0"/>
		</sequence>
	</complexType>
	<!-- ================================================================== -->
	<!-- ================== gmlBase.xsd ==================================== -->
	<!-- ================================================================== -->
	<element name="metaDataProperty" type="gml:MetaDataPropertyType">
		<annotation>
			<documentation>Contains or refers to a metadata package that contains metadata properties.  </documentation>
		</annotation>
	</element>
	<!-- =========================================================== -->
	<complexType name="MetaDataPropertyType">
		<annotation>
			<documentation>Base type for complex metadata property types.</documentation>
		</annotation>
		<sequence minOccurs="0">
			<!-- <element ref="gml:_MetaData"/> -->
			<any processContents="lax"/>
		</sequence>
		<attributeGroup ref="gml:AssociationAttributeGroup"/>
		<attribute name="about" type="anyURI" use="optional"/>
	</complexType>
	<!-- ================================================================== -->
	<!-- ======================= measures.xsd =============================== -->
	<!-- ================================================================== -->
	<complexType name="ScaleType">
		<annotation>
			<documentation>Value of a scale factor (or ratio) that has no physical unit. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for a scale factor, such as percent, permil, or parts-per-million. </documentation>
		</annotation>
		<simpleContent>
			<restriction base="gml:MeasureType"/>
		</simpleContent>
	</complexType>	
	<!-- =========================================================== -->
	<complexType name="AngleChoiceType">
		<annotation>
			<documentation>Value of an angle quantity provided in either degree-minute-second format or single value format. </documentation>
		</annotation>
		<choice>
			<element ref="gml:angle"/>
			<element ref="gml:dmsAngle"/>
		</choice>
	</complexType>
	<!-- =========================================================== -->
	<element name="angle" type="gml:MeasureType"/>
	<!-- =========================================================== -->
	<element name="dmsAngle" type="gml:DMSAngleType"/>
	<!-- =========================================================== -->
	<complexType name="DMSAngleType">
		<annotation>
			<documentation>Angle value provided in degree-minute-second or degree-minute format. </documentation>
		</annotation>
		<sequence>
			<element ref="gml:degrees"/>
			<choice minOccurs="0">
				<element ref="gml:decimalMinutes"/>
				<sequence>
					<element ref="gml:minutes"/>
					<element ref="gml:seconds" minOccurs="0"/>
				</sequence>
			</choice>
		</sequence>
	</complexType>
	<!-- =========================================================== -->
	<element name="degrees" type="gml:DegreesType"/>
	<!-- =========================================================== -->
	<complexType name="DegreesType">
		<annotation>
			<documentation>Integer number of degrees, plus the angle direction. This element can be used for geographic Latitude and Longitude. For Latitude, the XML attribute direction can take the values "N" or "S", meaning North or South of the equator. For Longitude, direction can take the values "E" or "W", meaning East or West of the prime meridian. This element can also be used for other angles. In that case, the direction can take the values "+" or "-" (of SignType), in the specified rotational direction from a specified reference direction. </documentation>
		</annotation>
		<simpleContent>
			<extension base="gml:DegreeValueType">
				<attribute name="direction">
					<simpleType>
						<union>
							<simpleType>
								<restriction base="string">
									<enumeration value="N"/>
									<enumeration value="E"/>
									<enumeration value="S"/>
									<enumeration value="W"/>
								</restriction>
							</simpleType>
							<simpleType>
								<restriction base="gml:SignType"/>
							</simpleType>
						</union>
					</simpleType>
				</attribute>
			</extension>
		</simpleContent>
	</complexType>
	<!-- =========================================================== -->
	<simpleType name="DegreeValueType">
		<annotation>
			<documentation>Integer number of degrees in a degree-minute-second or degree-minute angular value, without indication of direction. </documentation>
		</annotation>
		<restriction base="nonNegativeInteger">
			<maxInclusive value="359"/>
		</restriction>
	</simpleType>
	<!-- =========================================================== -->
	<element name="decimalMinutes" type="gml:DecimalMinutesType"/>
	<!-- =========================================================== -->
	<simpleType name="DecimalMinutesType">
		<annotation>
			<documentation>Decimal number of arc-minutes in a degree-minute angular value. </documentation>
		</annotation>
		<restriction base="decimal">
			<minInclusive value="0.00"/>
			<maxExclusive value="60.00"/>
		</restriction>
	</simpleType>
	<!-- =========================================================== -->
	<element name="minutes" type="gml:ArcMinutesType"/>
	<!-- =========================================================== -->
	<simpleType name="ArcMinutesType">
		<annotation>
			<documentation>Integer number of arc-minutes in a degree-minute-second angular value. </documentation>
		</annotation>
		<restriction base="nonNegativeInteger">
			<maxInclusive value="59"/>
		</restriction>
	</simpleType>
	<!-- =========================================================== -->
	<element name="seconds" type="gml:ArcSecondsType"/>
	<!-- =========================================================== -->
	<simpleType name="ArcSecondsType">
		<annotation>
			<documentation>Number of arc-seconds in a degree-minute-second angular value. </documentation>
		</annotation>
		<restriction base="decimal">
			<minInclusive value="0.00"/>
			<maxExclusive value="60.00"/>
		</restriction>
	</simpleType>
	<!-- =========================================================== -->
    <!-- ============ basicTypes.xsd =========================== -->
	<!-- ===================================================== -->
	<simpleType name="SignType">
		<annotation>
			<documentation>Utility type used in various places 
      - e.g. to indicate the direction of topological objects;
      "+" for forwards, or "-" for backwards.</documentation>
		</annotation>
		<restriction base="string">
			<enumeration value="-"/>
			<enumeration value="+"/>
		</restriction>
	</simpleType>
	<!-- ===================================================== -->
	<!-- ============= dataQuality.xsd ============================= -->
	<!-- ===================================================== -->
	<element name="_positionalAccuracy" type="gml:AbstractPositionalAccuracyType" abstract="true"/>
	<!-- =================================================== -->
	<complexType name="AbstractPositionalAccuracyType" abstract="true">
		<annotation>
			<documentation>Position error estimate (or accuracy) data. </documentation>
		</annotation>
		<sequence>
			<element ref="gml:measureDescription" minOccurs="0"/>
		</sequence>
	</complexType>
	<!-- =================================================== -->
	<element name="measureDescription" type="gml:CodeType">
		<annotation>
			<documentation>A description of the position accuracy parameter(s) provided. </documentation>
		</annotation>
	</element>
	<!-- ===================================================== -->

</schema>
Collapse Attributes:
Collapse AttributeGroups:
Collapse ComplexTypes:
Collapse Elements:
Collapse Groups:
Collapse SimpleTypes: