<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:tspi-core="http://metadata.ces.mil/mdr/ns/GSIP/tspi/2.0/core" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:gmlce="http://www.opengis.net/gml/3.3/ce" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://metadata.ces.mil/mdr/ns/GSIP/tspi/2.0/core" elementFormDefault="qualified" version="2.0.0">
    <!-- - - - - - -   MDR-based Resource   - - - - - - - - - -
    <import namespace="http://www.opengis.net/gml/3.2" 
	        schemaLocation="http://metadata.ces.mil/dse/ns/GPAS/schemas/ogc/gml/3.2.1/gml.xsd"/>
    <import namespace="http://www.opengis.net/gml/3.3/ce" 
	        schemaLocation="http://metadata.ces.mil/dse/ns/GPAS/schemas/ogc/gml/3.3/geometryCompact.xsd"/>  -->
    <!-- - - - - - -   Local Resource   - - - - - - - - - - -->
    <import namespace="http://www.opengis.net/gml/3.2" schemaLocation="../../ogc/gml/3.2.1/gml.xsd"/>
    <import namespace="http://www.opengis.net/gml/3.3/ce" schemaLocation="../../ogc/gml/3.3/geometryCompact.xsd"/>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <!-- == 

    Accompanying Specification at: http://metadata.ces.mil/mdr/ns/GSIP/tspi/2.0.0/doc

    ==-->
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <annotation>
        <documentation>Core XML type components that shall always be used as specified without further restriction unless documented by, and accomplished using, Schematron assertions.</documentation>
    </annotation>
    <!--============ TSPI Resolution Group ===============-->
    <group name="resolutionGroup">
        <annotation>
            <documentation>An XML model group consisting of all TSPI resolution elements.</documentation>
        </annotation>
        <sequence>
            <element name="horizResolutionCategory" type="tspi-core:HorizontalResolutionType" minOccurs="0">
                <annotation>
                    <documentation>Horizontal Resolution Category: The horizontal resolution of the coordinate tuple of the accompanying point, as a category. [desc] While the apparent resolution of the recorded xsd:double coordinate values may appear to be higher, such an appearance may be erroneous.</documentation>
                </annotation>
            </element>
            <element name="vertResolutionCategory" type="tspi-core:VerticalResolutionType" minOccurs="0">
                <annotation>
                    <documentation>Vertical Resolution Category: The vertical resolution of the coordinate tuple of the accompanying point, as a category. [desc] While the apparent resolution of the recorded xsd:double coordinate values may appear to be higher, such an appearance may be erroneous.</documentation>
                </annotation>
            </element>
        </sequence>
    </group>
    <!--============ TSPI Presentation Group =============-->
    <group name="presentationGroup">
        <annotation>
            <documentation>An XML model group consisting of all TSPI presentation elements.</documentation>
        </annotation>
        <sequence>
            <!--
               If a horizPresentation is present then:
               A. There shall be only a single occurance of its contained presentation.
               B. The horizResolutionCategory shall be populated (Best Practice)
                       and the @srsName of the horizPresentation shall be:
                   i. The same as that of the point if its @srsName specifies a 2D Horizontal CRS; else
                   ii. Commensurate to that of the point if its @srsName specifies a Compound 2D Horizontal +1D CRS.
            -->
            <element name="horizPresentation" type="tspi-core:HorizontalPresentationType" minOccurs="0">
                <annotation>
                    <documentation>Horizontal Presentation: A presentation of a point horizontal location that is generally intended for human-to-human communication rather than machine-to-machine communication.</documentation>
                </annotation>
            </element>
            <!--
               If a vertPresentation is present then:
               A. There shall be only a single occurance of its contained presentation.
               B. The point.vertResolutionCategory shall be populated (Best Practice)
                       and the @srsName of the vertPresentation shall be:
                   i. The same as that of the point if its @srsName specifies a 1D Vertical CRS; else
                   ii. Commensurate to that of the point if its @srsName specifies a Compound 2D +1D Vertical CRS.
               C. The vertPresentation elements shall always be of the same type:
                       All elevation, all altitude, or all depth.
               D. If the vertPresentation is an elevation or a depth then the @uom must be a length;
                       else the vertPresentation is an altitude and the @uom must be either a length
                           or a flightLevel (a noncomparable UoM).
            -->
            <element name="vertPresentation" type="tspi-core:VerticalPresentationType" minOccurs="0">
                <annotation>
                    <documentation>Vertical Presentation: A presentation of a point vertical location that is generally intended for human-to-human communication rather than machine-to-machine communication.</documentation>
                </annotation>
            </element>
        </sequence>
    </group>
    <!--============ TSPI PointType ====================-->
    <complexType name="PointType">
        <annotation>
            <documentation>Point Type: A point type as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuple as well as optional specification of one or more character-oriented presentations of the coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms.</documentation>
        </annotation>
        <complexContent>
            <extension base="gml:PointType">
                <sequence>
                    <group ref="tspi-core:resolutionGroup"/>
                    <group ref="tspi-core:presentationGroup"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <!--============ TSPI LineStringType ====================-->
    <complexType name="LineStringType">
        <annotation>
            <documentation>Line String Type: A line string type as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A line string is a special curve that consists of a single segment with linear interpolation. It is defined by two or more coordinate tuples, with linear interpolation between them.</documentation>
        </annotation>
        <complexContent>
            <extension base="gml:LineStringType">
                <sequence>
                    <group ref="tspi-core:resolutionGroup"/>
                    <group ref="tspi-core:presentationGroup"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <!--============ TSPI CircleType ====================-->
    <complexType name="CircleType">
        <annotation>
            <documentation>Circle Type: A circle type as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include assessments of the accuracy and/or resolution of the center point coordinate tuple as well as optional specification of one or more character-oriented presentations of the center point coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A circle by center point is an arc by center point with identical start and end angle to form a full circle. This representation can be used only in 2D.</documentation>
        </annotation>
        <complexContent>
            <extension base="gmlce:SimpleArcByCenterPointType">
                <sequence>
                    <group ref="tspi-core:resolutionGroup"/>
                    <group ref="tspi-core:presentationGroup"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <!--============ TSPI EllipseType =================-->
    <complexType name="EllipseType">
        <annotation>
            <documentation>Ellipse Type: An ellipse as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of an ellipse and then extended to include both assessments of the accuracy and/or resolution of the center point coordinate tuple as well as optional specification of one or more character-oriented presentations of the center point coordinate tuple based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An ellipse is an arc that is specified by a center point, and oriented semi-major/semi-minor axes of specified length. This representation can be used only in 2D.</documentation>
        </annotation>
        <complexContent>
            <extension base="gml:AbstractCurveType">
                <sequence>
                    <choice>
                        <annotation>
                            <documentation>The position of the center point of the ellipse.</documentation>
                        </annotation>
                        <element ref="gml:pos"/>
                        <element ref="gml:pointProperty"/>
                    </choice>
                    <element name="semiMajorLength" type="tspi-core:LengthType">
                        <annotation>
                            <documentation>Semi-major Axis Length: One-half of the length of the major axis of the ellipse. The major axis is the longest axis of an ellipse; it passes through the two foci.</documentation>
                        </annotation>
                    </element>
                    <element name="semiMinorLength" type="tspi-core:LengthType">
                        <annotation>
                            <documentation>Semi-minor Axis Length: One-half of the length of the minor axis of the ellipse. The minor axis is the shortest axis of an ellipse; it is perpendicular to the major axis.</documentation>
                        </annotation>
                    </element>
                    <element name="orientation" type="tspi-core:PlaneAngleType">
                        <annotation>
                            <documentation>Orientation: The direction of the major axis of the ellipse; its value is the counter-clockwise angle from the first axis of the Coordinate Reference System.</documentation>
                        </annotation>
                    </element>
                    <group ref="tspi-core:resolutionGroup"/>
                    <group ref="tspi-core:presentationGroup"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <!--============ TSPI PolygonType ====================-->
    <complexType name="PolygonType">
        <annotation>
            <documentation>Polygon Type: A polygon type as profiled from ISO 19136:2007 (GML) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms.</documentation>
        </annotation>
        <complexContent>
            <extension base="gml:PolygonType">
                <sequence>
                    <group ref="tspi-core:resolutionGroup"/>
                    <group ref="tspi-core:presentationGroup"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <!--============ TSPI SimplePolygonType ====================-->
    <complexType name="SimplePolygonType">
        <annotation>
            <documentation>Simple Polygon Type: A simple polygon type as profiled from GML 3.3 (OGC 10-129r1) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A SimplePolygon is a specialized polygon that has a simplified encoding of the logically equivalent GML 3.2 Surface with a single GML 3.2 PolygonPatch as its surface patch consisting of a single LinearRing as its exterior boundary and does not have any interior boundary. Thus the usage of the term 'simple' here refers to a specialized polygon with a _simplified_ encoding, which is _simply_ connected (no interior rings) and uses a _simple_ closed curve (no self-crossings) to represent its single boundary ring. The last coordinate does _not_ have to repeat the first coordinate in this simplified encoding, so only three control points are required to specify a simple polygon.</documentation>
        </annotation>
        <complexContent>
            <extension base="gmlce:SimplePolygonType">
                <sequence>
                    <group ref="tspi-core:resolutionGroup"/>
                    <group ref="tspi-core:presentationGroup"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <!--============ TSPI SimpleRectangleType ====================-->
    <complexType name="SimpleRectangleType">
        <annotation>
            <documentation>Simple Rectangle Type: A simple rectangle type as profiled from GML 3.3 (OGC 10-129r1) for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A simple rectangle is the special case of a simple polygon, which has exactly 4 control points in its boundary encoding representing the 4 corners of the rectangle.</documentation>
        </annotation>
        <complexContent>
            <extension base="gmlce:SimpleRectangleType">
                <sequence>
                    <group ref="tspi-core:resolutionGroup"/>
                    <group ref="tspi-core:presentationGroup"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <!--============ TSPI EnvelopeType =================-->
    <complexType name="EnvelopeType">
        <annotation>
            <documentation>Envelope Type: An envelope type, as developed based on ISO 19136:2007 (GML) Envelope for use in the TSPI Schema but extended to include both assessments of the accuracy and/or resolution of the pair of coordinate tuples as well as optional specification of one or more character-oriented presentations of the pair of coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An envelope defines an extent using a pair of positions defining opposite corners in arbitrary dimensions. The first direct position is the "lower corner" (a coordinate position consisting of all the minimal ordinates for each dimension for all points within the envelope), the second one the "upper corner" (a coordinate position consisting of all the maximal ordinates for each dimension for all points within the envelope).</documentation>
        </annotation>
        <complexContent>
            <extension base="gml:AbstractSurfaceType">
                <sequence>
                    <element name="lowerCorner">
                        <annotation>
                            <documentation>Lower Corner Position: A coordinate position consisting of all the minimal ordinates for each dimension for all points within the envelope.</documentation>
                        </annotation>
                        <complexType>
                            <choice>
                                <element ref="gml:pos"/>
                                <element ref="gml:pointProperty"/>
                            </choice>
                        </complexType>
                    </element>
                    <element name="upperCorner">
                        <annotation>
                            <documentation>Upper Corner Position: A coordinate position consisting of all the maximal ordinates for each dimension for all points within the envelope.</documentation>
                        </annotation>
                        <complexType>
                            <choice>
                                <element ref="gml:pos"/>
                                <element ref="gml:pointProperty"/>
                            </choice>
                        </complexType>
                    </element>
                    <group ref="tspi-core:resolutionGroup"/>
                    <!--
                        If a horizPresentation is present then:
                        A. The lower/upperCorner @srsNames shall always be identical.
                        B. The horizResolutionCategory shall be populated (Best Practice)
                                and the @srsName of the horizPresentation corners shall be:
                            i. The same as that of the envelope if the @srsName specifies a 2D Horizontal CRS; else
                            ii. Commensurate to that of the envelope if the @srsName specifies a Compound 2D Horizontal +1D CRS.
                        C. The horizPresentation elements shall always be of the same type:
                                    Both sexagesimal, both grid-meter, etc.
                     -->
                    <element name="horizPresentation" minOccurs="0">
                        <annotation>
                            <documentation>Horizontal Presentation: A presentation of an envelope point horizontal locations that is generally intended for human-to-human communication rather than machine-to-machine communication.</documentation>
                        </annotation>
                        <complexType>
                            <sequence>
                                <element name="lowerCorner" type="tspi-core:HorizontalPresentationType">
                                    <annotation>
                                        <documentation>Lower Corner Horizontal Presentation: A presentation of an envelope lower corner point horizontal location that is generally intended for human-to-human communication rather than machine-to-machine communication.</documentation>
                                    </annotation>
                                </element>
                                <element name="upperCorner" type="tspi-core:HorizontalPresentationType">
                                    <annotation>
                                        <documentation>Upper Corner Horizontal Presentation: A presentation of an envelope upper corner horizontal location that is generally intended for human-to-human communication rather than machine-to-machine communication.</documentation>
                                    </annotation>
                                </element>
                            </sequence>
                        </complexType>
                    </element>
                    <!--
                        If a vertPresentation is present then:
                        A. The lower/upperCorner @srsNames shall always be identical.
                        B. The envelope.vertResolutionCategory shall be populated (Best Practice)
                                and the @srsName of the vertPresentation corners shall be:
                            i. The same as that of the envelope if its @srsName specifies a 1D Vertical CRS; else
                            ii. Commensurate to that of the envelope if its @srsName specifies a Compound 2D +1D Vertical CRS.
                        C. The vertPresentation elements shall always be of the same type:
                                    Both elevation, both altitude, or both depth.
                        D. If the vertPresentation is an elevation or a depth then the @uom must be a length;
                                else the vertPresentation is an altitude and the @uom must be either a length
                                    or a flightLevel (a noncomparable UoM).
                     -->
                    <element name="vertPresentation" minOccurs="0">
                        <annotation>
                            <documentation>Vertical Presentation: A presentation of an envelope point vertical locations that is generally intended for human-to-human communication rather than machine-to-machine communication.</documentation>
                        </annotation>
                        <complexType>
                            <sequence>
                                <element name="lowerCorner" type="tspi-core:VerticalPresentationType">
                                    <annotation>
                                        <documentation>Lower Corner Vertical Presentation: A presentation of an envelope lower corner point vertical location that is generally intended for human-to-human communication rather than machine-to-machine communication.</documentation>
                                    </annotation>
                                </element>
                                <element name="upperCorner" type="tspi-core:VerticalPresentationType">
                                    <annotation>
                                        <documentation>Upper Corner Vertical Presentation: A presentation of an envelope upper corner vertical location that is generally intended for human-to-human communication rather than machine-to-machine communication.</documentation>
                                    </annotation>
                                </element>
                            </sequence>
                        </complexType>
                    </element>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <!--============ TSPI CircularSurfaceType =================-->
    <complexType name="CircularSurfaceType">
        <annotation>
            <documentation>Circular Surface Type: A circular surface type, as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of a circle and extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. A circle is an arc that is specified by a center point, a radius, and which has identical start and end angles. This representation can be used only in 2D.</documentation>
        </annotation>
        <complexContent>
            <extension base="gml:AbstractSurfaceType">
                <sequence>
                    <choice>
                        <annotation>
                            <documentation>The position of the center point of the circle.</documentation>
                        </annotation>
                        <element ref="gml:pos"/>
                        <element ref="gml:pointProperty"/>
                    </choice>
                    <element name="radius" type="tspi-core:LengthType">
                        <annotation>
                            <documentation>Radius: The distance from the center to the circumference of the circle.</documentation>
                        </annotation>
                    </element>
                    <group ref="tspi-core:resolutionGroup"/>
                    <group ref="tspi-core:presentationGroup"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <!--============ TSPI EllipticalSurfaceType =================-->
    <complexType name="EllipticalSurfaceType">
        <annotation>
            <documentation>Elliptical Surface Type: An elliptical surface type, as developed based on ISO 19136:2007 (GML) Polygon for use in the TSPI Schema but defined in terms of the content model of a circle and then extended to include both assessments of the accuracy and/or resolution of the coordinate tuples as well as optional specification of one or more character-oriented presentations of the coordinate tuples based on the sexagesimal, grid-metre, zone-metre, quadrangle and/or numeric-bit location forms. An ellipse is an arc that is specified by a center point, and oriented semi-major/semi-minor axes of specified length. This representation can be used only in 2D.</documentation>
        </annotation>
        <complexContent>
            <extension base="gml:AbstractSurfaceType">
                <sequence>
                    <choice>
                        <annotation>
                            <documentation>The position of the center point of the ellipse.</documentation>
                        </annotation>
                        <element ref="gml:pos"/>
                        <element ref="gml:pointProperty"/>
                    </choice>
                    <element name="semiMajorLength" type="tspi-core:LengthType">
                        <annotation>
                            <documentation>Semi-major Axis Length: One-half of the length of the major axis of the ellipse. The major axis is the longest axis of an ellipse; it passes through the two foci.</documentation>
                        </annotation>
                    </element>
                    <element name="semiMinorLength" type="tspi-core:LengthType">
                        <annotation>
                            <documentation>Semi-minor Axis Length: One-half of the length of the minor axis of the ellipse. The minor axis is the shortest axis of an ellipse; it is perpendicular to the major axis.</documentation>
                        </annotation>
                    </element>
                    <element name="orientation" type="tspi-core:PlaneAngleType">
                        <annotation>
                            <documentation>Orientation: The direction of the major axis of the ellipse; its value is the counter-clockwise angle from the first axis of the Coordinate Reference System.</documentation>
                        </annotation>
                    </element>
                    <group ref="tspi-core:resolutionGroup"/>
                    <group ref="tspi-core:presentationGroup"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
    <!--============ Presentations ================-->
    <complexType name="HorizontalPresentationType">
        <annotation>
            <documentation>Horizontal Presentation Type: A type consisting of one or more occurances of one of a set of alternative presentations of a point horizontal location that are generally intended for human-to-human communication rather than machine-to-machine communication.</documentation>
        </annotation>
        <choice>
            <element name="sexagesimalLocation" type="tspi-core:SexagesimalPresentationType" maxOccurs="unbounded">
                <annotation>
                    <documentation>Sexagesimal Location: A sexagesimal position presentation based on 60 arc seconds comprising an arc minute and 60 arc minutes comprising an arc degree that is widely employed as a basis for position reporting. [desc] The presentation consists of two component strings, one each for the geodetic latitude and longitude coordinates, which are identical excepting differences in the maximum value of latitude (90 arc degrees) and longitude (180 arc degrees) and the allowed value of hemisphere (North and South, versus East and West).</documentation>
                </annotation>
            </element>
            <element name="gridMetreLocation" type="tspi-core:GridMetrePresentationType" maxOccurs="unbounded">
                <annotation>
                    <documentation>Grid-Metre Location: A grid-metre position presentation based on the requirements of the Military Grid Reference System (MGRS) position reporting system. [desc] Grid squares are used as a means of identifying 100,000-metre x 100,000-metre spatial regions on the Earth within which a position is specified as an easting-northing positive-offset value-pair, in metres, from the southwest corner. The presentation consists of a single component string integrating both the geodetic latitude and longitude coordinate values.</documentation>
                </annotation>
            </element>
            <element name="zoneMetreLocation" type="tspi-core:ZoneMetrePresentationType" maxOccurs="unbounded">
                <annotation>
                    <documentation>Zone-Metre Location: A zone-metre position presentation based on the requirements of the universal grid position reporting systems based on Universal Transverse Mercator (UTM) and Universal Polar Stereographic (UPS) map projections. [desc] Zones and hemispheres are used as a means of identifying spatial regions on the Earth within which a position is specified as an easting-northing positive-offset value-pair, in metres, from a reference location. The reference location is assigned a positive offset-value to ensure that all legal offset values in a zone are positive. The presentation consists of a single component string integrating both the geodetic latitude and longitude coordinate values.</documentation>
                </annotation>
            </element>
            <element name="quadrangleLocation" type="tspi-core:QuadranglePresentationType" maxOccurs="unbounded">
                <annotation>
                    <documentation>Quadrangle Location: A datatype representing a quadrangle position presentation based on the requirements of the GEOREF area-designation system. [desc] Quadrangles are used as a means of identifying 1 arc degree x 1 arc degree spatial regions which are then subdivided in accordance with sexagesimal notation based on 60 arc minutes comprising an arc degree. The presentation consists of a single component string integrating both the geodetic latitude and longitude coordinate values.</documentation>
                </annotation>
            </element>
            <element name="numericBitLocation" type="tspi-core:NumericBitPresentationType" maxOccurs="unbounded">
                <annotation>
                    <documentation>Numeric-Bit Location: A numeric-bit position presentation based on the requirements of the Variable Message Format (VMF). [desc] VMF encodes values of geodetic latitude and longitude as multi-bit fields whose bit configurations represent actual numeric values. The least significant bit value and range are described in the applicable message description. A negative number is coded and transmitted with twos complement coding and identified by the number one in the most significant bit of the data field.</documentation>
                </annotation>
            </element>
        </choice>
        <attribute name="srsName" type="anyURI" use="required">
            <annotation>
                <documentation>Spatial Reference System Name: A unique identifier of a spatial reference system, usually a Coordinate Reference System (CRS). [desc] Specified as a Uniform Resource Identifier (URI).</documentation>
            </annotation>
        </attribute>
    </complexType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <complexType name="VerticalPresentationType">
        <annotation>
            <documentation>Vertical Presentation Type: A type consisting of one or more occurances of one of a set of alternative presentations of a point vertical location that are generally intended for human-to-human communication rather than machine-to-machine communication.</documentation>
        </annotation>
        <choice>
            <element name="height" type="gml:MeasureType" maxOccurs="unbounded">
                <annotation>
                    <documentation>Height: The distance above a reference surface determined along the direction of the reference surface normal with positive values being above the reference surface. [desc] Conventionally measured from an ellipsoid as "Height Above Ellipsoid" (HAE).</documentation>
                </annotation>
            </element>
            <element name="altitude" type="gml:MeasureType" maxOccurs="unbounded">
                <annotation>
                    <documentation>Altitude: The distance above a reference surface determined along the direction of gravity with positive values being above the reference surface. [desc] Conventionally measured from Mean Sea level (MSL) or a geoid (for example: Earth Gravity Model 1996 (EGM96)).</documentation>
                </annotation>
            </element>
            <element name="depth" type="gml:MeasureType" maxOccurs="unbounded">
                <annotation>
                    <documentation>Depth: The distance below a reference surface determined along the direction of gravity with positive values being below the reference surface. [desc] Conventionally measured from Mean Sea level (MSL); may also be measured from a Todal Datum or River Datum.</documentation>
                </annotation>
            </element>
        </choice>
        <attribute name="srsName" type="anyURI" use="required">
            <annotation>
                <documentation>Spatial Reference System Name: A unique identifier of a spatial reference system, usually a Coordinate Reference System (CRS). [desc] Specified as a Uniform Resource Identifier (URI).</documentation>
            </annotation>
        </attribute>
    </complexType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <complexType name="SexagesimalPresentationType">
        <annotation>
            <documentation>Sexagesimal Presentation Type: A datatype representing a sexagesimal position presentation based on 60 arc seconds comprising an arc minute and 60 arc minutes comprising an arc degree that is widely employed as a basis for position reporting. [desc] The presentation consists of two component strings, one each for the geodetic latitude and longitude coordinates, which are identical excepting differences in the maximum value of latitude (90 arc degrees) and longitude (180 arc degrees) and the allowed value of hemisphere (North and South, versus East and West).</documentation>
        </annotation>
        <sequence>
            <!-- Geodetic location in arc degrees -->
            <element name="geoDegree">
                <annotation>
                    <documentation>Geodetic Degree: The presentation value of a spatial position expressed as angle components of geodetic latitude and longitude.</documentation>
                </annotation>
                <complexType>
                    <sequence>
                        <element name="latitude" type="tspi-core:GeoLatitudeDegreeType">
                            <annotation>
                                <documentation>Geodetic Latitude Degree: The presentation value of a spatial position expressed as a component of an angle of geodetic latitude in unsigned decimal arc degrees.</documentation>
                            </annotation>
                        </element>
                        <element name="longitude" type="tspi-core:GeoLongitudeDegreeType">
                            <annotation>
                                <documentation>Geodetic Longitude Degree: The presentation value of a spatial position expressed as an angle of geodetic longitude in unsigned decimal arc degrees.</documentation>
                            </annotation>
                        </element>
                    </sequence>
                </complexType>
            </element>
            <!-- Geodetic location in fractional arc degrees -->
            <element name="geoDegreeFraction" minOccurs="0">
                <annotation>
                    <documentation>Geodetic Degree Fraction: The presentation value of a spatial position expressed as remaining fractional arc degree angle components of geodetic latitude and longitude.</documentation>
                </annotation>
                <complexType>
                    <choice>
                        <element name="decidegree">
                            <annotation>
                                <documentation>Geodetic Decidegree: The presentation value of a spatial position expressed as remaining fractional arc decidegree (tenths of an arc degree) angle components of geodetic latitude and longitude.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="latitude" type="tspi-core:DecaType">
                                        <annotation>
                                            <documentation>Geodetic Latitude Decidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc decidegrees (tenths of an arc degree).</documentation>
                                        </annotation>
                                    </element>
                                    <element name="longitude" type="tspi-core:DecaType">
                                        <annotation>
                                            <documentation>Geodetic Longitude Decidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc decidegrees (tenths of an arc degree).</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="centidegree">
                            <annotation>
                                <documentation>Geodetic Centidegree: The presentation value of a spatial position expressed as remaining fractional arc centidegree (hundredths of an arc degree) angle components of geodetic latitude and longitude.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="latitude" type="tspi-core:HectoType">
                                        <annotation>
                                            <documentation>Geodetic Latitude Centidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc centidegrees (hundredths of an arc degree).</documentation>
                                        </annotation>
                                    </element>
                                    <element name="longitude" type="tspi-core:HectoType">
                                        <annotation>
                                            <documentation>Geodetic Longitude Centidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc centidegrees (hundredths of an arc degree).</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="millidegree">
                            <annotation>
                                <documentation>Geodetic Millidegree: The presentation value of a spatial position expressed as remaining fractional arc millidegree (thousandths of an arc degree) angle components of geodetic latitude and longitude.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="latitude" type="tspi-core:KiloType">
                                        <annotation>
                                            <documentation>Geodetic Latitude Millidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc millidegrees (thousandths of an arc degree).</documentation>
                                        </annotation>
                                    </element>
                                    <element name="longitude" type="tspi-core:KiloType">
                                        <annotation>
                                            <documentation>Geodetic Longitude Millidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc millidegrees (thousandths of an arc degree).</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="decimillidegree">
                            <annotation>
                                <documentation>Geodetic Decimillidegree: The presentation value of a spatial position expressed as remaining fractional arc decimillidegree (ten-thousandths of an arc degree) angle components of geodetic latitude and longitude.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="latitude" type="tspi-core:DecakiloType">
                                        <annotation>
                                            <documentation>Geodetic Latitude Decimillidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc decimillidegrees (ten-thousandths of an arc degree).</documentation>
                                        </annotation>
                                    </element>
                                    <element name="longitude" type="tspi-core:DecakiloType">
                                        <annotation>
                                            <documentation>Geodetic Longitude Decimillidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc decimillidegrees (ten-thousandths of an arc degree).</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="centimillidegree">
                            <annotation>
                                <documentation>Geodetic Centimillidegree: The presentation value of a spatial position expressed as remaining fractional arc centimillidegree (hundred-thousandths of an arc degree) angle components of geodetic latitude and longitude.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="latitude" type="tspi-core:HectokiloType">
                                        <annotation>
                                            <documentation>Geodetic Latitude Centimillidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc centimillidegrees (hundred-thousandths of an arc degree).</documentation>
                                        </annotation>
                                    </element>
                                    <element name="longitude" type="tspi-core:HectokiloType">
                                        <annotation>
                                            <documentation>Geodetic Longitude Centimillidegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc centimillidegrees (hundred-thousandths of an arc degree).</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="microdegree">
                            <annotation>
                                <documentation>Geodetic Microdegree: The presentation value of a spatial position expressed as remaining fractional arc microdegree (millionths of an arc degree) angle components of geodetic latitude and longitude.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="latitude" type="tspi-core:MegaType">
                                        <annotation>
                                            <documentation>Geodetic Latitude Microdegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc microdegrees (millionths of an arc degree).</documentation>
                                        </annotation>
                                    </element>
                                    <element name="longitude" type="tspi-core:MegaType">
                                        <annotation>
                                            <documentation>Geodetic Longitude Microdegrees: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc microdegrees (millionth of an arc degree).</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                    </choice>
                </complexType>
            </element>
            <!-- Geodetic location in arc minutes -->
            <element name="geoMinute" minOccurs="0">
                <annotation>
                    <documentation>Geodetic Minute: The presentation value of a spatial position expressed as angle components of geodetic latitude and longitude. [desc] Only used when angle components in arc degrees have been specified.</documentation>
                </annotation>
                <complexType>
                    <sequence>
                        <element name="latitude" type="tspi-core:SexagesimalType">
                            <annotation>
                                <documentation>Geodetic Latitude Minute: The presentation value of a spatial position expressed as a component of an angle of geodetic latitude in unsigned decimal arc minutes.</documentation>
                            </annotation>
                        </element>
                        <element name="longitude" type="tspi-core:SexagesimalType">
                            <annotation>
                                <documentation>Geodetic Longitude Minute: The presentation value of a spatial position expressed as a component of an angle of geodetic longitude in unsigned decimal arc minutes.</documentation>
                            </annotation>
                        </element>
                    </sequence>
                </complexType>
            </element>
            <!-- Geodetic location in fractional arc minutes -->
            <element name="geoMinuteFraction" minOccurs="0">
                <annotation>
                    <documentation>Geodetic Minute Fraction: The presentation value of a spatial position expressed as remaining fractional arc minute angle components of geodetic latitude and longitude. [desc] Only used when angle components in arc minutes have been specified.</documentation>
                </annotation>
                <complexType>
                    <choice>
                        <element name="deciminute">
                            <annotation>
                                <documentation>Geodetic Deciminute: The presentation value of a spatial position expressed as remaining fractional arc deciminute (tenths of an arc minute) angle components of geodetic latitude and longitude.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="latitude" type="tspi-core:DecaType">
                                        <annotation>
                                            <documentation>Geodetic Latitude Deciminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc deciminutes (tenth of an arc minute).</documentation>
                                        </annotation>
                                    </element>
                                    <element name="longitude" type="tspi-core:DecaType">
                                        <annotation>
                                            <documentation>Geodetic Longitude Deciminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc deciminutes (tenth of an arc minute).</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="centiminute">
                            <annotation>
                                <documentation>Geodetic Centiminute: The presentation value of a spatial position expressed as remaining fractional arc centiminute (hundredths of an arc minute) angle components of geodetic latitude and longitude.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="latitude" type="tspi-core:HectoType">
                                        <annotation>
                                            <documentation>Geodetic Latitude Centiminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc centiminutes (hundredth of an arc minute).</documentation>
                                        </annotation>
                                    </element>
                                    <element name="longitude" type="tspi-core:HectoType">
                                        <annotation>
                                            <documentation>Geodetic Longitude Centiminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc centiminutes (hundredth of an arc minute).</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="milliminute">
                            <annotation>
                                <documentation>Geodetic Milliminute: The presentation value of a spatial position expressed as remaining fractional arc milliiminute (thousandths of an arc minute) angle components of geodetic latitude and longitude.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="latitude" type="tspi-core:KiloType">
                                        <annotation>
                                            <documentation>Geodetic Latitude Milliminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc milliminutes (thousandth of an arc minute).</documentation>
                                        </annotation>
                                    </element>
                                    <element name="longitude" type="tspi-core:KiloType">
                                        <annotation>
                                            <documentation>Geodetic Longitude Milliminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc milliminutes (thousandth of an arc minute).</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="decimilliminute">
                            <annotation>
                                <documentation>Geodetic Decimilliminute: The presentation value of a spatial position expressed as remaining fractional arc decimilliminute (ten-thousandths of an arc minute) angle components of geodetic latitude and longitude.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="latitude" type="tspi-core:DecakiloType">
                                        <annotation>
                                            <documentation>Geodetic Latitude Decimilliminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc decimilliminutes (ten-thousandth of an arc minute).</documentation>
                                        </annotation>
                                    </element>
                                    <element name="longitude" type="tspi-core:DecakiloType">
                                        <annotation>
                                            <documentation>Geodetic Longitude Decimilliminutes: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc decimilliminutes (ten-thousandth of an arc minute).</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                    </choice>
                </complexType>
            </element>
            <!-- Geodetic location in arc seconds -->
            <element name="geoSecond" minOccurs="0">
                <annotation>
                    <documentation>Geodetic Second: The presentation value of a spatial position expressed as angle components of geodetic latitude and longitude. [desc] Only used when angle components in arc degrees and arc minutes have been specified.</documentation>
                </annotation>
                <complexType>
                    <sequence>
                        <element name="latitude" type="tspi-core:SexagesimalType">
                            <annotation>
                                <documentation>Geodetic Latitude Seconds: The presentation value of a spatial position expressed as a component of an angle of geodetic latitude in unsigned decimal arc seconds.</documentation>
                            </annotation>
                        </element>
                        <element name="longitude" type="tspi-core:SexagesimalType">
                            <annotation>
                                <documentation>Geodetic Longitude Seconds: The presentation value of a spatial position expressed as a component of an angle of geodetic longitude in unsigned decimal arc seconds.</documentation>
                            </annotation>
                        </element>
                    </sequence>
                </complexType>
            </element>
            <!-- Geodetic location in fractional arc seconds -->
            <element name="geoSecondFraction" minOccurs="0">
                <annotation>
                    <documentation>Geodetic Second Fraction: The presentation value of a spatial position expressed as remaining fractional arc second angle components of geodetic latitude and longitude. [desc] Only used when angle components in arc seconds have been specified.</documentation>
                </annotation>
                <complexType>
                    <choice>
                        <element name="decisecond">
                            <annotation>
                                <documentation>Geodetic Decisecond: The presentation value of a spatial position expressed as remaining fractional arc decisecond (tenths of an arc second) angle components of geodetic latitude and longitude.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="latitude" type="tspi-core:DecaType">
                                        <annotation>
                                            <documentation>Geodetic Latitude Deciseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc deciseconds (tenth of an arc second).</documentation>
                                        </annotation>
                                    </element>
                                    <element name="longitude" type="tspi-core:DecaType">
                                        <annotation>
                                            <documentation>Geodetic Longitude Deciseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc deciseconds (tenth of an arc second).</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="centisecond">
                            <annotation>
                                <documentation>Geodetic Centisecond: The presentation value of a spatial position expressed as remaining fractional arc centisecond (hundredths of an arc second) angle components of geodetic latitude and longitude.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="latitude" type="tspi-core:HectoType">
                                        <annotation>
                                            <documentation>Geodetic Latitude Centiseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc centiseconds (hundredth of an arc second).</documentation>
                                        </annotation>
                                    </element>
                                    <element name="longitude" type="tspi-core:HectoType">
                                        <annotation>
                                            <documentation>Geodetic Longitude Centiseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc centiseconds (hundredth of an arc second).</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="millisecond">
                            <annotation>
                                <documentation>Geodetic Millisecond: The presentation value of a spatial position expressed as remaining fractional arc millisecond (thousandths of an arc second) angle components of geodetic latitude and longitude.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="latitude" type="tspi-core:KiloType">
                                        <annotation>
                                            <documentation>Geodetic Latitude Milliseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic latitude in unsigned decimal arc milliseconds (thousandth of an arc second).</documentation>
                                        </annotation>
                                    </element>
                                    <element name="longitude" type="tspi-core:KiloType">
                                        <annotation>
                                            <documentation>Geodetic Longitude Milliseconds: The presentation value of a spatial position expressed as a remaining fractional component of an angle of geodetic longitude in unsigned decimal arc milliseconds (thousandth of an arc second).</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                    </choice>
                </complexType>
            </element>
            <!-- Geodetic Latitude and Longitude hemispheres -->
            <element name="geoLatHemisphere" type="tspi-core:LatitudeHemisphereType">
                <annotation>
                    <documentation>Geodetic Latitude Hemisphere: The hemispheric location of a spatial position expressed as a geodetic latitude, as a category. [desc] One of: north or south.</documentation>
                </annotation>
            </element>
            <element name="geoLongHemisphere" type="tspi-core:LongitudeHemisphereType">
                <annotation>
                    <documentation>Geodetic Longitude Hemisphere: The hemispheric location of a spatial position expressed as a geodetic longitude, as a category. [desc] One of: east or west.</documentation>
                </annotation>
            </element>
            <!-- Internationalized radix marker -->
            <element name="radixPointMark" type="tspi-core:RadixPointMarkType" default="." minOccurs="0">
                <annotation>
                    <documentation>Radix Point Mark: The symbol used in numerical representations to separate the integral part of the number (to the left of the radix) from its fractional part (to the right of the radix). [desc] The radix point mark is usually a small dot, either placed on the baseline or halfway between the baseline and the top of the numerals. In base-10, the radix point is more commonly called the decimal point; radix point, however, is the more general term used for other bases. In many non-English speaking countries, a comma ',' is used instead of a period '.' as the radix point mark.</documentation>
                </annotation>
            </element>
        </sequence>
    </complexType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="GeoLatitudeDegreeType">
        <annotation>
            <documentation>Geodetic Latitude Type: A datatype consisting of up to two digits in the range from "0" to "90" that may be used to represent an unsigned decimal value of geodetic latitude. Leading zeros may be suppressed as it is not of fixed-length.</documentation>
        </annotation>
        <restriction base="integer">
            <minInclusive value="0"/>
            <maxInclusive value="90"/>
        </restriction>
    </simpleType>
    <simpleType name="GeoLongitudeDegreeType">
        <annotation>
            <documentation>Geodetic Longitude Type: A datatype consisting of up to three digits in the range from "0" to "180" that may be used to represent an unsigned decimal value of geodetic longitude. Leading zeros may be suppressed as it is not of fixed-length.</documentation>
        </annotation>
        <restriction base="integer">
            <minInclusive value="0"/>
            <maxInclusive value="180"/>
        </restriction>
    </simpleType>
    <simpleType name="LatitudeHemisphereType">
        <annotation>
            <documentation>Latitude Hemisphere Type: A coded domain value denoting the hemispheric location of a spatial position expressed as a geodetic latitude. [desc] One of: north or south.</documentation>
        </annotation>
        <restriction base="string">
            <enumeration value="north">
                <annotation>
                    <documentation>Northern Hemisphere: The half of the surface of the Earth lying to the side of the Equator in the direction of the star Polaris. [desc] It generally contains the North American and Eurasian landmasses.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="south">
                <annotation>
                    <documentation>Southern Hemisphere: The half of the surface of the Earth lying to the side of the Equator in the opposite direction of the star Polaris. [desc] It generally contains the South American, African, Australian, and Antarctic landmasses.</documentation>
                </annotation>
            </enumeration>
        </restriction>
    </simpleType>
    <simpleType name="LongitudeHemisphereType">
        <annotation>
            <documentation>Longitude Hemisphere Type: A coded domain value denoting the hemispheric location of a spatial position expressed as a geodetic longitude. [desc] One of: east or west.</documentation>
        </annotation>
        <restriction base="string">
            <enumeration value="east">
                <annotation>
                    <documentation>Eastern Hemisphere: The half of the surface of the Earth lying to the side of the 0 arc degree meridian in which direction the Earth rotates and ending at the 180 arc degree meridian. [desc] It generally contains the Eurasian, African and Australian landmasses.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="west">
                <annotation>
                    <documentation>Western Hemisphere: The half of the surface of the Earth lying to the side of the 0 arc degree meridian opposite to the direction in which the Earth rotates and ending at the 180 arc degree meridian. [desc] It generally contains the North American and South American landmasses.</documentation>
                </annotation>
            </enumeration>
        </restriction>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="SexagesimalType">
        <annotation>
            <documentation>Sexagesimal Type: A datatype consisting of up to two digits in the range from "0" to "59" that may be used to represent an unsigned decimal value. Leading zeros may be suppressed as it is not of fixed-length.</documentation>
        </annotation>
        <restriction base="integer">
            <minInclusive value="00"/>
            <maxInclusive value="59"/>
        </restriction>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="DecaType">
        <annotation>
            <documentation>Deca Type: A datatype consisting of a single digit in the range from "0" to "9" that may be used to represent an unsigned decimal value.</documentation>
        </annotation>
        <restriction base="integer">
            <minInclusive value="0"/>
            <maxInclusive value="9"/>
            <pattern value="[0-9]{1,1}"/>
        </restriction>
    </simpleType>
    <simpleType name="HectoType">
        <annotation>
            <documentation>Hecto Type: A datatype consisting of two digits in the range from "00" to "99" that may be used to represent an unsigned decimal value.</documentation>
        </annotation>
        <restriction base="integer">
            <minInclusive value="00"/>
            <maxInclusive value="99"/>
            <pattern value="[0-9]{2,2}"/>
        </restriction>
    </simpleType>
    <simpleType name="KiloType">
        <annotation>
            <documentation>Kilo Type: A datatype consisting of three digits in the range from "000" to "999" that may be used to represent an unsigned decimal value.</documentation>
        </annotation>
        <restriction base="integer">
            <minInclusive value="000"/>
            <maxInclusive value="999"/>
            <pattern value="[0-9]{3,3}"/>
        </restriction>
    </simpleType>
    <simpleType name="DecakiloType">
        <annotation>
            <documentation>Decakilo Type: A datatype consisting of four digits in the range from "0000" to "9999" that may be used to represent an unsigned decimal value.</documentation>
        </annotation>
        <restriction base="integer">
            <minInclusive value="0000"/>
            <maxInclusive value="9999"/>
            <pattern value="[0-9]{4,4}"/>
        </restriction>
    </simpleType>
    <simpleType name="HectokiloType">
        <annotation>
            <documentation>Hectokilo Type: A datatype consisting of five digits in the range from "00000" to "99999" that may be used to represent an unsigned decimal value.</documentation>
        </annotation>
        <restriction base="integer">
            <minInclusive value="00000"/>
            <maxInclusive value="99999"/>
            <pattern value="[0-9]{5,5}"/>
        </restriction>
    </simpleType>
    <simpleType name="MegaType">
        <annotation>
            <documentation>Mega Type: A datatype consisting of six digits in the range from "000000" to "999999" that may be used to represent an unsigned decimal value.</documentation>
        </annotation>
        <restriction base="integer">
            <minInclusive value="000000"/>
            <maxInclusive value="999999"/>
            <pattern value="[0-9]{6,6}"/>
        </restriction>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="RadixPointMarkType">
        <annotation>
            <documentation>Radix Point Mark Type: A datatype representing the symbol used in numerical representations to separate the integral part of the number (to the left of the radix) from its fractional part (to the right of the radix). [desc] The radix point mark is usually a small dot, either placed on the baseline or halfway between the baseline and the top of the numerals. In base-10, the radix point is more commonly called the decimal point; radix point, however, is the more general term used for other bases. In many non-English speaking countries, a comma ',' is used instead of a period '.' as the radix point mark.</documentation>
        </annotation>
        <restriction base="string">
            <enumeration value="."/>
            <enumeration value=","/>
        </restriction>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <complexType name="GridMetrePresentationType">
        <annotation>
            <documentation>Grid-Metre Presentation Type: A datatype representing a grid-metre position presentation based on the requirements of the Military Grid Reference System (MGRS) position reporting system. [desc] Grid squares are used as a means of identifying 100,000-metre x 100,000-metre spatial regions on the Earth within which a position is specified as an easting-northing positive-offset value-pair, in metres, from the southwest corner. The presentation consists of a single component string integrating all coordinate tuple values.</documentation>
        </annotation>
        <sequence>
            <!-- Zone Designation -->
            <element name="zoneColumn" type="tspi-core:GridZoneColumnType" minOccurs="0">
                <annotation>
                    <documentation>Grid Zone Column: An identification of a 6 arc degree wide spatial region on the surface of the Earth. [desc] There are 60 longitudinal zones each of 6 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are numbered eastwards from '01' to '60'.</documentation>
                </annotation>
            </element>
            <element name="zoneRow" type="tspi-core:GridZoneRowType">
                <annotation>
                    <documentation>Grid Zone Row: An identification of a 8 arc degree tall spatial region on the surface of the Earth. [desc] There are 19 bands of latitude each of 8 arc degrees in height, extending northward from the 80 arc degree parallel in the Southern Hemisphere; these bands are lettered northwards from A to W inclusive (omitting 'I' and 'O'). There is a final 20th band of 12 arc degrees in latitude extending from 72 to 84 arc degrees North that is lettered as 'X'.</documentation>
                </annotation>
            </element>
            <!-- Square Identification -->
            <element name="squareColumn" type="tspi-core:GridSquareColumnType">
                <annotation>
                    <documentation>Grid Square Column: An identification of a 100,000 metre wide spatial region on the surface of the Earth with respect to an encompassing grid zone. [desc] There are up to eight such grid square columns in a grid zone. Grid square row and column designations are assigned in accordance with a complex algorithm specified in DMA TM8358.1, Datums, Ellipsoids, Grids, and Grid Reference Systems, September 1990, Chapter 3.</documentation>
                </annotation>
            </element>
            <element name="squareRow" type="tspi-core:GridSquareRowType">
                <annotation>
                    <documentation>Grid Square Row: An identification of a 100,000 metre tall spatial region on the surface of the Earth with respect to an encompassing grid row. [desc] There are up to nine such grid square rows in a grid row. Grid square row and column designations are assigned in accordance with a complex algorithm specified in DMA TM8358.1, Datums, Ellipsoids, Grids, and Grid Reference Systems, September 1990, Chapter 3.</documentation>
                </annotation>
            </element>
            <!-- Relative location in metres -->
            <element name="relativeLocation" minOccurs="0">
                <annotation>
                    <documentation>Relative Location: The relative position of a square subregion with respect to an encompassing grid square.</documentation>
                </annotation>
                <complexType>
                    <choice>
                        <element name="decakilometre">
                            <annotation>
                                <documentation>Decakilometre Offset: The relative position of a 10,000 by 10,000 metre subregion with respect to an encompassing grid square.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="easting" type="tspi-core:DecaType">
                                        <annotation>
                                            <documentation>Decakilometre Easting: The presentation value of a spatial position expressed as an integer-valued offset in decakilometres (ten thousand metres) eastwards of the western boundary of an encompassing grid square column.</documentation>
                                        </annotation>
                                    </element>
                                    <element name="northing" type="tspi-core:DecaType">
                                        <annotation>
                                            <documentation>Decakilometre Northing: The presentation value of a spatial position expressed as an integer-valued offset in decakilometres (ten thousand metres) northwards of the southern boundary of an encompassing grid square row.</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="kilometre">
                            <annotation>
                                <documentation>Kilometre Offset: The relative position of a 1,000 by 1,000 metre subregion with respect to an encompassing grid square.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="easting" type="tspi-core:HectoType">
                                        <annotation>
                                            <documentation>Kilometre Easting: The presentation value of a spatial position expressed as an integer-valued offset in kilometres eastwards of the western boundary of an encompassing grid square column.</documentation>
                                        </annotation>
                                    </element>
                                    <element name="northing" type="tspi-core:HectoType">
                                        <annotation>
                                            <documentation>Kilometre Northing: The presentation value of a spatial position expressed as an integer-valued offset in kilometres northwards of the southern boundary of an encompassing grid square row.</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="hectometre">
                            <annotation>
                                <documentation>Hectometre Offset: The relative position of a 100 by 100 metre subregion with respect to an encompassing grid square.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="easting" type="tspi-core:KiloType">
                                        <annotation>
                                            <documentation>Hectometre Easting: The presentation value of a spatial position expressed as an integer-valued offset in hectometres (hundred metres) eastwards of the western boundary of an encompassing grid square column.</documentation>
                                        </annotation>
                                    </element>
                                    <element name="northing" type="tspi-core:KiloType">
                                        <annotation>
                                            <documentation>Hectometre Northing: The presentation value of a spatial position expressed as an integer-valued offset in hectometres (hundred metres) northwards of the southern boundary of an encompassing grid square row.</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="decametre">
                            <annotation>
                                <documentation>Decametre Offset: The relative position of a 10 by 10 metre subregion with respect to an encompassing grid square.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="easting" type="tspi-core:DecakiloType">
                                        <annotation>
                                            <documentation>Decametre Easting: The presentation value of a spatial position expressed as an integer-valued offset in decametres (ten metres) eastwards of the western boundary of an encompassing grid square column.</documentation>
                                        </annotation>
                                    </element>
                                    <element name="northing" type="tspi-core:DecakiloType">
                                        <annotation>
                                            <documentation>Decametre Northing: The presentation value of a spatial position expressed as an integer-valued offset in decametres (ten metres) northwards of the southern boundary of an encompassing grid square row.</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="metre">
                            <annotation>
                                <documentation>Metre Offset: The relative position of a 1 by 1 metre subregion with respect to an encompassing grid square.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="easting" type="tspi-core:HectokiloType">
                                        <annotation>
                                            <documentation>Metre Easting: The presentation value of a spatial position expressed as an integer-valued offset in metres eastwards of the western boundary of an encompassing grid square column.</documentation>
                                        </annotation>
                                    </element>
                                    <element name="northing" type="tspi-core:HectokiloType">
                                        <annotation>
                                            <documentation>Metre Northing: The presentation value of a spatial position expressed as an integer-valued offset in metres northwards of the southern boundary of an encompassing grid square row.</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                    </choice>
                </complexType>
            </element>
        </sequence>
    </complexType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="GridZoneColumnType">
        <annotation>
            <documentation>Grid Square Column Type: A two-digit datatype identifying a 6 arc degree wide spatial region on the surface of the Earth. [desc] There are 60 longitudinal zones each of 6 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are numbered eastwards from '01' to '60'.</documentation>
        </annotation>
        <restriction base="integer">
            <minInclusive value="01"/>
            <maxInclusive value="60"/>
            <pattern value="[0-9]{2,2}"/>
        </restriction>
    </simpleType>
    <simpleType name="GridZoneRowType">
        <annotation>
            <documentation>Grid Zone Row Type: A one-character datatype identifying a 8 arc degree tall spatial region on the surface of the Earth. [desc] There are 19 bands of latitude each of 8 arc degrees in height, extending northward from the 80 arc degree parallel in the Southern Hemisphere; these bands are lettered northwards from A to W inclusive (omitting 'I' and 'O'). There is a final 20th band of 12 arc degrees in latitude extending from 72 to 84 arc degrees North that is lettered as 'X'.</documentation>
        </annotation>
        <restriction base="string">
            <length value="1"/>
            <pattern value="[C-HJ-NP-X]{1,1}"/>
        </restriction>
    </simpleType>
    <simpleType name="GridSquareColumnType">
        <annotation>
            <documentation>Grid Square Column Type: A one-character datatype identifying a 100,000 kilometre wide spatial region on the surface of the Earth with respect to an encompassing grid zone. [desc] There are up to eight such grid square columns in a grid zone. Grid square row and column designations are assigned in accordance with a complex algorithm specified in DMA TM8358.1, Datums, Ellipsoids, Grids, and Grid Reference Systems, September 1990, Chapter 3.</documentation>
        </annotation>
        <restriction base="string">
            <length value="1"/>
            <pattern value="[A-HJ-NP-Z]{1,1}"/>
        </restriction>
    </simpleType>
    <simpleType name="GridSquareRowType">
        <annotation>
            <documentation>Grid Square Row Type: A one-character datatype identifying a 100,000 kilometre tall spatial region on the surface of the Earth with respect to an encompassing grid row. [desc] There are up to nine such grid square rows in a grid row. Grid square row and column designations are assigned in accordance with a complex algorithm specified in DMA TM8358.1, Datums, Ellipsoids, Grids, and Grid Reference Systems, September 1990, Chapter 3.</documentation>
        </annotation>
        <restriction base="string">
            <length value="1"/>
            <pattern value="[A-HJ-NP-V]{1,1}"/>
        </restriction>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <complexType name="ZoneMetrePresentationType">
        <annotation>
            <documentation>Zone-Metre Presentation Type: A datatype representing a zone-metre position presentation based on the requirements of the universal grid position reporting systems based on Universal Transverse Mercator (UTM) and Universal Polar Stereographic (UPS) map projections. [desc] Zones and hemispheres are used as a means of identifying spatial regions on the Earth within which a position is specified as an easting-northing positive-offset value-pair, in metres, from a reference location. The reference location is assigned a positive offset-value to ensure that all legal offset values in a zone are positive. The presentation consists of a single component string integrating all coordinate tuple values.</documentation>
        </annotation>
        <sequence>
            <!-- Zone and Hemisphere Designation -->
            <element name="zoneColumn" type="tspi-core:GridZoneColumnType">
                <annotation>
                    <documentation>Grid Zone Column: An identification of a 6 arc degree wide spatial region on the surface of the Earth. [desc] There are 60 longitudinal zones each of 6 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are numbered eastwards from '00' to '60'.</documentation>
                </annotation>
            </element>
            <element name="hemisphere" type="tspi-core:LatitudeHemisphereType">
                <annotation>
                    <documentation>Geodetic Latitude Hemisphere: The hemispheric location of a spatial position, as a category. [desc] One of: north or south.</documentation>
                </annotation>
            </element>
            <!-- Easting in metres -->
            <element name="metreEasting" type="tspi-core:MegaType">
                <annotation>
                    <documentation>Metre Easting: The presentation value of a spatial position expressed as an integer-valued offset in metres eastwards of the western boundary of an encompassing grid zone.</documentation>
                </annotation>
            </element>
            <!-- Northing in metres -->
            <element name="metreNorthing">
                <complexType>
                    <choice>
                        <element name="basicNorthing" type="tspi-core:DecamegaType">
                            <annotation>
                                <documentation>Metre Northing: The presentation value of a spatial position expressed as an integer-valued offset in metres northwards of the southern boundary of an encompassing grid zone hemisphere. [desc] The northing value is based on a "false northing" concept where value in the Northern Hemisphere start with zero located at the Equator and rise towards the North Pole, whereas values in the Southern hemisphere start at 10,000,000 at the Equator and fall towards the South Pole.</documentation>
                            </annotation>
                        </element>
                        <element name="extendedNorthing" type="tspi-core:HectomegaExtendedType">
                            <annotation>
                                <documentation>Metre Northing Extended: The presentation value of a spatial position expressed as an integer-valued offset in metres northwards of the southern boundary of an encompassing grid zone hemisphere. [desc] The northing value is based on a "false northing" concept where values in the Northern Hemisphere start with zero located at the Equator and rise towards the North Pole, whereas values in the Southern hemisphere start at 10,000,000 at the Equator and fall towards the South Pole. The extension allows for the representation of values in the Northern Hemisphere (up to 1,000,000 metres) with respect to the Southern Hemisphere.</documentation>
                            </annotation>
                        </element>
                    </choice>
                </complexType>
            </element>
        </sequence>
    </complexType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="DecamegaType">
        <annotation>
            <documentation>Decamega Type: A datatype consisting of seven digits in the range from "0000000" to "9999999" that may be used to represent an unsigned decimal value.</documentation>
        </annotation>
        <restriction base="integer">
            <minInclusive value="0000000"/>
            <maxInclusive value="9999999"/>
            <pattern value="[0-9]{7,7}"/>
        </restriction>
    </simpleType>
    <simpleType name="HectomegaExtendedType">
        <annotation>
            <documentation>Hecto-mega ExtendedType: A datatype consisting of eight digits in the range from "00000000" to "11000000" that may be used to represent an unsigned decimal value.</documentation>
        </annotation>
        <restriction base="integer">
            <minInclusive value="00000000"/>
            <maxInclusive value="11000000"/>
            <pattern value="[0-9]{8,8}"/>
        </restriction>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <complexType name="QuadranglePresentationType">
        <annotation>
            <documentation>Quadrangle Presentation Type: A datatype representing a quadrangle position presentation based on the requirements of the GEOREF area-designation system. [desc] Quadrangles are used as a means of identifying 1 arc degree x 1 arc degree spatial regions which are then subdivided in accordance with sexagesimal notation based on 60 arc minutes comprising an arc degree. The presentation consists of a single component string integrating all coordinate tuple values.</documentation>
        </annotation>
        <sequence>
            <!-- Quadrangle and Zone -->
            <element name="quadrangle" type="tspi-core:GeoQuadType">
                <annotation>
                    <documentation>Geographic Quadrangle: An identification of a 15 arc degree by 15 arc degree spatial region on the surface of the Earth. [desc] There are 24 longitudinal zones each of 15 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are lettered eastwards from A to Z inclusive (omitting the letters "I" and "O"). There are 12 bands of latitude each of 15 arc degrees in height, extending northward from the South Pole; these bands are lettered northwards from A to M inclusive (omitting I). Each member of the resulting set of 288 15 arc minute quadrangles is identified by two letters. The first letter is that of the 15 arc degree longitude zone and the second letter that of the 15 arc degree latitude band; for example: “MK”.</documentation>
                </annotation>
            </element>
            <element name="zone" type="tspi-core:GeoZoneType">
                <annotation>
                    <documentation>Geographic Zone: An identification of a 1 arc degree by 1 arc degree spatial region on the surface of the Earth with respect to an encompassing 15 arc degree by 15 arc degree geographic quadrangle. [desc] Each geographic quadrangle is sub-divided into 15 one arc degree zones of longitude, lettered eastward from the western meridian of the quadrangle; these 1 arc degree zones are lettered from A to Q inclusive (omitting the letters “I” and “O”). Each geographic quadrangle is also subdivided into 15 one arc degree bands of latitude northward from the southern parallel of the quadrangle; these 1 arc degree bands are lettered northwards from A to Q inclusive (omitting the letters “I” and “O”). A nested 1 arc degree by 1 arc degree quadrangle may thus be identified by four letters; the third letter is that of the 1 arc degree longitude zone and the fourth letter that of the 1 arc degree latitude band; for example: “MKPG”.</documentation>
                </annotation>
            </element>
            <!-- Subzone in arc minutes -->
            <element name="subZoneMinute" minOccurs="0">
                <annotation>
                    <documentation>Subzone Minute: The geodetic position of a 1 arc minute by 1 arc minute subzone region with respect to an encompassing 1 arc degree by 1 arc degree spatial region on the surface of the Earth.</documentation>
                </annotation>
                <complexType>
                    <sequence>
                        <element name="eastingMinute" type="tspi-core:SexagesimalType">
                            <annotation>
                                <documentation>Easting Minute: A two-digit identification of a 1 arc minute zone of longitude with respect to an encompassing 1 arc degree by 1 arc degree spatial region on the surface of the Earth. [desc] Zones are numbered eastward from the western meridian of the encompassing region, starting with "00" and ending with "59".</documentation>
                            </annotation>
                        </element>
                        <element name="northingMinute" type="tspi-core:SexagesimalType">
                            <annotation>
                                <documentation>Northing Minute: A two-digit identification of a 1 arc minute band of latitude with respect to an encompassing 1 arc degree by 1 arc degree spatial region on the surface of the Earth. [desc] Bands are numbered northwards from the southern parallel of the encompassing region, starting with "00" and ending with "59".</documentation>
                            </annotation>
                        </element>
                    </sequence>
                </complexType>
            </element>
            <!-- Subzone in fractional arc minutes -->
            <element name="subZoneFraction" minOccurs="0">
                <annotation>
                    <documentation>Subzone Fraction: An identification of a higher resolution tenth or hundredth of an arc minute square region with respect to an associated specified arc minute square subzone region on the surface of the Earth.</documentation>
                </annotation>
                <complexType>
                    <choice>
                        <element name="deciminute">
                            <annotation>
                                <documentation>Deciminute: A pair of one-digit identifiers of a higher resolution tenth of an arc minute square region with respect to an associated specified arc minute square subzone region on the surface of the Earth.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="eastingDeciminute" type="tspi-core:DecaType">
                                        <annotation>
                                            <documentation>Easting Deciminute: A one-digit identification of a higher resolution tenth of an arc minute zone of longitude with respect to an associated specified arc minute zone. [desc] Zones are numbered eastward from the western meridian of the encompassing region, starting with "00" and ending with "59"; higher resolution values range from "0" to "9".</documentation>
                                        </annotation>
                                    </element>
                                    <element name="northingDeciminute" type="tspi-core:DecaType">
                                        <annotation>
                                            <documentation>Northing Deciminute: A one-digit identification of a higher resolution tenth of an arc minute band of latitude with respect to an associated specified arc minute band. [desc] Bands are numbered northward from the southern parallel of the encompassing region, starting with "00" and ending with "59"; higher resolution values range from "0" to "9".</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                        <element name="centiminute">
                            <annotation>
                                <documentation>Centiminute: A pair of two-digit identifiers of a higher resolution hundredth of an arc minute square region with respect to an associated specified arc minute square subzone region on the surface of the Earth.</documentation>
                            </annotation>
                            <complexType>
                                <sequence>
                                    <element name="eastingCentiminute" type="tspi-core:HectoType">
                                        <annotation>
                                            <documentation>Easting Centiminute: A two-digit identification of a higher resolution hundredth of an arc minute zone of longitude with respect to an associated specified arc minute zone. [desc] Zones are numbered eastward from the western meridian of the encompassing region, starting with "00" and ending with "59"; higher resolution values range from "00" to "99".</documentation>
                                        </annotation>
                                    </element>
                                    <element name="northingCentiminute" type="tspi-core:HectoType">
                                        <annotation>
                                            <documentation>Northing Centiminute: A two-digit identification of a higher resolution hundredth of an arc minute band of latitude with respect to an associated specified arc minute band. [desc] Bands are numbered northward from the southern parallel of the encompassing region, starting with "00" and ending with "59"; higher resolution values range from "00" to "99".</documentation>
                                        </annotation>
                                    </element>
                                </sequence>
                            </complexType>
                        </element>
                    </choice>
                </complexType>
            </element>
        </sequence>
        <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    </complexType>
    <simpleType name="GeoQuadType">
        <annotation>
            <documentation>Geographic Quadrangle Type: An identification of one of 288 15 arc degree by 15 arc degree spatial regions on the surface of the Earth as a two-character value; the first character is that of the 15 arc degree longitude zone and the second character that of the 15 arc degree latitude band (for example: “MK”). [desc] There are 24 longitudinal zones each of 15 arc degrees in width extending eastward from the 180 arc degree meridian; these zones are lettered eastwards from A to Z inclusive (omitting the letters "I" and "O"). There are 12 bands of latitude each of 15 arc degrees in height, extending northward from the South Pole; these bands are lettered northwards from A to M inclusive (omitting I).</documentation>
        </annotation>
        <restriction base="string">
            <length value="2"/>
            <pattern value="[A-HJ-NP-Z]{1,1}[A-HJ-M]{1,1}"/>
        </restriction>
    </simpleType>
    <simpleType name="GeoZoneType">
        <annotation>
            <documentation>Geographic Zone Type: An identification of one of 255 1 arc degree by 1 arc degree spatial regions on the surface of the Earth with respect to an encompassing 15 arc degree by 15 arc degree geographic quadrangle, as a two-character value (for example: “PG”). [desc] Each geographic quadrangle is sub-divided into 15 one arc degree zones of longitude, lettered eastward from the western meridian of the quadrangle; these 1 arc degree zones are lettered from A to Q inclusive (omitting the letters “I” and “O”). Each geographic quadrangle is also subdivided into 15 one arc degree bands of latitude northward from the southern parallel of the quadrangle; these 1 arc degree bands are lettered northwards from A to Q inclusive (omitting the letters “I” and “O”). A nested 1 arc degree by 1 arc degree quadrangle may thus be identified by four letters; the third letter is that of the 1 arc degree longitude zone and the fourth letter that of the 1 arc degree latitude band; for example: “MKPG”.</documentation>
        </annotation>
        <restriction base="string">
            <length value="2"/>
            <pattern value="[A-HJ-NPQ]{2,2}"/>
        </restriction>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <complexType name="NumericBitPresentationType">
        <annotation>
            <documentation>Numeric Bit Presentation Type: A datatype representing a numeric-bit position presentation based on the requirements of the Variable Message Format (VMF). [desc] VMF encodes values of geodetic latitude and longitude as multi-bit fields whose bit configurations represent actual numeric values. The least significant bit value and range are described in the applicable message description. A negative number is coded and transmitted with twos complement coding and identified by the number one in the most significant bit of the data field.</documentation>
        </annotation>
        <sequence>
            <choice>
                <element name="encoded20Bit">
                    <annotation>
                        <documentation>Encoded 20-bit: A geodetic position based on 20 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/524,287 arc degrees.</documentation>
                    </annotation>
                    <complexType>
                        <sequence>
                            <element name="latitude" type="tspi-core:Latitude20BitType"/>
                            <element name="longitude" type="tspi-core:Longitude21BitType"/>
                        </sequence>
                    </complexType>
                </element>
                <element name="encoded21Bit">
                    <annotation>
                        <documentation>Encoded 21-bit: A geodetic position based on 21 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/1,048,575 arc degrees.</documentation>
                    </annotation>
                    <complexType>
                        <sequence>
                            <element name="latitude" type="tspi-core:Latitude21BitType"/>
                            <element name="longitude" type="tspi-core:Longitude22BitType"/>
                        </sequence>
                    </complexType>
                </element>
                <element name="encoded23Bit">
                    <annotation>
                        <documentation>Encoded 23-bit: A geodetic position based on 23 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/4,194,303 arc degrees.</documentation>
                    </annotation>
                    <complexType>
                        <sequence>
                            <element name="latitude" type="tspi-core:Latitude23BitType"/>
                            <element name="longitude" type="tspi-core:Longitude24BitType"/>
                        </sequence>
                    </complexType>
                </element>
                <element name="encoded25Bit">
                    <annotation>
                        <documentation>Encoded 25-bit: A geodetic position based on 25 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/16,777,215 arc degrees.</documentation>
                    </annotation>
                    <complexType>
                        <sequence>
                            <element name="latitude" type="tspi-core:Latitude25BitType"/>
                            <element name="longitude" type="tspi-core:Longitude26BitType"/>
                        </sequence>
                    </complexType>
                </element>
                <element name="encoded31Bit">
                    <annotation>
                        <documentation>Encoded 31-bit: A geodetic position based on 31 bits of encoding resolution. [desc] The Least Significant Bit (LSB) has the value of 90/1,073,741,823 arc degrees.</documentation>
                    </annotation>
                    <complexType>
                        <sequence>
                            <element name="latitude" type="tspi-core:Latitude31BitType"/>
                            <element name="longitude" type="tspi-core:Longitude32BitType"/>
                        </sequence>
                    </complexType>
                </element>
            </choice>
        </sequence>
    </complexType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="Latitude20BitType">
        <annotation>
            <documentation>Latitude 20-bit Type: A numeric datatype consisting of 20 bits in the range from 0 to 1,048,575 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/524,287 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 524,288.</documentation>
        </annotation>
        <union>
            <simpleType>
                <restriction base="int">
                    <enumeration value="0">
                        <annotation>
                            <documentation>Equator: 0 arc degrees.</documentation>
                        </annotation>
                    </enumeration>
                    <enumeration value="524288">
                        <annotation>
                            <documentation>No Statement: The value is not specified.</documentation>
                        </annotation>
                    </enumeration>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>+90/524,287 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="1"/>
                    <maxInclusive value="524287"/>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>-90 arc degrees (the South Pole) through -90/524,287 arc degrees (the minimum resolvable distance south of the Equator).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="524289"/>
                    <maxInclusive value="1048575"/>
                </restriction>
            </simpleType>
        </union>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="Latitude21BitType">
        <annotation>
            <documentation>Latitude 21-bit Type: A numeric datatype consisting of 21 bits in the range from 0 to 2,097,151 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/1,048,575 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 1,048,576.</documentation>
        </annotation>
        <union>
            <simpleType>
                <restriction base="int">
                    <enumeration value="0">
                        <annotation>
                            <documentation>Equator: 0 arc degrees.</documentation>
                        </annotation>
                    </enumeration>
                    <enumeration value="1048576">
                        <annotation>
                            <documentation>No Statement: The value is not specified.</documentation>
                        </annotation>
                    </enumeration>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>+90/1,048,575 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="1"/>
                    <maxInclusive value="1048575"/>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>-90 arc degrees (the South Pole) through -90/1,048,575 arc degrees (the minimum resolvable distance south of the Equator).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="1048577"/>
                    <maxInclusive value="2097151"/>
                </restriction>
            </simpleType>
        </union>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="Latitude23BitType">
        <annotation>
            <documentation>Latitude 23-bit Type: A numeric datatype consisting of 23 bits in the range from 0 to 8,388,607 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/4,194,303 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 4,194,304.</documentation>
        </annotation>
        <union>
            <simpleType>
                <restriction base="int">
                    <enumeration value="0">
                        <annotation>
                            <documentation>Equator: 0 arc degrees.</documentation>
                        </annotation>
                    </enumeration>
                    <enumeration value="4194304">
                        <annotation>
                            <documentation>No Statement: The value is not specified.</documentation>
                        </annotation>
                    </enumeration>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>+90/4,194,303 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="1"/>
                    <maxInclusive value="4194303"/>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>-90 arc degrees (the South Pole) through -90/4,194,303 arc degrees (the minimum resolvable distance south of the Equator).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="4194305"/>
                    <maxInclusive value="8388607"/>
                </restriction>
            </simpleType>
        </union>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="Latitude25BitType">
        <annotation>
            <documentation>Latitude 25-bit Type: A numeric datatype consisting of 25 bits in the range from 0 to 33,554,431 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/16,777,215 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 16,777,216.</documentation>
        </annotation>
        <union>
            <simpleType>
                <restriction base="int">
                    <enumeration value="0">
                        <annotation>
                            <documentation>Equator: 0 arc degrees.</documentation>
                        </annotation>
                    </enumeration>
                    <enumeration value="16777216">
                        <annotation>
                            <documentation>No Statement: The value is not specified.</documentation>
                        </annotation>
                    </enumeration>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>+90/16,777,215 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="1"/>
                    <maxInclusive value="16777215"/>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>-90 arc degrees (the South Pole) through -90/16,777,215 arc degrees (the minimum resolvable distance south of the Equator).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="16777217"/>
                    <maxInclusive value="33554431"/>
                </restriction>
            </simpleType>
        </union>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="Latitude31BitType">
        <annotation>
            <documentation>Latitude 31-bit Type: A numeric datatype consisting of 31 bits in the range from 0 to 2,147,483,647 that may be used to represent a latitude value. [desc] The Least Significant Bit (LSB) has the value of 90/1,073,741,823 arc degrees. Southern latitudes are represented as positive values greater than that assigned to the indication of "no value" which is 1,073,741,824.</documentation>
        </annotation>
        <union>
            <simpleType>
                <restriction base="int">
                    <enumeration value="0">
                        <annotation>
                            <documentation>Equator: 0 arc degrees.</documentation>
                        </annotation>
                    </enumeration>
                    <enumeration value="1073741824">
                        <annotation>
                            <documentation>No Statement: The value is not specified.</documentation>
                        </annotation>
                    </enumeration>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>+90/1,073,741,823 arc degrees (the minimum resolvable distance north of the Equator) through +90 arc degrees (the North Pole).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="1"/>
                    <maxInclusive value="1073741823"/>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>-90 arc degrees (the South Pole) through -90/1,073,741,823 arc degrees (the minimum resolvable distance south of the Equator).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="1073741825"/>
                    <maxInclusive value="2147483647"/>
                </restriction>
            </simpleType>
        </union>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="Longitude21BitType">
        <annotation>
            <documentation>Longitude 21-bit Type: A numeric datatype consisting of 21 bits in the range from 0 to 2,097,151 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/1,048,575 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 1,048,576.</documentation>
        </annotation>
        <union>
            <simpleType>
                <restriction base="int">
                    <enumeration value="0">
                        <annotation>
                            <documentation>Prime Meridian: 0 arc degrees.</documentation>
                        </annotation>
                    </enumeration>
                    <enumeration value="1048576">
                        <annotation>
                            <documentation>No Statement: The value is not specified.</documentation>
                        </annotation>
                    </enumeration>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>+180/1,048,575 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="1"/>
                    <maxInclusive value="1048575"/>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>-180 arc degrees (the anti-meridian) through -180/1,048,575 arc degrees (the minimum resolvable distance west of the Prime Meridian).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="1048577"/>
                    <maxInclusive value="2097151"/>
                </restriction>
            </simpleType>
        </union>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="Longitude22BitType">
        <annotation>
            <documentation>Longitude 22-bit Type: A numeric datatype consisting of 22 bits in the range from 0 to 4,194,303 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/2,097,151 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 2,097,152.</documentation>
        </annotation>
        <union>
            <simpleType>
                <restriction base="int">
                    <enumeration value="0">
                        <annotation>
                            <documentation>Prime Meridian: 0 arc degrees.</documentation>
                        </annotation>
                    </enumeration>
                    <enumeration value="2097152">
                        <annotation>
                            <documentation>No Statement: The value is not specified.</documentation>
                        </annotation>
                    </enumeration>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>+180/2,097,151 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="1"/>
                    <maxInclusive value="2097151"/>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>-180 arc degrees (the anti-meridian) through -180/2,097,151 arc degrees (the minimum resolvable distance west of the Prime Meridian).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="2097153"/>
                    <maxInclusive value="4194303"/>
                </restriction>
            </simpleType>
        </union>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="Longitude24BitType">
        <annotation>
            <documentation>Longitude 24-bit Type: A numeric datatype consisting of 24 bits in the range from 0 to 16,777,215 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/8,388,607 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 8,388,608.</documentation>
        </annotation>
        <union>
            <simpleType>
                <restriction base="int">
                    <enumeration value="0">
                        <annotation>
                            <documentation>Prime Meridian: 0 arc degrees.</documentation>
                        </annotation>
                    </enumeration>
                    <enumeration value="8388608">
                        <annotation>
                            <documentation>No Statement: The value is not specified.</documentation>
                        </annotation>
                    </enumeration>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>+180/8,388,607 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="1"/>
                    <maxInclusive value="8388607"/>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>-180 arc degrees (the anti-meridian) through -180/8,388,607 arc degrees (the minimum resolvable distance west of the Prime Meridian).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="8388609"/>
                    <maxInclusive value="16777215"/>
                </restriction>
            </simpleType>
        </union>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="Longitude26BitType">
        <annotation>
            <documentation>Longitude 26-bit Type: A numeric datatype consisting of 26 bits in the range from 0 to 67,108,863 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/33,554,431 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 33,554,432.</documentation>
        </annotation>
        <union>
            <simpleType>
                <restriction base="int">
                    <enumeration value="0">
                        <annotation>
                            <documentation>Prime Meridian: 0 arc degrees.</documentation>
                        </annotation>
                    </enumeration>
                    <enumeration value="33554432">
                        <annotation>
                            <documentation>No Statement: The value is not specified.</documentation>
                        </annotation>
                    </enumeration>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>+180/33,554,431 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="1"/>
                    <maxInclusive value="33554431"/>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>-180 arc degrees (the anti-meridian) through -180/33,554,431 arc degrees (the minimum resolvable distance west of the Prime Meridian).</documentation>
                </annotation>
                <restriction base="int">
                    <minInclusive value="33554433"/>
                    <maxInclusive value="67108863"/>
                </restriction>
            </simpleType>
        </union>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="Longitude32BitType">
        <annotation>
            <documentation>Longitude 32-bit Type: A numeric datatype consisting of 32 bits in the range from 0 to 4,294,967,295 that may be used to represent a longitude value. [desc] The Least Significant Bit (LSB) has the value of 180/2,147,483,647 arc degrees. Western longitudes are represented as positive values greater than that assigned to the indication of "no value" which is 2,147,483,648. Note that this datatype is encoded as an long rather than an int.</documentation>
        </annotation>
        <union>
            <simpleType>
                <restriction base="long">
                    <enumeration value="0">
                        <annotation>
                            <documentation>Prime Meridian: 0 arc degrees.</documentation>
                        </annotation>
                    </enumeration>
                    <enumeration value="2147483648">
                        <annotation>
                            <documentation>No Statement: The value is not specified.</documentation>
                        </annotation>
                    </enumeration>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>+180/2,147,483,647 arc degrees (the minimum resolvable distance east of the Prime Meridian) through +180 arc degrees (the anti-meridian).</documentation>
                </annotation>
                <restriction base="long">
                    <minInclusive value="1"/>
                    <maxInclusive value="2147483647"/>
                </restriction>
            </simpleType>
            <simpleType>
                <annotation>
                    <documentation>-180 arc degrees (the anti-meridian) through -180/2,147,483,647 arc degrees (the minimum resolvable distance west of the Prime Meridian).</documentation>
                </annotation>
                <restriction base="long">
                    <minInclusive value="2147483649"/>
                    <maxInclusive value="4294967295"/>
                </restriction>
            </simpleType>
        </union>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="HorizontalResolutionEnumerationType">
        <annotation>
            <documentation>Horizontal Resolution Enumeration Type: A coded domain value denoting a horizontal resolution category. [desc] The horizontal resolution of a spatial position in its Coordinate Reference System (CRS), as a category.</documentation>
        </annotation>
        <restriction base="string">
            <enumeration value="arcDegree">
                <annotation>
                    <documentation>Geodetic Arc Degree: The spatial position is horizontally resolved to the nearest arc degree. [desc] An arc degree is a maximum of 111,694 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcDecidegree">
                <annotation>
                    <documentation>Geodetic Arc Decidegree: The spatial position is horizontally resolved to the nearest tenth of an arc degree. [desc] A tenth of an arc degree is a maximum of 11,169.4 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcCentidegree">
                <annotation>
                    <documentation>Geodetic Arc Centidegree: The spatial position is horizontally resolved to the nearest hundredth of an arc degree. [desc] A hundredth of an arc degree is a maximum of 1,116.94 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcMillidegree">
                <annotation>
                    <documentation>Geodetic Arc Millidegree: The spatial position is horizontally resolved to the nearest thousandth of an arc degree. [desc] A thousandth of an arc degree is a maximum of 111.694 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcDeciMillidegree">
                <annotation>
                    <documentation>Geodetic Arc Decimillidegree: The spatial position is horizontally resolved to the nearest ten-thousandth of an arc degree. [desc] A ten-thousandth of an arc degree is a maximum of 11.1694 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcCentiMillidegree">
                <annotation>
                    <documentation>Geodetic Arc Centimillidegree: The spatial position is horizontally resolved to the nearest hundred-thousandth of an arc degree. [desc] A hundred-thousandth of an arc degree is a maximum of 1.11694 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcMicrodegree">
                <annotation>
                    <documentation>Geodetic Arc Microdegree: The spatial position is horizontally resolved to the nearest millionth of an arc degree. [desc] A millionth of an arc degree is a maximum of 0.111694 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcMinute">
                <annotation>
                    <documentation>Geodetic Arc Minute: The spatial position is horizontally resolved to the nearest arc minute. [desc] An arc minute is a maximum of 1,855.3 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcDeciminute">
                <annotation>
                    <documentation>Geodetic Arc Deciminute: The spatial position is horizontally resolved to the nearest tenth of an arc minute. [desc] A tenth of an arc minute is a maximum of 185.53 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcCentiminute">
                <annotation>
                    <documentation>Geodetic Arc Centiminute: The spatial position is horizontally resolved to the nearest hundredth of an arc minute. [desc] A hundredth of an arc minute is a maximum of 18.553 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcMilliminute">
                <annotation>
                    <documentation>Geodetic Arc Milliminute: The spatial position is horizontally resolved to the nearest thousandth of an arc minute. [desc] A thousandth of an arc minute is a maximum of 1.8553 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcDeciMilliminute">
                <annotation>
                    <documentation>Geodetic Arc Decimilliminute: The spatial position is horizontally resolved to the nearest ten-thousandth of an arc minute. [desc] A ten-thousandth of an arc minute is a maximum of 0.18553 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcSecond">
                <annotation>
                    <documentation>Geodetic Arc Second: The spatial position is horizontally resolved to the nearest arc second. [desc] An arc second is a maximum of 30.92 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcDecisecond">
                <annotation>
                    <documentation>Geodetic Arc Decisecond: The spatial position is horizontally resolved to the nearest tenth of an arc second. [desc] A tenth of an arc second is a maximum of 3.092 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcCentisecond">
                <annotation>
                    <documentation>Geodetic Arc Centisecond: The spatial position is horizontally resolved to the nearest hundredth of an arc second. [desc] A hundredth of an arc second is a maximum of 0.3092 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcMillisecond">
                <annotation>
                    <documentation>Geodetic Arc Millisecond: The spatial position is horizontally resolved to the nearest thousandth of an arc second. [desc] A thousandth of an arc second is a maximum of 0.03092 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcDegree20Bit">
                <annotation>
                    <documentation>Geodetic Arc Degree 20-bit: The spatial position is horizontally resolved to the nearest 90/524,287 arc degree (approximately 0.618 arc seconds). [desc] This corresponds to a maximum of 19.1 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcDegree21Bit">
                <annotation>
                    <documentation>Geodetic Arc Degree 21-bit: The spatial position is horizontally resolved to the nearest 90/1,048,575 arc degree (approximately 0.309 arc seconds). [desc] This corresponds to a maximum of 9.55 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcDegree23Bit">
                <annotation>
                    <documentation>Geodetic Arc Degree 23-bit: The spatial position is horizontally resolved to the nearest 90/4,194,303 arc degree (approximately 0.0772 arc seconds). [desc] This corresponds to a maximum of 2.39 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcDegree25Bit">
                <annotation>
                    <documentation>Geodetic Arc Degree 25-bit: The spatial position is horizontally resolved to the nearest 90/16,777,215 arc degree (approximately 0.0193 arc seconds). [desc] This corresponds to a maximum of 0.597 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="arcDegree31Bit">
                <annotation>
                    <documentation>Geodetic Arc Degree 31-bit: The spatial position is horizontally resolved to the nearest 90/1,073,741,823 arc degree (approximately 0.000302 arc seconds). [desc] This corresponds to a maximum of 0.00933 metres in length on the WGS84 ellipsoid.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="hectokilometre">
                <annotation>
                    <documentation>Hectokilometre: The spatial position is horizontally resolved to the nearest hundred kilometres.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="decakilometre">
                <annotation>
                    <documentation>Decakilometre: The spatial position is horizontally resolved to the nearest ten kilometres.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="kilometre">
                <annotation>
                    <documentation>Kilometre: The spatial position is horizontally resolved to the nearest kilometre.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="hectometre">
                <annotation>
                    <documentation>Hectometre: The spatial position is horizontally resolved to the nearest hundred metres.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="decametre">
                <annotation>
                    <documentation>Decametre: The spatial position is horizontally resolved to the nearest ten metres.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="metre">
                <annotation>
                    <documentation>Metre: The spatial position is horizontally resolved to the nearest metre.</documentation>
                </annotation>
            </enumeration>
        </restriction>
    </simpleType>
    <complexType name="HorizontalResolutionType">
        <annotation>
            <documentation>Horizontal Resolution Type: A flexible coded domain value denoting a horizontal resolution category.</documentation>
        </annotation>
        <simpleContent>
            <extension base="tspi-core:HorizontalResolutionEnumerationType">
                <attribute name="codeList" type="anyURI" use="optional">
                    <annotation>
                        <documentation>Horizontal Resolution Enumeration Code List: A remote resource that is specified by a URI and in which the Horizontal Resolution Enumeration code list domain is defined.</documentation>
                    </annotation>
                </attribute>
                <attribute name="codeListValue" type="anyURI" use="optional">
                    <annotation>
                        <documentation>Horizontal Resolution Enumeration Code List Value: A coded Horizontal Resolution Enumeration value that is specified by a URI fragment, that encodes the concept intended (denoted) in the XML instance document, and which is a member of Horizontal Resolution Enumeration (remote resource code list) domain.</documentation>
                    </annotation>
                </attribute>
            </extension>
        </simpleContent>
    </complexType>
    <simpleType name="VerticalResolutionEnumerationType">
        <annotation>
            <documentation>Vertical Resolution Enumeration Type: A coded domain value denoting a vertical resolution category. [desc] The vertical resolution of a spatial position in its Coordinate Reference System (CRS), as a category.</documentation>
        </annotation>
        <restriction base="string">
            <enumeration value="kilometre">
                <annotation>
                    <documentation>Kilometre: The spatial position is vertically resolved to the nearest kilometre.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="hectometre">
                <annotation>
                    <documentation>Hectometre: The spatial position is vertically resolved to the nearest hundred metres.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="decametre">
                <annotation>
                    <documentation>Decametre: The spatial position is vertically resolved to the nearest ten metres.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="metre">
                <annotation>
                    <documentation>Metre: The spatial position is vertically resolved to the nearest metre.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="decimetre">
                <annotation>
                    <documentation>Metre: The spatial position is vertically resolved to the nearest tenth of a metre.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="centimetre">
                <annotation>
                    <documentation>Metre: The spatial position is vertically resolved to the nearest hundredth of a metre.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="millimetre">
                <annotation>
                    <documentation>Metre: The spatial position is vertically resolved to the nearest thousandth of a metre.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="nauticalMile">
                <annotation>
                    <documentation>Nautical Mile: The spatial position is vertically resolved to the nearest nautical mile. [desc] A nautical mile is exactly 1852 metres in length.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="statuteMile">
                <annotation>
                    <documentation>Statute Mile: The spatial position is vertically resolved to the nearest statute mile. [desc] A statute mile is exactly 1609.344 metres in length.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="kiloyard">
                <annotation>
                    <documentation>Kiloyard: The spatial position is vertically resolved to the nearest kiloyard. [desc] A kiloyard is exactly 914.4 metres in length.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="kilofoot">
                <annotation>
                    <documentation>Kilofoot: The spatial position is vertically resolved to the nearest kilofoot. [desc] A kilofoot is exactly 304.8 metres in length.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="hectofoot">
                <annotation>
                    <documentation>Hectofoot: The spatial position is vertically resolved to the nearest hectofoot. [desc] A hectofoot is exactly 30.48 metres in length.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="quarterHectofoot">
                <annotation>
                    <documentation>Quarter Hectofoot: The spatial position is vertically resolved to the nearest 25 feet (quarter hectofeet). [desc] A hectofoot is exactly 7.62 metres in length.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="decafoot">
                <annotation>
                    <documentation>Decafoot: The spatial position is vertically resolved to the nearest decafoot. [desc] A decafoot is exactly 3.048 metres in length.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="yard">
                <annotation>
                    <documentation>Yard: The spatial position is vertically resolved to the nearest yard. [desc] A yard is exactly 0.9144 metres in length.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="foot">
                <annotation>
                    <documentation>Foot: The spatial position is vertically resolved to the nearest foot. [desc] A foot is exactly 0.3048 metres in length.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="decifoot">
                <annotation>
                    <documentation>Decifoot: The spatial position is vertically resolved to the nearest decifoot. [desc] A decifoot is exactly 0.03048 metres in length.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="inch">
                <annotation>
                    <documentation>Inch: The spatial position is vertically resolved to the nearest inch. [desc] An inch is exactly 0.0254 metres in length.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="metre22Bit">
                <annotation>
                    <documentation>Metre 22-bit: The spatial position is vertically resolved to the nearest 10,000/1,280,000 (0.0078125) metres.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="flightLevel">
                <annotation>
                    <documentation>Flight Level: The spatial position is vertically resolved to the nearest Flight Level (FL). [desc] A Flight Level is a surface of constant atmospheric pressure that is related to a specific world-wide fixed pressure datum (1013.25 hectoPascal)  and is separated from other such surfaces by specific pressure intervals. It is conventionally given a numerical value to the nearest 1000 feet in units of 100 feet in accordance with the structure of the International Civil Aviation Organization (ICAO) Standard Atmosphere.  For example, the 500-hPa level is written as “FL 180” where the corresponding ICAO standard height is 18,289 feet (600.0328 metres). A Flight Level is nominally equivalent to a hectofoot (which is exactly 30.48 metres in length).</documentation>
                </annotation>
            </enumeration>
        </restriction>
    </simpleType>
    <complexType name="VerticalResolutionType">
        <simpleContent>
            <annotation>
                <documentation>Vertical Resolution Type: A flexible coded domain value denoting a vertical resolution category.</documentation>
            </annotation>
            <extension base="tspi-core:VerticalResolutionEnumerationType">
                <attribute name="codeList" type="anyURI" use="optional">
                    <annotation>
                        <documentation>Vertical Resolution Enumeration Code List: A remote resource that is specified by a URI and in which the Vertical Resolution Enumeration code list domain is defined.</documentation>
                    </annotation>
                </attribute>
                <attribute name="codeListValue" type="anyURI" use="optional">
                    <annotation>
                        <documentation>Vertical Resolution Enumeration Code List Value: A coded Vertical Resolution Enumeration value that is specified by a URI fragment, that encodes the concept intended (denoted) in the XML instance document, and which is a member of Vertical Resolution Enumeration (remote resource code list) domain.</documentation>
                    </annotation>
                </attribute>
            </extension>
        </simpleContent>
    </complexType>
    <!--=========== Vertical Measures =============-->
    <complexType name="AltitudeMeasureType">
        <annotation>
            <documentation>Altitude Measure Type: A datatype representing the distance of a point from a chosen reference surface measured upward either along the direction of gravity or along a line perpendicular to that reference surface with positive values being above the reference surface. [desc] When understood as an "altitude", conventionally measured from Mean Sea level (MSL) or a geoid (for example: Earth Gravity Model 1996 (EGM96)) along the direction of gravity. When understood as a "height", conventionally measured from an ellipsoid as "Height Above Ellipsoid" (HAE) along a line prependicular to the reference surface.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType">
                <attribute name="verticalDatum" type="tspi-core:VerticalDatumType" use="required">
                    <annotation>
                        <documentation>Vertical Datum: A reference surface with respect to which altitudes are specified. [desc] The value of altitude (or sometimes equivalently, height) is determined either along the direction of gravity or along a line perpendicular to the reference surface with positive values being above the reference surface.</documentation>
                    </annotation>
                </attribute>
                <attribute name="verticalResolutionCategory" type="tspi-core:VerticalResolutionEnumerationType" use="optional">
                    <annotation>
                        <documentation>Vertical Resolution Category: The vertical resolution of the coordinate tuple of the accompanying vertical measure, as a category. [desc] While the apparent resolution of the recorded xsd:double coordinate values may appear to be higher, such an appearance may be erroneous.</documentation>
                    </annotation>
                </attribute>
            </extension>
            <!--   Any "length" UoM & the noncomparable UoM "flightLevel" may be used   -->
        </simpleContent>
    </complexType>
    <complexType name="DepthMeasureType">
        <annotation>
            <documentation>Depth Measure Type: A datatype representing the distance of a point from a chosen reference surface measured downward along the direction of gravity with positive values being below the reference surface. [desc] Conventionally measured from Mean Sea level (MSL) or a geoid (for example: Earth Gravity Model 1996 (EGM96)); may also be measured from a Todal Datum or River Datum.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType">
                <attribute name="verticalDatum" type="tspi-core:VerticalDatumType" use="required">
                    <annotation>
                        <documentation>Vertical Datum: A reference surface with respect to which depths are specified. [desc] The value of depth is determined downward along the direction of gravity with positive values being below the reference surface.</documentation>
                    </annotation>
                </attribute>
                <attribute name="verticalResolutionCategory" type="tspi-core:VerticalResolutionEnumerationType" use="optional">
                    <annotation>
                        <documentation>Vertical Resolution Category: The vertical resolution of the coordinate tuple of the accompanying vertical measure, as a category. [desc] While the apparent resolution of the recorded xsd:double coordinate values may appear to be higher, such an appearance may be erroneous.</documentation>
                    </annotation>
                </attribute>
            </extension>
            <!--   Any "length" UoM may be used   -->
        </simpleContent>
    </complexType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="VerticalDatumType">
        <annotation>
            <documentation>Vertical DatumType: A coded domain value denoting a vertical datum. [desc] A reference surface with respect to which altitudes and/or depths are specified. The value of altitude (or sometimes equivalently, height) and depth is determined along the direction of the reference surface normal.</documentation>
        </annotation>
        <restriction base="string">
            <enumeration value="wgs84Egm96Geoid">
                <annotation>
                    <documentation>WGS 84 EGM96 Geoid: The geopotential surface defined by the World Geodetic System (WGS) 1984 EGM96 Earth Gravity Model that is closely associated with the mean ocean surface.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="wgs84Egm08Geoid">
                <annotation>
                    <documentation>WGS 84 EGM08 Geoid: The geopotential surface defined by the World Geodetic System (WGS) 1984 EGM08 Earth Gravity Model that is closely associated with the mean ocean surface.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="meanSeaLevel">
                <annotation>
                    <documentation>Mean Sea Level (MSL): A continuous surface over the oceans (or its hypothetical extension under the land masses) defined by the mean of sea level surfaces approximated and observed over 19 years.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="navd88">
                <annotation>
                    <documentation>North American Vertical Datum (NAVD) 1988: A fixed reference for elevations derived from a general adjustment of the first-order terrestrial levelling nets of the United States, Canada, and Mexico. [desc] In the adjustment, only the height of the primary tidal bench mark, referenced to the International Great Lakes Datum of 1985 local mean sea level height value, at Pointe-au-Pere, Quebec, on the Gulf of St. Lawrence was held fixed, thus providing minimum constraint.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="ngvd29">
                <annotation>
                    <documentation>National Geodetic Vertical Datum (NGVD) 1929: A fixed reference for elevations derived from a general adjustment in 1929 of the first-order leveling nets of both the United States and Canada. [desc] In the adjustment, mean sea level was held fixed as observed at 21 tide stations in the United States and 5 in Canada.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="groundLevel">
                <annotation>
                    <documentation>Ground Level: A continuous surface over dry land and non-tidal waters (for example: lakes). [desc] In the case of non-tidal waters it is necessary to specify hydrologic conditions in order to ensure a precise reference surface specification. Over extensive areas it is often defined by a digital elevation model (for example: a matrix of elevation values or a Triangulated Irregular Network (TIN)). Over tidal waters (for example: oceans) it is usually considered to be extended to cover the remainder of the world based on a Mean Sea Level (MSL) surface.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="waterLevel">
                <annotation>
                    <documentation>Water Level: A locally observed level of the water surface. [desc] In the case of non-tidal waters (for example: lakes or rivers) it is necessary to specify hydrologic conditions in order to ensure a precise reference surface specification. Over tidal waters (for example: oceans) it is necessary to specify tidal conditions in order to ensure a precise reference surface specification.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="approxLowestAstronomTide">
                <annotation>
                    <documentation>Approximate Lowest Astronomical Tide: An approximate level, usually within 0.3 metres from that of lowest astronomical tide.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="approxMeanLowWater">
                <annotation>
                    <documentation>Approximate Mean Low Water: An approximate level, usually within 0.3 metres from that of mean low water.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="approxMeanLowWaterSprings">
                <annotation>
                    <documentation>Approximate Mean Low Water Springs: An approximate level, usually within 0.3 metres from that of mean low water springs.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="approxMeanLowerLowWater">
                <annotation>
                    <documentation>Approximate Mean Lower Low Water: An approximate level, usually within 0.3 metres from that of mean lower low water.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="approxMeanSeaLevel">
                <annotation>
                    <documentation>Approximate Mean Sea Level: An approximate level, usually within 0.3 metres from that of mean sea level.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="equinoctialSpringLowWater">
                <annotation>
                    <documentation>Equinoctial Spring Low Water: The level of low water springs near the time of an equinox.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="highWater">
                <annotation>
                    <documentation>High Water: The highest level reached at a location by the water surface in one tidal cycle. [desc] When used on inland waters it is generally defined as a level that the daily mean water level exceeds less than 5 percent of the time.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="highWaterSprings">
                <annotation>
                    <documentation>High Water Springs: An arbitrary level, approximating that of mean high water springs.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="higherHighWater">
                <annotation>
                    <documentation>Higher High Water: The highest of the high waters (or single high water) of any specified tidal day due to the declination A1 effects of the moon and sun.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="higherHighWaterLargeTide">
                <annotation>
                    <documentation>Higher High Water Large Tide: The average of the highest high waters, one from each of 19 years of observations.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="highestAstronomicalTide">
                <annotation>
                    <documentation>Highest Astronomical Tide: The highest tidal level, which can be predicted to occur under average meteorological conditions and under any combination of astronomical conditions.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="highestHighWater">
                <annotation>
                    <documentation>Highest High Water: The highest water level observed at a location.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="igld1985">
                <annotation>
                    <documentation>International Great Lakes Datum 1985: A vertical reference system with its zero based on the mean water level at Rimouski/Pointe-au-Père, Quebec, over the period 1970 to 1988.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="indianSpringHighWater">
                <annotation>
                    <documentation>Indian Spring High Water: A tidal surface datum approximating the level of the mean of the higher high water at spring tides. [desc] This tidal datum approximates the highest water level observed at a location and is usually above that of the higher high water at spring tides.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="indianSpringLowWater">
                <annotation>
                    <documentation>Indian Spring Low Water: A tidal surface datum approximating the level of the mean of the lower low water at spring tides. [desc] This tidal datum approximates the lowest water level observed at a location and is usually below that of the lower low water at spring tides.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="lowWater">
                <annotation>
                    <documentation>Low Water: An approximation of mean low water adopted as the reference level for a limited region, irrespective of better determinations later. [desc] Used mostly in harbour and river engineering. Used in inland waters. It is generally defined as a level which the daily mean water level would fall below less than 5 percent of the time and by no more than 0.2 metres during the navigation season. A single level surface is usually chosen as the low water datum for a whole lake. On a river, low water datum is a sloping surface, which approximates the surface of the river at a low state.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="lowWaterSprings">
                <annotation>
                    <documentation>Low Water Springs: A level approximating that of mean low water springs.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="lowerLowWater">
                <annotation>
                    <documentation>Lower Low Water: The lowest of the low waters (or single low water) of any specified tidal day due to the declination A1 effects of the moon and sun.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="lowerLowWaterLargeTide">
                <annotation>
                    <documentation>Lower Low Water Large Tide: The average of the lowest low waters, one from each of 19 years of observations.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="lowestAstronomicalTide">
                <annotation>
                    <documentation>Lowest Astronomical Tide: The lowest tide level that can be predicted to occur under average meteorological conditions and under any combination of astronomical conditions.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="lowestLowWater">
                <annotation>
                    <documentation>Lowest Low Water: An arbitrary level conforming to the lowest tide observed at a location, or somewhat lower.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="lowestLowWaterSprings">
                <annotation>
                    <documentation>Lowest Low Water Springs: An arbitrary level conforming to the lowest water level observed at a location at spring tides during a period shorter than 19 years.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="meanHighWater">
                <annotation>
                    <documentation>Mean High Water: The average height of all high waters at a location over a 19-year period.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="meanHighWaterNeaps">
                <annotation>
                    <documentation>Mean High Water Neaps: The average height of the high waters of the neap tide.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="meanHighWaterSprings">
                <annotation>
                    <documentation>Mean High Water Springs: The average height of the high waters of spring tides.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="meanHigherHighWater">
                <annotation>
                    <documentation>Mean Higher High Water: The average height of higher high waters at a location over a 19-year period.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="meanHigherHighWaterSprings">
                <annotation>
                    <documentation>Mean Higher High Water Springs: The average height of higher high water at spring tides at a location.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="meanLowWater">
                <annotation>
                    <documentation>Mean Low Water: The average height of all low waters at a location over a 19-year period.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="meanLowWaterNeaps">
                <annotation>
                    <documentation>Mean Low Water Neaps: The average height of the low waters of the neap tide.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="meanLowWaterSprings">
                <annotation>
                    <documentation>Mean Low Water Springs: The average height of the low waters of spring tides.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="meanLowerLowWater">
                <annotation>
                    <documentation>Mean Lower Low Water: The average height of the lower low waters at a location over a 19-year period.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="meanLowerLowWaterSprings">
                <annotation>
                    <documentation>Mean Lower Low Water Springs: The average height of lower low water at spring tides at a location.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="meanTideLevel">
                <annotation>
                    <documentation>Mean Tide Level: The arithmetic mean of mean high water and mean low water.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="meanWaterLevel">
                <annotation>
                    <documentation>Mean Water Level: The average of all hourly water levels over the available period of record.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="neapTide">
                <annotation>
                    <documentation>Neap Tide: A tide of decreased range (or tidal currents of decreased speed) occurring semi-monthly as the result of the moon being in quadrature. [desc] The neap range of the tide is the average range occurring at the time of neap tides and is most conveniently computed from the harmonic constants. It is smaller than the mean range where the type of tide is either semi-diurnal or mixed and is of no practical significance where the type of tide is predominantly diurnal.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="nearlyHighestHighWater">
                <annotation>
                    <documentation>Nearly Highest High Water: An arbitrary level approximating the highest water level observed at a location, usually equivalent to the high water springs.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="nearlyLowestLowWater">
                <annotation>
                    <documentation>Nearly Lowest Low Water: A level approximating the lowest water level observed at a location, usually equivalent to Indian spring low water.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="springTide">
                <annotation>
                    <documentation>Spring Tide: A tide of increased range (or tidal water currents of increased speed) occurring semi-monthly as the result of the moon being new or full. [desc] The spring range of tide is the average range occurring at the time of spring tides and is most conveniently computed from the harmonic constants. It is larger than the mean range where the type of tide is either semi-diurnal or mixed, and is of no practical significance where the type of tide is predominantly diurnal.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="wgs84Ellipsoid">
                <annotation>
                    <documentation>WGS 84 Ellipsoid: The oblate ellipsoidal figure of the Earth defined by the World Geodetic System (WGS) 1984.</documentation>
                </annotation>
            </enumeration>
        </restriction>
    </simpleType>
    <!--========== Direction Measures =============-->
    <complexType name="DirectionMeasureType">
        <annotation>
            <documentation>Direction Measure Type: A datatype representing the angular distance of a direction from a chosen reference direction. [desc] The measured and reference directions are located in the horizontal plane, and the value of the angle is positive in a clockwise direction as viewed from “above” the horizontal plane.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType">
                <attribute name="referenceDatum" type="tspi-core:DirectionDatumType" use="required"/>
            </extension>
        </simpleContent>
    </complexType>
    <simpleType name="DirectionDatumType">
        <annotation>
            <documentation>Direction Datum Type: The type of reference direction as determined by the means by which it is established (e.g., by the direction of a geographic or magnetic pole of the Earth).</documentation>
        </annotation>
        <restriction base="string">
            <enumeration value="geodetic">
                <annotation>
                    <documentation>Geodetic: Referenced to the direction of the geographic North Pole.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="magnetic">
                <annotation>
                    <documentation>Magnetic: Referenced to the direction of the magnetic North Pole.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="militaryGrid">
                <annotation>
                    <documentation>Military Grid: Referenced to the direction of "north" in a military grid established by a suitable map-projection, for example Universal Transverse Mercator (UTM).</documentation>
                </annotation>
            </enumeration>
            <enumeration value="relative">
                <annotation>
                    <documentation>Relative; Referenced to a direction established by the context of use (for example: the heading of a vessel).</documentation>
                </annotation>
            </enumeration>
        </restriction>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <complexType name="CardinalDirectionType">
        <annotation>
            <documentation>Cardinal Direction Type: A datatype representing the angular direction with respect to a chosen reference direction establishing 16 generalized directions (for example: southeast) based on the compass rose. [desc] The angular and reference directions are located in the horizontal plane, and the interpretation of the direction is as viewed from "above" the horizontal plane.</documentation>
        </annotation>
        <simpleContent>
            <extension base="tspi-core:CompassDirectionType">
                <attribute name="referenceDatum" type="tspi-core:DirectionDatumType" use="required"/>
            </extension>
        </simpleContent>
    </complexType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <simpleType name="CompassDirectionType">
        <annotation>
            <documentation>Compass Direction Type: The 16 generalized directions (for example: southeast) based on the compass rose.</documentation>
        </annotation>
        <restriction base="string">
            <enumeration value="north">
                <annotation>
                    <documentation>North: The geographic half-octant centered on the direction of north [desc] The half-octant extends from 348.75 (-11.25) arc degrees to 11.25 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="northNortheast">
                <annotation>
                    <documentation>North-northeast: The geographic half-octant centered on the direction of north-northeast. [desc] The half-octant extends from 11.25 arc degrees to 33.75 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="northeast">
                <annotation>
                    <documentation>Northeast: The geographic half-octant centered on the direction of northeast. [desc] The half-octant extends from 33.75 arc degrees to 56.25 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="eastNortheast">
                <annotation>
                    <documentation>East-northeast: The geographic half-octant centered on the direction of east-northeast. [desc] The half-octant extends from 56.25 arc degrees to 78.75 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="east">
                <annotation>
                    <documentation>East: The geographic half-octant centered on direction of east. [desc] The half-octant extends from 78.75 arc degrees to 101.25 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="eastSoutheast">
                <annotation>
                    <documentation>East-southeast: The geographic half-octant centered on the direction of east-southeast. [desc] The half-octant extends from 101.25 arc degrees to 123.75 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="southeast">
                <annotation>
                    <documentation>Southeast: The geographic half-octant centered on the direction of southeast. [desc] The half-octant extends from 123.75 arc degrees to 146.25 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="southSoutheast">
                <annotation>
                    <documentation>South-southeast: The geographic half-octant centered on the direction of south-southeast. [desc] The half-octant extends from 146.25 arc degrees to 168.75 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="south">
                <annotation>
                    <documentation>South: The geographic half-octant centered on the direction of south. [desc] The half-octant extends from 168.75 arc degrees to 191.25 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="southSouthwest">
                <annotation>
                    <documentation>South-southwest: The geographic half-octant centered on the direction of south-southwest [desc] The half-octant extends from 191.25 arc degrees to 213.75 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="southwest">
                <annotation>
                    <documentation>Southwest: The geographic half-octant centered on the direction of southwest [desc] The half-octant extends from 213.75 arc degrees to 236.25 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="westSouthwest">
                <annotation>
                    <documentation>West-southwest: The geographic half-octant centered on the direction of west-southwest [desc] The half-octant extends from 236.25 arc degrees to 258.75 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="west">
                <annotation>
                    <documentation>West: The geographic half-octant centered on the direction of west. [desc] The half-octant extends from 258.75 arc degrees to 281.25 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="westNorthwest">
                <annotation>
                    <documentation>West-northwest: The geographic half-octant centered on the direction of west-northwest. [desc] The half-octant extends from 281.25 arc degrees to 303.75 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="northWest">
                <annotation>
                    <documentation>Northwest: The geographic half-octant centered on the direction of northwest. [desc] The half-octant extends from 303.75 arc degrees to 326.25 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="northNorthwest">
                <annotation>
                    <documentation>North-northwest: The geographic half-octant centered on the direction of north-northwest. [desc] The half-octant extends from 326.25 arc degrees to 348.75 arc degrees.</documentation>
                </annotation>
            </enumeration>
            <enumeration value="noInformation">
                <annotation>
                    <documentation>No Information: There is no information specified regarding the attribute value. [desc] Depending on the nature and quality of available information, the state of the data collection/update process, and other conditions, it may not be possible to populate a value due to lack of knowledge.</documentation>
                </annotation>
            </enumeration>
        </restriction>
    </simpleType>
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
    <!-- ========== Acceleration Measures ========== -->
    <complexType name="AccelerationType">
        <annotation>
            <documentation>Acceleration Type: A limited extension of the GML MeasureType that is restricted to the "acceleration" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/acceleration/'" -->
    </complexType>
    <!-- ========== Amount of Substance Measures ========== -->
    <complexType name="AmountOfSubstanceType">
        <annotation>
            <documentation>Amount of Substance Type: A limited extension of the GML MeasureType that is restricted to the "amount of substance" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/amountOfSubstance/'" -->
    </complexType>
    <!-- ========== Area Measures ========== -->
    <complexType name="AreaType">
        <annotation>
            <documentation>Area Type: A limited extension of the GML MeasureType that is restricted to the "area" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/area/'" -->
    </complexType>
    <!-- ========== Capacitance Measures ========== -->
    <complexType name="CapacitanceType">
        <annotation>
            <documentation>Capacitance Type: A limited extension of the GML MeasureType that is restricted to the "capacitance" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/capacitance/'" -->
    </complexType>
    <!-- ========== Electric Charge Measures ========== -->
    <complexType name="ElectricChargeType">
        <annotation>
            <documentation>Electric Charge Type: A limited extension of the GML MeasureType that is restricted to the "electric charge" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/electricCharge/'" -->
    </complexType>
    <!-- ========== Electric Conductance Measures ========== -->
    <complexType name="ElectricConductanceType">
        <annotation>
            <documentation>Electric Conductance Type: A limited extension of the GML MeasureType that is restricted to the "electric conductance" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/electricConductance/'" -->
    </complexType>
    <!-- ========== Electric Current Measures ========== -->
    <complexType name="ElectricCurrentType">
        <annotation>
            <documentation>Electric Current Type: A limited extension of the GML MeasureType that is restricted to the "electric current" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/electricCurrent/'" -->
    </complexType>
    <!-- ========== Electric Resistance Measures ========== -->
    <complexType name="ElectricResistanceType">
        <annotation>
            <documentation>Electric Resistance Type: A limited extension of the GML MeasureType that is restricted to the "electric resistance" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/electricResistance/'" -->
    </complexType>
    <!-- ========== Electromotive Force Measures ========== -->
    <complexType name="ElectromotiveForceType">
        <annotation>
            <documentation>Electromotive Force Type: A limited extension of the GML MeasureType that is restricted to the "electromotive force" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/electromotiveForce/'" -->
    </complexType>
    <!-- ========== Energy Measures ========== -->
    <complexType name="EnergyType">
        <annotation>
            <documentation>Energy Type: A limited extension of the GML MeasureType that is restricted to the "energy" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/energy/'" -->
    </complexType>
    <!-- ========== Force Measures ========== -->
    <complexType name="ForceType">
        <annotation>
            <documentation>Force Type: A limited extension of the GML MeasureType that is restricted to the "force" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/force/'" -->
    </complexType>
    <!-- ========== Frequency Measures ========== -->
    <complexType name="FrequencyType">
        <annotation>
            <documentation>Frequency Type: A limited extension of the GML MeasureType that is restricted to the "frequency" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/frequency/'" -->
    </complexType>
    <!-- ========== Geopotential Energy Length Measures ========== -->
    <complexType name="GeopotentialEnergyLengthType">
        <annotation>
            <documentation>Geopotential Energy Length Type: A limited extension of the GML MeasureType that is restricted to the "geopotential energy length" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/geopotentialEnergyLength/'" -->
    </complexType>
    <!-- ========== Illuminance Measures ========== -->
    <complexType name="IlluminanceType">
        <annotation>
            <documentation>Illuminance Type: A limited extension of the GML MeasureType that is restricted to the "illuminance" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/illuminance/'" -->
    </complexType>
    <!-- ========== Inductance Measures ========== -->
    <complexType name="InductanceType">
        <annotation>
            <documentation>Inductance Type: A limited extension of the GML MeasureType that is restricted to the "inductance" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/inductance/'" -->
    </complexType>
    <!-- ========== Irradiance Measures ========== -->
    <complexType name="IrradianceType">
        <annotation>
            <documentation>Irradiance Type: A limited extension of the GML MeasureType that is restricted to the "irradiance" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/irradiance/'" -->
    </complexType>
    <!-- ========== Length Measures ========== -->
    <complexType name="LengthType">
        <annotation>
            <documentation>Length Type: A limited extension of the GML MeasureType that is restricted to the "length" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/length/'" -->
    </complexType>
    <!-- ========== Linear Density Measures ========== -->
    <complexType name="LinearDensityType">
        <annotation>
            <documentation>Linear Density Type: A limited extension of the GML MeasureType that is restricted to the "linear density" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/linearDensity/'" -->
    </complexType>
    <!-- ========== Linear Energy Transfer Measures ========== -->
    <complexType name="LinearEnergyTransferType">
        <annotation>
            <documentation>Linear Energy Transfer Type: A limited extension of the GML MeasureType that is restricted to the "linear energy transfer" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/linearEnergyTransfer/'" -->
    </complexType>
    <!-- ========== Luminous Flux Measures ========== -->
    <complexType name="LuminousFluxType">
        <annotation>
            <documentation>Luminous Flux Type: A limited extension of the GML MeasureType that is restricted to the "luminous flux" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/luminousFlux/'" -->
    </complexType>
    <!-- ========== Luminous Intensity Measures ========== -->
    <complexType name="LuminousIntensityType">
        <annotation>
            <documentation>Luminous Intensity Type: A limited extension of the GML MeasureType that is restricted to the "luminous intensity" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/luminousIntensity/'" -->
    </complexType>
    <!-- ========== Magnetic Flux Measures ========== -->
    <complexType name="MagneticFluxType">
        <annotation>
            <documentation>Magnetic Flux Type: A limited extension of the GML MeasureType that is restricted to the "magnetic flux" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/magneticFlux/'" -->
    </complexType>
    <!-- ========== Magnetic Flux Density Measures ========== -->
    <complexType name="MagneticFluxDensityType">
        <annotation>
            <documentation>Magnetic Flux Density Type: A limited extension of the GML MeasureType that is restricted to the "magnetic flux density" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/magneticFluxDensity/'" -->
    </complexType>
    <!-- ========== Magnetic Flux Density Gradient Measures ========== -->
    <complexType name="MagneticFluxDensityGradientType">
        <annotation>
            <documentation>Magnetic Flux Density Gradient Type: A limited extension of the GML MeasureType that is restricted to the "magnetic flux density gradient" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/magneticFluxDensityGradient/'" -->
    </complexType>
    <!-- ========== Mass Measures ========== -->
    <complexType name="MassType">
        <annotation>
            <documentation>Mass Type: A limited extension of the GML MeasureType that is restricted to the "mass" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/mass/'" -->
    </complexType>
    <!-- ========== Mass Density Measures ========== -->
    <complexType name="MassDensityType">
        <annotation>
            <documentation>Mass Density Type: A limited extension of the GML MeasureType that is restricted to the "mass density" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/massDensity/'" -->
    </complexType>
    <!-- ========== Mass Fraction Measures ========== -->
    <complexType name="MassFractionType">
        <annotation>
            <documentation>Mass Fraction Type: A limited extension of the GML MeasureType that is restricted to the "mass fraction" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/massFraction/'" -->
    </complexType>
    <!-- ========== Mass Rate Measures ========== -->
    <complexType name="MassRateType">
        <annotation>
            <documentation>Mass Rate Type: A limited extension of the GML MeasureType that is restricted to the "mass rate" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/massRate/'" -->
    </complexType>
    <!-- ========== Noncomparable Measures ========== -->
    <complexType name="NoncomparableUnitType">
        <annotation>
            <documentation>Noncomparable Unit Type: A limited extension of the GML MeasureType that is restricted to the "noncomparable" category of physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/noncomparable/'" -->
    </complexType>
    <!-- ========== Plane Angle Measures ========== -->
    <complexType name="PlaneAngleType">
        <annotation>
            <documentation>Plane Angle Type: A limited extension of the GML MeasureType that is restricted to the "plane angle" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/planeAngle/'" -->
    </complexType>
    <!-- ========== Power Measures ========== -->
    <complexType name="PowerType">
        <annotation>
            <documentation>Power Type: A limited extension of the GML MeasureType that is restricted to the "power" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/power/'" -->
    </complexType>
    <!-- ========== Power Level Difference Measures ========== -->
    <complexType name="PowerLevelDifferenceType">
        <annotation>
            <documentation>Power Level Difference Type: A limited extension of the GML MeasureType that is restricted to the "power level difference" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/powerLevelDifference/'" -->
    </complexType>
    <!-- ========== Power Level Difference Length Gradient Measures ========== -->
    <complexType name="PowerLevelDiffLenGradientType">
        <annotation>
            <documentation>Power Level Difference Length Gradient Type: A limited extension of the GML MeasureType that is restricted to the "power level difference length" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/powerLevelDiffLenGradient/'" -->
    </complexType>
    <!-- ========== Pressure Measures ========== -->
    <complexType name="PressureType">
        <annotation>
            <documentation>Pressure Type: A limited extension of the GML MeasureType that is restricted to the "pressure" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/pressure/'" -->
    </complexType>
    <!-- ========== Pure Number Measures ========== -->
    <complexType name="PureNumberType">
        <annotation>
            <documentation>Pure Number Type: A limited extension of the GML MeasureType that is restricted to the "pure number" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/pureNumber/'" -->
    </complexType>
    <!-- ========== Radiation Absorbed Dose Measures ========== -->
    <complexType name="RadiationAbsorbedDoseType">
        <annotation>
            <documentation>Radiation Absorbed Dose Type: A limited extension of the GML MeasureType that is restricted to the "radiation absorbed dose" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/radiationAbsorbedDose/'" -->
    </complexType>
    <!-- ========== Radiation Dose Equivalent Measures ========== -->
    <complexType name="RadiationDoseEquivalentType">
        <annotation>
            <documentation>Radiation Dose Equivalent Type: A limited extension of the GML MeasureType that is restricted to the "radiation dose equivalent" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/radiationDoseEquivalent/'" -->
    </complexType>
    <!-- ========== Radionuclide Activity Measures ========== -->
    <complexType name="RadionuclideActivityType">
        <annotation>
            <documentation>Radionuclide Activity Type: A limited extension of the GML MeasureType that is restricted to the "radionuclide activity" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/radionuclideActivity/'" -->
    </complexType>
    <!-- ========== Rate Measures ========== -->
    <complexType name="RateType">
        <annotation>
            <documentation>Rate Type: A limited extension of the GML MeasureType that is restricted to the "rate" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/rate/'" -->
    </complexType>
    <!-- ========== Reciprocal Area Measures ========== -->
    <complexType name="ReciprocalAreaType">
        <annotation>
            <documentation>Reciprocal Area Type: A limited extension of the GML MeasureType that is restricted to the "reciprocal area" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/reciprocalArea/'" -->
    </complexType>
    <!-- ========== Reciprocal Time Measures ========== -->
    <complexType name="ReciprocalTimeType">
        <annotation>
            <documentation>Reciprocal Time Type: A limited extension of the GML MeasureType that is restricted to the "reciprocal time" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/reciprocalTime/'" -->
    </complexType>
    <!-- ========== Solid Angle Measures ========== -->
    <complexType name="SolidAngleType">
        <annotation>
            <documentation>Solid Angle Type: A limited extension of the GML MeasureType that is restricted to the "solid angle" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/solidAngle/'" -->
    </complexType>
    <!-- ========== Sound Speed Ratio Measures ========== -->
    <complexType name="SoundSpeedRatioType">
        <annotation>
            <documentation>Sound Speed Ratio Type: A limited extension of the GML MeasureType that is restricted to the "sound speed ratio" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/soundSpeedRatio/'" -->
    </complexType>
    <!-- ========== Speed Measures ========== -->
    <!--   Any "speed" UoM & the pure number UoM "machNumber" may be used  -->
    <complexType name="SpeedType">
        <annotation>
            <documentation>Speed Type: A limited extension of the GML MeasureType that is restricted to the "speed" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/volume/')
                                                        or (@uom = 'http://metadata.dod.mil/mdr/ns/GSIP/uom/pureNumber/machNumber')
                                                        or (@uom = 'http://metadata.dod.mil/mdr/ns/GSIP/uom/pureNumber/deciMachNumber')" -->
    </complexType>
    <!-- ========== Surface Mass Density Rate Measures ========== -->
    <complexType name="SurfaceMassDensityRateType">
        <annotation>
            <documentation>Surface Mass Density Rate Type: A limited extension of the GML MeasureType that is restricted to the "surface mass density" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/surfaceMassDensityRate/'" -->
    </complexType>
    <!-- ========== Thermodynamic Temperature Measures ========== -->
    <complexType name="ThermodynamicTemperatureType">
        <annotation>
            <documentation>Thermodynamic Temperature Type: A limited extension of the GML MeasureType that is restricted to the "thermodynamic temperature" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/thermodynamicTemperature/'" -->
    </complexType>
    <!-- ========== Time Measures ========== -->
    <complexType name="TimeType">
        <annotation>
            <documentation>Time Type: A limited extension of the GML MeasureType that is restricted to the "time" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/time/'" -->
    </complexType>
    <!-- ========== Volume Measures ========== -->
    <complexType name="VolumeType">
        <annotation>
            <documentation>Volume Type: A limited extension of the GML MeasureType that is restricted to the "volume" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/volume/'" -->
    </complexType>
    <!-- ========== Volume Flow Rate Measures ========== -->
    <complexType name="VolumeFlowRateType">
        <annotation>
            <documentation>Volume Flow Rate Type: A limited extension of the GML MeasureType that is restricted to the "volume flow rate" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/volumeFlowRate/'" -->
    </complexType>
    <!-- ========== Volume Fraction Measures ========== -->
    <complexType name="VolumeFractionType">
        <annotation>
            <documentation>Volume Fraction Type: A limited extension of the GML MeasureType that is restricted to the "volume fraction" category of mutually comparable physical quantities.</documentation>
        </annotation>
        <simpleContent>
            <extension base="gml:MeasureType"/>
        </simpleContent>
        <!-- Associated Schematron assertion = "starts-with(@uom, 'http://metadata.ces.mil/mdr/ns/GSIP/uom/volumeFraction/'" -->
    </complexType>
</schema>
