Skip to content

Instantly share code, notes, and snippets.

@kgjenkins
Last active May 25, 2021 23:25
Show Gist options
  • Save kgjenkins/fa8b46d619f1dd1d90befaadd1e793c3 to your computer and use it in GitHub Desktop.
Save kgjenkins/fa8b46d619f1dd1d90befaadd1e793c3 to your computer and use it in GitHub Desktop.
fgdc2html_simple.xsl

Here is simple XSL stylesheet for displaying FGDC metadata as HTML

Rather than relying on custom code for each element of the FGDC CSDGM metadata structure, this stylesheet simply preserves the nesting structure of the XML elements, labeling each with the human-readable label found in the "fgdc_labels.xml" file, which must be in the same directory as this stylesheet.

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="yes"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
omit-xml-declaration="yes"/>
<!--
A simple XSL stylesheet for displaying FGDC metadata as HTML
Rather than relying on custom code for each element of the FGDC CSDGM metadata
structure, this stylesheet simply preserves the nesting structure of the XML
elements, labeling each with the human-readable label found in the
"fgdc_labels.xml" file, which must be in the same directory as this stylesheet.
This stylesheet will also create links for URLs and e-mail addresses. And if
there is a browse graphic (thumbnail), it will display it as an image.
REVERSE CHRONOLOGY
==================
Revised 2021-05-25 KGJ
Label unknown elements with ~elementname
Revised 2019-06-07 KGJ
Preserve linebreaks encoded as &#x0d;
Revised 2019-05-17 KGJ
Fixed URL linking
Revised 2008-05-27 KGJ
Wrap <pre> around text blocks containing double linebreaks
Edited CSS
Revised 2006-05-10 KGJ
Fixed bug in <xsl:template name="text"> by adding condition in <xsl:variable name="url">
Revised 2006-01-30 KGJ
Minor edits, mainly to CSS
Revised 2005-10-14 KGJ
Changed labels to italics only
Cleaned-up TOC links
Revised 2005-09-22 KGJ
Improved e-mail and URL linking.
Now checks for hyperlinks <http:...> within text fields.
Created 2005-02-07 by:
Keith Jenkins
Mann Library
Cornell University
Ithaca, NY 14853
kgj2@cornell.edu
-->
<xsl:template match="//metadata">
<html lang="en">
<head>
<style type="text/css">
div { margin:0 ; padding:0 0 0 2em ; text-indent:-2em }
img.browse { float:right ; margin:1em ; padding:0 ; border:1px solid #888 ; box-shadow:2px 2px 4px #888 }
img.browse:hover { box-shadow:2px 2px 12px #888 }
pre { font-family:inherit ; margin:0 ; text-indent:0 }
</style>
</head>
<body>
<h1><xsl:value-of select="idinfo/citation/citeinfo/title"/></h1>
<ul>
<xsl:for-each select="child::*">
<li><a>
<xsl:attribute name="href">
<xsl:text>#</xsl:text>
<xsl:value-of select="name()" />
</xsl:attribute>
<xsl:call-template name="label">
<xsl:with-param name="element" select="name()" />
</xsl:call-template>
</a></li>
</xsl:for-each>
</ul>
<xsl:apply-templates />
</body>
</html>
</xsl:template>
<xsl:template match="metadata//*">
<xsl:choose>
<xsl:when test="parent::metadata">
<a>
<xsl:attribute name="name">
<xsl:value-of select="name()" />
</xsl:attribute>
</a>
<hr />
<xsl:if test="name()='idinfo'">
<a>
<xsl:attribute name="href">
<xsl:value-of select="citation/citeinfo/onlink" />
</xsl:attribute>
<!-- Display the browse graphic as an image -->
<img class="browse">
<xsl:attribute name="src">
<xsl:value-of select=".//browsen" />
</xsl:attribute>
</img>
</a>
</xsl:if>
<h2>
<xsl:call-template name="label">
<xsl:with-param name="element" select="name()" />
</xsl:call-template>
</h2>
<div>
<xsl:apply-templates />
</div>
</xsl:when>
<xsl:otherwise>
<div>
<em>
<xsl:call-template name="label">
<xsl:with-param name="element" select="name()" />
</xsl:call-template>
<xsl:text>: </xsl:text>
</em>
<xsl:apply-templates />
</div>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="cntemail/text()">
<!-- LINK E-MAIL ADDRESSES
(EVEN IF THEY INCORRECTLY ALREADY HAVE 'mailto:') -->
<xsl:variable name="email">
<xsl:choose>
<xsl:when test="starts-with(., 'mailto:')">
<xsl:value-of select="substring-after(., 'mailto:')" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="." />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<a>
<xsl:attribute name="href">
<xsl:value-of select="concat('mailto:', $email)" />
</xsl:attribute>
<xsl:value-of select="$email" />
</a>
</xsl:template>
<xsl:template name="label">
<!-- OUTPUT THE HUMAN-READABLE LABEL FOR AN XML ELEMENT -->
<xsl:param name="element" />
<xsl:variable name="label">
<!-- Look up the FGDC label for this element -->
<xsl:value-of select="document('fgdc_labels.xml')//label[@element=$element]" />
</xsl:variable>
<xsl:choose>
<xsl:when test="string-length($label)>0">
<xsl:value-of select="$label" />
</xsl:when>
<!-- If element is unknown, display "~element" as the label -->
<xsl:otherwise>
~<xsl:value-of select="$element" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match="browsen/text() | onlink/text() | networkr/text()">
<!-- LINK ONLINE LINKS
(EVEN IF THEY INCORRECTLY HAVE &lt; and &gt; AROUND THE URL -->
<xsl:variable name="url">
<xsl:choose>
<xsl:when test="starts-with(., '&lt;')">
<xsl:value-of select="substring-before(substring-after(., '&lt;'), '&gt;')" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="." />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<a>
<xsl:attribute name="href"><xsl:value-of select="$url" /></xsl:attribute>
<xsl:value-of select="$url" />
</a>
</xsl:template>
<xsl:template name="text" match="text()">
<!-- CHECK TEXT FIELDS FOR DOUBLE LINEBREAKS AND URLS
-->
<xsl:param name="str" select="." />
<xsl:param name="pre">0</xsl:param>
<xsl:variable name="linkstart">http</xsl:variable>
<xsl:variable name="url">
<xsl:choose>
<!-- first check for URL followed by &gt; -->
<xsl:when test="substring-before(substring-after($str, $linkstart), '&gt;')">
<xsl:value-of select="concat('http', substring-before(substring-after($str, $linkstart), '&gt;'))" />
</xsl:when>
<!-- then check for URL followed by space -->
<xsl:when test="substring-before(substring-after(normalize-space($str), $linkstart), ' ')">
<xsl:value-of select="concat('http', substring-before(substring-after(normalize-space($str), $linkstart), ' '))" />
</xsl:when>
<!-- then check for URL that goes to end of element -->
<xsl:when test="substring-after(normalize-space($str), $linkstart)">
<xsl:value-of select="concat('http', substring-after(normalize-space($str), $linkstart))" />
</xsl:when>
</xsl:choose>
</xsl:variable>
<xsl:variable name="before">
<xsl:value-of select="substring-before($str, $url)" />
</xsl:variable>
<xsl:variable name="after">
<xsl:value-of select="substring-after($str, $url)" />
</xsl:variable>
<xsl:choose>
<!-- Replace &#x0d; with <br> -->
<xsl:when test="contains($str, '&#x0d;')">
<xsl:call-template name="text">
<xsl:with-param name="str" select="substring-before($str, '&#x0d;')" />
</xsl:call-template>
<br />
<xsl:call-template name="text">
<xsl:with-param name="str" select="substring-after($str, '&#x0d;')" />
</xsl:call-template>
</xsl:when>
<!-- If we haven't already done so, look for double linebreaks -->
<xsl:when test="$pre=0 and contains($str, '&#x0a;&#x0a;')">
<pre>
<xsl:call-template name="text">
<xsl:with-param name="str">
<xsl:choose>
<xsl:when test="substring($str,1,1)='&#x0a;'">
<xsl:value-of select="substring($str,2)" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$str" />
</xsl:otherwise>
</xsl:choose>
</xsl:with-param>
<xsl:with-param name="pre">1</xsl:with-param>
</xsl:call-template>
<xsl:text>&#x0a;</xsl:text>
</pre>
</xsl:when>
<!-- Handle embedded links -->
<xsl:when test="string-length($before)>0">
<xsl:call-template name="text">
<xsl:with-param name="str" select="$before" />
<xsl:with-param name="pre">1</xsl:with-param>
</xsl:call-template>
<a>
<xsl:attribute name="href">
<xsl:value-of select="$url" />
</xsl:attribute>
<xsl:value-of select="$url" />
</a>
<xsl:if test="$after">
<xsl:call-template name="text">
<xsl:with-param name="str" select="$after" />
<xsl:with-param name="pre">1</xsl:with-param>
</xsl:call-template>
</xsl:if>
</xsl:when>
<!-- Handle regular text -->
<xsl:otherwise>
<xsl:value-of select="$str" />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
<?xml version="1.0"?>
<elementLabels>
<label element="absres">Abscissa_Resolution</label>
<label element="abstract">Abstract</label>
<label element="accconst">Access_Constraints</label>
<label element="accinstr">Access_Instructions</label>
<label element="address">Address</label>
<label element="addrtype">Address_Type</label>
<label element="albers">Albers_Conical_Equal_Area</label>
<label element="altdatum">Altitude_Datum_Name</label>
<label element="altenc">Altitude_Encoding_Method</label>
<label element="altres">Altitude_Resolution</label>
<label element="altsys">Altitude_System_Definition</label>
<label element="altunits">Altitude_Distance_Units</label>
<label element="arcsys">ARC_Coordinate_System</label>
<label element="arczone">ARC_System_Zone_Identifier</label>
<label element="asciistr">ASCII_File_Structure</label>
<label element="attr">Attribute</label>
<label element="attracc">Attribute_Accuracy</label>
<label element="attracce">Attribute_Accuracy_Explanation</label>
<label element="attraccr">Attribute_Accuracy_Report</label>
<label element="attraccv">Attribute_Accuracy_Value</label>
<label element="attrdef">Attribute_Definition</label>
<label element="attrdefs">Attribute_Definition_Source</label>
<label element="attrdomv">Attribute_Domain_Values</label>
<label element="attrlabl">Attribute_Label</label>
<label element="attrmfrq">Attribute_Measurement_Frequency</label>
<label element="attrmres">Attribute_Measurement_Resolution</label>
<label element="attrunit">Attribute_Units_of_Measure</label>
<label element="attrva">Attribute_Value_Accuracy</label>
<label element="attrvae">Attribute_Value_Accuracy_Explanation</label>
<label element="attrvai">Attribute_Value_Accuracy_Information</label>
<label element="authent">Authentication</label>
<label element="availabl">Available_Time_Period</label>
<label element="azimangl">Azimuthal_Angle</label>
<label element="azimequi">Azimuthal_Equidistant</label>
<label element="azimptl">Azimuth_Measure_Point_Longitude</label>
<label element="barpres">Barometric_Pressure</label>
<label element="bearrefd">Bearing_Reference_Direction</label>
<label element="bearrefm">Bearing_Reference_Meridian</label>
<label element="bearres">Bearing_Resolution</label>
<label element="bearunit">Bearing_Units</label>
<label element="begdate">Beginning_Date</label>
<label element="begdatea">Beginning_Date_of_Attribute_Values</label>
<label element="beggeol">Beginning_Geologic_Age</label>
<label element="begtime">Beginning_Time</label>
<label element="bounding">Bounding_Coordinates</label>
<label element="browse">Browse_Graphic</label>
<label element="browsed">Browse_Graphic_File_Description</label>
<label element="browsen">Browse_Graphic_File_Name</label>
<label element="browset">Browse_Graphic_File_Type</label>
<label element="caldate">Calendar_Date</label>
<label element="casesens">Case_Sensitive</label>
<label element="citation">Citation</label>
<label element="citeinfo">Citation_Information</label>
<label element="city">City</label>
<label element="classcit">Classification_System_Citation</label>
<label element="classmod">Classification_System_Modifications</label>
<label element="classsys">Classification_System/Authority</label>
<label element="cloud">Cloud_Cover</label>
<label element="cntaddr">Contact_Address</label>
<label element="cntemail">Contact_Electronic_Mail_Address</label>
<label element="cntfax">Contact_Facsimile_Telephone</label>
<label element="cntinfo">Contact_Information</label>
<label element="cntinst">Contact_Instructions</label>
<label element="cntorg">Contact_Organization</label>
<label element="cntorgp">Contact_Organization_Primary</label>
<label element="cntper">Contact_Person</label>
<label element="cntperp">Contact_Person_Primary</label>
<label element="cntpos">Contact_Position</label>
<label element="cnttdd">Contact_TDD/TTY_Telephone</label>
<label element="cntvoice">Contact_Voice_Telephone</label>
<label element="codesetd">Codeset_Domain</label>
<label element="codesetn">Codeset_Name</label>
<label element="codesets">Codeset_Source</label>
<label element="colcount">Column_Count</label>
<label element="common">Applicable_Common_Name</label>
<label element="compat">Compatibility_Information</label>
<label element="complete">Completeness_Report</label>
<label element="compress">Compression_Support</label>
<label element="computer">Computer_Contact_Information</label>
<label element="coordrep">Coordinate_Representation</label>
<label element="country">Country</label>
<label element="crossref">Cross_Reference</label>
<label element="current">Currentness_Reference</label>
<label element="custom">Custom_Order_Process</label>
<label element="dafieldnm">Data_Field_Name</label>
<label element="datacred">Data_Set_Credit</label>
<label element="datafiel">Data_Field</label>
<label element="dataqual">Data_Quality_Information</label>
<label element="denflat">Denominator_of_Flattening_Ratio</label>
<label element="depthdn">Depth_Datum_Name</label>
<label element="depthdu">Depth_Distance_Units</label>
<label element="depthem">Depth_Encoding_Method</label>
<label element="depthres">Depth_Resolution</label>
<label element="depthsys">Depth_System_Definition</label>
<label element="descgeog">Description_of_Geographic_extent</label>
<label element="deschead">Description_of_Header_Content</label>
<label element="descript">Description</label>
<label element="detailed">Detailed_Description</label>
<label element="dfwidth">Data_Field_Width</label>
<label element="dfwidthd">Data_Field_Width_Delimiter</label>
<label element="dialfile">Dialup_File_Name</label>
<label element="dialinst">Dialup_Instructions</label>
<label element="dialtel">Dialup_Telephone</label>
<label element="digform">Digital_Form</label>
<label element="digtinfo">Digital_Transfer_Information</label>
<label element="digtopt">Digital_Transfer_Option</label>
<label element="direct">Direct_Spatial_Reference_Method</label>
<label element="distbrep">Distance_and_Bearing_Representation</label>
<label element="distinfo">Distribution_Information</label>
<label element="distliab">Distribution_Liability</label>
<label element="distres">Distance_Resolution</label>
<label element="distrib">Distributor</label>
<label element="dsgpoly">Data_Set_G-Polygon</label>
<label element="dsgpolyo">Data_Set_G-Polygon_Outer_G-Ring</label>
<label element="dsgpolyx">Data_Set_G-Polygon_Exclusion_G-Ring</label>
<label element="eadetcit">Entity_and_Attribute_Detail_Citation</label>
<label element="eainfo">Entity_and_Attribute_Information</label>
<label element="eaover">Entity_and_Attribute_Overview</label>
<label element="eastbc">East_Bounding_Coordinate</label>
<label element="edition">Edition</label>
<label element="edom">Enumerated_Domain</label>
<label element="edomv">Enumerated_Domain_Value</label>
<label element="edomvd">Enumerated_Domain_Value_Definition</label>
<label element="edomvds">Enumerated_Domain_Value_Definition_Source</label>
<label element="elevmax">Elevation_Maximum</label>
<label element="elevmin">Elevation_Minimum</label>
<label element="ellips">Ellipsoid_Name</label>
<label element="enddate">Ending_Date</label>
<label element="enddatea">Ending_Date_of_Attribute_Values</label>
<label element="endgeol">Ending_Geologic_Age</label>
<label element="endtime">Ending_Time</label>
<label element="enttyp">Entity_Type</label>
<label element="enttypd">Entity_Type_Definition</label>
<label element="enttypds">Entity_Type_Definition_Source</label>
<label element="enttypl">Entity_Type_Label</label>
<label element="equicon">Equidistant_Conic</label>
<label element="equirect">Equirectangular</label>
<label element="event">Environmental_Event</label>
<label element="feast">False_Easting</label>
<label element="fees">Fees</label>
<label element="filedec">File_Decompression_Technique</label>
<label element="fnorth">False_Northing</label>
<label element="formcont">Format_Information_Content</label>
<label element="formname">Format_Name</label>
<label element="formspec">Format_Specification</label>
<label element="formverd">Format_Version_Date</label>
<label element="formvern">Format_Version_Number</label>
<label element="geodetic">Geodetic_Model</label>
<label element="geoform">Geospatial_Data_Presentation_Form</label>
<label element="geograph">Geographic</label>
<label element="geogunit">Geographic_Coordinate_Units</label>
<label element="geolage">Geologic_Age</label>
<label element="geolcit">Geologic_Citation</label>
<label element="geolest">Geologic_Age_Estimate</label>
<label element="geolexpl">Geologic_Age_Explanation</label>
<label element="geolscal">Geologic_Time_Scale</label>
<label element="geolun">Geologic_Age_Uncertainty</label>
<label element="gnomonic">Gnomonic</label>
<label element="gridsys">Grid_Coordinate_System</label>
<label element="gridsysn">Grid_Coordinate_System_Name</label>
<label element="gring">G-Ring</label>
<label element="gringlat">G-Ring_Latitude</label>
<label element="gringlon">G-Ring_Longitude</label>
<label element="grngpoin">G-Ring_Point</label>
<label element="gvnsp">General_Vertical_Near-sided_Perspective</label>
<label element="heightpt">Height_of_Perspective_Point_Above_Surface</label>
<label element="highbps">Highest_BPS</label>
<label element="hightime">Time_of_High_Tide</label>
<label element="horizdn">Horizontal_Datum_Name</label>
<label element="horizpa">Horizontal_Positional_Accuracy</label>
<label element="horizpae">Horizontal_Positional_Accuracy_Explanation</label>
<label element="horizpar">Horizontal_Positional_Accuracy_Report</label>
<label element="horizpav">Horizontal_Positional_Accuracy_Value</label>
<label element="horizsys">Horizontal_Coordinate_System_Definition</label>
<label element="hours">Hours_of_Service</label>
<label element="ider">Identifier</label>
<label element="idinfo">Identification_Information</label>
<label element="idref">Identification_Reference</label>
<label element="indspref">Indirect_Spatial_Reference</label>
<label element="issue">Issue_Identification</label>
<label element="keywords">Keywords</label>
<label element="keywtax">Keywords/Taxon</label>
<label element="lamberta">Lambert_Azimuthal_Equal_Area</label>
<label element="lambertc">Lambert_Conformal_Conic</label>
<label element="landsat">Landsat_Number</label>
<label element="latprjc">Latitude_of_Projection_Center</label>
<label element="latprjo">Latitude_of_Projection_Origin</label>
<label element="latres">Latitude_Resolution</label>
<label element="lineage">Lineage</label>
<label element="local">Local</label>
<label element="localdes">Local_Description</label>
<label element="localgeo">Local_Georeference_Information</label>
<label element="localp">Local_Planar</label>
<label element="localpd">Local_Planar_Description</label>
<label element="localpgi">Local_Planar_Georeference_Information</label>
<label element="logic">Logical_Consistency_Report</label>
<label element="longcm">Longitude_of_Central_Meridian</label>
<label element="longpc">Longitude_of_Projection_Center</label>
<label element="longres">Longitude_Resolution</label>
<label element="lowbps">Lowest_BPS</label>
<label element="lowtime">Time_of_Low_Tide</label>
<label element="lworkcit">Larger_Work_Citation</label>
<label element="mapproj">Map_Projection</label>
<label element="mapprojn">Map_Projection_Name</label>
<label element="mapprojp">Map_Projection_Parameters</label>
<label element="marweat">Marine_Weather_Condition</label>
<label element="mdattim">Multiple_Dates/Times</label>
<label element="mercator">Mercator</label>
<label element="metac">Metadata_Access_Constraints</label>
<label element="metadata">Metadata</label>
<label element="metainfo">Metadata_Reference_Information</label>
<label element="metc">Metadata_Contact</label>
<label element="metd">Metadata_Date</label>
<label element="metextns">Metadata_Extensions</label>
<label element="metfrd">Metadata_Future_Review_Date</label>
<label element="methcite">Methodology_Citation</label>
<label element="methdesc">Methodology_Description</label>
<label element="methkey">Methodology_Keyword</label>
<label element="methkt">Methodology_Keyword_Thesaurus</label>
<label element="method">Methodology</label>
<label element="methodid">Methodolgy_Identifier</label>
<label element="methtype">Methodology_Type</label>
<label element="metprof">Profile_Name</label>
<label element="metrd">Metadata_Review_Date</label>
<label element="metsc">Metadata_Security_Classification</label>
<label element="metscs">Metadata_Security_Classification_System</label>
<label element="metshd">Metadata_Security_Handling_Description</label>
<label element="metsi">Metadata_Security_Information</label>
<label element="metstdn">Metadata_Standard_Name</label>
<label element="metstdv">Metadata_Standard_Version</label>
<label element="mettc">Metadata_Time_Convention</label>
<label element="metuc">Metadata_Use_Constraints</label>
<label element="miller">Miller_Cylindrical</label>
<label element="missingv">Missing_Value_Code</label>
<label element="modsak">Modified_Stereographic_for_Alaska</label>
<label element="native">Native_Data_Set_Environment</label>
<label element="networka">Network_Address</label>
<label element="networkr">Network_Resource_Name</label>
<label element="nondig">Non-digital_Form</label>
<label element="northbc">North_Bounding_Coordinate</label>
<label element="numdata">Number_DataBits</label>
<label element="numheadl">Number_Header_Lines</label>
<label element="numstop">Number_StopBits</label>
<label element="obqlazim">Oblique_Line_Azimuth</label>
<label element="obqllat">Oblique_Line_Latitude</label>
<label element="obqllong">Oblique_Line_Longitude</label>
<label element="obqlpt">Oblique_Line_Point</label>
<label element="obqmerc">Oblique_Mercator</label>
<label element="offmedia">Offline_Media</label>
<label element="offoptn">Offline_Option</label>
<label element="oncomp">Online_Computer_and_Operating_System</label>
<label element="onlink">Online_Linkage</label>
<label element="onlinopt">Online_Option</label>
<label element="ordering">Ordering_Instructions</label>
<label element="ordres">Ordinate_Resolution</label>
<label element="orienta">Orientation</label>
<label element="origin">Originator</label>
<label element="orthogr">Orthographic</label>
<label element="othercit">Other_Citation_Details</label>
<label element="othergrd">Other_Grid_System's_Definition</label>
<label element="otherprj">Other_Projection's_Definition</label>
<label element="overview">Overview_Description</label>
<label element="parity">Parity</label>
<label element="pathnum">Path_Number</label>
<label element="place">Place</label>
<label element="placekey">Place_Keyword</label>
<label element="placekt">Place_Keyword_Thesaurus</label>
<label element="planar">Planar</label>
<label element="plance">Planar_Coordinate_Encoding_Method</label>
<label element="planci">Planar_Coordinate_Information</label>
<label element="plandu">Planar_Distance_Units</label>
<label element="polarst">Polar_Stereographic</label>
<label element="polycon">Polyconic</label>
<label element="posacc">Positional_Accuracy</label>
<label element="postal">Postal_Code</label>
<label element="proccont">Process_Contact</label>
<label element="procdate">Process_Date</label>
<label element="procdesc">Process_Description</label>
<label element="procite">Process_Step_Citation</label>
<label element="procstep">Process_Step</label>
<label element="proctime">Process_Time</label>
<label element="progress">Progress</label>
<label element="ptcontac">Point_of_Contact</label>
<label element="ptvctcnt">Point_and_Vector_Object_Count</label>
<label element="ptvctinf">Point_and_Vector_Object_Information</label>
<label element="pubdate">Publication_Date</label>
<label element="pubinfo">Publication_Information</label>
<label element="publish">Publisher</label>
<label element="pubplace">Publication_Place</label>
<label element="pubtime">Publication_Time</label>
<label element="purpose">Purpose</label>
<label element="qattracc">Quantitative_Attribute_Accuracy_Assessment</label>
<label element="qhorizpa">Quantitative_Horizontal_Positional_Accuracy_Assessment</label>
<label element="quotech">Quote_Character</label>
<label element="qvertpa">Quantitative_Vertical_Positional_Accuracy_Assessment</label>
<label element="rastinfo">Raster_Object_Information</label>
<label element="rasttype">Raster_Object_Type</label>
<label element="rdom">Range_Domain</label>
<label element="rdommax">Range_Domain_Maximum</label>
<label element="rdommin">Range_Domain_Minimum</label>
<label element="reccap">Recording_Capacity</label>
<label element="recdel">Record_Delimiter</label>
<label element="recden">Recording_Density</label>
<label element="recdenu">Recording_Density_Units</label>
<label element="recfmt">Recording_Format</label>
<label element="reposit">Repository</label>
<label element="resdesc">Resource_Description</label>
<label element="rngdates">Range_of_Dates/Times</label>
<label element="robinson">Robinson</label>
<label element="rowcount">Row_Count</label>
<label element="sdtsterm">SDTS_Terms_Description</label>
<label element="sdtstype">SDTS_Point_and_Vector_Object_Type</label>
<label element="secclass">Security_Classification</label>
<label element="sechandl">Security_Handling_Description</label>
<label element="secinfo">Security_Information</label>
<label element="secsys">Security_Classification_System</label>
<label element="semiaxis">Semi-major_Axis</label>
<label element="serinfo">Series_Information</label>
<label element="sername">Series_Name</label>
<label element="sfctrlin">Scale_Factor_at_Center_Line</label>
<label element="sfctrmer">Scale_Factor_at_Central_Meridian</label>
<label element="sfequat">Scale_Factor_at_Equator</label>
<label element="sfprjorg">Scale_Factor_at_Projection_Origin</label>
<label element="sinusoid">Sinusoidal</label>
<label element="sngdate">Single_Date/Time</label>
<label element="southbc">South_Bounding_Coordinate</label>
<label element="spaceobq">Space_Oblique_Mercator_(Landsat)</label>
<label element="spcs">State_Plane_Coordinate_System</label>
<label element="spcszone">SPCS_Zone_Identifier</label>
<label element="spdoinfo">Spatial_Data_Organization_Information</label>
<label element="spdom">Spatial_Domain</label>
<label element="specimen">Specimen</label>
<label element="spref">Spatial_Reference_Information</label>
<label element="srccite">Source_Citation</label>
<label element="srccitea">Source_Citation_Abbreviation</label>
<label element="srccontr">Source_Contribution</label>
<label element="srccurr">Source_Currentness_Reference</label>
<label element="srcinfo">Source_Information</label>
<label element="srcprod">Source_Produced_Citation_Abbreviation</label>
<label element="srcscale">Source_Scale_Denominator</label>
<label element="srctime">Source_Time_Period_of_Content</label>
<label element="srcused">Source_Used_Citation_Abbreviation</label>
<label element="state">State_or_Province</label>
<label element="status">Status</label>
<label element="stdorder">Standard_Order_Process</label>
<label element="stdparll">Standard_Parallel</label>
<label element="stereo">Stereographic</label>
<label element="stratkey">Stratum_Keyword</label>
<label element="stratkt">Stratum_Keyword_Thesaurus</label>
<label element="stratum">Stratum</label>
<label element="supplinf">Supplemental_Information</label>
<label element="svlong">Straight-Vertical_Longitude_from_Pole</label>
<label element="taxoncl">Taxonomic_Classification</label>
<label element="taxoncom">Taxonomic_Completeness</label>
<label element="taxongen">General_Taxonomic_Coverage</label>
<label element="taxonkey">Taxonomic_Keyword</label>
<label element="taxonkt">Taxonomic_Keyword_Thesaurus</label>
<label element="taxonomy">Taxonomy</label>
<label element="taxonpro">Taxonomic_Procedures</label>
<label element="taxonrn">Taxon_Rank_Name</label>
<label element="taxonrv">Taxon_Rank_Value</label>
<label element="taxonsys">Taxonomic_System</label>
<label element="techpreq">Technical_Prerequisites</label>
<label element="tempkey">Temporal_Keyword</label>
<label element="tempkt">Temporal_Keyword_Thesaurus</label>
<label element="temporal">Temporal</label>
<label element="theme">Theme</label>
<label element="themekey">Theme_Keyword</label>
<label element="themekt">Theme_Keyword_Thesaurus</label>
<label element="tidedat">Tidal_Datum</label>
<label element="tideref">Tide_Table_Reference</label>
<label element="tidesup">Supplemental_Tidal_Information</label>
<label element="tidinfo">Tidal_Information</label>
<label element="tidrang">Range_of_Tide</label>
<label element="tidtime">Time_of_Tide</label>
<label element="tidtype">Type_of_Tide</label>
<label element="time">Time_of_Day</label>
<label element="timeinfo">Time_Period_Information</label>
<label element="timeperd">Time_Period_of_Content</label>
<label element="title">Title</label>
<label element="tool">Analytical_Tool</label>
<label element="toolacc">Tool_Access_Information</label>
<label element="toolcite">Tool_Citation</label>
<label element="toolcomp">Tool_Computer_and_Operating_System</label>
<label element="toolcont">Tool_Contact</label>
<label element="tooldesc">Analytical_Tool_Description</label>
<label element="toolinst">Tool_Access_Instructions</label>
<label element="toolnet">Tool_Network_Resource_Name</label>
<label element="transize">Transfer_Size</label>
<label element="transmer">Transverse_Mercator</label>
<label element="turnarnd">Turnaround</label>
<label element="typesrc">Type_of_Source_Media</label>
<label element="udom">Unrepresentable_Domain</label>
<label element="update">Maintenance_and_Update_Frequency</label>
<label element="ups">Universal_Polar_Stereographic</label>
<label element="upszone">UPS_Zone_Identifier</label>
<label element="useconst">Use_Constraints</label>
<label element="utm">Universal_Transverse_Mercator</label>
<label element="utmzone">UTM_Zone_Number</label>
<label element="vdgrin">Van_der_Grinten</label>
<label element="vertacc">Vertical_Positional_Accuracy</label>
<label element="vertacce">Vertical_Positional_Accuracy_Explanation</label>
<label element="vertaccr">Vertical_Positional_Accuracy_Report</label>
<label element="vertaccv">Vertical_Positional_Accuracy_Value</label>
<label element="vertdef">Vertical_Coordinate_System_Definition</label>
<label element="vouchers">Vouchers</label>
<label element="vpfinfo">VPF_Point_and_Vector_Object_Information</label>
<label element="vpflevel">VPF_Topology_Level</label>
<label element="vpfterm">VPF_Terms_Description</label>
<label element="vpftype">VPF_Point_and_Vector_Object_Type</label>
<label element="vrtcount">Vertical_Count</label>
<label element="wavhite">Wave_Height</label>
<label element="westbc">West_Bounding_Coordinate</label>
<label element="windir">Wind_Direction</label>
<label element="windsp">Wind_speed</label>
</elementLabels>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment