﻿<?xml version="1.0" encoding="UTF-8"?>
<!--W3C Schema generated by XMLSPY v5 rel. 4 U (http://www.xmlspy.com)-->
<!--  

  Schema for HDFEOS Hierarchical Data Format Earth Observing System, Version 1.1

      HDFEOS defines extensions to facilitate the creation of Grid, Point and Swath

      data structures. This schema deinfies the Grid, Point and Swath structures in 
 
      detail.

-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <!--
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:hdf5="http://hdf.ncsa.uiuc.edu/DTDs/HDF5-File" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xsi:schemaLocation="http://hdf.ncsa.uiuc.edu/DTDs/HDF5-File http://hdf.ncsa.uiuc.edu/DTDs/HDF5-File.xsd">
<xs:import namespace="http://hdf.ncsa.uiuc.edu/DTDs/HDF5-File"/>
-->
  <xs:include schemaLocation="collection_metadata_v1_1.xsd"/>
  <xs:include schemaLocation="bmgt_granule_metadata_v1_1.xsd"/>
  <!-- 
  Attribute Element:
   DataType - attribute dataset datatype 
   Count - Number of attributes elements
   Value - A list of values for an attribute.
   -->
  <xs:element name="Attribute">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="DataType"/>
        <xs:element name="Count" type="xs:integer"/>
        <xs:element name="Value" type="xs:string" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="Name" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="level">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="PointField" minOccurs="0" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="FieldName" type="xs:string"/>
              <xs:element ref="DataType"/>
              <xs:choice>
                <xs:element ref="link_to_data"/>
                <xs:element ref="in_line_data"/>
              </xs:choice>
            </xs:sequence>
            <xs:attribute name="Order" type="xs:string"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="Name" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Data">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Attribute" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="level" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GridDataField">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Attribute" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="DataType"/>
        <xs:element ref="DimList"/>
        <xs:element ref="MaxDimList" minOccurs="0"/>
        <xs:element ref="FieldStorage" minOccurs="0"/>
        <xs:element name="TileDimList" minOccurs="0">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:string">
                <xs:attribute name="Code" use="required">
                  <xs:simpleType>
                    <xs:restriction base="xs:NMTOKEN">
                      <xs:enumeration value="HE5_DHFE_NOTILE"/>
                      <xs:enumeration value="HE5_HDFE_TILE"/>
                    </xs:restriction>
                  </xs:simpleType>
                </xs:attribute>
                <xs:attribute name="Rank" type="xs:string" use="required"/>
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element>
        <xs:choice>
          <xs:element ref="link_to_data"/>
          <xs:element ref="in_line_data"/>
        </xs:choice>
        <!-- TileDimList are positive integers defining the sizes of the tile.  The number of  members 
    in the TileDimList must equal to that of the DimList in the same field definition.
     OR that can be represented as a comma seperated list of integers-->
      </xs:sequence>
      <xs:attribute name="Name" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="GridDataFields">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Attribute" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="GridDataField" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DataField">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Attribute" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="DataType"/>
        <xs:element ref="DimList"/>
        <xs:element ref="MaxDimList" minOccurs="0"/>
        <xs:element ref="FieldStorage" minOccurs="0"/>
        <xs:choice>
          <xs:element ref="link_to_data"/>
          <xs:element ref="in_line_data"/>
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="Name" type="xs:string" use="required"/>
      <xs:attribute name="Alias" type="xs:string"/>
      <!-- GeoField ame can be any legal quoted name but must be unique within <Swath> element -->
      <!-- The SWsetalias/SWdropalias/SWaliasinfo API calls let you create aliases - 
    multiple names for fields. These are implemented internally as HDF symbolic links. 
    Currently none of our tools support alias maintenance. 
  -->
    </xs:complexType>
  </xs:element>
  <xs:element name="GeoField">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Attribute" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="DataType"/>
        <xs:element ref="DimList"/>
        <xs:element ref="MaxDimList" minOccurs="0"/>
        <xs:element ref="FieldStorage" minOccurs="0"/>
        <xs:choice>
          <xs:element ref="link_to_data"/>
          <xs:element ref="in_line_data"/>
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="Name" type="xs:string" use="required"/>
      <xs:attribute name="Alias" type="xs:string"/>
      <!-- GeoField ame can be any legal quoted name but must be unique within <Swath> element -->
      <!-- The SWsetalias/SWdropalias/SWaliasinfo API calls let you create aliases - 
    multiple names for fields. These are implemented internally as HDF symbolic links. 
    Currently none of our tools support alias maintenance. 
  -->
    </xs:complexType>
  </xs:element>
  <xs:element name="DataFields">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Attribute" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="DataField" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GeoFields">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Attribute" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="GeoField" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <!-- Scale factor at central meridian (Transverse Mercator) or center of projection (Hotine Oblique Mercator) -->
  <xs:element name="Central_Meridian_Scale_Factor">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="Index" type="xs:integer" fixed="2"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="DataDimension" type="xs:string"/>
  <!--
  DataType will be used directly by referencing the HDF5 XML Schema in the future.
  ByteOrder is not required (HDFEOS API doesn't support retrieving this information
  -->
  <xs:element name="DataType">
    <xs:complexType>
      <xs:choice>
        <xs:element name="IntegerType">
          <xs:complexType>
            <xs:attribute name="ByteOrder">
              <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                  <xs:enumeration value="BE"/>
                  <xs:enumeration value="LE"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="Sign" use="required">
              <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                  <xs:enumeration value="true"/>
                  <xs:enumeration value="false"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="Size" use="required">
              <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                  <xs:enumeration value="1"/>
                  <xs:enumeration value="2"/>
                  <xs:enumeration value="4"/>
                  <xs:enumeration value="8"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
          </xs:complexType>
        </xs:element>
        <xs:element name="FloatType">
          <xs:complexType>
            <xs:attribute name="ByteOrder">
              <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                  <xs:enumeration value="BE"/>
                  <xs:enumeration value="LE"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="Size" use="required">
              <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                  <xs:enumeration value="4"/>
                  <xs:enumeration value="8"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="SignBitLocation" type="xs:string"/>
            <xs:attribute name="ExponentBits" type="xs:string"/>
            <xs:attribute name="ExponentLocation" type="xs:string"/>
            <xs:attribute name="MantissaBits" type="xs:string"/>
            <xs:attribute name="MantissaLocation" type="xs:string"/>
          </xs:complexType>
        </xs:element>
        <xs:element name="StringType">
          <xs:complexType>
            <xs:attribute name="Cset">
              <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                  <xs:enumeration value="H5T_CSET_ASCII"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="StrSize" type="xs:string" use="required"/>
            <xs:attribute name="StrPad">
              <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                  <xs:enumeration value="H5T_STR_NULLTERM"/>
                  <xs:enumeration value="H5T_STR_NULLPAD"/>
                  <xs:enumeration value="H5T_STR_SPACEPAD"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
          </xs:complexType>
        </xs:element>
        <xs:element name="TimeType">
          <xs:complexType/>
        </xs:element>
        <xs:element name="BitfieldType">
          <xs:complexType/>
        </xs:element>
        <xs:element name="OpaqueType">
          <xs:complexType/>
        </xs:element>
        <xs:element name="ReferenceType">
          <xs:complexType>
            <xs:choice>
              <xs:element name="ObjectReferenceType">
                <xs:complexType/>
              </xs:element>
              <xs:element name="RegionReferenceType">
                <xs:complexType/>
              </xs:element>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name="EnumType">
          <xs:complexType>
            <xs:sequence maxOccurs="unbounded">
              <xs:element name="EnumElement" type="xs:string"/>
              <xs:element name="EnumValue" type="xs:string"/>
            </xs:sequence>
            <xs:attribute name="Nelems" type="xs:string" use="required"/>
          </xs:complexType>
        </xs:element>
        <!--
  ByteOrder, SignBitLocation, ExponentBits, ExponentLocation, MantissaBits, MantissaLocation  are no longer
   required (HDFEOS API doesn't support retrieving this information)
  -->
        <!-- Cset and StrPad are no longer  required (HDFEOS API doesn't support retrieving this information) -->
      </xs:choice>
    </xs:complexType>
  </xs:element>
  <!--
  <DimList> is a comma seperated list of <DimName> where <DimName>  must be the name of a dimension
   defined in Swath Dimension Element.
  -->
  <xs:element name="DimList">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="DimName" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <!--
  DimName: can be any legal quoted name but must be unique within <Swath> element 
  It can be any non-negative integer representing the size of the dimension defined. 
   A value zero represents an unlimited dimension as defined in HDF.
   -->
  <xs:element name="DimName">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="Size" type="xs:nonNegativeInteger"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="Dimension">
    <xs:complexType>
      <xs:attribute name="Name" type="xs:string" use="required"/>
      <xs:attribute name="Size" type="xs:integer" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="False_Easting">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="Index" type="xs:integer" fixed="6"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="False_Northing">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="Index" type="xs:integer" fixed="7"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <!-- 
  For Swath Data Field Storage Element 
  <CompressionCode> can be one of HDFE_COMP_NBIT,HDFE_COMP_RLE, HDFE_COMP_SKPHUFF, HDFE_COMP_DEFLATE or HDFE_COMP_NONE (default). 
  <CompParamList>  is a list of integers separated by commas.  Its requirements and ranges depend on 
  <CompressionCode>. See the HDF-EOS document for more details.
  -->
  <xs:element name="FieldStorage">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Merge" minOccurs="0">
          <xs:complexType>
            <xs:attribute name="Code" use="required">
              <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                  <xs:enumeration value="HDFE_NOMERGE"/>
                  <xs:enumeration value="HDFE_AUTOMERGE"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
          </xs:complexType>
        </xs:element>
        <xs:element name="Compression" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="CompParameter" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
            <xs:attribute name="Code" use="required">
              <xs:simpleType>
                <xs:restriction base="xs:NMTOKEN">
                  <xs:enumeration value="HDFE_COMP_NONE"/>
                  <xs:enumeration value="HDFE_COMP_RLE"/>
                  <xs:enumeration value="HDFE_COMP_NBIT"/>
                  <xs:enumeration value="HDFE_COMP_SKPHUFF"/>
                  <xs:enumeration value="HDFE_COMP_DEFLATE"/>
                  <xs:enumeration value="HDRD_COMP_NONE"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:attribute>
          </xs:complexType>
        </xs:element>
        <!-- 
   Field Merge Flags  
  #define HE5_HDFE_NOMERGE   0
  #define HE5_HDFE_AUTOMERGE 1
  Note: Merging is not supported in  current release of the HDFEOS library version 5.1.2.
  -->
        <!--  
  Field Compression Methords are defined in the HE5_HdfEosDef.h
  -->
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GeoDimension" type="xs:string"/>
  <!-- 
  HDF-EOS_Variable is used by the HDFEOS5 Library function HE5_GDblksomoffset
  -->
  <xs:element name="HDF-EOS_Variable">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="Index" type="xs:integer" fixed="10"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="HDFEOS-File">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="HDFEOS">
          <xs:complexType>
            <xs:sequence>
              <xs:element ref="Attribute" minOccurs="0" maxOccurs="unbounded"/>
              <xs:element name="POINTS" minOccurs="0">
                <xs:complexType>
                  <xs:sequence maxOccurs="unbounded">
                    <xs:element name="Point">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element ref="Attribute" minOccurs="0" maxOccurs="unbounded"/>
                          <xs:element ref="Data"/>
                          <xs:element name="LevelLink" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="Parent" type="xs:string"/>
                                <xs:element name="Child" type="xs:string"/>
                                <xs:element name="LinkField" type="xs:string"/>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                        <xs:attribute name="Name" type="xs:string" use="required"/>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="SWATHS" minOccurs="0">
                <xs:complexType>
                  <xs:sequence maxOccurs="unbounded">
                    <xs:element name="Swath">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element ref="Attribute" minOccurs="0" maxOccurs="unbounded"/>
                          <xs:element ref="Dimension" minOccurs="0" maxOccurs="unbounded"/>
                          <xs:element ref="GeoFields"/>
                          <xs:element ref="DataFields"/>
                          <xs:element name="DimensionMapping" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                              <xs:choice minOccurs="0" maxOccurs="unbounded">
                                <xs:element name="RegularDimensionMapping">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element ref="GeoDimension"/>
                                      <xs:element ref="DataDimension"/>
                                      <xs:element name="Offset" type="xs:positiveInteger"/>
                                      <xs:element name="Increment" type="xs:positiveInteger"/>
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="IndexDimensionMapping">
                                  <xs:complexType>
                                    <xs:sequence>
                                      <xs:element ref="GeoDimension"/>
                                      <xs:element ref="DataDimension"/>
                                      <xs:element name="IndexArray" type="xs:string"/>
                                      <!--  IndexArray is a list of index values  i.e. <IndexArray>1 3 5 7</IndexArray> -->
                                    </xs:sequence>
                                  </xs:complexType>
                                </xs:element>
                                <!-- 
          Index Dimension Mapping Definition
          The index dimension mapping consists of a  Scanned Data Dimension, Geolocation 
          Data Dimension and an array of index values
          -->
                              </xs:choice>
                            </xs:complexType>
                          </xs:element>
                          <!-- 
        GeoField Definition 
        Reserved Field Names
        HDF-EOS library version 1 reserves the following field names.  
        If the fields are used in a swath definition, they must be defined with the following datatypes.
        Keyword  Datatype        Comments
        Latitude    FLOAT32 or FLOAT64    floating point latitude
        Longitude  FLOAT32 or FLOAT64    floating point longitude
        CoLatitude  FLOAT32 or FLOAT64    floating point colatitude
        Time    FLOAT32 or FLOAT64  TAI93   time in float
        -->
                          <!--
        Regular Dimension Mapping Definition
        <GeoDimName> must be a Dimension name on which a Geofield is defined.
        <DataDimName> must be a Dimension name on which a Datafield is defined.
        <Increment> can be any non-zero integer value.
        <Offset>  can be any positive integer value.                    
        Implicit Mapping Name  
        HDF-EOS library implicitly defines the name of a regular dimension map as GeoDimension and DataDimension joined by a slash.
        -->
                        </xs:sequence>
                        <xs:attribute name="Name" type="xs:string" use="required"/>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <xs:element name="GRIDS" minOccurs="0">
                <xs:complexType>
                  <xs:sequence maxOccurs="unbounded">
                    <xs:element name="Grid">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element ref="Attribute" minOccurs="0" maxOccurs="unbounded"/>
                          <xs:element name="Parameters">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="YDim" type="xs:positiveInteger"/>
                                <xs:element name="XDim" type="xs:positiveInteger"/>
                                <xs:element name="UpperLeftPoint">
                                  <xs:complexType>
                                    <xs:attribute name="X" type="xs:positiveInteger" use="required"/>
                                    <xs:attribute name="Y" type="xs:positiveInteger" use="required"/>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="LowerRightPoint">
                                  <xs:complexType>
                                    <xs:attribute name="X" type="xs:positiveInteger" use="required"/>
                                    <xs:attribute name="Y" type="xs:positiveInteger" use="required"/>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="Projection">
                                  <xs:complexType>
                                    <xs:choice>
                                      <xs:element name="GEO">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_GEO"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Geographic"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="0"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="UTM">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="UtmParameters">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element name="Longitude_Point">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="0"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element name="Latitude_Point">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="1"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
               <!-- Longitude of any point in the UTM zone or zero.  If zero, a zone  ode must be specified. -->
               <!-- Latitude of any point in the UTM zone or zero. If zero, a zone code must be specified. -->
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                          </xs:sequence>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_UTM"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Universal Transverse Mercator (UTM)"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="1"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="SPCS">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_SPCS"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="State Plane Coordinates"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="2"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="ALBERS">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_ALBERS"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Albers Conical Equal Area"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="3"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="LAMCC">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="lamccParameters">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element ref="Semi_Major_Axis"/>
                                                  <xs:element ref="Semi_Minor_Axis"/>
                                                  <xs:element name="Latitude_First_Standard_Parallel">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="2"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element name="Latitude_Second_Standard_Parallel">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="3"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                          </xs:sequence>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_LAMCC"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Lambert Conformal Conic"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="4"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="MERCAT">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_MERCAT"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Mercator"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="5"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="PS">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="psParameters">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element ref="Semi_Major_Axis"/>
                                                  <xs:element ref="Semi_Minor_Axis"/>
                                                  <xs:element name="Longitude_Below_Pole">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="4"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element name="Latitude_True_Scale">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="5"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element ref="False_Easting"/>
                                                  <xs:element ref="False_Northing"/>
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                          </xs:sequence>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_PS"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Polar Stereographic"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="6"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="POLYC">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="polycParameters">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element ref="Semi_Major_Axis"/>
                                                  <xs:element ref="Semi_Minor_Axis"/>
                                                  <xs:element ref="Longitude_Central_Meridian"/>
                                                  <xs:element ref="Latitude_Origin"/>
                                                  <xs:element ref="False_Easting"/>
                                                  <xs:element ref="False_Northing"/>
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                          </xs:sequence>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_POLYC"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Polyconic"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="7"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="EQUIDC">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" default="HE5_GCTP_EQUIDC"/>
                                          <xs:attribute name="Name" type="xs:string" default="Equidistant Conic"/>
                                          <xs:attribute name="ID" type="xs:string" default="8"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="TM">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="tmParameters">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element ref="Semi_Major_Axis"/>
                                                  <xs:element ref="Semi_Minor_Axis"/>
                                                  <xs:element ref="Central_Meridian_Scale_Factor"/>
                                                  <xs:element ref="Longitude_Central_Meridian"/>
                                                  <xs:element ref="Latitude_Origin"/>
                                                  <xs:element ref="False_Easting"/>
                                                  <xs:element ref="False_Northing"/>
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                          </xs:sequence>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_TM"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Transverse Mercator"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="9"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="STEREO">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_STEREO"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Stereographic"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="10"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="LAMAZ">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="lamazParameters">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element ref="Reference_Sphere_Radius"/>
                                                  <xs:element name="Longitude_Center">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="4"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element name="Latitude_Center">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="5"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element ref="False_Easting"/>
                                                  <xs:element ref="False_Northing"/>
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                          </xs:sequence>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_LAMAZ"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Lambert Azimuthal Equal Area"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="11"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="AZMEQD">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_AZMEQD"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Azimuthal Equidistant"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="12"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="GNOMON">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_GNOMON"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Gnomonic"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="13"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="ORTHO">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_ORTHO"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Orthographic"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="15"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="GVNSP">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_GVNSP"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="General Vertical Near-Side Perspective"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="15"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="SNSOID">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_SNSOID"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Sinusiodal"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="16"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="EQRECT">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_EQRECT"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Equirectangular"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="17"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="MILLER">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_MILLER"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Miller Cylindrical"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="18"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="VGRINT">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_VGRINT"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Van der Grinten"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="19"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="HOM">
                                        <xs:complexType>
                                          <xs:choice>
                                            <xs:element name="hom_aParameters">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element ref="Semi_Major_Axis"/>
                                                  <xs:element ref="Semi_Minor_Axis"/>
                                                  <xs:element ref="Central_Meridian_Scale_Factor"/>
                                                  <xs:element ref="Latitude_Origin"/>
                                                  <xs:element ref="False_Easting"/>
                                                  <xs:element ref="False_Northing"/>
                                                  <xs:element name="Longitude_Center_Line1">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="8"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element name="Latitude_Center_Line1">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="9"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element name="Longitude_Center_Line2">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="10"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element name="Latitude_Center_Line2">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="11"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element ref="format_A"/>
                                                  <!-- Longitude of first point on center line (Hotine Oblique 
                                                       Mercator, format A)  -->
                                                  <!-- Latitude of first point on center line 
                                                       (Hotine Oblique Mercator, format A) -->
                                                  <!-- Longitude of second point on center line 
                                                       (Hotine Oblique Mercator, frmt A)  -->
                                                  <!-- Latitude of second point on center line 
                                                         (Hotine Oblique Mercator, format A) -->
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                            <xs:element name="hom_bParameters">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element ref="Semi_Major_Axis"/>
                                                  <xs:element ref="Semi_Minor_Axis"/>
                                                  <xs:element ref="Central_Meridian_Scale_Factor"/>
                                                  <xs:element name="Azimuth_Angle">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="3"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element name="Azimuth_Longitude">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="4"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element ref="Latitude_Origin"/>
                                                  <xs:element ref="False_Easting"/>
                                                  <xs:element ref="False_Northing"/>
                                                  <xs:element ref="format_B"/>
                                                  <!-- AziAng Azimuth angle east of north of center line (Hotine Oblique Mercator, frmt B) -->
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                          </xs:choice>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_HOM"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="(Hotine) Oblique Mercator"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="20"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="ROBIN">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_ROBIN"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Robinson"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="21"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="SOM">
                                        <xs:complexType>
                                          <xs:choice>
                                            <xs:element name="som_aParameters">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element ref="Semi_Major_Axis"/>
                                                  <xs:element ref="Semi_Minor_Axis"/>
                                                  <xs:element name="Orbit_Inclination">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="4"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element name="Longitude_Ascending_Orbit">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="5"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element ref="False_Easting"/>
                                                  <xs:element ref="False_Northing"/>
                                                  <xs:element name="Period_of_Revolution">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="8"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element name="Satellite_Ratio">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="9"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element name="Landsat_End_Of_Path">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="10"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element ref="HDF-EOS_Variable"/>
                                                  <xs:element ref="format_A"/>
                <!--  Inclination of orbit at ascending node, 
                      counter-clockwise from equator (SOM,format A) -->
                <!-- Longitude of ascending orbit at equator (SOM, format A) -->
                <!-- Period of satellite revolution in minutes (SOM, format A) -->
                <!-- Satellite ratio to specify the start and end 
                     point of x,y values on earth surface(SOM, format A - 
                     for Landsat use 0.5201613) -->
                <!-- End of path flag for Landsat: 0 = start of path,
                     1 = end of path (SOM, frmt A) Satnum Landsat 
                     Satellite Number (SOM, format B) -->
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                            <xs:element name="som_bParameters">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element ref="Semi_Major_Axis"/>
                                                  <xs:element ref="Semi_Minor_Axis"/>
                                                  <xs:element name="Landsat_Sattelite_Number">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="2"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element name="Landsat_Path_Number">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="3"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element ref="False_Easting"/>
                                                  <xs:element ref="False_Northing"/>
                                                  <xs:element ref="HDF-EOS_Variable"/>
                                                  <xs:element ref="format_B"/>
                                                  <!--ILandsat Satellite Number (SOM, format B)-->
                                                  <!-- Landsat Path Number (Use WRS-1 for Landsat 1, 2 
                                                       and 3 and WRS-2 for Landsat 4 and 5.) (SOM, format B) -->
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                          </xs:choice>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_SOM"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Space Oblique Mercator (SOM)"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="22"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="ALASKA">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_ALASKA"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Alaska Conformal"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="23"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="GOOD">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="goodParameters">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element ref="Reference_Sphere_Radius"/>
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                          </xs:sequence>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_GOOD"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Interrupted Goode Homolosine"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="24"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="MOLL">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_MOLL"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Mollweide"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="25"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="IMOLL">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" default="HE5_GCTP_IMOLL"/>
                                          <xs:attribute name="Name" type="xs:string" default="Interrupted Mollweide"/>
                                          <xs:attribute name="ID" type="xs:integer" default="26"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="HAMMER">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_HAMMER"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Hammer"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="27"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="WAGIV">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_WAGIV"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Wagner IV"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="28"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="WAGVII">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_WAGVII"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Wagner VII"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="29"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="OBLEQA">
                                        <xs:complexType>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_OBLEQA"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Oblated Equal Area"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="30"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <xs:element name="ISINUS">
                                        <xs:complexType>
                                          <xs:sequence>
                                            <xs:element name="isinusParameters">
                                              <xs:complexType>
                                                <xs:sequence>
                                                  <xs:element ref="Reference_Sphere_Radius"/>
                                                  <xs:element ref="Longitude_Central_Meridian"/>
                                                  <xs:element ref="False_Easting"/>
                                                  <xs:element ref="False_Northing"/>
                                                  <xs:element name="Latitudinal_Zones">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="8"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
                                                  <xs:element name="Right_Justified_Columns">
                                                    <xs:complexType>
                                                      <xs:simpleContent>
                                                        <xs:extension base="xs:string">
                                                          <xs:attribute name="Index" type="xs:integer" fixed="10"/>
                                                        </xs:extension>
                                                      </xs:simpleContent>
                                                    </xs:complexType>
                                                  </xs:element>
               <!-- Number of equally spaced latitudinal zones
                    (rows); must be two or larger and even -->
               <!-- Right justify columns flag is used to indicate what to do in
                    zones with an odd   number of columns. If it has a value of 0
                    or 1, it   indicates the extra   column is on the right (zero) 
                    or left (one) of the projection Y-axis. If the flag is set to 
                    2 (two),  the number of columns are calculated so there
                    are always an even number of columns in each zone. -->
                                                </xs:sequence>
                                              </xs:complexType>
                                            </xs:element>
                                          </xs:sequence>
                                          <xs:attribute name="Code" type="xs:string" fixed="HE5_GCTP_ISINUS"/>
                                          <xs:attribute name="Name" type="xs:string" fixed="Integerized Sinusoidal Grid (added by Raj Gejjagaraguppe ARC for MODIS)"/>
                                          <xs:attribute name="ID" type="xs:integer" fixed="99"/>
                                        </xs:complexType>
                                      </xs:element>
                                      <!-- 
            The following notes apply to the Space Oblique Mercator A projection:
            * A portion of Landsat rows 1 and 2 may also be seen as parts of rows 246 or 247. To
            place these locations at rows 246 or 247, set the end of path flag (parameter 11) to 1-end
            of path. This flag defaults to zero.
            * When Landsat-1,2,3 orbits are being used, use the following values for the specified
            parameters:
                      - Parameter 4 099005031.2
                      - Parameter 5 128.87 degrees - (360/251 * path number) in packed DMS format
                      - Parameter 9 103.2669323
                      - Parameter 10 0.5201613
            * When Landsat-4,5 orbits are being used, use the following values for the specified
            parameters:
                      - Parameter 4 098012000.0
                      - Parameter 5 129.30 degrees - (360/233 * path number) in packed DMS format
                      - Parameter 9 98.884119
                      - Parameter 10 0.5201613
                                      -->
                                    </xs:choice>
                                  </xs:complexType>
                                </xs:element>
                                <xs:element name="SphereCode" type="xs:integer"/>
                                <xs:element name="ZoneCode" type="xs:integer"/>
                                <xs:element name="PixelRegistration">
                                  <xs:complexType/>
                                </xs:element>
                                <xs:element name="OriginType">
                                  <xs:complexType>
                                    <xs:attribute name="Code" use="required">
                                      <xs:simpleType>
                                        <xs:restriction base="xs:NMTOKEN">
                                          <xs:enumeration value="HE5_HDFE_GD_UL"/>
                                          <xs:enumeration value="HE5_HDFE_GD_UR"/>
                                          <xs:enumeration value="HE5_HDFE_GD_LL"/>
                                          <xs:enumeration value="HE5_HDFE_GD_LR"/>
                                        </xs:restriction>
                                      </xs:simpleType>
                                    </xs:attribute>
                                  </xs:complexType>
                                </xs:element>
                                <!-- 
          GCTP projections   
          For each GCTP projection we define the HDFEOS5 Projection Code, Name, and its ID (0,1,..30, 99)
          For each projection that requires parameters, we define the parameters elements and identify their index
           within the vector of 15 parameters for each projection.
          Notes:
          * All angles (latitudes, longitudes, azimuths, etc.) are entered in packed degrees/ minutes/ seconds
          (DDDMMMSSS.SS) format.
           -->
          <!-- <Spherecode>  is an integer representing the sphere code. -->
          <!-- <Zonecode>  is an integer representing the zone code. -->
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                          <xs:element ref="Dimension" minOccurs="0" maxOccurs="unbounded"/>
                          <xs:element ref="GridDataFields"/>
                          <!-- Neet to define Parameters and DataFields for Grid -->
                          <!--
    The Grid parameters definition contains the definitions as follows.
    
    YDim  Grid Y Dimension size
    XDim  Grid X Dimension size
    UpperLeftPoint  Grid Upper-left-point
    LowerRightPoint  Grid Lower-right-point
    Projection  Grid Projection Type as used in GCTP
    ProjectionParameters  GCTP parameters for the projection
    SphereCode  Optional Sphere Code for the projection.  Default value is 0.
    ZoneCode  Zone Code for UTM projection only.  Default value is 0.
    PixelRegistration  Defines pixel origin.
    
    Possible Registration Codes are:
          HE5_HDFE_CENTER (default)
          HE5_HDFE_CORNER
    
    OriginType  Defines location of first datapoint.  
    Possible Origin Codes are:  
    HE5_HDFE_GD_UL (default)
    HE5_HDFE_GD_UR
    HE5_HDFE_GD_LL
    HE5_HDFE_GD_LR
    
    Users should consult the HDF-EOS library User Guide for the projection types 
    supported and the GCTP documents for the appropriate values for the projection parameters and the two codes.  
    Currently supported projection types are as follows.
    
    ProjCode  Projection Type
    GCTP_GEO (0) Geographic
    GCTP_UTM (1) Universal Transverse Mercator
    GCTP_LAMCC (4) Lambert Conformal Conic
    GCTP_PS (6) Polar Stereographic
    GCTP_POLYC (7) Polyconic
    GCTP_TM (9) Transverse Mercator
    GCTP_LAMAZ (11) Lambert Azimuthal Equal Area
    GCTP_HOM (20) Hotine Oblique Mercator
    GCTP_SOM (22) Space Oblique Mercator
    GCTP_GOOD (24) Interrupted Goode Homolosine
    GCTP_ISINUS (99/31) Integerized Sinusoidal Projection*   
    
    Additional requirements:
    All definitions can be in any order.
    <XDim> and <YDim> can be any positive integer representing the size of the dimension defined.
    <PT>  is a pair of float64 numbers separated by a comma.
    Attribue Projcode  is a projection code supported by HDF-EOS library.
    <ProjectParameters>  is a list of 15 float64 numbers.
    <Spherecode>  is an integer representing the sphere code.
    <Zonecode>  is an integer representing the zone code.
    <PixelRegisteration>  is a pixel registration code supported by HDF-EOS library.
    <OriginCode>  is a legal origin code supported by HDF-EOS library.            
                          -->
                        </xs:sequence>
                        <xs:attribute name="Name" type="xs:string" use="required"/>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
              <!-- SWATHS Elements -->
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="HDFEOS_INFORMATION">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="coremetadata" minOccurs="0">
                <xs:complexType>
                  <xs:choice>
                    <xs:element ref="in_line_data"/>
                    <xs:element ref="link_to_data"/>
                  </xs:choice>
                </xs:complexType>
              </xs:element>
              <xs:element name="collectionmetadata" minOccurs="0">
                <xs:complexType>
                  <xs:choice>
                    <xs:element ref="in_line_data"/>
                    <xs:element ref="link_to_data"/>
                  </xs:choice>
                </xs:complexType>
              </xs:element>
              <xs:element name="archivemetadata" minOccurs="0">
                <xs:complexType>
                  <xs:choice>
                    <xs:element ref="link_to_data"/>
                    <xs:element ref="in_line_data"/>
                  </xs:choice>
                </xs:complexType>
              </xs:element>
              <xs:element name="structmetadata" minOccurs="0">
                <xs:complexType>
                  <xs:choice>
                    <xs:element ref="link_to_data"/>
                    <xs:element ref="in_line_data"/>
                  </xs:choice>
                </xs:complexType>
              </xs:element>
              <xs:element name="productmetadata" minOccurs="0">
                <xs:complexType>
                  <xs:choice>
                    <xs:element ref="link_to_data"/>
                    <xs:element ref="in_line_data"/>
                  </xs:choice>
                </xs:complexType>
              </xs:element>
              <!-- 
    Core metadata represent information which is used to populate searchable database tables within
    the ECS archives. Data users use this information to locate particular HDF-EOS data granules.
    These metadata, which are defined in Release B-1 Earth Sciences Data Model, are also copied in
    the “coremetadata.X” (X= 0,...,n) family of global attributes within an HDF-EOS file. The
    syntax of these metadata is compliant with the Object Description Language (ODL). Tools for
    formatting, accessing and writing core metadata are provided in the SDP Toolkit.
              -->
              <!-- 
    Archive metadata represent information that, by definition, will not be searchable. It contains
    whatever information the file creator considers useful to be in the file, but which will not be
    directly accessible by ECS databases. They are also stored in ODL format.
              -->
              <!-- 
    Structural metadata describe the contents and structure of an HDF-EOS file. That is, these
    metadata describe how geolocation, temporal, projection information are to be associated with
    the data itself. Structural metadata are present in the file only if the HDF-EOS library has been
    invoked to create a Grid, Point, or Swath structure. They are also stored in ODL format. 
              -->
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="Name" type="xs:string" use="required"/>
      <xs:attribute name="Type" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="HDFEOS5"/>
            <xs:enumeration value="HDFEOS2"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="Latitude_Origin">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="Index" type="xs:integer" fixed="5"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="Longitude_Central_Meridian">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="Index" type="xs:integer" fixed="4"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="MaxDimList">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="DimName" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="PixelRegistration">
    <xs:complexType>
      <xs:attribute name="Code" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="HE5_HDFE_CENTER"/>
            <xs:enumeration value="HE5_HDFE_CORNER"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <!-- Radius of reference sphere. If zero, 6370997 meters is used. -->
  <xs:element name="Reference_Sphere_Radius">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="Index" type="xs:integer" fixed="0"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <!-- Semi-major axis of ellipsoid. If zero, Clarke 1866 in meters is assumed. -->
  <xs:element name="Semi_Major_Axis">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="Index" type="xs:integer" fixed="0"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <!-- Eccentricity squared of the ellipsoid if less than zero, if zero, a spherical form is
  assumed, or if greater than zero, the semi-minor axis of ellipsoid. -->
  <xs:element name="Semi_Minor_Axis">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="Index" type="xs:integer" fixed="1"/>
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="LowerRightPoint">
    <xs:complexType>
      <xs:attribute name="X" type="xs:string" use="required"/>
      <xs:attribute name="Y" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="format_A">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Zero">
          <xs:complexType/>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="Index" type="xs:integer" fixed="12"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="format_B">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="One">
          <xs:complexType/>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="Index" type="xs:integer" fixed="12"/>
    </xs:complexType>
  </xs:element>
  <!-- link_to_data element will have the actual path of the binary dump of the data field using URL notation i.e. </link_to_data>file:Grid/sst_mask_1.dat</link_to_data> -->
  <xs:element name="in_line_data" type="in_line_dataType"/>
  <xs:complexType name="in_line_dataType">
    <xs:choice>
      <xs:element ref="CollectionMetaDataFile"/>
      <xs:element name="odlText" type="xs:string"/>
      <xs:element ref="GranuleMetaDataFile"/>
    </xs:choice>
  </xs:complexType>
  <!-- in_line_data element will have the actual data dump  of the data field using  comma or space seperated values i.e.  <in_line_data>1, 2, 3, 17, ..., 42</in_line_data> -->
  <xs:element name="link_to_data" type="xs:string"/>
</xs:schema>

