geoblacklight-schema 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +3 -0
  3. data/LICENSE +14 -0
  4. data/README.md +44 -0
  5. data/bin/fgdc2mods.rb +5 -0
  6. data/bin/mods2geoblacklight.rb +5 -0
  7. data/bin/xsltproc-saxon +14 -0
  8. data/conf/protwords.txt +21 -0
  9. data/conf/schema.xml +158 -0
  10. data/conf/solrconfig.xml +160 -0
  11. data/conf/stopwords_en.txt +34 -0
  12. data/conf/synonyms.txt +29 -0
  13. data/examples/Gemfile +4 -0
  14. data/examples/generate-example-doc.rb +42 -0
  15. data/examples/selected.json +5787 -0
  16. data/examples/upload-to-solr.rb +50 -0
  17. data/geoblacklight-schema.gemspec +23 -0
  18. data/lib/geoblacklight/gazetteer.csv +1011 -0
  19. data/lib/geoblacklight/gazetteer.rb +104 -0
  20. data/lib/xslt/arcgis_to_iso19110.xsl +364 -0
  21. data/lib/xslt/fgdc2mods.xsl +1007 -0
  22. data/lib/xslt/iso2mods.xsl +939 -0
  23. data/lib/xslt/mods2geoblacklight.xsl +268 -0
  24. data/lib/xslt/mods2ogp.xsl +195 -0
  25. data/tools/fgdc2html/Gemfile +2 -0
  26. data/tools/fgdc2html/fgdc2html.css +71 -0
  27. data/tools/fgdc2html/fgdc2html.js +6 -0
  28. data/tools/fgdc2html/fgdc2html.xsl +1034 -0
  29. data/tools/fgdc2html/render.rb +30 -0
  30. data/tools/iso2html/Gemfile +2 -0
  31. data/tools/iso2html/iso-html.xsl +1745 -0
  32. data/tools/iso2html/render.rb +24 -0
  33. data/tools/iso2html/utils/convert-enumerations.xsl +97 -0
  34. data/tools/iso2html/utils/convert-latlong.xsl +73 -0
  35. data/tools/iso2html/utils/decode-uri/base.css +408 -0
  36. data/tools/iso2html/utils/decode-uri/index.html +29 -0
  37. data/tools/iso2html/utils/elements-fgdc.xml +824 -0
  38. data/tools/iso2html/utils/elements-iso.xml +636 -0
  39. data/tools/iso2html/utils/printFormatted.xsl +267 -0
  40. data/tools/iso2html/utils/printTextLines.xsl +192 -0
  41. data/tools/iso2html/utils/replace-newlines.xsl +97 -0
  42. data/tools/iso2html/utils/replace-string.xsl +80 -0
  43. data/tools/iso2html/utils/strip-digits.xsl +60 -0
  44. data/tools/iso2html/utils/url-decode.xsl +87 -0
  45. data/tools/iso2html/utils/wrap-text.xsl +174 -0
  46. data/tools/ogp/0_download.rb +96 -0
  47. data/tools/ogp/1_validate.rb +225 -0
  48. data/tools/ogp/2_transform.rb +438 -0
  49. data/tools/ogp/3_stanford.rb +35 -0
  50. data/tools/ogp/4_select.rb +189 -0
  51. data/tools/ogp/5_ingest.rb +55 -0
  52. data/tools/ogp/Gemfile +2 -0
  53. data/tools/solr/Gemfile +3 -0
  54. data/tools/solr/purge.rb +33 -0
  55. data/tools/solr/upload.rb +35 -0
  56. data/vendor/.keep +0 -0
  57. metadata +131 -0
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Usage: render.rb fgdc.xml [fgdc.xml...]
4
+ #
5
+ require 'nokogiri'
6
+
7
+ class RenderCLI
8
+ @@xslt = Nokogiri::XSLT(File.read(File.join(File.dirname(__FILE__), 'fgdc2html.xsl')))
9
+
10
+ def run(xmlfn)
11
+ doc = Nokogiri::XML(File.read(xmlfn))
12
+ htmlfn = xmlfn.gsub(/\.xml$/, '.html')
13
+ File.open(htmlfn, 'wb') do |f|
14
+ f << '<html><head>'
15
+ f << '<style>' + File.read(File.join(File.dirname(__FILE__), 'fgdc2html.css')) + '</style>'
16
+ f << '<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>'
17
+ f << '<script>' + File.read(File.join(File.dirname(__FILE__), 'fgdc2html.js')) + '</script>'
18
+ f << '</head><body>'
19
+ f << @@xslt.transform(doc)
20
+ f << '</body></html>'
21
+ end
22
+ end
23
+ end
24
+
25
+ # __MAIN__
26
+ cli = RenderCLI.new
27
+ ARGV.each do |fn|
28
+ puts "Processing #{fn}"
29
+ cli.run(fn)
30
+ end
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gem 'nokogiri'
@@ -0,0 +1,1745 @@
1
+ <!--
2
+
3
+ Modified by Darren Hardy, Stanford University Libraries, 2014
4
+
5
+ pacioos-iso-html.xsl
6
+
7
+ Author: John Maurer (jmaurer@hawaii.edu)
8
+ Date: November 1, 2011
9
+
10
+ This Extensible Stylesheet Language for Transformations (XSLT) document takes
11
+ metadata in Extensible Markup Language (XML) for the ISO 19115
12
+ with Remote Sensing Extensions (RSE) and converts it into an HTML page. This
13
+ format is used to show the full metadata record on PacIOOS's website.
14
+
15
+ For more information on XSLT see:
16
+
17
+ http://en.wikipedia.org/wiki/XSLT
18
+ http://www.w3.org/TR/xslt
19
+
20
+ -->
21
+
22
+ <xsl:stylesheet
23
+ version="1.0"
24
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
25
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
26
+ xmlns:gco="http://www.isotc211.org/2005/gco"
27
+ xmlns:gmd="http://www.isotc211.org/2005/gmd"
28
+ xmlns:gmi="http://www.isotc211.org/2005/gmi"
29
+ xmlns:gmx="http://www.isotc211.org/2005/gmx"
30
+ xmlns:gsr="http://www.isotc211.org/2005/gsr"
31
+ xmlns:gss="http://www.isotc211.org/2005/gss"
32
+ xmlns:gts="http://www.isotc211.org/2005/gts"
33
+ xmlns:srv="http://www.isotc211.org/2005/srv"
34
+ xmlns:gml="http://www.opengis.net/gml"
35
+ xmlns:xlink="http://www.w3.org/1999/xlink"
36
+ xmlns:xs="http://www.w3.org/2001/XMLSchema">
37
+
38
+ <!-- Import another XSLT file for replacing newlines with HTML <br/>'s: -->
39
+
40
+ <xsl:import href="utils/replace-newlines.xsl"/>
41
+
42
+ <!-- Import another XSLT file for doing other string substitutions: -->
43
+
44
+ <xsl:import href="utils/replace-string.xsl"/>
45
+
46
+ <!-- Import another XSLT file for limiting the number of decimal places: -->
47
+
48
+ <xsl:import href="utils/strip-digits.xsl"/>
49
+
50
+ <!--
51
+
52
+ This HTML output method conforms to the following DOCTYPE statement:
53
+
54
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
55
+ "http://www.w3.org/TR/html4/loose.dtd">
56
+ -->
57
+
58
+ <xsl:output
59
+ method="html"
60
+ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
61
+ doctype-system="http://www.w3.org/TR/html4/loose.dtd"
62
+ encoding="ISO-8859-1"
63
+ indent="yes"/>
64
+
65
+ <!-- VARIABLES: ***********************************************************-->
66
+
67
+ <!-- The separator separates short names from long names. For example:
68
+ DMSP > Defense Meteorological Satellite Program -->
69
+
70
+ <xsl:variable name="separator">
71
+ <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
72
+ </xsl:variable>
73
+
74
+ <!-- Define a variable for creating a newline: -->
75
+
76
+ <xsl:variable name="newline">
77
+ <xsl:text>
78
+ </xsl:text>
79
+ </xsl:variable>
80
+
81
+ <!-- This variable is used to link to the other metadata views.
82
+ NOTE: TDS FMRC ID's appear like "wrf_hi/WRF_Hawaii_Regional_Atmospheric_Model_best.ncd";
83
+ to simplify the ID's, strip everything after "/":
84
+ -->
85
+
86
+ <xsl:variable name="datasetIdentifier">
87
+ <xsl:variable name="datasetIdentifierOriginal" select="gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:code/gco:CharacterString"/>
88
+ <xsl:choose>
89
+ <xsl:when test="contains( $datasetIdentifierOriginal, '/' )">
90
+ <xsl:value-of select="substring-before( $datasetIdentifierOriginal, '/' )"/>
91
+ </xsl:when>
92
+ <xsl:otherwise>
93
+ <xsl:value-of select="$datasetIdentifierOriginal"/>
94
+ </xsl:otherwise>
95
+ </xsl:choose>
96
+ </xsl:variable>
97
+
98
+ <!-- Define a variable which creates a JavaScript array of the bounding box
99
+ of the Spatial_Domain/Bounding element in the ISO for use in the Google
100
+ Maps API, which is controlled by the loadGoogleMap function inside
101
+ the google_maps.ssi include file. NOTE: This function expects the
102
+ bounding box to be provided in a specific order: north, south, east,
103
+ west: -->
104
+
105
+ <xsl:variable name="bbox">
106
+ <xsl:if test="gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:northBoundLatitude/gco:Decimal">
107
+ <xsl:text> [ </xsl:text>
108
+ <xsl:value-of select="gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:northBoundLatitude/gco:Decimal"/><xsl:text>, </xsl:text>
109
+ <xsl:value-of select="gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:southBoundLatitude/gco:Decimal"/><xsl:text>, </xsl:text>
110
+ <xsl:value-of select="gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:eastBoundLongitude/gco:Decimal"/><xsl:text>, </xsl:text>
111
+ <xsl:value-of select="gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox/gmd:westBoundLongitude/gco:Decimal"/>
112
+ <xsl:text> ] </xsl:text>
113
+ </xsl:if>
114
+ </xsl:variable>
115
+
116
+ <!-- TOP-LEVEL: HTML ******************************************************-->
117
+
118
+ <!-- The top-level template; Define various features for the entire page and then
119
+ call the "gmd:MD_Metadata" template to fill in the remaining HTML: -->
120
+
121
+ <xsl:template match="/">
122
+ <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"><xsl:value-of select="$newline"/>
123
+ <head><xsl:value-of select="$newline"/>
124
+ <title><xsl:value-of select="gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString"/></title><xsl:value-of select="$newline"/>
125
+ <xsl:comment>
126
+ If you want to show polylines on a Google Map (like the rectangle used to
127
+ outline the data set geographic coverage), you need to include the VML
128
+ namespace in the html tag and the following CSS code in an XHTML compliant
129
+ doctype to make everything work properly in IE:
130
+ </xsl:comment><xsl:value-of select="$newline"/>
131
+ <style type="text/css">
132
+
133
+ v\:* {
134
+ behavior:url(#default#VML);
135
+ }
136
+
137
+ .wrapline {
138
+ /* http://perishablepress.com/press/2010/06/01/wrapping-content/ */
139
+ white-space: pre; /* CSS 2.0 */
140
+ white-space: pre-wrap; /* CSS 2.1 */
141
+ white-space: pre-line; /* CSS 3.0 */
142
+ white-space: -pre-wrap; /* Opera 4-6 */
143
+ white-space: -o-pre-wrap; /* Opera 7 */
144
+ white-space: -moz-pre-wrap; /* Mozilla */
145
+ white-space: -hp-pre-wrap; /* HP Printers */
146
+ word-wrap: break-word;
147
+ width: 550px;
148
+ }
149
+
150
+ </style><xsl:value-of select="$newline"/>
151
+ </head><xsl:value-of select="$newline"/>
152
+ <body><xsl:value-of select="$newline"/>
153
+ <table width="99%" border="0" cellspacing="2" cellpadding="0">
154
+ <tr>
155
+ <td valign="top">
156
+ <table width="98%" border="0" align="center" cellpadding="2" cellspacing="8" style="margin-top: -20px;">
157
+ <tr>
158
+ <td valign="top" >
159
+ <!--<p style="color: darkred; background-color: lightyellow; border: 1px dashed lightgray; padding: 2px;"><b>NOTE: ISO metadata output is under construction. Please check back later...</b></p>-->
160
+ <h2 style="margin-right: 185px; text-transform: none;"><xsl:value-of select="gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title/gco:CharacterString"/></h2>
161
+ <ul>
162
+ <li><a href="#Identification_Information">Identification Information</a></li>
163
+ <xsl:if test="string-length( gmd:MD_Metadata/gmd:dataQualityInfo )">
164
+ <li><a href="#Data_Quality_Information">Data Quality Information</a></li>
165
+ </xsl:if>
166
+ <xsl:if test="string-length( gmd:MD_Metadata/gmd:spatialRepresentationInfo )">
167
+ <li><a href="#Spatial_Representation_Information">Spatial Representation Information</a></li>
168
+ </xsl:if>
169
+ <xsl:if test="string-length( gmd:MD_Metadata/gmd:contentInfo )">
170
+ <li><a href="#Content_Information">Content Information</a></li>
171
+ </xsl:if>
172
+ <xsl:if test="string-length( gmd:MD_Metadata/gmd:distributionInfo )">
173
+ <li><a href="#Distribution_Information">Distribution Information</a></li>
174
+ </xsl:if>
175
+ <xsl:if test="string-length( gmd:MD_Metadata/gmd:acquisitionInformation )">
176
+ <li><a href="#Acquisition_Information">Acquisition Information</a></li>
177
+ </xsl:if>
178
+ <li><a href="#Metadata_Reference_Information">Metadata Reference Information</a></li>
179
+ </ul>
180
+ <xsl:apply-templates select="gmd:MD_Metadata"/>
181
+ </td>
182
+ </tr>
183
+ </table>
184
+ </td>
185
+ </tr>
186
+ </table>
187
+ <xsl:comment> END MAIN CONTENT </xsl:comment><xsl:value-of select="$newline"/>
188
+ </body><xsl:value-of select="$newline"/>
189
+ </html>
190
+ </xsl:template>
191
+
192
+ <!-- The second-level template: match all the main elements of the ISO and
193
+ process them separately. The order of these elements is maintained in
194
+ the resulting document: -->
195
+
196
+ <!-- ROOT: ****************************************************************-->
197
+
198
+ <xsl:template match="gmd:MD_Metadata">
199
+ <xsl:apply-templates select="gmd:identificationInfo/gmd:MD_DataIdentification"/>
200
+ <xsl:if test="string-length( gmd:identificationInfo/srv:SV_ServiceIdentification )">
201
+ <h4>Services:</h4>
202
+ </xsl:if>
203
+ <xsl:apply-templates select="gmd:identificationInfo/srv:SV_ServiceIdentification"/>
204
+ <p><a href="javascript:void(0)" onClick="window.scrollTo( 0, 0 ); this.blur(); return false;">Back to Top</a></p>
205
+ <xsl:apply-templates select="gmd:dataQualityInfo/gmd:DQ_DataQuality"/>
206
+ <xsl:apply-templates select="gmd:spatialRepresentationInfo/gmd:MD_GridSpatialRepresentation"/>
207
+ <xsl:apply-templates select="gmd:contentInfo"/>
208
+ <xsl:apply-templates select="gmd:distributionInfo/gmd:MD_Distribution"/>
209
+ <xsl:apply-templates select="gmd:acquisitionInformation/gmd:MI_AcquisitionInformation"/>
210
+ <xsl:call-template name="metadataReferenceInfo"/>
211
+ </xsl:template>
212
+
213
+ <!-- METADATA_REFERENCE_INFORMATION: *****************************************
214
+
215
+ NOTE: I have combined the following sections under this heading:
216
+
217
+ 1. METADATA_ENTITY_SET_INFORMATION (miscellaneous stuff under root doc)
218
+ 2. METADATA_MAINTENANCE_INFORMATION (I stuck this within the above)
219
+ 3. METADATA_EXTENSION_INFORMATION (ditto)
220
+ -->
221
+
222
+ <xsl:template name="metadataReferenceInfo">
223
+ <hr/>
224
+ <h3><a name="Metadata_Reference_Information"></a>Metadata Reference Information:</h3>
225
+ <xsl:call-template name="metadataEntitySetInfo"/>
226
+ <p><a href="javascript:void(0)" onClick="window.scrollTo( 0, 0 ); this.blur(); return false;">Back to Top</a></p>
227
+ </xsl:template>
228
+
229
+ <!-- METADATA_ENTITY_SET_INFORMATION: ************************************-->
230
+
231
+ <xsl:template name="metadataEntitySetInfo">
232
+ <xsl:apply-templates select="gmd:fileIdentifier"/>
233
+ <xsl:apply-templates select="gmd:language"/>
234
+ <xsl:apply-templates select="gmd:characterSet"/>
235
+ <xsl:apply-templates select="gmd:parentIdentifier"/>
236
+ <xsl:apply-templates select="gmd:hierarchyLevel"/>
237
+ <xsl:apply-templates select="gmd:hierarchyLevelName"/>
238
+ <xsl:apply-templates select="gmd:contact"/>
239
+ <xsl:apply-templates select="gmd:dateStamp"/>
240
+ <xsl:apply-templates select="gmd:metadataMaintenance/gmd:MD_MaintenanceInformation"/>
241
+ <xsl:apply-templates select="gmd:metadataExtensionInfo/gmd:MD_MetadataExtensionInformation"/>
242
+ <xsl:apply-templates select="gmd:metadataStandardName"/>
243
+ <xsl:apply-templates select="gmd:metadataStandardVersion"/>
244
+ <xsl:apply-templates select="gmd:dataSetURI"/>
245
+ </xsl:template>
246
+
247
+ <xsl:template match="gmd:fileIdentifier">
248
+ <h4 style="display: inline">File Identifier: </h4>
249
+ <xsl:variable name="fileURL">
250
+ <xsl:value-of select="gco:CharacterString"/>
251
+ </xsl:variable>
252
+ <xsl:value-of select="$fileURL"/>
253
+ <!-- <p style="display: inline"><a href="{$fileURL}"><xsl:value-of select="$fileURL"/></a></p> -->
254
+ <p></p>
255
+ </xsl:template>
256
+
257
+ <xsl:template match="gmd:language">
258
+ <h4 style="display: inline">Language:</h4>
259
+ <p style="display: inline"><xsl:value-of select="."/></p>
260
+ <p></p>
261
+ </xsl:template>
262
+
263
+ <xsl:template match="gmd:parentIdentifier">
264
+ <h4 style="display: inline">Parent Identifier:</h4>
265
+ <xsl:variable name="parentURL">
266
+ <xsl:value-of select="gco:CharacterString"/>
267
+ </xsl:variable>
268
+ <p style="display: inline"><a href="{$parentURL}"><xsl:value-of select="."/></a></p>
269
+ <p></p>
270
+ </xsl:template>
271
+
272
+ <xsl:template match="gmd:characterSet">
273
+ <h4 style="display: inline">Character Set:</h4>
274
+ <p style="display: inline"><xsl:value-of select="."/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_CharacterSetCode" target="_blank">MD_CharacterSetCode</a>)</p>
275
+ <p></p>
276
+ </xsl:template>
277
+
278
+ <xsl:template match="gmd:hierarchyLevel">
279
+ <h4 style="display: inline">Hierarchy Level:</h4>
280
+ <p style="display: inline"><xsl:value-of select="."/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_ScopeCode" target="_blank">MD_ScopeCode</a>)</p>
281
+ <p></p>
282
+ </xsl:template>
283
+
284
+ <xsl:template match="gmd:hierarchyLevelName">
285
+ <h4 style="display: inline">Hierarchy Level Name:</h4>
286
+ <p style="display: inline"><xsl:value-of select="."/></p>
287
+ <p></p>
288
+ </xsl:template>
289
+
290
+ <xsl:template match="gmd:contact">
291
+ <h4>Contact:</h4>
292
+ <xsl:call-template name="CI_ResponsibleParty">
293
+ <xsl:with-param name="element" select="gmd:CI_ResponsibleParty"/>
294
+ <xsl:with-param name="italicize-heading" select="true()"/>
295
+ </xsl:call-template>
296
+ </xsl:template>
297
+
298
+ <xsl:template match="gmd:dateStamp">
299
+ <h4 style="display: inline">Date Stamp:</h4>
300
+ <p style="display: inline">
301
+ <xsl:call-template name="date">
302
+ <xsl:with-param name="element" select="./gco:Date"/>
303
+ </xsl:call-template>
304
+ </p>
305
+ <p></p>
306
+ </xsl:template>
307
+
308
+ <xsl:template match="gmd:metadataStandardName">
309
+ <h4>Metadata Standard Name:</h4>
310
+ <p><xsl:value-of select="."/></p>
311
+ </xsl:template>
312
+
313
+ <xsl:template match="gmd:metadataStandardVersion">
314
+ <h4>Metadata Standard Version:</h4>
315
+ <p><xsl:value-of select="."/></p>
316
+ </xsl:template>
317
+
318
+ <xsl:template match="gmd:dataSetURI">
319
+ <h4>Dataset URI:</h4>
320
+ <p><a href="{.}"><xsl:value-of select="."/></a></p>
321
+ </xsl:template>
322
+
323
+ <!-- METADATA_MAINTENANCE_INFORMATION: ************************************-->
324
+
325
+ <xsl:template match="gmd:metadataMaintenance/gmd:MD_MaintenanceInformation">
326
+ <h4>Metadata Maintenance Information:</h4>
327
+ <xsl:apply-templates select="gmd:maintenanceAndUpdateFrequency"/>
328
+ <xsl:apply-templates select="gmd:maintenanceNote"/>
329
+ <!--
330
+ Duplicates gmd:contact above so ignore here...
331
+ <xsl:apply-templates select="gmd:contact"/>
332
+ -->
333
+ </xsl:template>
334
+
335
+ <xsl:template match="gmd:maintenanceAndUpdateFrequency">
336
+ <p>
337
+ <b><i>Maintenance And Update Frequency: </i></b>
338
+ <xsl:choose>
339
+ <xsl:when test="string-length( . )">
340
+ <xsl:value-of select="."/>
341
+ </xsl:when>
342
+ <xsl:otherwise>
343
+ <xsl:value-of select="@gco:nilReason"/>
344
+ </xsl:otherwise>
345
+ </xsl:choose>
346
+ </p>
347
+ </xsl:template>
348
+
349
+ <xsl:template match="gmd:maintenanceNote">
350
+ <xsl:if test="string-length( . )">
351
+ <p><b><i>Maintenance Note:</i></b></p>
352
+ <p><xsl:value-of select="."/></p>
353
+ </xsl:if>
354
+ </xsl:template>
355
+
356
+ <!-- METADATA_EXTENSION_INFORMATION: **************************************-->
357
+
358
+ <xsl:template match="gmd:metadataExtensionInfo/gmd:MD_MetadataExtensionInformation">
359
+ <h4>Metadata Extension Information:</h4>
360
+ <xsl:for-each select="gmd:extendedElementInformation/gmd:MD_ExtendedElementInformation">
361
+ <p><b><i>Extended Element Information:</i></b></p>
362
+ <font>
363
+ <blockquote>
364
+ <xsl:for-each select="gmd:name">
365
+ <xsl:if test="string-length( . )">
366
+ <b>Name: </b> <xsl:value-of select="."/><br/>
367
+ </xsl:if>
368
+ </xsl:for-each>
369
+ <xsl:for-each select="gmd:shortName">
370
+ <xsl:if test="string-length( . )">
371
+ <b>Short Name: </b> <xsl:value-of select="."/><br/>
372
+ </xsl:if>
373
+ </xsl:for-each>
374
+ <xsl:for-each select="gmd:obligation">
375
+ <xsl:if test="string-length( gmd:MD_ObligationCode )">
376
+ <b>Obligation: </b><xsl:value-of select="gmd:MD_ObligationCode"/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_ObligationCode">MD_ObligationCode</a>)<br/>
377
+ </xsl:if>
378
+ </xsl:for-each>
379
+ <xsl:for-each select="gmd:dataType">
380
+ <xsl:if test="string-length( gmd:MD_DatatypeCode )">
381
+ <b>Data Type: </b><xsl:value-of select="gmd:MD_DatatypeCode"/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_DatatypeCode">MD_DatatypeCode</a>)<br/>
382
+ </xsl:if>
383
+ </xsl:for-each>
384
+ <xsl:for-each select="gmd:maximumOccurrence">
385
+ <xsl:if test="string-length( . )">
386
+ <b>Maximum Occurrence: </b> <xsl:value-of select="."/><br/>
387
+ </xsl:if>
388
+ </xsl:for-each>
389
+ <xsl:for-each select="gmd:parentEntity">
390
+ <xsl:if test="string-length( . )">
391
+ <b>Parent Entity: </b> <xsl:value-of select="."/><br/>
392
+ </xsl:if>
393
+ </xsl:for-each>
394
+ <xsl:for-each select="gmd:rule">
395
+ <xsl:if test="string-length( . )">
396
+ <b>Rule: </b><br/>
397
+ <p><xsl:value-of select="."/></p>
398
+ </xsl:if>
399
+ </xsl:for-each>
400
+ <xsl:for-each select="gmd:definition">
401
+ <xsl:if test="string-length( . )">
402
+ <p><b>Definition:</b></p>
403
+ <p><xsl:value-of select="."/></p>
404
+ </xsl:if>
405
+ </xsl:for-each>
406
+ <xsl:for-each select="gmd:rationale">
407
+ <xsl:if test="string-length( . )">
408
+ <p><b>Rationale:</b></p>
409
+ <p><xsl:value-of select="."/></p>
410
+ </xsl:if>
411
+ </xsl:for-each>
412
+ <xsl:for-each select="gmd:source">
413
+ <xsl:if test="string-length( . )">
414
+ <p><b>Source:</b></p>
415
+ <blockquote>
416
+ <xsl:call-template name="CI_ResponsibleParty">
417
+ <xsl:with-param name="element" select="gmd:CI_ResponsibleParty"/>
418
+ </xsl:call-template>
419
+ </blockquote>
420
+ </xsl:if>
421
+ </xsl:for-each>
422
+ </blockquote>
423
+ </font>
424
+ </xsl:for-each>
425
+ </xsl:template>
426
+
427
+ <!-- IDENTIFICATION_INFORMATION: ******************************************-->
428
+
429
+ <xsl:template match="gmd:identificationInfo/gmd:MD_DataIdentification">
430
+ <hr/>
431
+ <h3><a name="Identification_Information"></a> Identification Information:</h3>
432
+ <xsl:apply-templates select="gmd:citation"/>
433
+ <xsl:apply-templates select="gmd:abstract"/>
434
+ <xsl:apply-templates select="gmd:purpose"/>
435
+ <xsl:apply-templates select="gmd:credit"/>
436
+ <xsl:apply-templates select="gmd:status"/>
437
+ <xsl:apply-templates select="gmd:pointOfContact"/>
438
+ <xsl:apply-templates select="gmd:resourceMaintenance"/>
439
+ <xsl:apply-templates select="gmd:graphicOverview"/>
440
+ <xsl:if test="gmd:descriptiveKeywords">
441
+ <h4>Descriptive Keywords:</h4>
442
+ <xsl:apply-templates select="gmd:descriptiveKeywords"/>
443
+ </xsl:if>
444
+ <xsl:apply-templates select="gmd:taxonomy"/>
445
+ <xsl:apply-templates select="gmd:aggregationInfo"/>
446
+ <xsl:apply-templates select="gmd:resourceConstraints"/>
447
+ <xsl:apply-templates select="gmd:language"/>
448
+ <xsl:apply-templates select="gmd:characterSet"/>
449
+ <xsl:if test="gmd:topicCategory">
450
+ <h4>Topic Categories (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_TopicCategoryCode">MD_TopicCategoryCode</a>):</h4>
451
+ <blockquote>
452
+ <font>
453
+ <xsl:for-each select="gmd:topicCategory">
454
+ <xsl:sort select="."/>
455
+ <b>Topic Category: </b><xsl:value-of select="."/><br/>
456
+ </xsl:for-each>
457
+ </font>
458
+ </blockquote>
459
+ </xsl:if>
460
+ <xsl:apply-templates select="gmd:extent"/>
461
+ <xsl:apply-templates select="gmd:supplementalInformation"/>
462
+ </xsl:template>
463
+
464
+ <xsl:template match="gmd:citation">
465
+ <h4>Citation:</h4>
466
+ <font>
467
+ <xsl:call-template name="CI_Citation">
468
+ <xsl:with-param name="element" select="gmd:CI_Citation"/>
469
+ <xsl:with-param name="italicize-heading" select="true()"/>
470
+ <xsl:with-param name="wrap-text" select="true()"/>
471
+ </xsl:call-template>
472
+ </font>
473
+ </xsl:template>
474
+
475
+ <xsl:template match="gmd:abstract">
476
+ <h4>Abstract:</h4>
477
+ <p>
478
+ <xsl:call-template name="replace-newlines">
479
+ <xsl:with-param name="element" select="gco:CharacterString"/>
480
+ </xsl:call-template>
481
+ </p>
482
+ </xsl:template>
483
+
484
+ <xsl:template match="gmd:purpose">
485
+ <h4>Purpose:</h4>
486
+ <p><xsl:value-of select="."/></p>
487
+ </xsl:template>
488
+
489
+ <xsl:template match="gmd:credit">
490
+ <h4>Credit:</h4>
491
+ <p><xsl:value-of select="."/></p>
492
+ </xsl:template>
493
+
494
+ <xsl:template match="gmd:status">
495
+ <h4 style="display: inline">Status:</h4>
496
+ <p style="display: inline"><xsl:value-of select="."/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_ProgressCode" target="_blank">MD_ProgressCode</a>)</p>
497
+ <p></p>
498
+ </xsl:template>
499
+
500
+ <xsl:template match="gmd:pointOfContact">
501
+ <h4>Point of Contact:</h4>
502
+ <xsl:for-each select="gmd:CI_ResponsibleParty">
503
+ <xsl:call-template name="CI_ResponsibleParty">
504
+ <xsl:with-param name="element" select="."/>
505
+ <xsl:with-param name="italicize-heading" select="true()"/>
506
+ </xsl:call-template>
507
+ </xsl:for-each>
508
+ </xsl:template>
509
+
510
+ <xsl:template match="gmd:resourceMaintenance">
511
+ <h4>Maintenance Information:</h4>
512
+ <xsl:for-each select="gmd:MD_MaintenanceInformation">
513
+ <xsl:for-each select="gmd:maintenanceAndUpdateFrequency">
514
+ <p><b><i>Maintenance and Update Frequency: </i></b> <xsl:value-of select="."/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_MaintenanceFrequencyCode">MD_MaintenanceFrequencyCode</a>)</p>
515
+ </xsl:for-each>
516
+ <xsl:for-each select="gmd:updateScope">
517
+ <p><b><i>Update Scope:</i></b> <xsl:value-of select="."/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_ScopeCode">MD_ScopeCode</a>)</p>
518
+ </xsl:for-each>
519
+ <xsl:for-each select="gmd:contact">
520
+ <p><b><i>Contact:</i></b></p>
521
+ <xsl:call-template name="CI_ResponsibleParty">
522
+ <xsl:with-param name="element" select="gmd:CI_ResponsibleParty"/>
523
+ <xsl:with-param name="italicize-heading" select="false()"/>
524
+ </xsl:call-template>
525
+ </xsl:for-each>
526
+ </xsl:for-each>
527
+ </xsl:template>
528
+
529
+ <xsl:template match="gmd:graphicOverview">
530
+ <h4>Browse Graphic:</h4>
531
+ <xsl:for-each select="gmd:MD_BrowseGraphic">
532
+ <xsl:for-each select="gmd:fileName">
533
+ <p>
534
+ <!--<a href="{.}" target="_blank"><img src="{.}" height="260" border="0"/></a><br/>-->
535
+ <a href="{.}" class="browse fancybox fancybox.image"><img src="{.}" height="400" border="0"/></a><br/>
536
+ <a href="{.}" class="browse fancybox fancybox.image">View full image</a>
537
+ </p>
538
+ <p><b><i>Image File: </i></b><a href="{.}"><xsl:value-of select="."/></a></p>
539
+ </xsl:for-each>
540
+ <xsl:for-each select="gmd:fileDescription">
541
+ <p><b><i>File Description:</i></b></p>
542
+ <p><xsl:value-of select="."/></p>
543
+ </xsl:for-each>
544
+ <xsl:for-each select="gmd:fileType">
545
+ <p><b><i>File Type: </i></b><xsl:value-of select="."/></p>
546
+ </xsl:for-each>
547
+ </xsl:for-each>
548
+ </xsl:template>
549
+
550
+ <!--Create keywords indices (keys) so that we can do a unique sort below: -->
551
+
552
+ <xsl:key name="values_by_id" match="gmd:keyword" use="gco:CharacterString"/>
553
+
554
+ <xsl:template match="gmd:descriptiveKeywords">
555
+ <font>
556
+ <xsl:for-each select="gmd:MD_Keywords">
557
+ <p><b><i>Keywords:</i></b></p>
558
+ <blockquote>
559
+ <xsl:for-each select="gmd:type">
560
+ <p><b>Keyword Type: </b><xsl:value-of select="."/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_KeywordTypeCode">MD_KeywordTypeCode</a>)</p>
561
+ </xsl:for-each>
562
+ <!--
563
+ Do unique sort method below instead to remove duplicates...
564
+ <xsl:for-each select="gmd:keyword">
565
+ <xsl:sort select="."/>
566
+ <b>Keyword: </b><xsl:value-of select="."/><br/>
567
+ </xsl:for-each>
568
+ -->
569
+ <!--
570
+ But this sort is excluding keywords from different groups that match;
571
+ e.g. when Project and Data Center are both the same...
572
+ <xsl:for-each select="gmd:keyword[ count( . | key( 'values_by_id', translate( normalize-space( gco:CharacterString ), ',', '' ) )[ 1 ]) = 1 ]">
573
+ -->
574
+ <xsl:for-each select="gmd:keyword">
575
+ <xsl:sort select="gco:CharacterString"/>
576
+ <xsl:if test="gco:CharacterString != '&gt;'">
577
+ <xsl:variable name="keyword">
578
+ <xsl:call-template name="replace-string">
579
+ <xsl:with-param name="element" select="gco:CharacterString"/>
580
+ <xsl:with-param name="old-string">&gt;</xsl:with-param>
581
+ <xsl:with-param name="new-string"><xsl:value-of select="$separator"/></xsl:with-param>
582
+ </xsl:call-template>
583
+ </xsl:variable>
584
+ <xsl:variable name="keyword2">
585
+ <xsl:call-template name="replace-string">
586
+ <xsl:with-param name="element" select="$keyword"/>
587
+ <xsl:with-param name="old-string">&amp;gt;</xsl:with-param>
588
+ <xsl:with-param name="new-string"><xsl:value-of select="$separator"/></xsl:with-param>
589
+ </xsl:call-template>
590
+ </xsl:variable>
591
+ <b>Keyword: </b><xsl:value-of select="$keyword2" disable-output-escaping="yes"/><br/>
592
+ </xsl:if>
593
+ </xsl:for-each>
594
+ <xsl:for-each select="gmd:thesaurusName">
595
+ <xsl:choose>
596
+ <xsl:when test="string-length( . )">
597
+ <p><b>Keyword Thesaurus:</b></p>
598
+ <blockquote>
599
+ <xsl:for-each select="gmd:CI_Citation">
600
+ <xsl:call-template name="CI_Citation">
601
+ <xsl:with-param name="element" select="."/>
602
+ <xsl:with-param name="italicize-heading" select="false()"/>
603
+ </xsl:call-template>
604
+ </xsl:for-each>
605
+ </blockquote>
606
+ </xsl:when>
607
+ <xsl:otherwise>
608
+ <p><b>Keyword Thesaurus: </b><xsl:value-of select="@gco:nilReason"/></p>
609
+ </xsl:otherwise>
610
+ </xsl:choose>
611
+ </xsl:for-each>
612
+ </blockquote>
613
+ </xsl:for-each>
614
+ </font>
615
+ </xsl:template>
616
+
617
+ <xsl:template match="gmd:taxonomy">
618
+ <h4>Taxonomy:</h4>
619
+ <font>
620
+ <xsl:for-each select="gmd:MD_TaxonSys">
621
+ <p><b><i>Taxonomic System:</i></b></p>
622
+ <blockquote>
623
+ <xsl:for-each select="gmd:classSys">
624
+ <xsl:call-template name="CI_Citation">
625
+ <xsl:with-param name="element" select="gmd:CI_Citation"/>
626
+ </xsl:call-template>
627
+ </xsl:for-each>
628
+ <xsl:for-each select="gmd:idref">
629
+ <xsl:for-each select="gmd:RS_Identifier">
630
+ <p><b>Identification Reference:</b></p>
631
+ <xsl:for-each select="gmd:authority">
632
+ <blockquote>
633
+ <xsl:call-template name="CI_Citation">
634
+ <xsl:with-param name="element" select="gmd:CI_Citation"/>
635
+ </xsl:call-template>
636
+ </blockquote>
637
+ </xsl:for-each>
638
+ </xsl:for-each>
639
+ </xsl:for-each>
640
+ <xsl:for-each select="gmd:obs">
641
+ <p><b>Observer:</b></p>
642
+ <blockquote>
643
+ <xsl:call-template name="CI_ResponsibleParty">
644
+ <xsl:with-param name="element" select="gmd:CI_ResponsibleParty"/>
645
+ </xsl:call-template>
646
+ </blockquote>
647
+ </xsl:for-each>
648
+ <xsl:for-each select="gmd:taxonpro">
649
+ <p><b>Taxonomic Procedures:</b></p>
650
+ <p><xsl:value-of select="."/></p>
651
+ </xsl:for-each>
652
+ <xsl:for-each select="gmd:taxoncom">
653
+ <p><b>Taxonomic Completeness:</b></p>
654
+ <p><xsl:value-of select="."/></p>
655
+ </xsl:for-each>
656
+ <xsl:for-each select="gmd:taxonCl">
657
+ <p><b>Taxonomic Classification:</b></p>
658
+ <xsl:apply-templates select="./gmd:MD_TaxonCl" />
659
+ </xsl:for-each>
660
+ </blockquote>
661
+ </xsl:for-each>
662
+ </font>
663
+ </xsl:template>
664
+
665
+ <xsl:template match="gmd:aggregationInfo">
666
+ <h4>Aggregation Information:</h4>
667
+ <xsl:for-each select="gmd:MD_AggregateInformation/gmd:aggregateDataSetName">
668
+ <p><b><i>Aggregate Dataset Name:</i></b></p>
669
+ <font>
670
+ <blockquote>
671
+ <xsl:call-template name="CI_Citation">
672
+ <xsl:with-param name="element" select="gmd:CI_Citation"/>
673
+ </xsl:call-template>
674
+ </blockquote>
675
+ </font>
676
+ </xsl:for-each>
677
+ <xsl:for-each select="gmd:MD_AggregateInformation/gmd:aggregateDataSetIdentifier">
678
+ <p><b><i>Aggregate Dataset Identifier:</i></b></p>
679
+ <font>
680
+ <blockquote>
681
+ <xsl:if test="gmd:MD_Identifier/gmd:code">
682
+ <b>Code: </b><xsl:value-of select="gmd:MD_Identifier/gmd:code"/><br/>
683
+ </xsl:if>
684
+ <xsl:if test="gmd:MD_Identifier/gmd:authority">
685
+ <b>Authority: </b><xsl:value-of select="gmd:MD_Identifier/gmd:authority/gmd:CI_Citation/gmd:title"/><br/>
686
+ </xsl:if>
687
+ </blockquote>
688
+ </font>
689
+ </xsl:for-each>
690
+ <xsl:for-each select="gmd:MD_AggregateInformation/gmd:associationType">
691
+ <p><b><i>Association Type: </i></b> <xsl:value-of select="gmd:DS_AssociationTypeCode"/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#DS_AssociationTypeCode">DS_AssociationTypeCode</a>)</p>
692
+ </xsl:for-each>
693
+ <xsl:for-each select="gmd:MD_AggregateInformation/gmd:initiativeType">
694
+ <p><b><i>Initiative Type: </i></b> <xsl:value-of select="gmd:DS_InitiativeTypeCode"/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#DS_InitiativeTypeCode">DS_InitiativeTypeCode</a>)</p>
695
+ </xsl:for-each>
696
+ </xsl:template>
697
+
698
+ <xsl:template match="gmd:resourceConstraints">
699
+ <h4>Resource Constraints:</h4>
700
+ <xsl:for-each select="gmd:MD_LegalConstraints">
701
+ <p><b><i>Legal Constraints:</i></b></p>
702
+ <blockquote>
703
+ <xsl:for-each select="gmd:accessConstraints">
704
+ <p><b>Access Constraints: </b><xsl:value-of select="."/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_RestrictionCode">MD_RestrictionCode</a>)</p>
705
+ </xsl:for-each>
706
+ <xsl:for-each select="gmd:useConstraints">
707
+ <p><b>Use Constraints: </b><xsl:value-of select="."/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_RestrictionCode">MD_RestrictionCode</a>)</p>
708
+ </xsl:for-each>
709
+ <xsl:for-each select="gmd:otherConstraints">
710
+ <p><b>Other Constraints:</b></p>
711
+ <p><xsl:value-of select="."/></p>
712
+ </xsl:for-each>
713
+ <xsl:for-each select="gmd:useLimitation">
714
+ <p><b>Use Limitation:</b></p>
715
+ <p><xsl:value-of select="."/></p>
716
+ </xsl:for-each>
717
+ </blockquote>
718
+ </xsl:for-each>
719
+ </xsl:template>
720
+
721
+ <xsl:template match="gmd:extent">
722
+ <h4>Extent Information:</h4>
723
+ <font>
724
+ <xsl:for-each select="gmd:EX_Extent">
725
+ <p><b><i>Spatial Temporal Extent:</i></b></p>
726
+ <blockquote>
727
+ <xsl:for-each select="gmd:geographicElement">
728
+ <p><b>Geographic Element:</b></p>
729
+ <blockquote>
730
+ <p><b>Bounding Coordinates:</b></p>
731
+ <blockquote>
732
+ <xsl:comment> Area to display current cursor lat/lon location: </xsl:comment>
733
+ <div id="message" class="SmallTextGray">&#160;</div>
734
+ <b>Westbound Longitude: </b>
735
+ <xsl:call-template name="strip-digits">
736
+ <xsl:with-param name="element" select="gmd:EX_GeographicBoundingBox/gmd:westBoundLongitude/gco:Decimal"/>
737
+ <xsl:with-param name="num-digits" select="5"/>
738
+ </xsl:call-template>&#176;<br/>
739
+ <b>Eastbound Longitude: </b>
740
+ <xsl:call-template name="strip-digits">
741
+ <xsl:with-param name="element" select="gmd:EX_GeographicBoundingBox/gmd:eastBoundLongitude/gco:Decimal"/>
742
+ <xsl:with-param name="num-digits" select="5"/>
743
+ </xsl:call-template>&#176;<br/>
744
+ <b>Southbound Latitude: </b>
745
+ <xsl:call-template name="strip-digits">
746
+ <xsl:with-param name="element" select="gmd:EX_GeographicBoundingBox/gmd:southBoundLatitude/gco:Decimal"/>
747
+ <xsl:with-param name="num-digits" select="5"/>
748
+ </xsl:call-template>&#176;<br/>
749
+ <b>Northbound Latitude: </b>
750
+ <xsl:call-template name="strip-digits">
751
+ <xsl:with-param name="element" select="gmd:EX_GeographicBoundingBox/gmd:northBoundLatitude/gco:Decimal"/>
752
+ <xsl:with-param name="num-digits" select="5"/>
753
+ </xsl:call-template>&#176;<br/>
754
+ </blockquote>
755
+ </blockquote>
756
+ </xsl:for-each>
757
+ <xsl:for-each select="gmd:temporalElement">
758
+ <p><b>Temporal Element:</b></p>
759
+ <blockquote>
760
+ <p><b>Time Period:</b></p>
761
+ <blockquote>
762
+ <xsl:for-each select="//gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:description">
763
+ <b>Description: </b><xsl:value-of select="."/><br/>
764
+ </xsl:for-each>
765
+ <xsl:choose>
766
+ <xsl:when test="gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:beginPosition">
767
+ <xsl:for-each select="gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:beginPosition">
768
+ <b>Begin Position: </b>
769
+ <xsl:call-template name="date">
770
+ <xsl:with-param name="element" select="."/>
771
+ </xsl:call-template>
772
+ <br/>
773
+ </xsl:for-each>
774
+ <xsl:for-each select="gmd:EX_TemporalExtent/gmd:extent/gml:TimePeriod/gml:endPosition">
775
+ <b>End Position: </b>
776
+ <xsl:call-template name="date">
777
+ <xsl:with-param name="element" select="."/>
778
+ </xsl:call-template>
779
+ <br/>
780
+ </xsl:for-each>
781
+ </xsl:when>
782
+ <xsl:when test="gmd:EX_TemporalExtent/gmd:extent/gml:TimeInstant/gml:timePosition">
783
+ <xsl:for-each select="gmd:EX_TemporalExtent/gmd:extent/gml:TimeInstant/gml:timePosition">
784
+ <b>Time Instant: </b>
785
+ <xsl:call-template name="date">
786
+ <xsl:with-param name="element" select="."/>
787
+ </xsl:call-template>
788
+ <br/>
789
+ </xsl:for-each>
790
+ </xsl:when>
791
+ </xsl:choose>
792
+ </blockquote>
793
+ </blockquote>
794
+ </xsl:for-each>
795
+ <xsl:for-each select="gmd:verticalElement">
796
+ <xsl:if test="gmd:EX_VerticalExtent/gmd:minimumValue != 0 or gmd:EX_VerticalExtent/gmd:maximumValue != 0">
797
+ <p><b>Vertical Element:</b></p>
798
+ <blockquote>
799
+ <b>Minimum Value: </b>
800
+ <xsl:call-template name="strip-digits">
801
+ <xsl:with-param name="element" select="gmd:EX_VerticalExtent/gmd:minimumValue"/>
802
+ <xsl:with-param name="num-digits" select="5"/>
803
+ </xsl:call-template><br/>
804
+ <b>Maximum Value: </b>
805
+ <xsl:call-template name="strip-digits">
806
+ <xsl:with-param name="element" select="gmd:EX_VerticalExtent/gmd:maximumValue"/>
807
+ <xsl:with-param name="num-digits" select="5"/>
808
+ </xsl:call-template><br/>
809
+ <xsl:choose>
810
+ <xsl:when test="string-length( gmd:EX_VerticalExtent/gmd:verticalCRS )">
811
+ <b>Coordinate Reference System (CRS): </b><xsl:value-of select="gmd:EX_VerticalExtent/gmd:verticalCRS"/><br/>
812
+ </xsl:when>
813
+ <xsl:otherwise>
814
+ <b>Coordinate Reference System (CRS): </b><xsl:value-of select="gmd:EX_VerticalExtent/gmd:verticalCRS/@gco:nilReason"/><br/>
815
+ </xsl:otherwise>
816
+ </xsl:choose>
817
+ </blockquote>
818
+ </xsl:if>
819
+ </xsl:for-each>
820
+ </blockquote>
821
+ </xsl:for-each>
822
+ </font>
823
+ </xsl:template>
824
+
825
+ <xsl:template match="gmd:supplementalInformation">
826
+ <h4>Supplemental Information:</h4>
827
+ <p><xsl:value-of select="."/></p>
828
+ </xsl:template>
829
+
830
+ <xsl:template match="gmd:identificationInfo/srv:SV_ServiceIdentification">
831
+ <p><b><i>Service Identification:</i></b></p>
832
+ <font>
833
+ <blockquote>
834
+ <p><b>Identifier: </b><xsl:value-of select="@id"/></p>
835
+ <p><b>Service Type: </b><xsl:value-of select="srv:serviceType"/></p>
836
+ <xsl:for-each select="srv:containsOperations/srv:SV_OperationMetadata">
837
+ <p><b>Contains Operation:</b></p>
838
+ <blockquote>
839
+ <p><b>Operation Name: </b><xsl:value-of select="srv:operationName"/></p>
840
+ <xsl:call-template name="CI_OnlineResource">
841
+ <xsl:with-param name="element" select="srv:connectPoint/gmd:CI_OnlineResource"/>
842
+ </xsl:call-template>
843
+ </blockquote>
844
+ </xsl:for-each>
845
+ </blockquote>
846
+ </font>
847
+ </xsl:template>
848
+
849
+ <!-- DATA_QUALITY_INFORMATION: ********************************************-->
850
+
851
+ <xsl:template match="gmd:dataQualityInfo/gmd:DQ_DataQuality">
852
+ <hr/>
853
+ <h3><a name="Data_Quality_Information"></a>Data Quality Information:</h3>
854
+ <xsl:apply-templates select="gmd:scope"/>
855
+ <xsl:if test="string-length( gmd:report )">
856
+ <h4>Reports:</h4>
857
+ <xsl:apply-templates select="gmd:report"/>
858
+ </xsl:if>
859
+ <xsl:apply-templates select="gmd:lineage"/>
860
+ <p><a href="javascript:void(0)" onClick="window.scrollTo( 0, 0 ); this.blur(); return false;">Back to Top</a></p>
861
+ </xsl:template>
862
+
863
+ <xsl:template match="gmd:scope">
864
+ <xsl:if test="string-length( . )">
865
+ <h4>Scope:</h4>
866
+ <p><xsl:value-of select="."/></p>
867
+ </xsl:if>
868
+ </xsl:template>
869
+
870
+ <xsl:template match="gmd:report">
871
+ <xsl:for-each select="gmd:DQ_CompletenessCommission">
872
+ <p><b><i>Completeness Commission:</i></b></p>
873
+ <blockquote>
874
+ <p><b>Evaluation Method Description:</b></p>
875
+ <p><xsl:value-of select="gmd:evaluationMethodDescription"/></p>
876
+ <xsl:if test="string-length( gmd:result )">
877
+ <p><b>Result:</b></p>
878
+ <p><xsl:value-of select="gmd:result"/></p>
879
+ </xsl:if>
880
+ </blockquote>
881
+ </xsl:for-each>
882
+ <xsl:for-each select="gmd:DQ_CompletenessOmission">
883
+ <p><b><i>Completeness Omission:</i></b></p>
884
+ <blockquote>
885
+ <p><b>Evaluation Method Description:</b></p>
886
+ <p><xsl:value-of select="gmd:evaluationMethodDescription"/></p>
887
+ <xsl:if test="string-length( gmd:result )">
888
+ <p><b>Result:</b></p>
889
+ <p><xsl:value-of select="gmd:result"/></p>
890
+ </xsl:if>
891
+ </blockquote>
892
+ </xsl:for-each>
893
+ <xsl:for-each select="gmd:DQ_ConceptualConsistency">
894
+ <p><b><i>Conceptual Consistency:</i></b></p>
895
+ <blockquote>
896
+ <p><b>Measure Description:</b></p>
897
+ <p><xsl:value-of select="gmd:measureDescription"/></p>
898
+ <xsl:if test="string-length( gmd:result )">
899
+ <p><b>Result:</b></p>
900
+ <p><xsl:value-of select="gmd:result"/></p>
901
+ </xsl:if>
902
+ </blockquote>
903
+ </xsl:for-each>
904
+ </xsl:template>
905
+
906
+ <xsl:template match="gmd:lineage">
907
+ <xsl:for-each select="gmd:LI_Lineage">
908
+ <h4>Lineage:</h4>
909
+ <xsl:for-each select="gmd:processStep/gmd:LI_ProcessStep">
910
+ <p><b><i>Process Step:</i></b></p>
911
+ <p><xsl:value-of select="gmd:description"/></p>
912
+ <blockquote>
913
+ <xsl:for-each select="gmd:dateTime">
914
+ <xsl:if test="string-length( . )">
915
+ <p><b>Date And Time: </b><xsl:value-of select="."/></p>
916
+ </xsl:if>
917
+ </xsl:for-each>
918
+ <xsl:for-each select="gmd:rationale">
919
+ <xsl:if test="string-length( . )">
920
+ <p><b>Rationale:</b></p>
921
+ <p><xsl:value-of select="."/></p>
922
+ </xsl:if>
923
+ </xsl:for-each>
924
+ </blockquote>
925
+ </xsl:for-each>
926
+ <xsl:for-each select="gmd:statement">
927
+ <p><b><i>Statement:</i></b></p>
928
+ <p><xsl:value-of select="."/></p>
929
+ </xsl:for-each>
930
+ </xsl:for-each>
931
+ </xsl:template>
932
+
933
+ <!-- SPATIAL_REPRESENTATION_INFORMATION: **********************************-->
934
+
935
+ <xsl:template match="gmd:spatialRepresentationInfo/gmd:MD_GridSpatialRepresentation">
936
+ <hr/>
937
+ <h3><a name="Spatial_Representation_Information"></a>Spatial Representation Information:</h3>
938
+ <xsl:apply-templates select="gmd:numberOfDimensions"/>
939
+ <xsl:if test="string-length( gmd:axisDimensionProperties )">
940
+ <h4>Axis Dimension Properties:</h4>
941
+ <xsl:apply-templates select="gmd:axisDimensionProperties"/>
942
+ </xsl:if>
943
+ <xsl:apply-templates select="gmd:cellGeometry"/>
944
+ <!-- Fill these in later when I have actual examples:
945
+ <xsl:apply-templates select="gmd:transformationParameterAvailability"/>
946
+ -->
947
+ <p><a href="javascript:void(0)" onClick="window.scrollTo( 0, 0 ); this.blur(); return false;">Back to Top</a></p>
948
+ </xsl:template>
949
+
950
+ <xsl:template match="gmd:numberOfDimensions">
951
+ <h4 style="display: inline">Number Of Dimensions:</h4>
952
+ <p style="display: inline"><xsl:value-of select="."/></p>
953
+ <p></p>
954
+ </xsl:template>
955
+
956
+ <xsl:template match="gmd:axisDimensionProperties">
957
+ <xsl:for-each select="gmd:MD_Dimension">
958
+ <p><b><i>Dimension:</i></b></p>
959
+ <font>
960
+ <blockquote>
961
+ <xsl:for-each select="gmd:dimensionName">
962
+ <xsl:if test="string-length( . )">
963
+ <b>Dimension Name: </b><xsl:value-of select="."/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_DimensionNameTypeCode">MD_DimensionNameTypeCode</a>)<br/>
964
+ </xsl:if>
965
+ </xsl:for-each>
966
+ <xsl:for-each select="gmd:dimensionSize">
967
+ <xsl:if test="string-length( . )">
968
+ <b>Dimension Size: </b><xsl:value-of select="."/><br/>
969
+ </xsl:if>
970
+ </xsl:for-each>
971
+ <xsl:for-each select="gmd:resolution">
972
+ <xsl:if test="string-length( gco:Scale )">
973
+ <b>Resolution: </b>
974
+ <xsl:call-template name="strip-digits">
975
+ <xsl:with-param name="element" select="gco:Scale"/>
976
+ <xsl:with-param name="num-digits" select="5"/>
977
+ </xsl:call-template>
978
+ <xsl:choose>
979
+ <xsl:when test="gco:Scale/@uom = 'decimalDegrees'">
980
+ <xsl:text>&#176;</xsl:text>
981
+ </xsl:when>
982
+ <xsl:otherwise>
983
+ <xsl:text> </xsl:text><xsl:value-of select="gco:Scale/@uom"/>
984
+ </xsl:otherwise>
985
+ </xsl:choose>
986
+ <br/>
987
+ </xsl:if>
988
+ <xsl:if test="string-length( gco:Measure )">
989
+ <xsl:variable name="measure">
990
+ <xsl:call-template name="strip-digits">
991
+ <xsl:with-param name="element" select="gco:Measure"/>
992
+ <xsl:with-param name="num-digits" select="5"/>
993
+ </xsl:call-template>
994
+ </xsl:variable>
995
+ <xsl:choose>
996
+ <xsl:when test="gco:Measure/@uom = '1'">
997
+ <b>Resolution: </b><xsl:value-of select="$measure"/>
998
+ </xsl:when>
999
+ <xsl:otherwise>
1000
+ <b>Resolution: </b><xsl:value-of select="$measure"/><xsl:text> </xsl:text><xsl:value-of select="gco:Measure/@uom"/><br/>
1001
+ </xsl:otherwise>
1002
+ </xsl:choose>
1003
+ </xsl:if>
1004
+ </xsl:for-each>
1005
+ </blockquote>
1006
+ </font>
1007
+ </xsl:for-each>
1008
+ </xsl:template>
1009
+
1010
+ <xsl:template match="gmd:cellGeometry">
1011
+ <h4 style="display: inline">Cell Geometry:</h4>
1012
+ <p style="display: inline"><xsl:value-of select="gmd:MD_CellGeometryCode"/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_CellGeometryCode">MD_CellGeometryCode</a>)</p>
1013
+ <p></p>
1014
+ </xsl:template>
1015
+
1016
+ <xsl:template match="gmd:transformationParameterAvailability">
1017
+ <h4>Transformation Parameter Availability:</h4>
1018
+ </xsl:template>
1019
+
1020
+ <!-- CONTENT_INFORMATION: *************************************************-->
1021
+
1022
+ <xsl:template match="gmd:contentInfo">
1023
+ <hr/>
1024
+ <h3><a name="Content_Information"></a>Content Information:</h3>
1025
+ <xsl:apply-templates select="gmd:MI_CoverageDescription"/>
1026
+ <xsl:apply-templates select="gmd:MD_FeatureCatalogueDescription"/>
1027
+ <p><a href="javascript:void(0)" onClick="window.scrollTo( 0, 0 ); this.blur(); return false;">Back to Top</a></p>
1028
+ </xsl:template>
1029
+
1030
+ <xsl:template match="gmd:MI_CoverageDescription">
1031
+ <h4>Coverage Description:</h4>
1032
+ <xsl:apply-templates select="gmd:attributeDescription"/>
1033
+ <xsl:apply-templates select="gmd:contentType"/>
1034
+ <xsl:if test="string-length( gmd:dimension )">
1035
+ <p><b><i>Dimensions:</i></b></p>
1036
+ <ul>
1037
+ <xsl:for-each select="gmd:dimension">
1038
+ <xsl:sort select="gmd:MD_Band/gmd:sequenceIdentifier/gco:MemberName/gco:aName"/>
1039
+ <li><a href="#{gmd:MD_Band/gmd:sequenceIdentifier/gco:MemberName/gco:aName/gco:CharacterString}"><xsl:value-of select="gmd:MD_Band/gmd:sequenceIdentifier/gco:MemberName/gco:aName"/></a></li>
1040
+ </xsl:for-each>
1041
+ </ul>
1042
+ </xsl:if>
1043
+ <xsl:apply-templates select="gmd:dimension"/>
1044
+ <xsl:apply-templates select="gmd:rangeElementDescription"/>
1045
+ </xsl:template>
1046
+
1047
+ <xsl:template match="gmd:attributeDescription">
1048
+ <xsl:if test="string-length( . )">
1049
+ <p><b><i>Attribute Description:</i></b></p>
1050
+ <p><xsl:value-of select="."/></p>
1051
+ </xsl:if>
1052
+ </xsl:template>
1053
+
1054
+ <xsl:template match="gmd:contentType">
1055
+ <xsl:if test="string-length( . )">
1056
+ <p><b><i>Content Type: </i></b><xsl:value-of select="gmd:MD_CoverageContentTypeCode"/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_CoverageContentTypeCode">MD_CoverageContentTypeCode</a>)</p>
1057
+ </xsl:if>
1058
+ </xsl:template>
1059
+
1060
+ <xsl:template match="gmd:dimension">
1061
+ <xsl:if test="string-length( . )">
1062
+ <p><a name="{gmd:MD_Band/gmd:sequenceIdentifier/gco:MemberName/gco:aName/gco:CharacterString}"></a><b><i>Dimension: </i></b></p>
1063
+ <blockquote>
1064
+ <font>
1065
+ <xsl:apply-templates select="gmd:MD_Band"/>
1066
+ </font>
1067
+ </blockquote>
1068
+ </xsl:if>
1069
+ </xsl:template>
1070
+
1071
+ <xsl:template match="gmd:MD_Band">
1072
+ <xsl:if test="string-length( . )">
1073
+ <xsl:apply-templates select="gmd:sequenceIdentifier"/>
1074
+ <xsl:apply-templates select="gmd:units"/>
1075
+ <xsl:if test="string-length( gmd:descriptor )">
1076
+ <b>Descriptor:</b><br/>
1077
+ <p><xsl:value-of select="gmd:descriptor"/></p>
1078
+ </xsl:if>
1079
+ </xsl:if>
1080
+ </xsl:template>
1081
+
1082
+ <xsl:template match="gmd:sequenceIdentifier">
1083
+ <xsl:apply-templates select="gco:MemberName"/>
1084
+ </xsl:template>
1085
+
1086
+ <xsl:template match="gco:MemberName">
1087
+ <xsl:if test="string-length( gco:aName )">
1088
+ <b>Attribute Name: </b><xsl:value-of select="gco:aName"/><br/>
1089
+ </xsl:if>
1090
+ <xsl:apply-templates select="gco:attributeType"/>
1091
+ </xsl:template>
1092
+
1093
+ <xsl:template match="gco:attributeType">
1094
+ <xsl:if test="string-length( gco:TypeName/gco:aName )">
1095
+ <b>Attribute Type: </b><xsl:value-of select="gco:TypeName/gco:aName"/><br/>
1096
+ </xsl:if>
1097
+ </xsl:template>
1098
+
1099
+ <xsl:template match="gmd:units">
1100
+ <xsl:choose>
1101
+ <xsl:when test="string-length( . )">
1102
+ <b>Units: </b><xsl:value-of select="."/><br/>
1103
+ </xsl:when>
1104
+ <xsl:otherwise>
1105
+ <xsl:variable name="unitsUrl">
1106
+ <xsl:choose>
1107
+ <xsl:when test="contains( @xlink:href, 'someUnitsDictionary')">
1108
+ <xsl:value-of select="substring-after( @xlink:href, '#' )"/>
1109
+ </xsl:when>
1110
+ <xsl:otherwise>
1111
+ <xsl:value-of select="@xlink:href"/>
1112
+ </xsl:otherwise>
1113
+ </xsl:choose>
1114
+ </xsl:variable>
1115
+ <xsl:choose>
1116
+ <xsl:when test="contains( $unitsUrl, 'http' )">
1117
+ <b>Units: </b><a href="{$unitsUrl}"><xsl:value-of select="$unitsUrl"/></a><br/>
1118
+ </xsl:when>
1119
+ <xsl:otherwise>
1120
+ <b>Units: </b><!--<xsl:value-of select="$unitsUrl"/><br/>-->
1121
+ <!-- Replace URL encodings with text equivalents: -->
1122
+ <xsl:variable name="unitsUrlDecoded">
1123
+ <xsl:call-template name="replace-string">
1124
+ <xsl:with-param name="element" select="$unitsUrl"/>
1125
+ <xsl:with-param name="old-string">%20</xsl:with-param>
1126
+ <xsl:with-param name="new-string">&#160;</xsl:with-param>
1127
+ </xsl:call-template>
1128
+ </xsl:variable>
1129
+ <xsl:variable name="unitsUrlDecoded2">
1130
+ <xsl:call-template name="replace-string">
1131
+ <xsl:with-param name="element" select="$unitsUrlDecoded"/>
1132
+ <xsl:with-param name="old-string">%3A</xsl:with-param>
1133
+ <xsl:with-param name="new-string">-</xsl:with-param>
1134
+ </xsl:call-template>
1135
+ </xsl:variable>
1136
+ <xsl:value-of select="$unitsUrlDecoded2"/>
1137
+ <br/>
1138
+ </xsl:otherwise>
1139
+ </xsl:choose>
1140
+ </xsl:otherwise>
1141
+ </xsl:choose>
1142
+ </xsl:template>
1143
+
1144
+ <xsl:template match="gmd:rangeElementDescription">
1145
+ <xsl:if test="string-length( . )">
1146
+ </xsl:if>
1147
+ </xsl:template>
1148
+
1149
+ <xsl:template match="gmd:MD_FeatureCatalogueDescription">
1150
+ <h4>Feature Catalogue Description:</h4>
1151
+ <xsl:for-each select="gmd:includedWithDataset">
1152
+ <p>
1153
+ <b><i>Included With Dataset?: </i></b>
1154
+ <xsl:choose>
1155
+ <xsl:when test=".">
1156
+ <xsl:text>Yes</xsl:text>
1157
+ </xsl:when>
1158
+ <xsl:otherwise>
1159
+ <xsl:text>No</xsl:text>
1160
+ </xsl:otherwise>
1161
+ </xsl:choose>
1162
+ </p>
1163
+ </xsl:for-each>
1164
+ <xsl:for-each select="gmd:featureTypes">
1165
+ <p><b><i>Feature Types: </i></b><xsl:value-of select="gco:LocalName/@codeSpace"/></p>
1166
+ </xsl:for-each>
1167
+ <xsl:for-each select="gmd:featureCatalogueCitation">
1168
+ <p>
1169
+ <b><i>Feature Catalogue Citation: </i></b>
1170
+ <xsl:choose>
1171
+ <xsl:when test="string-length( gmd:CI_Citation )">
1172
+ <xsl:call-template name="CI_Citation">
1173
+ <xsl:with-param name="element" select="gmd:CI_Citation"/>
1174
+ </xsl:call-template>
1175
+ </xsl:when>
1176
+ <xsl:otherwise>
1177
+ <xsl:value-of select="@gco:nilReason"/>
1178
+ </xsl:otherwise>
1179
+ </xsl:choose>
1180
+ </p>
1181
+ </xsl:for-each>
1182
+ </xsl:template>
1183
+
1184
+ <!-- DISTRIBUTION_INFORMATION: ********************************************-->
1185
+
1186
+ <xsl:template match="gmd:distributionInfo/gmd:MD_Distribution">
1187
+ <hr/>
1188
+ <h3><a name="Distribution_Information"></a>Distribution Information:</h3>
1189
+ <xsl:apply-templates select="gmd:distributor"/>
1190
+ <xsl:apply-templates select="gmd:distributionFormat"/>
1191
+ <xsl:apply-templates select="gmd:transferOptions"/>
1192
+ <p><a href="javascript:void(0)" onClick="window.scrollTo( 0, 0 ); this.blur(); return false;">Back to Top</a></p>
1193
+ </xsl:template>
1194
+
1195
+ <xsl:template match="gmd:distributor">
1196
+ <h4>Distributor:</h4>
1197
+ <font>
1198
+ <xsl:for-each select="gmd:MD_Distributor/gmd:distributorContact">
1199
+ <p><b><i>Distributor Contact:</i></b></p>
1200
+ <blockquote>
1201
+ <xsl:call-template name="CI_ResponsibleParty">
1202
+ <xsl:with-param name="element" select="gmd:CI_ResponsibleParty"/>
1203
+ <xsl:with-param name="italicize-heading" select="false()"/>
1204
+ </xsl:call-template>
1205
+ </blockquote>
1206
+ </xsl:for-each>
1207
+ <xsl:for-each select="gmd:MD_Distributor/gmd:distributionOrderProcess">
1208
+ <p><b><i>Distribution Order Process:</i></b></p>
1209
+ <blockquote>
1210
+ <xsl:for-each select="gmd:MD_StandardOrderProcess">
1211
+ <p><b>Standard Order Process:</b></p>
1212
+ <blockquote>
1213
+ <xsl:for-each select="gmd:fees">
1214
+ <p><b>Fees: </b><xsl:value-of select="."/></p>
1215
+ </xsl:for-each>
1216
+ </blockquote>
1217
+ </xsl:for-each>
1218
+ </blockquote>
1219
+ </xsl:for-each>
1220
+ <xsl:if test="string-length( gmd:MD_Distributor/gmd:distributorFormat )">
1221
+ <p><b><i>Distributor Formats:</i></b></p>
1222
+ <blockquote>
1223
+ <xsl:apply-templates select="gmd:MD_Distributor/gmd:distributorFormat"/>
1224
+ </blockquote>
1225
+ </xsl:if>
1226
+ <xsl:if test="string-length( gmd:MD_Distributor/gmd:distributorTransferOptions )">
1227
+ <p><b><i>Distributor Transfer Options:</i></b></p>
1228
+ <xsl:apply-templates select="gmd:MD_Distributor/gmd:distributorTransferOptions"/>
1229
+ </xsl:if>
1230
+ </font>
1231
+ </xsl:template>
1232
+
1233
+ <xsl:template match="gmd:distributorFormat">
1234
+ <b>Name: </b><xsl:value-of select="gmd:MD_Format/gmd:name"/><br/>
1235
+ <xsl:choose>
1236
+ <xsl:when test="string-length( gmd:MD_Format/gmd:version )">
1237
+ <b>Version: </b><xsl:value-of select="gmd:MD_Format/gmd:version"/><br/>
1238
+ </xsl:when>
1239
+ <xsl:otherwise>
1240
+ <b>Version: </b><xsl:value-of select="gmd:MD_Format/gmd:version/@gco:nilReason"/><br/>
1241
+ </xsl:otherwise>
1242
+ </xsl:choose>
1243
+ </xsl:template>
1244
+
1245
+ <xsl:template match="gmd:distributorTransferOptions">
1246
+ <xsl:call-template name="CI_OnlineResource">
1247
+ <xsl:with-param name="element" select="gmd:MD_DigitalTransferOptions/gmd:onLine/gmd:CI_OnlineResource"/>
1248
+ </xsl:call-template>
1249
+ </xsl:template>
1250
+
1251
+ <xsl:template match="gmd:distributionFormat">
1252
+ <h4>Distribution Format:</h4>
1253
+ <font>
1254
+ <xsl:for-each select="gmd:MD_Format">
1255
+ <p><b><i>Data File Format:</i></b></p>
1256
+ <blockquote>
1257
+ <xsl:if test="string-length( gmd:name )">
1258
+ <b>Name: </b><xsl:value-of select="gmd:name"/><br/>
1259
+ </xsl:if>
1260
+ <xsl:if test="string-length( gmd:version )">
1261
+ <b>Version: </b><xsl:value-of select="gmd:version"/><br/>
1262
+ </xsl:if>
1263
+ <xsl:if test="string-length( gmd:specification )">
1264
+ <b>Specification: </b><xsl:value-of select="gmd:specification"/><br/>
1265
+ </xsl:if>
1266
+ </blockquote>
1267
+ </xsl:for-each>
1268
+ </font>
1269
+ </xsl:template>
1270
+
1271
+ <xsl:template match="gmd:transferOptions">
1272
+ <h4>Digital Transfer Options:</h4>
1273
+ <xsl:for-each select="gmd:MD_DigitalTransferOptions">
1274
+ <xsl:for-each select="gmd:transferSize">
1275
+ <p><b><i>Transfer Size:</i></b> <xsl:value-of select="."/> MB</p>
1276
+ </xsl:for-each>
1277
+ <xsl:if test="gmd:onLine">
1278
+ <p><b><i>Online Transfer Options:</i></b></p>
1279
+ </xsl:if>
1280
+ <xsl:for-each select="gmd:onLine">
1281
+ <blockquote>
1282
+ <p><b>Online Resource:</b></p>
1283
+ <blockquote>
1284
+ <xsl:for-each select="gmd:CI_OnlineResource">
1285
+ <xsl:call-template name="CI_OnlineResource">
1286
+ <xsl:with-param name="element" select="."/>
1287
+ </xsl:call-template>
1288
+ </xsl:for-each>
1289
+ </blockquote>
1290
+ </blockquote>
1291
+ </xsl:for-each>
1292
+ <xsl:if test="gmd:offLine">
1293
+ <p><b><i>Offline Transfer Options:</i></b></p>
1294
+ </xsl:if>
1295
+ <xsl:for-each select="gmd:offLine">
1296
+ <blockquote>
1297
+ <p><b>Offline Resource:</b></p>
1298
+ <blockquote>
1299
+ <xsl:for-each select="gmd:MD_Medium">
1300
+ <p>
1301
+ <xsl:if test="string-length( gmd:name )">
1302
+ <b>Name: </b><xsl:value-of select="gmd:name"/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_MediumNameCode">MD_MediumNameCode</a>)<br/>
1303
+ </xsl:if>
1304
+ <xsl:apply-templates select="name"/>
1305
+ <xsl:if test="string-length( gmd:density )">
1306
+ <b>Density: </b><xsl:value-of select="gmd:density"/><br/>
1307
+ </xsl:if>
1308
+ <xsl:if test="string-length( gmd:densityUnits )">
1309
+ <b>Density Units: </b><xsl:value-of select="gmd:densityUnits"/><br/>
1310
+ </xsl:if>
1311
+ <xsl:if test="string-length( gmd:mediumName )">
1312
+ <b>Medium Name: </b><xsl:value-of select="gmd:mediumName"/><br/>
1313
+ </xsl:if>
1314
+ <xsl:if test="string-length( gmd:mediumFormat )">
1315
+ <b>Medium Format: </b><xsl:value-of select="gmd:mediumFormat"/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#MD_MediumFormatCode">MD_MediumFormatCode</a>)<br/>
1316
+ </xsl:if>
1317
+ </p>
1318
+ </xsl:for-each>
1319
+ </blockquote>
1320
+ </blockquote>
1321
+ </xsl:for-each>
1322
+ </xsl:for-each>
1323
+ </xsl:template>
1324
+
1325
+ <!-- ACQUISITION_INFORMATION: *********************************************-->
1326
+
1327
+ <xsl:template match="gmd:acquisitionInformation/gmd:MI_AcquisitionInformation">
1328
+ <hr/>
1329
+ <h3><a name="Acquisition_Information"></a>Acquisition Information:</h3>
1330
+ <xsl:apply-templates select="gmd:instrument"/>
1331
+ <xsl:apply-templates select="gmd:platform"/>
1332
+ <p><a href="javascript:void(0)" onClick="window.scrollTo( 0, 0 ); this.blur(); return false;">Back to Top</a></p>
1333
+ </xsl:template>
1334
+
1335
+ <xsl:template match="gmd:instrument">
1336
+ <h4>Instrument Information:</h4>
1337
+ <font>
1338
+ <xsl:for-each select="gmd:MI_Instrument">
1339
+ <p><b><i>Instrument:</i></b></p>
1340
+ <blockquote>
1341
+ <xsl:for-each select="gmd:identifier">
1342
+ <b>Identifier: </b><xsl:value-of select="."/><br/>
1343
+ </xsl:for-each>
1344
+ <xsl:for-each select="gmd:type">
1345
+ <b>Type: </b><xsl:value-of select="."/><br/>
1346
+ </xsl:for-each>
1347
+ </blockquote>
1348
+ </xsl:for-each>
1349
+ </font>
1350
+ </xsl:template>
1351
+
1352
+ <xsl:template match="gmd:platform">
1353
+ <h4>Platform Information:</h4>
1354
+ <font>
1355
+ <xsl:for-each select="gmd:MI_Platform">
1356
+ <p><b><i>Platform:</i></b></p>
1357
+ <blockquote>
1358
+ <xsl:for-each select="gmd:identifier">
1359
+ <b>Identifier: </b><xsl:value-of select="."/><br/>
1360
+ </xsl:for-each>
1361
+ <xsl:for-each select="gmd:description">
1362
+ <b>Description: </b><xsl:value-of select="."/><br/>
1363
+ </xsl:for-each>
1364
+ <xsl:for-each select="gmd:instrument">
1365
+ <b>Instrument: </b><xsl:value-of select="."/><br/>
1366
+ </xsl:for-each>
1367
+ </blockquote>
1368
+ </xsl:for-each>
1369
+ </font>
1370
+ </xsl:template>
1371
+
1372
+ <!-- NAMED TEMPLATES: *****************************************************-->
1373
+
1374
+ <!-- template: CI_Citation ************************************************-->
1375
+
1376
+ <xsl:template name="CI_Citation">
1377
+ <xsl:param name="element"/>
1378
+ <xsl:param name="italicize-heading"/>
1379
+ <xsl:param name="wrap-text"/>
1380
+ <xsl:choose>
1381
+ <xsl:when test="$italicize-heading">
1382
+ <p><b><i>Citation Information:</i></b></p>
1383
+ </xsl:when>
1384
+ <xsl:otherwise>
1385
+ <p><b>Citation Information:</b></p>
1386
+ </xsl:otherwise>
1387
+ </xsl:choose>
1388
+ <blockquote>
1389
+ <xsl:for-each select="$element/gmd:title">
1390
+ <xsl:choose>
1391
+ <xsl:when test="$wrap-text">
1392
+ <div style="margin-right: 185px;"><b>Title: </b><xsl:value-of select="."/></div>
1393
+ </xsl:when>
1394
+ <xsl:otherwise>
1395
+ <b>Title: </b><xsl:value-of select="."/><br/>
1396
+ </xsl:otherwise>
1397
+ </xsl:choose>
1398
+ </xsl:for-each>
1399
+ <xsl:for-each select="$element/gmd:alternateTitle">
1400
+ <b>Alternate Title: </b><xsl:value-of select="."/><br/>
1401
+ </xsl:for-each>
1402
+ <xsl:for-each select="$element/gmd:date">
1403
+ <xsl:call-template name="CI_Date">
1404
+ <xsl:with-param name="element" select="./gmd:CI_Date"/>
1405
+ </xsl:call-template>
1406
+ </xsl:for-each>
1407
+ <xsl:for-each select="$element/gmd:edition">
1408
+ <b>Edition: </b><xsl:value-of select="."/><br/>
1409
+ </xsl:for-each>
1410
+ <xsl:for-each select="$element/gmd:editionDate">
1411
+ <b>Edition Date: </b>
1412
+ <xsl:call-template name="date">
1413
+ <xsl:with-param name="element" select="."/>
1414
+ </xsl:call-template>
1415
+ <br/>
1416
+ </xsl:for-each>
1417
+ <xsl:for-each select="$element/gmd:identifier">
1418
+ <b>Identifier:</b><br/>
1419
+ <blockquote>
1420
+ <xsl:if test="gmd:MD_Identifier/gmd:code">
1421
+ <b>Code: </b><xsl:value-of select="gmd:MD_Identifier/gmd:code"/><br/>
1422
+ </xsl:if>
1423
+ <xsl:if test="gmd:MD_Identifier/gmd:authority">
1424
+ <b>Authority: </b><xsl:value-of select="gmd:MD_Identifier/gmd:authority"/><br/>
1425
+ </xsl:if>
1426
+ </blockquote>
1427
+ </xsl:for-each>
1428
+ <xsl:for-each select="$element/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty">
1429
+ <xsl:call-template name="CI_ResponsibleParty">
1430
+ <xsl:with-param name="element" select="."/>
1431
+ <xsl:with-param name="italicize-heading" select="false()"/>
1432
+ </xsl:call-template>
1433
+ </xsl:for-each>
1434
+ <xsl:for-each select="$element/gmd:presentationForm">
1435
+ <b>Presentation Form: </b> <xsl:value-of select="."/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#CI_PresentationFormCode" target="_blank">CI_PresentationFormCode</a>)<br/>
1436
+ </xsl:for-each>
1437
+ <xsl:for-each select="$element/gmd:series">
1438
+ <b>Series: </b><xsl:value-of select="."/><br/>
1439
+ </xsl:for-each>
1440
+ <xsl:for-each select="$element/gmd:otherCitationDetails">
1441
+ <b>Other Citation Details: </b><xsl:value-of select="."/><br/>
1442
+ </xsl:for-each>
1443
+ </blockquote>
1444
+ </xsl:template>
1445
+
1446
+ <!-- template: CI_Date ****************************************************-->
1447
+
1448
+ <xsl:template name="CI_Date">
1449
+ <xsl:param name="element"/>
1450
+ <xsl:if test="string-length( $element/gmd:date ) and $element/gmd:dateType/gmd:CI_DateTypeCode != 'issued' and $element/gmd:dateType/gmd:CI_DateTypeCode != 'revision'">
1451
+ <p><b>Date:</b></p>
1452
+ <blockquote>
1453
+ <b>Date: </b>
1454
+ <xsl:call-template name="date">
1455
+ <xsl:with-param name="element" select="$element/gmd:date/gco:Date"/>
1456
+ </xsl:call-template>
1457
+ <br/>
1458
+ <xsl:if test="string-length( $element/gmd:dateType/gmd:CI_DateTypeCode )">
1459
+ <b>Date Type: </b><xsl:value-of select="$element/gmd:dateType"/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#CI_DateTypeCode">CI_DateTypeCode</a>)<br/>
1460
+ </xsl:if>
1461
+ </blockquote>
1462
+ </xsl:if>
1463
+ </xsl:template>
1464
+
1465
+ <!-- template: CI_ResponsibleParty ****************************************-->
1466
+
1467
+ <xsl:template name="CI_ResponsibleParty">
1468
+ <xsl:param name="element"/>
1469
+ <xsl:param name="italicize-heading"/>
1470
+ <xsl:choose>
1471
+ <xsl:when test="$italicize-heading">
1472
+ <p><b><i>Responsible Party:</i></b></p>
1473
+ </xsl:when>
1474
+ <xsl:otherwise>
1475
+ <p><b>Responsible Party:</b></p>
1476
+ </xsl:otherwise>
1477
+ </xsl:choose>
1478
+ <blockquote>
1479
+ <div>
1480
+ <xsl:for-each select="$element/gmd:individualName">
1481
+ <b>Individual Name: </b><xsl:value-of select="."/><br/>
1482
+ </xsl:for-each>
1483
+ <xsl:for-each select="$element/gmd:organisationName">
1484
+ <xsl:if test="string-length( . )">
1485
+ <b>Organization Name: </b><xsl:value-of select="$element/gmd:organisationName"/><br/>
1486
+ </xsl:if>
1487
+ </xsl:for-each>
1488
+ <xsl:for-each select="$element/gmd:positionName">
1489
+ <xsl:if test=". != 'none'">
1490
+ <b>Position Name: </b><xsl:value-of select="."/><br/>
1491
+ </xsl:if>
1492
+ </xsl:for-each>
1493
+ <xsl:for-each select="$element/gmd:contactInfo/gmd:CI_Contact">
1494
+ <xsl:if test="string-length( . )">
1495
+ <xsl:call-template name="CI_Contact">
1496
+ <xsl:with-param name="element" select="."/>
1497
+ </xsl:call-template>
1498
+ </xsl:if>
1499
+ </xsl:for-each>
1500
+ <xsl:for-each select="$element/gmd:role">
1501
+ <xsl:if test="string-length( ./gmd:CI_RoleCode )">
1502
+ <b>Contact Role: </b><xsl:value-of select="."/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#CI_RoleCode" target="_blank">CI_RoleCode</a>)<br/>
1503
+ </xsl:if>
1504
+ </xsl:for-each>
1505
+ </div>
1506
+ </blockquote>
1507
+ </xsl:template>
1508
+
1509
+ <!-- template: CI_Contact *************************************************-->
1510
+
1511
+ <xsl:template name="CI_Contact">
1512
+ <xsl:param name="element"/>
1513
+ <b>Contact: </b>
1514
+ <xsl:for-each select="$element/gmd:phone/gmd:CI_Telephone">
1515
+ <xsl:call-template name="CI_Telephone">
1516
+ <xsl:with-param name="element" select="."/>
1517
+ </xsl:call-template>
1518
+ </xsl:for-each>
1519
+ <xsl:for-each select="$element/gmd:address/gmd:CI_Address">
1520
+ <xsl:call-template name="CI_Address">
1521
+ <xsl:with-param name="element" select="."/>
1522
+ </xsl:call-template>
1523
+ </xsl:for-each>
1524
+ <xsl:for-each select="$element/gmd:onlineResource/gmd:CI_OnlineResource">
1525
+ <xsl:call-template name="CI_OnlineResource">
1526
+ <xsl:with-param name="element" select="."/>
1527
+ </xsl:call-template>
1528
+ </xsl:for-each>
1529
+ </xsl:template>
1530
+
1531
+ <!-- template: CI_Telephone ***********************************************-->
1532
+
1533
+ <xsl:template name="CI_Telephone">
1534
+ <xsl:param name="element"/>
1535
+ <blockquote>
1536
+ <p><b>Contact Phone: </b></p>
1537
+ <blockquote>
1538
+ <xsl:for-each select="$element/gmd:voice">
1539
+ <xsl:if test="string-length( . )">
1540
+ <b>Contact Voice Telephone: </b><xsl:value-of select="."/><br/>
1541
+ </xsl:if>
1542
+ </xsl:for-each>
1543
+ <xsl:for-each select="$element/gmd:facsimile">
1544
+ <xsl:if test="string-length( . )">
1545
+ <b>Contact Facsimile Telephone: </b><xsl:value-of select="."/><br/>
1546
+ </xsl:if>
1547
+ </xsl:for-each>
1548
+ </blockquote>
1549
+ </blockquote>
1550
+ </xsl:template>
1551
+
1552
+ <!-- template: CI_Address *************************************************-->
1553
+
1554
+ <xsl:template name="CI_Address">
1555
+ <xsl:param name="element"/>
1556
+ <blockquote>
1557
+ <p><b>Contact Address: </b></p>
1558
+ <blockquote>
1559
+ <xsl:if test="string-length( $element/gmd:deliveryPoint )">
1560
+ <b>Delivery Point: </b><xsl:value-of select="$element/gmd:deliveryPoint"/><br/>
1561
+ </xsl:if>
1562
+ <xsl:if test="string-length( $element/gmd:city )">
1563
+ <b>City: </b><xsl:value-of select="$element/gmd:city"/><br/>
1564
+ </xsl:if>
1565
+ <xsl:if test="string-length( $element/gmd:administrativeArea )">
1566
+ <b>Administrative Area: </b><xsl:value-of select="$element/gmd:administrativeArea"/><br/>
1567
+ </xsl:if>
1568
+ <xsl:if test="string-length( $element/gmd:postalCode )">
1569
+ <b>Postal Code: </b><xsl:value-of select="$element/gmd:postalCode"/><br/>
1570
+ </xsl:if>
1571
+ <xsl:if test="string-length( $element/gmd:country )">
1572
+ <b>Country: </b><xsl:value-of select="$element/gmd:country"/><br/>
1573
+ </xsl:if>
1574
+ <xsl:if test="string-length( $element/gmd:electronicMailAddress )">
1575
+ <b>Email: </b><a href="mailto:{$element/gmd:electronicMailAddress/gco:CharacterString}"><xsl:value-of select="$element/gmd:electronicMailAddress"/></a><br/>
1576
+ </xsl:if>
1577
+ </blockquote>
1578
+ </blockquote>
1579
+ </xsl:template>
1580
+
1581
+ <!-- template: CI_OnlineResource ******************************************-->
1582
+
1583
+ <xsl:template name="CI_OnlineResource">
1584
+ <xsl:param name="element"/>
1585
+ <xsl:if test="string-length( $element/gmd:linkage )">
1586
+ <blockquote>
1587
+ <p><b>Online Resource:</b></p>
1588
+ <blockquote>
1589
+ <xsl:choose>
1590
+ <xsl:when test="$element/gmd:linkage != 'Unknown'">
1591
+ <xsl:variable name="url">
1592
+ <!-- Replace PacIOOS internal URL with external proxy: -->
1593
+ <xsl:call-template name="replace-string">
1594
+ <xsl:with-param name="element" select="$element/gmd:linkage/gmd:URL"/>
1595
+ <xsl:with-param name="old-string">lawelawe.soest.hawaii.edu:8080</xsl:with-param>
1596
+ <xsl:with-param name="new-string">oos.soest.hawaii.edu</xsl:with-param>
1597
+ </xsl:call-template>
1598
+ </xsl:variable>
1599
+ <span style="float: left; margin-right: 4px;"><b>Linkage: </b></span><a href="{$url}"><div class="wrapline"><xsl:value-of select="$url"/></div></a>
1600
+ </xsl:when>
1601
+ <xsl:otherwise>
1602
+ <b>Linkage: </b><xsl:value-of select="$element/gmd:linkage"/><br/>
1603
+ </xsl:otherwise>
1604
+ </xsl:choose>
1605
+ <xsl:if test="string-length( $element/gmd:name/gco:CharacterString )">
1606
+ <b>Name: </b><xsl:value-of select="$element/gmd:name"/><br/>
1607
+ </xsl:if>
1608
+ <xsl:if test="string-length( $element/gmd:description/gco:CharacterString )">
1609
+ <b>Description: </b><xsl:value-of select="$element/gmd:description"/><br/>
1610
+ </xsl:if>
1611
+ <xsl:if test="string-length( $element/gmd:function )">
1612
+ <xsl:variable name="codeList" select="substring-after( $element/gmd:function/gmd:CI_OnLineFunctionCode/@codeList, '#' )"/>
1613
+ <xsl:variable name="codeListShortName">
1614
+ <xsl:choose>
1615
+ <xsl:when test="contains( $codeList, ':' )">
1616
+ <xsl:value-of select="substring-after( $codeList, ':' )"/>
1617
+ </xsl:when>
1618
+ <xsl:otherwise>
1619
+ <xsl:value-of select="$codeList"/>
1620
+ </xsl:otherwise>
1621
+ </xsl:choose>
1622
+ </xsl:variable>
1623
+ <b>Function: </b><xsl:value-of select="$element/gmd:function"/> (<a href="http://pacioos.org/metadata/gmxCodelists.html#{$codeListShortName}"><xsl:value-of select="$codeListShortName"/></a>)<br/>
1624
+ </xsl:if>
1625
+ </blockquote>
1626
+ </blockquote>
1627
+ </xsl:if>
1628
+ </xsl:template>
1629
+
1630
+ <!-- template: MD_TaxonCl (recursive) *************************************-->
1631
+
1632
+ <xsl:template match="gmd:taxonCl/gmd:MD_TaxonCl">
1633
+ <div style="margin-left: 15px;">
1634
+ <xsl:choose>
1635
+ <xsl:when test="string-length( gmd:taxonrv )">
1636
+ <b><xsl:value-of select="gmd:taxonrn/gco:CharacterString"/>: </b><xsl:value-of select="gmd:taxonrv"/>
1637
+ </xsl:when>
1638
+ <xsl:otherwise>
1639
+ <b><xsl:value-of select="gmd:taxonrn/gco:CharacterString"/>: </b><xsl:value-of select="gmd:taxonrv/@gco:nilReason"/>
1640
+ </xsl:otherwise>
1641
+ </xsl:choose>
1642
+ <xsl:for-each select="gmd:common">
1643
+ <div style="margin-left: 15px;"><b>Common Name: </b><xsl:value-of select="." /></div>
1644
+ </xsl:for-each>
1645
+ <xsl:apply-templates select="gmd:taxonCl/gmd:MD_TaxonCl" />
1646
+ </div>
1647
+ </xsl:template>
1648
+
1649
+ <!-- template: date *******************************************************-->
1650
+
1651
+ <xsl:template name="date">
1652
+ <xsl:param name="element"/>
1653
+ <xsl:choose>
1654
+ <xsl:when test="contains( $element, 'known' )">
1655
+ <xsl:value-of select="$element"/>
1656
+ </xsl:when>
1657
+ <xsl:otherwise>
1658
+ <xsl:variable name="year" select="substring($element, 1, 4)"/>
1659
+ <xsl:variable name="month" select="substring($element, 6, 2)"/>
1660
+ <xsl:variable name="day" select="substring($element, 9, 2)"/>
1661
+ <xsl:if test="$month = '01'">
1662
+ <xsl:text>January </xsl:text>
1663
+ </xsl:if>
1664
+ <xsl:if test="$month = '02'">
1665
+ <xsl:text>February </xsl:text>
1666
+ </xsl:if>
1667
+ <xsl:if test="$month = '03'">
1668
+ <xsl:text>March </xsl:text>
1669
+ </xsl:if>
1670
+ <xsl:if test="$month = '04'">
1671
+ <xsl:text>April </xsl:text>
1672
+ </xsl:if>
1673
+ <xsl:if test="$month = '05'">
1674
+ <xsl:text>May </xsl:text>
1675
+ </xsl:if>
1676
+ <xsl:if test="$month = '06'">
1677
+ <xsl:text>June </xsl:text>
1678
+ </xsl:if>
1679
+ <xsl:if test="$month = '07'">
1680
+ <xsl:text>July </xsl:text>
1681
+ </xsl:if>
1682
+ <xsl:if test="$month = '08'">
1683
+ <xsl:text>August </xsl:text>
1684
+ </xsl:if>
1685
+ <xsl:if test="$month = '09'">
1686
+ <xsl:text>September </xsl:text>
1687
+ </xsl:if>
1688
+ <xsl:if test="$month = '10'">
1689
+ <xsl:text>October </xsl:text>
1690
+ </xsl:if>
1691
+ <xsl:if test="$month = '11'">
1692
+ <xsl:text>November </xsl:text>
1693
+ </xsl:if>
1694
+ <xsl:if test="$month = '12'">
1695
+ <xsl:text>December </xsl:text>
1696
+ </xsl:if>
1697
+ <xsl:if test="string-length( $day )">
1698
+ <xsl:choose>
1699
+ <xsl:when test="$day = '01'">
1700
+ <xsl:variable name="daydisplay" select="'1'"/>
1701
+ <xsl:value-of select="$daydisplay"/><xsl:text>, </xsl:text>
1702
+ </xsl:when>
1703
+ <xsl:when test="$day = '02'">
1704
+ <xsl:variable name="daydisplay" select="'2'"/>
1705
+ <xsl:value-of select="$daydisplay"/><xsl:text>, </xsl:text>
1706
+ </xsl:when>
1707
+ <xsl:when test="$day = '03'">
1708
+ <xsl:variable name="daydisplay" select="'3'"/>
1709
+ <xsl:value-of select="$daydisplay"/><xsl:text>, </xsl:text>
1710
+ </xsl:when>
1711
+ <xsl:when test="$day = '04'">
1712
+ <xsl:variable name="daydisplay" select="'4'"/>
1713
+ <xsl:value-of select="$daydisplay"/><xsl:text>, </xsl:text>
1714
+ </xsl:when>
1715
+ <xsl:when test="$day = '05'">
1716
+ <xsl:variable name="daydisplay" select="'5'"/>
1717
+ <xsl:value-of select="$daydisplay"/><xsl:text>, </xsl:text>
1718
+ </xsl:when>
1719
+ <xsl:when test="$day = '06'">
1720
+ <xsl:variable name="daydisplay" select="'6'"/>
1721
+ <xsl:value-of select="$daydisplay"/><xsl:text>, </xsl:text>
1722
+ </xsl:when>
1723
+ <xsl:when test="$day = '07'">
1724
+ <xsl:variable name="daydisplay" select="'7'"/>
1725
+ <xsl:value-of select="$daydisplay"/><xsl:text>, </xsl:text>
1726
+ </xsl:when>
1727
+ <xsl:when test="$day = '08'">
1728
+ <xsl:variable name="daydisplay" select="'8'"/>
1729
+ <xsl:value-of select="$daydisplay"/><xsl:text>, </xsl:text>
1730
+ </xsl:when>
1731
+ <xsl:when test="$day = '09'">
1732
+ <xsl:variable name="daydisplay" select="'9'"/>
1733
+ <xsl:value-of select="$daydisplay"/><xsl:text>, </xsl:text>
1734
+ </xsl:when>
1735
+ <xsl:otherwise>
1736
+ <xsl:value-of select="$day"/><xsl:text>, </xsl:text>
1737
+ </xsl:otherwise>
1738
+ </xsl:choose>
1739
+ </xsl:if>
1740
+ <xsl:value-of select="$year"/>
1741
+ </xsl:otherwise>
1742
+ </xsl:choose>
1743
+ </xsl:template>
1744
+
1745
+ </xsl:stylesheet>