Commit 072f26cf authored by Claus Nagel's avatar Claus Nagel
Browse files

No commit message

No commit message
parents
<?xml version="1.0" encoding="UTF-8"?>
<!-- CityGML Version No. 1.0.0, May 19th, 2008-->
<!-- CityGML - GML3 application schema for the 3D city model of the Special Interest Group 3D (SIG 3D) of GDI NRW-->
<!-- Editors: PD Dr. Gerhard Groeger, Institute for Geodesy and Geoinformation, University of Bonn & -->
<!-- Prof. Dr. Thomas H. Kolbe, Institute for Geodesy and Geoinformation Science, Technical University of Berlin -->
<!-- For further information see: www.citygml.org -->
<!-- For the history of changes and additions to this CityGML schema see file history.txt -->
<xs:schema xmlns="http://www.opengis.net/citygml/waterbody/1.0" xmlns:core="http://www.opengis.net/citygml/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml"
targetNamespace="http://www.opengis.net/citygml/waterbody/1.0" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.opengis.net/gml" schemaLocation="../../GML/3.1.1/base/gml.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/1.0" schemaLocation="cityGMLBase.xsd"/>
<!-- ========================================================================================= -->
<!-- ==============================CityGML WaterBody module ===================================== -->
<!-- ========================================================================================= -->
<xs:complexType name="AbstractWaterObjectType" abstract="true">
<xs:annotation>
<xs:documentation>Type describing the abstract superclass for water objects. As subclass of _CityObject, a
_WaterObject inherits all attributes and relations, in particular an id, names, external references, and
generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfWaterObject" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_WaterObject" type="AbstractWaterObjectType" substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfWaterObject" type="xs:anyType" abstract="true"/>
<!-- ========================================================================================= -->
<xs:complexType name="WaterBodyType">
<xs:annotation>
<xs:documentation>Type describing Water Bodies, e.g., lakes, rivers. As subclass of _CityObject, a WaterBody inherits
all attributes and relations, in particular an id, names, external references, and generalization relations.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractWaterObjectType">
<xs:sequence>
<xs:element name="class" type="WaterBodyClassType" minOccurs="0"/>
<xs:element name="function" type="WaterBodyFunctionType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="usage" type="WaterBodyUsageType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="lod0MultiCurve" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod0MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod1MultiCurve" type="gml:MultiCurvePropertyType" minOccurs="0"/>
<xs:element name="lod1MultiSurface" type="gml:MultiSurfacePropertyType" minOccurs="0"/>
<xs:element name="lod1Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod2Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod3Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="lod4Solid" type="gml:SolidPropertyType" minOccurs="0"/>
<xs:element name="boundedBy" type="BoundedByWaterSurfacePropertyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="_GenericApplicationPropertyOfWaterBody" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="WaterBody" type="WaterBodyType" substitutionGroup="_WaterObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfWaterBody" type="xs:anyType" abstract="true"/>
<!-- ========================================================================================= -->
<xs:simpleType name="WaterBodyClassType">
<xs:annotation>
<xs:documentation>Class of a Water Body. The values of this type are defined in the XML file WaterBodyClassType.xml,
according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="WaterBodyFunctionType">
<xs:annotation>
<xs:documentation>Function of a Water Body. The values of this type are defined in the XML file
WaterBodyFunctionType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:simpleType name="WaterBodyUsageType">
<xs:annotation>
<xs:documentation>Actual usage of a water body. The values of this type are defined in the XML file
WaterBodyUsageType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:complexType name="BoundedByWaterSurfacePropertyType">
<xs:annotation>
<xs:documentation>Denotes the relation of a WaterBody to its boundary surfaces, which are of type
_WaterBoundarySurface. The BoundedByWaterSurfacePropertyType element must either carry a reference to a
_WaterBoundarySurface object or contain a _WaterBoundarySurface object inline, but neither both nor none.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="gml:AssociationType">
<xs:sequence minOccurs="0">
<xs:element ref="_WaterBoundarySurface"/>
</xs:sequence>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:complexType name="AbstractWaterBoundarySurfaceType" abstract="true">
<xs:annotation>
<xs:documentation>A WaterBoundarySurface is a thematic object which classifies surfaces bounding a water body.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="core:AbstractCityObjectType">
<xs:sequence>
<xs:element name="lod2Surface" type="gml:SurfacePropertyType" minOccurs="0"/>
<xs:element name="lod3Surface" type="gml:SurfacePropertyType" minOccurs="0"/>
<xs:element name="lod4Surface" type="gml:SurfacePropertyType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfWaterBoundarySurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="_WaterBoundarySurface" type="AbstractWaterBoundarySurfaceType" abstract="true"
substitutionGroup="core:_CityObject"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfWaterBoundarySurface" type="xs:anyType" abstract="true"/>
<!-- ========================================================================================= -->
<xs:simpleType name="WaterLevelType">
<xs:annotation>
<xs:documentation>Type for the specification of the level of a water surface. The optional attribute waterLevel of a
WaterSurface can be used to describe the water level, for which the given 3D surface geometry was acquired. This
is especially important, when the water body is influenced by the tide. The values of this type are defined in the
XML file WaterLevelType.xml, according to the dictionary concept of GML3. </xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- ========================================================================================= -->
<xs:complexType name="WaterSurfaceType">
<xs:annotation>
<xs:documentation>Type describing the surface of a water body, which separates the water from the air. As subclass of
_CityObject, a WaterSurface inherits all attributes and relations, in particular an id, names, external
references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractWaterBoundarySurfaceType">
<xs:sequence>
<xs:element name="waterLevel" type="WaterLevelType" minOccurs="0"/>
<xs:element ref="_GenericApplicationPropertyOfWaterSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="WaterSurface" type="WaterSurfaceType" substitutionGroup="_WaterBoundarySurface"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfWaterSurface" type="xs:anyType" abstract="true"/>
<!-- ========================================================================================= -->
<xs:complexType name="WaterGroundSurfaceType">
<xs:annotation>
<xs:documentation>Type describing the ground surface of a water body, i.e. the boundary to the digital terrain model.
As subclass of _CityObject, a WaterGroundSurface inherits all attributes and relations, in particular an id,
names, external references, and generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractWaterBoundarySurfaceType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfWaterGroundSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="WaterGroundSurface" type="WaterGroundSurfaceType" substitutionGroup="_WaterBoundarySurface"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfWaterGroundSurface" type="xs:anyType" abstract="true"/>
<!-- ========================================================================================= -->
<xs:complexType name="WaterClosureSurfaceType">
<xs:annotation>
<xs:documentation>Type describing the closure surface between water bodys. As subclass of _CityObject, a
WaterClosureSurface inherits all attributes and relations, in particular an id, names, external references, and
generalization relations. </xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="AbstractWaterBoundarySurfaceType">
<xs:sequence>
<xs:element ref="_GenericApplicationPropertyOfWaterClosureSurface" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<!-- ========================================================================================= -->
<xs:element name="WaterClosureSurface" type="WaterClosureSurfaceType" substitutionGroup="_WaterBoundarySurface"/>
<!-- ========================================================================================= -->
<xs:element name="_GenericApplicationPropertyOfWaterClosureSurface" type="xs:anyType" abstract="true"/>
<!-- ========================================================================================= -->
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings jaxb:version="2.1" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Specific settings for the citygml4j mapping file -->
<jaxb:bindings schemaLocation="citygml4j_profile.xsd" node="/xs:schema">
<!-- globalBindings do impact all schema files imported/included by the CityGML schema as well.
Therefore, the following settings in globalBindings also influence the mapping of
GML and xAl schema files. -->
<jaxb:globalBindings generateIsSetMethod="true" underscoreBinding="asCharInWord" />
</jaxb:bindings>
<!-- ============= -->
<!-- CityGML 0.4.0 -->
<!-- ============= -->
<!-- Specific settings for the CityGML 0.4.0 schema file -->
<jaxb:bindings schemaLocation="0.4.0/CityGML.xsd" node="/xs:schema">
<!-- CityGML schema specific settings... -->
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml._0_4"/>
</jaxb:schemaBindings>
<!-- correct error for 'role' attribute of CityObjectGroupMemberType. The error occurs because
the GML implementation of xlink also defines an attribute 'role' for this complexType. -->
<jaxb:bindings node="//xs:complexType[@name='CityObjectGroupMemberType']">
<jaxb:bindings node=".//xs:attribute[@name='role']">
<jaxb:property name="groupRole"/>
</jaxb:bindings>
</jaxb:bindings>
<!-- GML features do have a property called 'boundedBy'. The schema mapping mixes up
the property 'boundedBy' of an _AbstractBuildingType with that one defined by GML. So
a renaming is necessary -->
<jaxb:bindings node="//xs:complexType[@name='_AbstractBuildingType']">
<jaxb:bindings node=".//xs:element[@name='boundedBy']">
<jaxb:property name="boundedBySurfaces"/>
</jaxb:bindings>
</jaxb:bindings>
<!-- GML features do have a property called 'boundedBy'. The schema mapping mixes up
the property 'boundedBy' of an RoomType with that one defined by GML. So
a renaming is necessary -->
<jaxb:bindings node="//xs:complexType[@name='RoomType']">
<jaxb:bindings node=".//xs:element[@name='boundedBy']">
<jaxb:property name="boundedBySurfaces"/>
</jaxb:bindings>
</jaxb:bindings>
<!-- GML features do have a property called 'boundedBy'. The schema mapping mixes up
the property 'boundedBy' of an WaterBodyType with that one defined by GML. So
a renaming is necessary -->
<jaxb:bindings node="//xs:complexType[@name='WaterBodyType']">
<jaxb:bindings node=".//xs:element[@name='boundedBy']">
<jaxb:property name="boundedBySurfaces"/>
</jaxb:bindings>
</jaxb:bindings>
<!-- changing data type of DoubleAttributeType -->
<jaxb:bindings node="//xs:complexType[@name='DoubleAttributeType']">
<jaxb:bindings node=".//xs:element[@name='value']">
<jaxb:javaType name="Double"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
<!-- ============= -->
<!-- CityGML 1.0.0 -->
<!-- ============= -->
<!-- Specific settings for the CityGML Core module schema file -->
<jaxb:bindings schemaLocation="1.0.0/cityGMLBase.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.core._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML Appearance module schema file -->
<jaxb:bindings schemaLocation="1.0.0/appearance.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.app._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML Building module schema file -->
<jaxb:bindings schemaLocation="1.0.0/building.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.bldg._1"/>
</jaxb:schemaBindings>
<!-- GML features do have a property called 'boundedBy'. The schema mapping mixes up
the property 'boundedBy' of an AbstractBuildingType with that one defined by GML. So
a renaming is necessary -->
<jaxb:bindings node="//xs:complexType[@name='AbstractBuildingType']">
<jaxb:bindings node=".//xs:element[@name='boundedBy']">
<jaxb:property name="boundedBySurfaces"/>
</jaxb:bindings>
</jaxb:bindings>
<!-- GML features do have a property called 'boundedBy'. The schema mapping mixes up
the property 'boundedBy' of an RoomType with that one defined by GML. So
a renaming is necessary -->
<jaxb:bindings node="//xs:complexType[@name='RoomType']">
<jaxb:bindings node=".//xs:element[@name='boundedBy']">
<jaxb:property name="boundedBySurfaces"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML CityFurniture module schema file -->
<jaxb:bindings schemaLocation="1.0.0/cityFurniture.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.frn._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML CityObjectGroup module schema file -->
<jaxb:bindings schemaLocation="1.0.0/cityObjectGroup.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.grp._1"/>
</jaxb:schemaBindings>
<!-- correct error for 'role' attribute of CityObjectGroupMemberType. The error occurs because
the GML implementation of xlink also defines an attribute 'role' for this complexType. -->
<jaxb:bindings node="//xs:complexType[@name='CityObjectGroupMemberType']">
<jaxb:bindings node=".//xs:attribute[@name='role']">
<jaxb:property name="groupRole"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML Generics module schema file -->
<jaxb:bindings schemaLocation="1.0.0/generics.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.gen._1"/>
</jaxb:schemaBindings>
<!-- changing data type of DoubleAttributeType -->
<jaxb:bindings node="//xs:complexType[@name='DoubleAttributeType']">
<jaxb:bindings node=".//xs:element[@name='value']">
<jaxb:javaType name="Double"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML LandUse module schema file -->
<jaxb:bindings schemaLocation="1.0.0/landUse.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.luse._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML Relief module schema file -->
<jaxb:bindings schemaLocation="1.0.0/relief.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.dem._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML TexturedSurface module schema file -->
<jaxb:bindings schemaLocation="1.0.0/texturedSurface.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.tex._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML Transportation module schema file -->
<jaxb:bindings schemaLocation="1.0.0/transportation.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.tran._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML Vegetation module schema file -->
<jaxb:bindings schemaLocation="1.0.0/vegetation.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.veg._1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the CityGML WaterBody module schema file -->
<jaxb:bindings schemaLocation="1.0.0/waterBody.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.citygml.wtr._1"/>
</jaxb:schemaBindings>
<!-- GML features do have a property called 'boundedBy'. The schema mapping mixes up
the property 'boundedBy' of an WaterBodyType with that one defined by GML. So
a renaming is necessary -->
<jaxb:bindings node="//xs:complexType[@name='WaterBodyType']">
<jaxb:bindings node=".//xs:element[@name='boundedBy']">
<jaxb:property name="boundedBySurfaces"/>
</jaxb:bindings>
</jaxb:bindings>
</jaxb:bindings>
<!-- ========= -->
<!-- GML 3.1.1 -->
<!-- ========= -->
<!-- Specific settings for the GML schema file -->
<jaxb:bindings schemaLocation="../GML/3.1.1/base/gml.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.gml._3_1_1"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the GML schema file 'defaultStyle.xsd' -->
<jaxb:bindings schemaLocation="../GML/3.1.1/base/defaultStyle.xsd" node="/xs:schema">
<!-- This is tricky. The schema file, for example, denotes both the element 'featureStyle' as well as 'FeatureStyle'.
As both elements are mapped to the Java class 'FeatureStyle', a renaming is necessary. -->
<jaxb:bindings node="xs:element[@name='graphStyle']">
<jaxb:class name="GraphStyleRef"/>
</jaxb:bindings>
<jaxb:bindings node="xs:element[@name='topologyStyle']">
<jaxb:class name="TopologyStyleRef"/>
</jaxb:bindings>
<jaxb:bindings node="xs:element[@name='featureStyle']">
<jaxb:class name="FeatureStyleRef"/>
</jaxb:bindings>
<jaxb:bindings node="xs:element[@name='geometryStyle']">
<jaxb:class name="GeometryStyleRef"/>
</jaxb:bindings>
<jaxb:bindings node="xs:element[@name='labelStyle']">
<jaxb:class name="LabelStyleRef"/>
</jaxb:bindings>
</jaxb:bindings>
<!-- ======= -->
<!-- xAL 2.0 -->
<!-- ======= -->
<!-- Specific settings for the xAl schema file -->
<jaxb:bindings schemaLocation="../xAl/2.0/xAl.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.xal"/>
<!-- append "Element" to element declarations -->
<jaxb:nameXmlTransform>
<jaxb:elementName suffix="Element"/>
</jaxb:nameXmlTransform>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- ==== -->
<!-- SMIL -->
<!-- ==== -->
<!-- Specific settings for the SMIL schema file 'smil20.xsd' -->
<jaxb:bindings schemaLocation="../GML/3.1.1/smil/smil20.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.smil20"/>
</jaxb:schemaBindings>
</jaxb:bindings>
<!-- Specific settings for the SMIL schema file 'smil20-language.xsd' -->
<jaxb:bindings schemaLocation="../GML/3.1.1/smil/smil20-language.xsd" node="/xs:schema">
<jaxb:schemaBindings>
<!-- set package name of the generated classes -->
<jaxb:package name="org.citygml4j.jaxb.smil20.language"/>
</jaxb:schemaBindings>
</jaxb:bindings>
</jaxb:bindings>
<?xml version="1.0" encoding="UTF-8"?>
<!-- citygml4j - Java object model for CityGML based on JAXB -->
<!-- This is not an offical CityGML schema. It is a compilation of the CityGML -->
<!-- schemas version 0.4.0 and 1.0.0 to generate a comprehensive Java object model. -->
<!-- Editor: Claus Nagel, nagel@igg.tu-berlin.de -->
<xs:schema xmlns="http://www.citygml.org/citygml4j/profile" xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.citygml.org/citygml4j/profile" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:import namespace="http://www.citygml.org/citygml/1/0/0" schemaLocation="0.4.0/CityGML.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/appearance/1.0" schemaLocation="1.0.0/appearance.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/building/1.0" schemaLocation="1.0.0/building.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/cityfurniture/1.0" schemaLocation="1.0.0/cityFurniture.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/cityobjectgroup/1.0" schemaLocation="1.0.0/cityObjectGroup.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/generics/1.0" schemaLocation="1.0.0/generics.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/landuse/1.0" schemaLocation="1.0.0/landUse.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/relief/1.0" schemaLocation="1.0.0/relief.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/transportation/1.0" schemaLocation="1.0.0/transportation.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/vegetation/1.0" schemaLocation="1.0.0/vegetation.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/waterbody/1.0" schemaLocation="1.0.0/waterBody.xsd"/>
<xs:import namespace="http://www.opengis.net/citygml/texturedsurface/1.0" schemaLocation="1.0.0/texturedSurface.xsd"/>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary xmlns="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/gml ../gmlSimpleDictionaryProfile.xsd" gml:id="DerivedCRStypeDictionary">
<!-- Primary editor: Arliss Whiteside. Last updated 2005-11-16-->
<name>BuildingFunctionType</name>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="geographic">
<description>A coordinate reference system based on an ellipsoidal approximation of the geoid; provides an accurate representation of the geometry of geographic features for a large portion of the earth's surface. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:geographic</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="vertical">
<description>A coordinate reference system used for recording of 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. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:vertical</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="geocentric">
<description>A coordinate reference system with the origin at the centre of mass of the earth. A geocentric CRS deals with the earth's curvature by taking a 3D spatial view. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:geocentric</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="engineering">
<description>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. </description>
<name codeSpace="urn:ogc:def:derivedCRStype:OGC:OGC:1.0:">engineering</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="image">
<description>A derived CRS used like an engineering coordinate reference system applied to locations in images. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:image</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="temporal">
<description>A reference system used for the recording of time. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:temporal</name>
</Definition>
</dictionaryEntry>
</Dictionary>
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary xmlns="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/gml ../gmlSimpleDictionaryProfile.xsd" gml:id="AxisDirectionDictionary">
<!-- Primary editor: Arliss Whiteside. Last updated 2005-11-18-->
<name>Axis Direction standard values</name>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="north">
<description>Axis positive direction is north. In a geographic or projected CRS, north is defined through the geodetic datum. In an engineering CRS, north may be defined with respect to an engineering object rather than a geographical direction. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:north</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="northNorthEast">
<description>Axis positive direction is approximately north-north-east. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:northNorthEast</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="northEast">
<description>Axis positive direction is approximately north-east. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:northEast</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="eastNorthEast">
<description>Axis positive direction is approximately east-north-east. </description>
<name codeSpace="urn:opengis:def:axisDirection:OGC:1.0:"/>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="east">
<description>Axis positive direction is pi/2 radians clockwise from north. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:east</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="eastSouthEast">
<description>Axis positive direction is approximately east-south-east. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:eastSouthEast</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="southEast">
<description>Axis positive direction is approximately south-east.</description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:southEast</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="southSouthEast">
<description>Axis positive direction is approximately south-south-east. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:southSouthEast</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="south">
<description>Axis positive direction is pi radians clockwise from north. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:south</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="southSouthWest">
<description>Axis positive direction is approximately south-south-west. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:southSouthWest</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="southWest">
<description>Axis positive direction is approximately south-west. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:southWest</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="westSouthWest">
<description>Axis positive direction is approximately west-south-west. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:westSouthWest</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="west">
<description>Axis positive direction is 3pi/2 radians clockwise from north. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:west</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="westNorthWest">
<description>Axis positive direction is approximately west-north-west. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:westNorthWest</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="northWest">
<description>Axis positive direction is approximately north-west.</description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:northWest</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="northNorthWest">
<description>Axis positive direction is approximately north-north-west. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:northNorthWest</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="up">
<description>Axis positive direction is up relative to gravity. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:up</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="down">
<description>Axis positive direction is down relative to gravity. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:down</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="geocentricX">
<description>Axis positive direction is in the equatorial plane from the centre of the modelled earth towards the intersection of the equator with the prime meridian. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:geocentricX</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="geocentricY">
<description>Axis positive direction is in the equatorial plane from the centre of the modelled earth towards the intersection of the equator and the meridian pi/2 radians eastwards from the prime meridian. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:geocentricY</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="geocentricZ">
<description>Axis positive direction is from the centre of the modelled earth parallel to its rotation axis and towards its north pole. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:geocentricZ</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="future">
<description>Axis positive direction is towards the future. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:future</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="past">
<description>Axis positive direction is towards the past. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:past</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="columnPositive">
<description>Axis positive direction is towards higher column numbers. </description>
<name codeSpace="urn:opengis:def:axisDirection:1.0:">columnPositive</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="columnNegative">
<description>Axis positive direction is towards lower pixel column numbers. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:columnNegative</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="rowPositive">
<description>Axis positive direction is towards higher row numbers. </description>
<name codeSpace="urn:opengis:def:axisDirection:1.0:">rowPositive</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="rowNegative">
<description>Axis positive direction is towards lower pixel row numbers. </description>
<name codeSpace="urn:opengis:def:axisDirection:OGC:1.0:"/>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="displayRight">
<description>Axis positive direction is right in display. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:displayRight</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="displayLeft">
<description>Axis positive direction is left in display. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:displayLeft</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="displayUp">
<description>Axis positive direction is towards top of approximately vertical display surface.
</description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:displayUp</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="displayDown">
<description>Axis positive direction is towards bottom of approximately vertical display surface.
</description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:opengis:def:axisDirection:OGC:1.0:displayDown</name>
</Definition>
</dictionaryEntry>
</Dictionary>
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary xmlns="http://www.opengis.net/gml"
xmlns:gml="http://www.opengis.net/gml"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/gml ../gmlSimpleDictionaryProfile.xsd"
gml:id="parameterTypeDictionary">
<!-- Primary editor: Arliss Whiteside. Last updated 2005-11-16 -->
<name>parameterType standard values</name>
<name>Data type of an operation parameter. Usually refers to a data type defined in measures.xsd or allowed in the ParameterValueType of coordinateOperations.xsd. </name>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="measure">
<description>General numeric value of an operation parameter, with its associated unit of measure. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:measure</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="length">
<description>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. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:length</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="scale">
<description>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 one, percent, permil, or parts-per-million. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:scale</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="time">
<description>Value of a time or temporal quantity, with its units. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for a time value, such as seconds or weeks. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:time</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="gridLength">
<description>Value of a length (or distance) quantity in a grid, where the grid spacing does not have any associated physical units, or does not have a constant physical spacing. This grid length will often be used in a digital image grid, where the base units are likely to be pixel spacings. Uses the MeasureType with the restriction that the unit of measure referenced by uom must be suitable for length along the axes of a grid, such as pixel spacings or grid spacings.</description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:grid length</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="angleChoice">
<description>Value of an angle quantity provided in either degree-minute-second format or single value format. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:angle choice</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="angle">
<description>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. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:angle</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="dmsAngle">
<description>Value of an angle operation parameter, in either degree-minute-second format or single value format. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:dms angle</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="lengthOrAngle">
<description>Value of a length or angle quantity, where an angle can be recorded in either degree-minute-second format or single value format. Often used for horizontal ground coordinates. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:length or angle</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="string">
<description>String value of an operation parameter. A string value does not have an associated unit of measure. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:string</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="positiveInteger">
<description>Positive integer value of an operation parameter, usually used for a count. An integer value does not have an associated unit of measure. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:positive integer</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="nonNegativeInteger">
<description>Zero or positive integer value of an operation parameter. An integer value does not have an associated unit of measure. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:non negative integer</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="boolean">
<description>Boolean value of an operation parameter. A Boolean value does not have an associated unit of measure. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:boolean</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="measureList">
<description>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 list of double values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:measure list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="lengthList">
<description>Ordered sequence of two or more numeric values of an operation parameter list of Length measures. Each value has the same associated unit of measure suitable for a length, such as metres or feet. An element of this type contains a space-separated list of double values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:length list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="scaleList">
<description>Ordered sequence of two or more numeric values of an operation parameter list of Scale measures. Each value has the same associated unit of measure suitable for a scale factor, such as one, percent, permil, or parts-per-million. An element of this type contains a space-separated list of double values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:scale list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="angleList">
<description>Ordered sequence of two or more numeric values of an operation parameter list of Angle measures, each recorded as a single number. Each value has the same associated unit of measure suitable for an angle, such as degrees or radians. An element of this type contains a space-separated list of double values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:angle list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="timeList">
<description>Ordered sequence of two or more numeric values of an operation parameter list of Time measures, each recorded as a single number. Each value has the same associated unit of measure suitable for a time value, such as seconds or days. An element of this type contains a space-separated list of double values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:time list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="gridLengthList">
<description>Ordered sequence of two or more numeric values of an operation parameter list of Grid Length measures. Each value has the same associated unit of measure suitable for length along the axes of a grid, such as pixel spacings or grid spacings. An element of this type contains a space-separated list of double values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:grid length list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="velocityList">
<description>Ordered sequence of two or more numeric values of an operation parameter list of Velocity measures. Each value has the same associated unit of measure suitable for a velocity, such as metres per second or miles per hour. An element of this type contains a space-separated list of double values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:velocity list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="integerList">
<description>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 list of integer values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:integer list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="positiveIntegerList">
<description>Ordered sequence of two or more positive 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 list of integer values. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:positive integer list</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="anyURI">
<description>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. </description>
<name codeSpace="urn:ogc:tc:urn:doc:cr:05-060">urn:ogc:def:dataType:OGC:1.0:anyURI</name>
</Definition>
</dictionaryEntry>
</Dictionary>
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary xmlns="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/gml ../gmlSimpleDictionaryProfile.xsd" gml:id="DerivedCRStypeDictionary">
<!-- Primary editor: Arliss Whiteside. Last updated 2005-11-16-->
<name>Derived CRS type standard values</name>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="geographic">
<description>A coordinate reference system based on an ellipsoidal approximation of the geoid; provides an accurate representation of the geometry of geographic features for a large portion of the earth's surface. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:geographic</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="vertical">
<description>A coordinate reference system used for recording of 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. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:vertical</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="geocentric">
<description>A coordinate reference system with the origin at the centre of mass of the earth. A geocentric CRS deals with the earth's curvature by taking a 3D spatial view. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:geocentric</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="engineering">
<description>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. </description>
<name codeSpace="urn:ogc:def:derivedCRStype:OGC:OGC:1.0:">engineering</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="image">
<description>A derived CRS used like an engineering coordinate reference system applied to locations in images. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:image</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<Definition gml:id="temporal">
<description>A reference system used for the recording of time. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:derivedCRStype:OGC:1.0:temporal</name>
</Definition>
</dictionaryEntry>
</Dictionary>
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary xmlns="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/gml ../gmlSimpleDictionaryProfile.xsd" gml:id="PixelInCellDictionary">
<!-- Primary editor: Arliss Whiteside. Last updated 2005-11-16-->
<name>PixelInCell standard values</name>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="cellCenter">
<description>The origin of the image coordinate system is at the centre of a grid cell or image pixel. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:pixelInCell:OGC:1.0:cellCenter</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<!-- ===================================================== -->
<Definition gml:id="cellCorner">
<description>The origin of the image coordinate system is at the corner of a grid cell, or half-way between the centres of adjacent image pixels. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:pixelInCell:OGC:1.0:cellCorner</name>
</Definition>
</dictionaryEntry>
</Dictionary>
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary xmlns="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/gml ../gmlSimpleDictionaryProfile.xsd" gml:id="RangeMeaningDictionary">
<!-- Primary editor: Arliss Whiteside. Last updated 2005-11-16 -->
<name>Range Meaning standard values</name>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="exact">
<description>Any value between and including minimumValue and maximiumValue is valid. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:rangeMeaning:OGC:1.0:exact</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="wraparound">
<description>The axis is continuous with values wrapping around at the minimumValue and maximumValue. Values with the same meaning repeat modulo the difference between maximumValue and minimumValue. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:rangeMeaning:OGC:1.0:wraparound</name>
</Definition>
</dictionaryEntry>
</Dictionary>
<?xml version="1.0" encoding="UTF-8"?>
<Dictionary xmlns="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/gml ../gmlSimpleDictionaryProfile.xsd" gml:id="VerticalDatumType">
<!-- Primary editor: Arliss Whiteside. Last updated 2005-11-16-->
<name>Vertical Datum Type standard values</name>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="geoidal">
<description>The zero value of the associated vertical coordinate system axis is defined to approximate a constant potential surface, usually the geoid. Such a reference surface is usually determined by a national or scientific authority, and is then a well-known, named datum. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:pixelInCell:OGC:1.0:geoidal</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<!-- ===================================================== -->
<Definition gml:id="depth">
<description>The zero point of the vertical axis is defined by a surface that has meaning for the purpose which the associated vertical measurements are used for. For hydrographic charts, this is often a predicted nominal sea surface (i.e., without waves or other wind and current effects) that occurs at low tide. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:pixelInCell:OGC:1.0:depth</name>
</Definition>
</dictionaryEntry>
<!-- ===================================================== -->
<dictionaryEntry>
<Definition gml:id="barometric">
<description>Atmospheric pressure is the basis for the definition of the origin of the associated vertical coordinate system axis. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:pixelInCell:OGC:1.0:barometric</name>
</Definition>
</dictionaryEntry>
<dictionaryEntry>
<!-- ===================================================== -->
<Definition gml:id="otherSurface">
<description>In some cases, e.g. oil exploration and production, a geological feature, such as the top or bottom of a geologically identifiable and meaningful subsurface layer, is used as a vertical datum. Other variations to the above three vertical datum types may exist and are all included in this type. </description>
<name codeSpace="urn:ogc:tc:urn:doc:rp:05-010">urn:ogc:def:pixelInCell:OGC:1.0:otherSurface</name>
</Definition>
</dictionaryEntry>
</Dictionary>
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.opengis.net/gml" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:sch="http://www.ascc.net/xml/schematron" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified" version="3.1.1">
<annotation>
<appinfo source="urn:opengis:specification:gml:schema-xsd:basicTypes:3.1.1">basicTypes.xsd</appinfo>
<documentation>Subset of basicTypes.xsd for GML 3.1.1 Simple Dictionary profile. Primary editor: Arliss Whiteside. Last updated 2005-10-14 </documentation>
</annotation>
<!-- =========================================================== -->
<!-- =========================================================== -->
<complexType name="CodeType">
<annotation>
<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>
<!-- ============================================================ -->
</schema>
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.opengis.net/gml" elementFormDefault="qualified" version="3.1.1" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml">
<annotation>
<appinfo source="urn:opengis:specification:gml:schema-xsd::3.1.1"/>
<documentation>Subset of dictionary.xsd for GML 3.1.1 Simple Dictionary profile. Primary editor: Primary editor: Arliss Whiteside. Last updated 2005-10-14 </documentation>
</annotation>
<!-- ========================================================
includes and imports
======================================================== -->
<include schemaLocation="gmlBase.xsd"/>
<!-- ===================================================== -->
<!-- ===================================================== -->
<!-- === Dictionary and Definition components === -->
<!-- ===================================================== -->
<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 inherited "metaDataProperty" elements can be used to reference or include more information about this 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: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"/>
<!-- ===================================================== -->
<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"/>
<!-- ===================================================== -->
<complexType name="DictionaryEntryType">
<annotation>
<documentation>An entry in a dictionary of definitions. An instance of this type contains one definition object. 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>
<element ref="gml:Definition">
<annotation>
<documentation>This element in a dictionary entry contains the actual definition. </documentation>
</annotation>
</element>
</sequence>
</complexType>
</schema>
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.opengis.net/gml"
xmlns:gml="http://www.opengis.net/gml"
xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" version="3.1.1">
<annotation>
<appinfo source="urn:opengis:specification:gml:schema-xsd:gmlBase:3.1.1"/>
<documentation>Subset of gmlBase.xsd for GML 3.1.1 Simple Dictionary profile. Primary editor: Primary editor: Arliss Whiteside. Last updated 2005-10-14
Copyright (c) Open Geospatial Consortium, Inc. (2005) </documentation>
</annotation>
<!-- ==============================================================
includes and imports
============================================================== -->
<include schemaLocation="basicTypes.xsd"/>
<!-- =========================================================== -->
<!-- ==================== Objects ================================ -->
<!-- =========================================================== -->
<!-- =========== Abstract "Object" is "anyType" ============= -->
<!-- ===== Global element at the head of the "Object" substitution group ======== -->
<element name="_Object" abstract="true">
<annotation>
<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>
<!-- ============================================================= -->
<!-- =========== Abstract "GMLobject" supertype ========================= -->
<element name="_GML" type="gml:AbstractGMLType" abstract="true" substitutionGroup="gml:_Object">
<annotation>
<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>
<!-- =========================================================== -->
<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: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>
<!-- =========================================================== -->
<complexType name="AbstractGMLType" abstract="true">
<annotation>
<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>
<!-- =========================================================== -->
<!-- ==========================================================
global attribute, attribute group and element declarations
============================================================ -->
<attribute name="id" type="ID">
<annotation>
<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>
<!-- =========================================================== -->
<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>
<!-- =========================================================== -->
<element name="description" type="string">
<annotation>
<documentation>Contains a simple text description of the object.</documentation>
<documentation>Restricted to only allow a text string, as done in GML 3.2. </documentation>
</annotation>
</element>
<!-- ===================================================== -->
</schema>
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.opengis.net/gml"
xmlns:gml="http://www.opengis.net/gml"
xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified" version="1.0.0">
<annotation>
<appinfo source="urn:opengis:specification:gml:schema-xsd:gml:3.1.1">gml.xsd</appinfo>
<documentation>GML 3.1.1 profile for Dictionary. Primary editor: Arliss Whiteside. Last updated 2005-10-11
Copyright (c) Open Geospatial Consortium, Inc. (2005) </documentation>
</annotation>
<!-- ============================================================== -->
<include schemaLocation="dictionary.xsd"/>
<!-- ============================================================== -->
</schema>
\ No newline at end of file
This set of XML Schema Documents for GML Version 3.1.1 has been edited
to reflect the corrigendum to documents 0GC 03-105r1 and OGC 04-092r4
that is based on the change requests:
OGC 05-068r1 "Store xlinks.xsd file at a fixed location"
OGC 05-081r2 "Change to use relative paths"
OGC 05-105 "Remove description and copyright tags from XML schema documents"
Arliss Whiteside, 2005-11-22
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:sch="http://www.ascc.net/xml/schematron" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml" targetNamespace="http://www.opengis.net/gml" elementFormDefault="qualified" version="3.1.1">
<annotation>
<appinfo source="urn:opengis:specification:gml:schema-xsd:basicTypes:3.1.1">basicTypes.xsd</appinfo>
<documentation>
Generic simpleContent components for use in GML
Copyright (c) 2005 OGC, All Rights Reserved.
For conditions, see OGC Software Notice http://www.opengeospatial.org/about/?page=ipr
</documentation>
</annotation>
<!-- =========================================================== -->
<simpleType name="NullEnumeration">
<annotation>
<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="NullType">
<annotation>
<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>
<!-- =========================================================== -->
<element name="Null" type="gml:NullType"/>
<!-- ===================================================== -->
<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>
<!-- =========================================================== -->
<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>
<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>
<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>
<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>
<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>
<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>
<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>
<!-- =========================================================== -->
<complexType name="CodeType">
<annotation>
<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="CoordinatesType">
<annotation>
<documentation>Tables or arrays of tuples.
May be used for text-encoding of values from a table.
Actually just a string, but allows the user to indicate which characters are used as separators.
The value of the 'cs' attribute is the separator for coordinate values,
and the value of the 'ts' attribute gives the tuple separator (a single space by default);
the default values may be changed to reflect local usage.
Defaults to CSV within a tuple, space between tuples.
However, any string content will be schema-valid. </documentation>
</annotation>
<simpleContent>
<extension base="string">
<attribute name="decimal" type="string" default="."/>
<attribute name="cs" type="string" default=","/>
<attribute name="ts" type="string" default="&#x20;"/>
</extension>
</simpleContent>
</complexType>
<!-- =========================================================== -->
<simpleType name="NCNameList">
<annotation>
<documentation>A set of values, representing a list of token with the lexical value space of NCName. The tokens are seperated by whitespace.</documentation>
</annotation>
<list itemType="NCName"/>
</simpleType>
<!-- ============================================================== -->
<simpleType name="QNameList">
<annotation>
<documentation>A set of values, representing a list of token with the lexical value space of QName. The tokens are seperated by whitespace.</documentation>
</annotation>
<list itemType="QName"/>
</simpleType>
<!-- ============================================================== -->
</schema>
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="3.1.1" xml:lang="en">
<annotation>
<appinfo source="urn:opengis:specification:gml:schema-xsd:coordinateOperations:3.1.1"/>
<documentation>How to encode coordinate operation definitions. Builds on referenceSystems.xsd to encode the data needed to define coordinate operations, including Transformations, Conversions, and other specific subtypes of operations.
Copyright (c) 2002-2005 OGC, All Rights Reserved. For conditions, see OGC Software Notice http://www.opengeospatial.org/about/?page=ipr
This schema encodes the Coordinate Operation (CC_) package of the extended UML Model for OGC Abstract Specification Topic 2: Spatial Referencing by Coordinates. That UML model is adapted from ISO 19111 - Spatial referencing by coordinates, as described in Annex C of Topic 2.
Caution: The CRS package in GML 3.1 and GML 3.1.1 is preliminary, and is expected to undergo some modifications that are not backward compatible during the development of GML 3.2 (ISO 19136). The GML 3.2 package will implement the model described in the revised version of ISO 19111. </documentation>
</annotation>
<!-- ======================================================
includes and imports
====================================================== -->
<include schemaLocation="referenceSystems.xsd"/>
<include schemaLocation="dataQuality.xsd"/>
<!-- ======================================================
elements and types
====================================================== -->
<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>
<!-- =================================================== -->
</schema>
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.opengis.net/gml" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified" version="3.1.1" xml:lang="en">
<annotation>
<appinfo source="urn:opengis:specification:gml:schema-xsd:coordinateReferenceSystems:3.1.1"/>
<documentation>How to encode coordinate reference system definitions. Builds on referenceSystems.xsd to encode the data needed to define coordinate reference systems, including the specific subtypes of coordinate reference systems.
Copyright (c) 2002-2005 OGC, All Rights Reserved. For conditions, see OGC Software Notice http://www.opengeospatial.org/about/?page=ipr
This schema encodes the Coordinate Reference System (SC_) package of the extended UML Model for OGC Abstract Specification Topic 2: Spatial Referencing by Coordinates, with the exception of the abstract "SC_CRS" class. The "SC_CRS" class is encoded in referenceSystems.xsd, to eliminate the (circular) references from coordinateOperations.xsd to coordinateReferenceSystems.xsd. That UML model is adapted from ISO 19111 - Spatial referencing by coordinates, as described in Annex C of Topic 2.
Caution: The CRS package in GML 3.1 and GML 3.1.1 is preliminary, and is expected to undergo some modifications that are not backward compatible during the development of GML 3.2 (ISO 19136). The GML 3.2 package will implement the model described in the revised version of ISO 19111. </documentation>
</annotation>
<!-- ======================================================
includes and imports
====================================================== -->
<include schemaLocation="coordinateSystems.xsd"/>
<include schemaLocation="datums.xsd"/>
<include schemaLocation="coordinateOperations.xsd"/>
<!-- ======================================================
elements and types
====================================================== -->
<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>
<!-- =================================================== -->
</schema>
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.opengis.net/gml" xmlns:gml="http://www.opengis.net/gml" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="3.1.1" xml:lang="en">
<annotation>
<appinfo source="urn:opengis:specification:gml:schema-xsd:coordinateSystems:3.1.1"/>
<documentation>How to encode coordinate system definitions. Builds on referenceSystems.xsd to encode the data needed to define coordinate systems, including the specific subtypes of coordinate systems.
Copyright (c) 2002-2005 OGC, All Rights Reserved. For conditions, see OGC Software Notice http://www.opengeospatial.org/about/?page=ipr
This schema encodes the Coordinate System (CS_) package of the extended UML Model for OGC Abstract Specification Topic 2: Spatial Referencing by Coordinates. That UML model is adapted from ISO 19111 - Spatial referencing by coordinates, as described in Annex C of Topic 2.
Caution: The CRS package in GML 3.1 and GML 3.1.1 is preliminary, and is expected to undergo some modifications that are not backward compatible during the development of GML 3.2 (ISO 19136). The GML 3.2 package will implement the model described in the revised version of ISO 19111. </documentation>
</annotation>
<!-- ======================================================
includes and imports
====================================================== -->
<include schemaLocation="referenceSystems.xsd"/>
<!-- ======================================================
elements and types
====================================================== -->
<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>
<!-- =================================================== -->
</schema>
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" elementFormDefault="qualified" version="3.1.1">
<annotation>
<appinfo source="urn:opengis:specification:gml:schema-xsd:coverage:3.1.1">coverage.xsd</appinfo>
<documentation xml:lang="en">GML Coverage schema.
Copyright (c) 2005 OGC, All Rights Reserved.
For conditions, see OGC Software Notice http://www.opengeospatial.org/about/?page=ipr</documentation>
</annotation>
<!-- ==============================================================
includes and imports
============================================================== -->
<include schemaLocation="feature.xsd"/>
<include schemaLocation="valueObjects.xsd"/>
<include schemaLocation="grids.xsd"/>
<include schemaLocation="geometryAggregates.xsd"/>
<!-- ==============================================================
global types and elements
============================================================== -->
<!-- ================= Abstract coverage definition ================== -->
<!-- =========================================================== -->
<!-- =========================================================== -->
<element name="_Coverage" type="gml:AbstractCoverageType" abstract="true" substitutionGroup="gml:_Feature"/>
<!-- =========================================================== -->
<complexType name="AbstractCoverageType" abstract="true">
<annotation>
<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>
<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>
<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>
<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, or
N.B. Temporal geometric complexes and temporal grids are not yet implemented in GML.</documentation>
</annotation>
<sequence minOccurs="0">
<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">
<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>
<element ref="gml:File">
<annotation>
<documentation>a reference to an external source for the data, together with a description of how that external source is structured</documentation>
</annotation>
</element>
</choice>
</complexType>
<!-- =========================================================== -->
<element name="coverageFunction" type="gml:CoverageFunctionType"/>
<!-- =========================================================== -->
<complexType name="CoverageFunctionType">
<annotation>
<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">
<sequence>
<element ref="gml:rangeParameters"/>
<choice>
<element ref="gml:tupleList"/>
<element ref="gml:doubleOrNullTupleList"/>
</choice>
</sequence>
</complexType>
<!-- =========================================================== -->
<element name="tupleList" type="gml:CoordinatesType"/>
<!-- =========================================================== -->
<element name="doubleOrNullTupleList" type="gml:doubleOrNullList"/>
<!-- =========================================================== -->
<element name="File" type="gml:FileType"/>
<!-- =========================================================== -->
<complexType name="FileType">
<sequence>
<element ref="gml:rangeParameters"/>
<element name="fileName" type="anyURI"/>
<element name="fileStructure" type="gml:FileValueModelType"/>
<element name="mimeType" type="anyURI" minOccurs="0"/>
<element name="compression" type="anyURI" minOccurs="0"/>
</sequence>
</complexType>
<!-- =========================================================== -->
<simpleType name="FileValueModelType">
<annotation>
<documentation>List of codes that identifies the file structure model for records stored in files.</documentation>
</annotation>
<restriction base="string">
<enumeration value="Record Interleaved"/>
</restriction>
</simpleType>
<!-- =========================================================== -->
<element name="rangeParameters" type="gml:RangeParametersType"/>
<!-- =========================================================== -->
<complexType name="RangeParametersType">
<annotation>
<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>
<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>
<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>
<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>
<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>
<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>
<documentation>A discrete coverage type whose domain is defined by a collection of point</documentation>
</annotation>
<complexContent>
<restriction base="gml:AbstractDiscreteCoverageType">
<sequence>
<group ref="gml:StandardObjectProperties"/>
<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">
<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>
<documentation>A discrete coverage type whose domain is defined by a collection of curves.</documentation>
</annotation>
<complexContent>
<restriction base="gml:AbstractDiscreteCoverageType">
<sequence>
<group ref="gml:StandardObjectProperties"/>
<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>
<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>
<group ref="gml:StandardObjectProperties"/>
<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="MultiSolidCoverage" type="gml:MultiSolidCoverageType" substitutionGroup="gml:_DiscreteCoverage"/>
<!-- =========================================================== -->
<complexType name="MultiSolidCoverageType">
<annotation>
<documentation>A discrete coverage type whose domain is defined by a collection of Solids.</documentation>
</annotation>
<complexContent>
<restriction base="gml:AbstractDiscreteCoverageType">
<sequence>
<group ref="gml:StandardObjectProperties"/>
<element ref="gml:boundedBy" minOccurs="0"/>
<element ref="gml:multiSolidDomain"/>
<element ref="gml:rangeSet"/>
<element ref="gml:coverageFunction" minOccurs="0"/>
</sequence>
</restriction>
</complexContent>
</complexType>
<!-- =========================================================== -->
<element name="multiSolidDomain" type="gml:MultiSolidDomainType" substitutionGroup="gml:domainSet"/>
<!-- =========================================================== -->
<complexType name="MultiSolidDomainType">
<complexContent>
<restriction base="gml:DomainSetType">
<sequence minOccurs="0">
<element ref="gml:MultiSolid"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</restriction>
</complexContent>
</complexType>
<!-- =========================================================== -->
<element name="GridCoverage" type="gml:GridCoverageType" substitutionGroup="gml:_DiscreteCoverage"/>
<!-- =========================================================== -->
<complexType name="GridCoverageType">
<complexContent>
<restriction base="gml:AbstractDiscreteCoverageType">
<sequence>
<group ref="gml:StandardObjectProperties"/>
<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">
<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">
<complexContent>
<restriction base="gml:AbstractDiscreteCoverageType">
<sequence>
<group ref="gml:StandardObjectProperties"/>
<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">
<complexContent>
<restriction base="gml:DomainSetType">
<sequence minOccurs="0">
<element ref="gml:RectifiedGrid"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</restriction>
</complexContent>
</complexType>
<!-- =========================================================== -->
</schema>
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment