XML templates

This page lists the XML Reports I have written for Recorder 612

XML template

<-- http://server/XML template.xml -->
<?xml version='1.0'?>
<ROOTELEMENTNAME -xmlns:sql="urn:schemas-microsoft-com:xml-sql'>
  <sql:header>
     <-- parameters -->
  </sql:header>
  <sql:query>
     <-- SQL -->
  </sql:query>
</ROOTELEMENTNAME>

XML view

Recorder 6 XML template

<?xml version='1.0' ?>
<!-- Example of XML Report written for Recorder 6.13 -->
<CustomReport  title="TITLE"  
               menupath="FOLDER\FOLDER2"  
               description="Example report ">
<!-- External CSV file converted to temporaryTable -->
<CSVTables>
  <CSVTable name="#TemporaryTableName" />
  <CSVFile description="RequestMessage" />
  <CSVColumn name = "Fieldname1" datatype="VarChar" size="100" />
  <CSVColumn name = "FieldName2" datatype=VarChar" size="30"   />
</CSVTable>

<!-- External filterfile converted to temporaryTable -->
<externalfilterfiles>
    <externalfilterfile inputfile="mylastimport.ref"  tablename="#lTemporaryTableName" />
</externalfilterfiles>

<SQL>

declare @VariableName DATATYPE
set @VariableName ='VALUE'

SELECT KeyColumnName, fieldname1, fieldname2 FROM table1 

<!-- Conditions -->
    <Where keytype="Default">
           WHERE 
          <Condition field="table1.fieldname1" 
                     operator="{equal | not equal | like | less than | greater than |less than equal | greater than equal}"                      type="{Text | Number | Date | VagueDate | TrueFalse | Location | Name | Individual | Organisation | Taxon | BoundingBox | GridSquareRange | SpatialRef | LocationsinPolygon | SamplesinPolygon | OptionSet " 
                     SubstitituteFor = "{n}"
                     includepartialoverlap = "{yes | no}"
                     name="ConditionName" 
                     entrycount="{-1 | 1 | n}"
                     userucksack = "{yes | no | optional}"
                     useoneofgroup = "GROUP NAME"
                     datatype />
   </Where>
<!-- Quick Reports -->
   <Where keytype="Location">
      WHERE Location_Key = ' %s'       
   </Where>
<!-- Sort -->
   <Orderby name="by fieldname1 " SQL="Order By FieldName1" /> 
</SQL>
<!-- Columns -->
<Columns>  
    <Column name="fieldname1" width="100" position="2" caption="FieldName2" /> 
    <Column name="fieldname2" width="60" position="1" caption="FieldName1" /> 
    <Column name="KeyColumnName" visible="False" tablename="{Survey | Event | Sample | Taxon_Occurrence | Biotope_Occurrence | Location | Name | Location | Feature | Document | Taxon |  | Biotope | Admin}"
</Columns>
</CustomReport>

Code Examples

NBN_UserAddedTaxonVersionKeys

This XML report extracts information on non system supplied taxonversionkeys. Note there are currently a number of system supplied taxonversionkeys that are flagged as non system supplied in Recorder 6

<?xml version='1.0' ?>

 <!-- User added taxonversionkeys
     XML Report by Graham French, NBN Technical Liaison Officer
      Version 1 19/02/2009
-->
<CustomReport title="UserAddedTaxonVersionKeys" menupath="JNCC\Housekeeping Reports"  
description="This report extracts information on taxonversionkeys entered by user and not supplied by Recorder 6" >
<SQL>
    SELECT TV.taxon_version_key AS TaxonVersionKey, T.item_name AS TaxonName FROM TAXON_VERSION TV
     INNER JOIN TAXON T ON TV.taxon_key = T.taxon_key
       WHERE TV.system_supplied_data = 0
    <Where keytype="Default">
     </Where>
</SQL>
<Columns>  
    <Column name="TaxonVersionKey" width="150" position="1" caption="TaxonVersionKey" />
    <Column name="TaxonName" width="200" position="2" caption="TaxonName" />  
</Columns>
</CustomReport>

NBN_TaxonDetails

This XML Report shows the details for each recorded taxon, giving actual recorded name, preferred name, species list and number of records

<?xml version='1.0' ?>

 <!-- Taxon details
     XML Report by Graham French, NBN Technical Liaison Officer
      Version 1.1.2 27/08/2009
-->
<CustomReport title="Details for recorded taxa" menupath="NBN"  
description="This report gives details of which taxa have been used for all the records currently in Recorder 6" >
<SQL>
    SELECT t.item_name as TaxonName, tl.item_name AS ListName, tv.taxon_version_key as taxonversionkey, count(toc.taxon_occurrence_key) AS RecordNumber FROM taxon_occurrence toc
    INNER JOIN taxon_determination td ON toc.taxon_occurrence_key = td.taxon_occurrence_key
    INNER JOIN taxon_list_item tli ON td.taxon_list_item_key = tli.taxon_list_item_key
    INNER JOIN taxon_list_version tlv ON tli.taxon_list_version_key = tlv.taxon_list_version_key
    INNER JOIN taxon_list tl ON tlv.taxon_list_key = tl.taxon_list_key
    INNER JOIN taxon_version tv ON tli.taxon_version_key = tv.taxon_version_key
    INNER JOIN taxon t ON tv.taxon_key = t.taxon_key
    WHERE td.preferred = 1
    GROUP BY tl.item_name, t.item_name, tv.taxon_version_key
    ORDER BY TaxonName  
    <Where keytype="Default" />
</SQL>
<Columns>  
    <Column name="TaxonName" width="200" position="1" caption="Taxon Name" />
    <Column name="ListName" width="400" position="2" caption="List Name" />
    <Column name="TaxonVersionKey" width="150" position="3" caption="TaxonVersionKey" />
    <Column name="RecordNumber" width="150" position="4" caption="Number of Records" />
</Columns>
</CustomReport>

Page tags: recorder xml
page_revision: 5, last_edited: 1255420523|%e %b %Y, %H:%M %Z (%O ago)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License