<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:gml="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" targetNamespace="http://www.opengis.net/gml" elementFormDefault="qualified" version="3.0.0" finalDefault="" blockDefault="" attributeFormDefault="unqualified">
    <annotation>
        <appinfo source="urn:opengis:specification:gml:schema-xsd:grids:v3.0.0">grids.xsd</appinfo>
        <documentation xml:lang="en">Grid geometries
    A subset of implicit geometries
    Designed for use with GML Coverage schema, but maybe useful elsewhere as well.  
    
    Copyright (c) 2002 OGC, All Rights Reserved.
    </documentation>
    </annotation>
    <include schemaLocation="geometryBasic0d1d.xsd"/>
    <element name="_ImplicitGeometry" type="gml:AbstractGeometryType" abstract="true" substitutionGroup="gml:_Geometry" nillable="false"/>
    <element name="Grid" type="gml:GridType" substitutionGroup="gml:_ImplicitGeometry" nillable="false" abstract="false"/>
    <complexType name="GridType" mixed="false" abstract="false">
        <annotation>
            <documentation>Implicitly defines an unrectified grid, which is a network composed of two or more sets of equally spaced parallel lines in which the members of each set intersect the members of the other sets at right angles.</documentation>
        </annotation>
        <complexContent>
            <extension base="gml:AbstractGeometryType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element name="limits" type="gml:GridLimitsType" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <element name="axisName" type="string" maxOccurs="unbounded" minOccurs="1" nillable="false"/>
                </sequence>
                <attribute name="dimension" type="positiveInteger" use="required"/>
            </extension>
        </complexContent>
    </complexType>
    <complexType name="GridLimitsType" mixed="false" abstract="false">
        <sequence minOccurs="1" maxOccurs="1">
            <element name="GridEnvelope" type="gml:GridEnvelopeType" minOccurs="1" maxOccurs="1" nillable="false"/>
        </sequence>
    </complexType>
    <complexType name="GridEnvelopeType" mixed="false" abstract="false">
        <annotation>
            <documentation>Provides grid coordinate values for the diametrically opposed corners of an envelope that bounds a section of grid. The value of a single coordinate is the number of offsets from the origin of the grid in the direction of a specific axis.</documentation>
        </annotation>
        <sequence minOccurs="1" maxOccurs="1">
            <element name="low" type="gml:integerList" minOccurs="1" maxOccurs="1" nillable="false"/>
            <element name="high" type="gml:integerList" minOccurs="1" maxOccurs="1" nillable="false"/>
        </sequence>
    </complexType>
    <element name="RectifiedGrid" type="gml:RectifiedGridType" substitutionGroup="gml:Grid" nillable="false" abstract="false"/>
    <complexType name="RectifiedGridType" mixed="false" abstract="false">
        <annotation>
            <documentation>A rectified grid has an origin and vectors that define its post locations.</documentation>
        </annotation>
        <complexContent>
            <extension base="gml:GridType">
                <sequence minOccurs="1" maxOccurs="1">
                    <element name="origin" type="gml:PointPropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <element name="offsetVector" type="gml:VectorType" maxOccurs="unbounded" minOccurs="1" nillable="false"/>
                </sequence>
            </extension>
        </complexContent>
    </complexType>
</schema>