<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gss="http://www.isotc211.org/2005/gss" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:xlink="http://www.w3.org/1999/xlink" targetNamespace="http://www.isotc211.org/2005/gmd" elementFormDefault="qualified" version="0.1" finalDefault="" blockDefault="" attributeFormDefault="unqualified">
    <xs:annotation>
        <xs:documentation>This file was generated from ISO TC/211 UML class diagrams == 01-26-2005 12:40:02 ====== Frequency with which modifications and deletations are made to the data after it is first produced</xs:documentation>
    </xs:annotation>
    <xs:import namespace="http://www.isotc211.org/2005/gss" schemaLocation="../gss/geometry.xsd"/>
    <xs:import namespace="http://www.isotc211.org/2005/gco" schemaLocation="../gco/gco.xsd"/>
    <xs:include schemaLocation="../gmd/citation.xsd"/>
    <xs:complexType name="MD_GridSpatialRepresentation_Type" mixed="false" abstract="false">
        <xs:annotation>
            <xs:documentation>Types and numbers of raster spatial objects in the dataset</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="gmd:AbstractMD_SpatialRepresentation_Type">
                <xs:sequence minOccurs="1" maxOccurs="1">
                    <xs:element name="numberOfDimensions" type="gco:Integer_PropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <xs:element name="axisDimensionProperties" type="gmd:MD_Dimension_PropertyType" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
                    <xs:element name="cellGeometry" type="gmd:MD_CellGeometryCode_PropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <xs:element name="transformationParameterAvailability" type="gco:Boolean_PropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="MD_GridSpatialRepresentation" type="gmd:MD_GridSpatialRepresentation_Type" substitutionGroup="gmd:AbstractMD_SpatialRepresentation" nillable="false" abstract="false"/>
    <xs:complexType name="MD_GridSpatialRepresentation_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmd:MD_GridSpatialRepresentation" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:complexType name="MD_VectorSpatialRepresentation_Type" mixed="false" abstract="false">
        <xs:annotation>
            <xs:documentation>Information about the vector spatial objects in the dataset</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="gmd:AbstractMD_SpatialRepresentation_Type">
                <xs:sequence minOccurs="1" maxOccurs="1">
                    <xs:element name="topologyLevel" type="gmd:MD_TopologyLevelCode_PropertyType" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <xs:element name="geometricObjects" type="gmd:MD_GeometricObjects_PropertyType" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="MD_VectorSpatialRepresentation" type="gmd:MD_VectorSpatialRepresentation_Type" substitutionGroup="gmd:AbstractMD_SpatialRepresentation" nillable="false" abstract="false"/>
    <xs:complexType name="MD_VectorSpatialRepresentation_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmd:MD_VectorSpatialRepresentation" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:complexType name="AbstractMD_SpatialRepresentation_Type" abstract="true" mixed="false">
        <xs:annotation>
            <xs:documentation>Digital mechanism used to represent spatial information</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="gco:AbstractObject_Type">
                <xs:sequence minOccurs="1" maxOccurs="1"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="AbstractMD_SpatialRepresentation" type="gmd:AbstractMD_SpatialRepresentation_Type" abstract="true" nillable="false"/>
    <xs:complexType name="MD_SpatialRepresentation_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmd:AbstractMD_SpatialRepresentation" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:complexType name="MD_Georeferenceable_Type" mixed="false" abstract="false">
        <xs:complexContent>
            <xs:extension base="gmd:MD_GridSpatialRepresentation_Type">
                <xs:sequence minOccurs="1" maxOccurs="1">
                    <xs:element name="controlPointAvailability" type="gco:Boolean_PropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <xs:element name="orientationParameterAvailability" type="gco:Boolean_PropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <xs:element name="orientationParameterDescription" type="gco:CharacterString_PropertyType" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <xs:element name="georeferencedParameters" type="gco:Record_PropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <xs:element name="parameterCitation" type="gmd:CI_Citation_PropertyType" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="MD_Georeferenceable" type="gmd:MD_Georeferenceable_Type" substitutionGroup="gmd:MD_GridSpatialRepresentation" nillable="false" abstract="false"/>
    <xs:complexType name="MD_Georeferenceable_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmd:MD_Georeferenceable" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:complexType name="MD_Dimension_Type" mixed="false" abstract="false">
        <xs:complexContent>
            <xs:extension base="gco:AbstractObject_Type">
                <xs:sequence minOccurs="1" maxOccurs="1">
                    <xs:element name="dimensionName" type="gmd:MD_DimensionNameTypeCode_PropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <xs:element name="dimensionSize" type="gco:Integer_PropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <xs:element name="resolution" type="gco:Measure_PropertyType" minOccurs="0" maxOccurs="1" nillable="false"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="MD_Dimension" type="gmd:MD_Dimension_Type" nillable="false" abstract="false"/>
    <xs:complexType name="MD_Dimension_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmd:MD_Dimension" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:complexType name="MD_Georectified_Type" mixed="false" abstract="false">
        <xs:complexContent>
            <xs:extension base="gmd:MD_GridSpatialRepresentation_Type">
                <xs:sequence minOccurs="1" maxOccurs="1">
                    <xs:element name="checkPointAvailability" type="gco:Boolean_PropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <xs:element name="checkPointDescription" type="gco:CharacterString_PropertyType" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <xs:element name="cornerPoints" type="gss:GM_Point_PropertyType" minOccurs="0" maxOccurs="unbounded" nillable="false"/>
                    <xs:element name="centerPoint" type="gss:GM_Point_PropertyType" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <xs:element name="pointInPixel" type="gmd:MD_PixelOrientationCode_PropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <xs:element name="transformationDimensionDescription" type="gco:CharacterString_PropertyType" minOccurs="0" maxOccurs="1" nillable="false"/>
                    <xs:element name="transformationDimensionMapping" type="gco:CharacterString_PropertyType" minOccurs="0" maxOccurs="2" nillable="false"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="MD_Georectified" type="gmd:MD_Georectified_Type" substitutionGroup="gmd:MD_GridSpatialRepresentation" nillable="false" abstract="false"/>
    <xs:complexType name="MD_Georectified_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmd:MD_Georectified" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:complexType name="MD_GeometricObjects_Type" mixed="false" abstract="false">
        <xs:complexContent>
            <xs:extension base="gco:AbstractObject_Type">
                <xs:sequence minOccurs="1" maxOccurs="1">
                    <xs:element name="geometricObjectType" type="gmd:MD_GeometricObjectTypeCode_PropertyType" minOccurs="1" maxOccurs="1" nillable="false"/>
                    <xs:element name="geometricObjectCount" type="gco:Integer_PropertyType" minOccurs="0" maxOccurs="1" nillable="false"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:element name="MD_GeometricObjects" type="gmd:MD_GeometricObjects_Type" nillable="false" abstract="false"/>
    <xs:complexType name="MD_GeometricObjects_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmd:MD_GeometricObjects" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attributeGroup ref="gco:ObjectReference"/>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:simpleType name="MD_PixelOrientationCode_Type">
        <xs:restriction base="xs:string">
            <xs:enumeration value="center"/>
            <xs:enumeration value="lowerLeft"/>
            <xs:enumeration value="lowerRight"/>
            <xs:enumeration value="upperRight"/>
            <xs:enumeration value="upperLeft"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="MD_PixelOrientationCode" type="gmd:MD_PixelOrientationCode_Type" substitutionGroup="gco:CharacterString" nillable="false" abstract="false"/>
    <xs:complexType name="MD_PixelOrientationCode_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmd:MD_PixelOrientationCode" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:element name="MD_TopologyLevelCode" type="gco:CodeListValue_Type" substitutionGroup="gco:CharacterString" nillable="false" abstract="false"/>
    <xs:complexType name="MD_TopologyLevelCode_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmd:MD_TopologyLevelCode" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:element name="MD_GeometricObjectTypeCode" type="gco:CodeListValue_Type" substitutionGroup="gco:CharacterString" nillable="false" abstract="false"/>
    <xs:complexType name="MD_GeometricObjectTypeCode_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmd:MD_GeometricObjectTypeCode" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:element name="MD_CellGeometryCode" type="gco:CodeListValue_Type" substitutionGroup="gco:CharacterString" nillable="false" abstract="false"/>
    <xs:complexType name="MD_CellGeometryCode_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmd:MD_CellGeometryCode" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
    <xs:element name="MD_DimensionNameTypeCode" type="gco:CodeListValue_Type" substitutionGroup="gco:CharacterString" nillable="false" abstract="false"/>
    <xs:complexType name="MD_DimensionNameTypeCode_PropertyType" mixed="false" abstract="false">
        <xs:sequence minOccurs="1" maxOccurs="1">
            <xs:element ref="gmd:MD_DimensionNameTypeCode" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xs:sequence>
        <xs:attribute ref="gco:nilReason" use="optional"/>
    </xs:complexType>
</xs:schema>