Creating and Validating XML

We created an example query on the ORNL-DAAC [3]dataset looking for references to the keyword 'Amazon'.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE CatalogService PUBLIC "-//ECHO CatalogService (v6.0)//EN" "http://api.echo.nasa.gov/echo/dtd/CatalogService.dtd">
<CatalogService>
     <QueryRequest>
          <QueryExpression>
               <query>
<![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE query PUBLIC "-//ECHO CatalogService (v6.0)//EN" "http://api.echo.nasa.gov/echo/dtd/IIMSAQLQueryLanguage.dtd">
<query>
     <for value="granules"/>
          <dataCenterId>
               <value>ORNL-DAAC</value>
          </dataCenterId>
     <where>
          <granuleCondition>
               <dataSetId><textPattern>'%AMAZON%'</textPattern></dataSetId>
          </granuleCondition>
     </where>
</query>
]]>
               </query>
               <namespace>none</namespace>
               <QueryLanguage>
                    <IIMSAQL/>
               </QueryLanguage>
          </QueryExpression>
          <ResultType>
               <RESULTS/>
          </ResultType>
          <IteratorSize>2</IteratorSize>
     </QueryRequest>
</CatalogService>
We validated this XML Query against the Remote Method Invocation Test Facility at http://api.echo.nasa.gov/echo/rmi/EchoTestFacility.jsp It returned the following results set payload:
<CatalogService>
	<QueryResponse>
	<BooleanResult>
	<BooleanResultType>
<REQUEST_SUCCEEDED/>
</BooleanResultType>
</BooleanResult>
	<ReturnData>
	<MessageFormat>
<XML/>
</MessageFormat>
	<payload>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE results SYSTEM "http://api.echo.nasa.gov/echo/dtd/ECHOGranuleResults.dtd">
<results>
  <provider name='ORNL-DAAC'>
    <result number='1' itemId='G14944434-ORNL-DAAC'>
      <GranuleURMetaData>
        <ECHOItemId>G14944434-ORNL-DAAC</ECHOItemId>
        <GranuleUR>lba_legal_amazon.8kmlegamazon.dat.gz</GranuleUR>
        <InsertTime>2003-09-15 00:00:00.0</InsertTime>
        <LastUpdate>2003-09-15 00:00:00.0</LastUpdate>
        <ECHOInsertDate>2003-10-09 16:15:43.0</ECHOInsertDate>
        <ECHOLastUpdate>2003-10-09 16:15:53.0</ECHOLastUpdate>
        <Orderable>N</Orderable>
        <CollectionMetaData>
          <ShortName>LBA REGIONAL BOUNDARY FOR THE LEGAL AMAZON OF BRAZIL, 8-KM</ShortName>
          <VersionID>0</VersionID>
          <DataSetId>LBA REGIONAL BOUNDARY FOR THE LEGAL AMAZON OF BRAZIL, 8-KM</DataSetId>
        </CollectionMetaData>
        <DataGranule>
          <SizeMBDataGranule>0.00440692901611328</SizeMBDataGranule>
        </DataGranule>
        <RangeDateTime>
          <RangeEndingTime>12:00:00:000AM</RangeEndingTime>
          <RangeEndingDate>1991-12-31 00:00:00.0</RangeEndingDate>
          <RangeBeginningTime>12:00:00:000AM</RangeBeginningTime>
          <RangeBeginningDate>1991-01-01 00:00:00.0</RangeBeginningDate>
        </RangeDateTime>
        <SpatialDomainContainer>
          <HorizontalSpatialDomainContainer>
<BoundingRectangle><WestBoundingCoordinate>-85</WestBoundingCoordinate><NorthBoundingCoordinate>10</NorthBoundingCoordinate><EastBoundingCoordinate>-30</EastBoundingCoordinate><SouthBoundingCoordinate>-25</SouthBoundingCoordinate></BoundingRectangle>
          </HorizontalSpatialDomainContainer>
        </SpatialDomainContainer>
        <MeasuredParameter>
          <MeasuredParameterContainer>
            <ParameterName>POLITICAL DIVISIONS</ParameterName>
          </MeasuredParameterContainer>
        </MeasuredParameter>
        <Platform>
          <PlatformShortName>TOPOGRAPHIC MAP</PlatformShortName>
          <Instrument>
            <InstrumentShortName>ANALYSIS</InstrumentShortName>
            <Sensor>
              <SensorShortName>ANALYSIS</SensorShortName>
            </Sensor>
          </Instrument>
        </Platform>
        <Campaign>
          <CampaignShortName>LBA</CampaignShortName>
        </Campaign>
        <OnlineAccessURLs>
          <OnlineAccessURL>
            <URL>http://daac.ornl.gov/lba/human_dimensions/legal_amazon_mask/data//8kmlegamazon.dat.gz</URL>
            <MimeType>x-gzip</MimeType>
          </OnlineAccessURL>
        </OnlineAccessURLs>
      </GranuleURMetaData>
    </result>
    <result number='2' itemId='G14950140-ORNL-DAAC'>
      <GranuleURMetaData>
        <ECHOItemId>G14950140-ORNL-DAAC</ECHOItemId>
        <GranuleUR>lba_reg_basin.lba_basin.dat.gz</GranuleUR>
        <InsertTime>2003-09-15 00:00:00.0</InsertTime>
        <LastUpdate>2003-09-15 00:00:00.0</LastUpdate>
        <ECHOInsertDate>2003-10-09 16:28:14.0</ECHOInsertDate>
        <ECHOLastUpdate>2003-10-09 16:28:18.0</ECHOLastUpdate>
        <Orderable>N</Orderable>
        <CollectionMetaData>
          <ShortName>LBA REGIONAL BOUNDARY FOR THE AMAZON AND TOCANTINS RIVER BASINS, 5-MIN</ShortName>
          <VersionID>0</VersionID>
          <DataSetId>LBA REGIONAL BOUNDARY FOR THE AMAZON AND TOCANTINS RIVER BASINS, 5-MIN</DataSetId>
        </CollectionMetaData>
        <DataGranule>
          <SizeMBDataGranule>0.00351905822753906</SizeMBDataGranule>
        </DataGranule>
        <RangeDateTime>
          <RangeEndingTime>12:00:00:000AM</RangeEndingTime>
          <RangeEndingDate>1972-12-31 00:00:00.0</RangeEndingDate>
          <RangeBeginningTime>12:00:00:000AM</RangeBeginningTime>
          <RangeBeginningDate>1972-01-01 00:00:00.0</RangeBeginningDate>
        </RangeDateTime>
        <SpatialDomainContainer>
          <HorizontalSpatialDomainContainer>
<BoundingRectangle><WestBoundingCoordinate>-85</WestBoundingCoordinate><NorthBoundingCoordinate>10</NorthBoundingCoordinate><EastBoundingCoordinate>-30</EastBoundingCoordinate><SouthBoundingCoordinate>-25</SouthBoundingCoordinate></BoundingRectangle>
          </HorizontalSpatialDomainContainer>
        </SpatialDomainContainer>
        <MeasuredParameter>
          <MeasuredParameterContainer>
            <ParameterName>DRAINAGE</ParameterName>
          </MeasuredParameterContainer>
          <MeasuredParameterContainer>
            <ParameterName>RIVERS/STREAMS</ParameterName>
          </MeasuredParameterContainer>
        </MeasuredParameter>
        <Platform>
          <PlatformShortName>DIGITAL ELEVATION MODEL</PlatformShortName>
          <Instrument>
            <InstrumentShortName>MODEL ANALYSIS</InstrumentShortName>
            <Sensor>
              <SensorShortName>MODEL ANALYSIS</SensorShortName>
            </Sensor>
          </Instrument>
        </Platform>
        <Campaign>
          <CampaignShortName>LBA</CampaignShortName>
        </Campaign>
        <OnlineAccessURLs>
          <OnlineAccessURL>
            <URL>http://daac.ornl.gov/lba/surf_hydro_and_water_chem/basin_border/data//lba_basin.dat.gz</URL>
            <MimeType>x-gzip</MimeType>
          </OnlineAccessURL>
        </OnlineAccessURLs>
      </GranuleURMetaData>
    </result>
  </provider>
</results>
</payload>
</ReturnData>
<RequestID>RGuest3650030591159279561758</RequestID>
<ResultSetID>RGuest3650030591159279561758</ResultSetID>
	<ResultType>
<RESULTS/>
</ResultType>
	<Status>
<SUCCESS_RESULTS_AVAILABLE/>
</Status>
<Hits>3</Hits>
<Cursor>3</Cursor>
</QueryResponse>
</CatalogService>

The DTD for the result (as noted in the XML itself) is located at:
http://api.echo.nasa.gov/echo/dtd/ECHOGranuleResults.dtd
The root element, <results> begins every result XML document. The results are grouped per provider. Hence the element under result is provider with an attribute name that specifies the name of the provider.This is the same as the dataCenterId name in the query XML.



Subsections

vern 2006-10-25