geo_combine 0.1.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +6 -1
  3. data/Gemfile +2 -1
  4. data/README.md +108 -23
  5. data/geo_combine.gemspec +4 -2
  6. data/lib/geo_combine.rb +11 -1
  7. data/lib/geo_combine/bounding_box.rb +71 -0
  8. data/lib/geo_combine/ckan_metadata.rb +112 -0
  9. data/lib/geo_combine/esri_open_data.rb +0 -9
  10. data/lib/geo_combine/exceptions.rb +8 -0
  11. data/lib/geo_combine/formatting.rb +6 -1
  12. data/lib/geo_combine/geo_blacklight_harvester.rb +203 -0
  13. data/lib/geo_combine/geoblacklight.rb +80 -12
  14. data/lib/geo_combine/ogp.rb +229 -0
  15. data/lib/geo_combine/railtie.rb +7 -0
  16. data/lib/geo_combine/version.rb +1 -1
  17. data/lib/tasks/geo_combine.rake +54 -20
  18. data/lib/xslt/fgdc2geoBL.xsl +95 -154
  19. data/lib/xslt/fgdc2html.xsl +105 -157
  20. data/lib/xslt/iso2geoBL.xsl +62 -84
  21. data/lib/xslt/iso2html.xsl +1107 -1070
  22. data/spec/features/iso2html_spec.rb +7 -1
  23. data/spec/fixtures/docs/basic_geoblacklight.json +5 -7
  24. data/spec/fixtures/docs/ckan.json +456 -0
  25. data/spec/fixtures/docs/full_geoblacklight.json +2 -8
  26. data/spec/fixtures/docs/geoblacklight_pre_v1.json +37 -0
  27. data/spec/fixtures/docs/ogp_harvard_line.json +28 -0
  28. data/spec/fixtures/docs/ogp_harvard_raster.json +28 -0
  29. data/spec/fixtures/docs/ogp_tufts_vector.json +31 -0
  30. data/spec/fixtures/json_docs.rb +20 -0
  31. data/spec/lib/geo_combine/bounding_box_spec.rb +59 -0
  32. data/spec/lib/geo_combine/ckan_metadata_spec.rb +114 -0
  33. data/spec/lib/geo_combine/esri_open_data_spec.rb +1 -14
  34. data/spec/lib/geo_combine/fgdc_spec.rb +11 -14
  35. data/spec/lib/geo_combine/formatting_spec.rb +6 -0
  36. data/spec/lib/geo_combine/geo_blacklight_harvester_spec.rb +190 -0
  37. data/spec/lib/geo_combine/geoblacklight_spec.rb +137 -11
  38. data/spec/lib/geo_combine/iso19139_spec.rb +5 -2
  39. data/spec/lib/geo_combine/ogp_spec.rb +163 -0
  40. data/spec/spec_helper.rb +1 -0
  41. metadata +63 -14
  42. data/lib/schema/geoblacklight-schema.json +0 -169
@@ -1,1070 +1,1107 @@
1
- <?xml version="1.0" encoding="utf-8" ?>
2
-
3
- <!--
4
- iso2html.xsl - Transformation from ISO 19139 into HTML
5
- Created by Kim Durante, Stanford University Libraries
6
-
7
- TODO: Needs full Data Quality section mapped
8
- Not sure if complete contactInfo is needed for each Responsible Party?
9
-
10
-
11
-
12
- -->
13
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
14
- xmlns:xlink="http://www.w3.org/1999/xlink"
15
- xmlns:gmd="http://www.isotc211.org/2005/gmd"
16
- xmlns:gco="http://www.isotc211.org/2005/gco"
17
- xmlns:gts="http://www.isotc211.org/2005/gts"
18
- xmlns:srv="http://www.isotc211.org/2005/srv"
19
- xmlns:gml="http://www.opengis.net/gml"
20
- exclude-result-prefixes="gmd gco gml srv xlink gts">
21
-
22
- <xsl:output method="html" encoding="UTF-8" indent="yes"/>
23
-
24
- <xsl:template match="/">
25
- <html>
26
- <head>
27
- <title><xsl:value-of select="gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title"/></title>
28
- </head>
29
- <body>
30
- <h1><xsl:value-of select="gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title"/></h1>
31
- <ul>
32
- <xsl:if test="gmd:MD_Metadata/gmd:identificationInfo">
33
- <li><a href="#iso-identification-info">Identification Information</a></li>
34
- </xsl:if>
35
-
36
- <xsl:if test="gmd:MD_Metadata/gmd:referenceSystemInfo">
37
- <li><a href="#iso-spatial-reference-info">Spatial Reference Information</a></li>
38
- </xsl:if>
39
-
40
- <xsl:if test="gmd:MD_Metadata/gmd:dataQualityInfo">
41
- <li><a href="#iso-data-quality-info">Data Quality Information</a></li>
42
- </xsl:if>
43
-
44
- <xsl:if test="gmd:MD_Metadata/gmd:distributionInfo">
45
- <li><a href="#iso-distribution-info">Distribution Information</a></li>
46
- </xsl:if>
47
-
48
- <xsl:if test="gmd:MD_Metadata/gmd:contentInfo">
49
- <li><a href="#iso-content-info">Content Information</a></li>
50
- </xsl:if>
51
-
52
- <xsl:if test="gmd:MD_Metadata/gmd:spatialRepresentationInfo">
53
- <li><a href="#iso-spatial-representation-info">Spatial Representation Information</a></li>
54
- </xsl:if>
55
-
56
- <xsl:if test="gmd:MD_Metadata">
57
- <li><a href="#iso-metadata-reference-info">Metadata Reference Information</a></li>
58
- </xsl:if>
59
- </ul>
60
- <xsl:apply-templates/>
61
- </body>
62
- </html>
63
- </xsl:template>
64
-
65
-
66
- <xsl:template match="gmd:MD_Metadata">
67
- <div id="iso-identification-info">
68
- <dl>
69
- <dt>Identification Information</dt>
70
- <dd>
71
- <dl>
72
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation">
73
- <dt>Citation</dt>
74
- <dd>
75
- <dl>
76
- <dt>Title</dt>
77
- <dd>
78
- <xsl:value-of select="gmd:title"/>
79
- </dd>
80
- <xsl:choose>
81
- <xsl:when test="gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='originator']">
82
- <xsl:for-each select="gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='originator']">
83
- <dt>Originator</dt>
84
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/></dd>
85
- </xsl:for-each>
86
- </xsl:when>
87
-
88
- <xsl:when test="//gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact">
89
- <xsl:for-each select="//gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact">
90
- <xsl:if test="gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode/@codeListValue='originator'">
91
- <dt>Originator</dt>
92
- <dd><xsl:value-of select="gmd:CI_ResponsibleParty/gmd:organisationName | gmd:CI_ResponsibleParty/gmd:individualName"/></dd>
93
- </xsl:if>
94
- </xsl:for-each>
95
- </xsl:when>
96
- </xsl:choose>
97
-
98
- <xsl:for-each select="gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='publisher']">
99
- <dt>Publisher</dt>
100
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/></dd>
101
- <xsl:if test="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city">
102
- <dt>Place of Publication</dt>
103
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city"/>
104
- <xsl:if test="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:administrativeArea">
105
- <xsl:text>,</xsl:text>
106
- <xsl:value-of select="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:administrativeArea"/>
107
- </xsl:if>
108
- <xsl:if test="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:country">
109
- <xsl:text>,</xsl:text>
110
- <xsl:value-of select="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:country"/>
111
- </xsl:if>
112
- </dd>
113
- </xsl:if>
114
- </xsl:for-each>
115
-
116
-
117
-
118
- <xsl:for-each select="gmd:date/gmd:CI_Date">
119
- <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'publication')">
120
- <dt>Publication Date</dt>
121
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/></dd>
122
- </xsl:if>
123
- <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'creation')">
124
- <dt>Creation Date</dt>
125
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/></dd>
126
- </xsl:if>
127
- <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'revision')">
128
- <dt>Revision Date</dt>
129
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/></dd>
130
- </xsl:if>
131
- </xsl:for-each>
132
-
133
- <xsl:if test="gmd:edition">
134
- <dt>Edition</dt>
135
- <dd>
136
- <xsl:value-of select="gmd:edition"/>
137
- </dd>
138
- </xsl:if>
139
-
140
- <xsl:if test="gmd:identifier/gmd:MD_Identifier/gmd:code">
141
- <dt>Identifier</dt>
142
- <dd>
143
- <xsl:value-of select="gmd:identifier/gmd:MD_Identifier/gmd:code"/>
144
- </dd>
145
- </xsl:if>
146
-
147
- <xsl:for-each select="gmd:presentationForm/gmd:CI_PresentationFormCode/@codeListValue">
148
- <dt>Geospatial Data Presentation Form</dt>
149
- <dd><xsl:value-of select="."/></dd>
150
- </xsl:for-each>
151
-
152
- <xsl:for-each select="gmd:collectiveTitle">
153
- <dt>Collection Title</dt>
154
- <dd><xsl:value-of select="."/></dd>
155
- </xsl:for-each>
156
-
157
- <xsl:for-each select="gmd:otherCitationDetails">
158
- <dt>Other Citation Details</dt>
159
- <dd>
160
- <xsl:value-of select="."/>
161
- </dd>
162
- </xsl:for-each>
163
-
164
- <xsl:for-each select="gmd:series/gmd:CI_Series">
165
- <dt>Series</dt>
166
- <dd>
167
- <dl>
168
- <dd>
169
- <dt>Series Title</dt>
170
- <dd><xsl:value-of select="gmd:name"/></dd>
171
- <dt>Issue</dt>
172
- <dd><xsl:value-of select="gmd:issueIdentification"/></dd>
173
- </dd>
174
- </dl>
175
- </dd>
176
- </xsl:for-each>
177
- </dl>
178
- </dd>
179
- </xsl:for-each>
180
-
181
-
182
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:abstract">
183
- <dt>Abstract</dt>
184
- <dd><xsl:value-of select="."/></dd>
185
- </xsl:for-each>
186
-
187
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:purpose">
188
- <dt>Purpose</dt>
189
- <dd><xsl:value-of select="."/></dd>
190
- </xsl:for-each>
191
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:supplementalInformation">
192
- <dt>Supplemental Information</dt>
193
- <dd>
194
- <xsl:value-of select="."/>
195
- </dd>
196
- </xsl:for-each>
197
-
198
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:spatialResolution/gmd:MD_Resolution/gmd:equivalentScale/gmd:MD_RepresentativeFraction/gmd:denominator">
199
- <dt>Scale Denominator</dt>
200
- <dd>
201
- <xsl:value-of select="."/>
202
- </dd>
203
- </xsl:for-each>
204
-
205
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent">
206
- <dt>Temporal Extent</dt>
207
- <dd>
208
- <dl>
209
- <xsl:if test="ancestor-or-self::*/gmd:description">
210
- <dt>Currentness Reference</dt>
211
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:description"/></dd>
212
- </xsl:if>
213
- <xsl:choose>
214
- <xsl:when test="gml:TimePeriod">
215
- <dt>Time Period</dt>
216
- <dd>
217
- <dl>
218
- <dt>Begin</dt>
219
- <dd>
220
- <xsl:value-of select="gml:TimePeriod/gml:beginPosition"/>
221
- </dd>
222
- <dt>End</dt>
223
- <dd>
224
- <xsl:value-of select="gml:TimePeriod/gml:endPosition"/>
225
- </dd>
226
- </dl>
227
- </dd>
228
- </xsl:when>
229
- <xsl:when test="gml:TimeInstant">
230
- <dt>Time Instant</dt>
231
- <dd><xsl:value-of select="gml:TimeInstant/gml:timePosition"/></dd>
232
- </xsl:when>
233
- </xsl:choose>
234
- </dl>
235
- </dd>
236
- </xsl:for-each>
237
-
238
-
239
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox">
240
- <dt>Bounding Box</dt>
241
- <dd>
242
- <dl>
243
- <dt>West</dt>
244
- <dd>
245
- <xsl:value-of select="gmd:westBoundLongitude"/>
246
- </dd>
247
- <dt>East</dt>
248
- <dd>
249
- <xsl:value-of select="gmd:eastBoundLongitude"/>
250
- </dd>
251
- <dt>North</dt>
252
- <dd>
253
- <xsl:value-of select="gmd:northBoundLatitude"/>
254
- </dd>
255
- <dt>South</dt>
256
- <dd>
257
- <xsl:value-of select="gmd:southBoundLatitude"/>
258
- </dd>
259
- </dl>
260
- </dd>
261
- </xsl:for-each>
262
-
263
- <xsl:if test="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:topicCategory/gmd:MD_TopicCategoryCode">
264
- <dt>ISO Topic Category</dt>
265
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:topicCategory/gmd:MD_TopicCategoryCode">
266
- <dd>
267
- <xsl:value-of select="."/>
268
- </dd>
269
- </xsl:for-each>
270
- </xsl:if>
271
-
272
-
273
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords">
274
-
275
-
276
- <xsl:choose>
277
- <xsl:when test="ancestor-or-self::*/gmd:type/gmd:MD_KeywordTypeCode[@codeListValue='theme']">
278
- <dt>Theme Keyword</dt>
279
- <xsl:for-each select="gmd:keyword">
280
-
281
- <dd>
282
- <xsl:value-of select="."/>
283
- <xsl:if test="position()=last()">
284
- <dl>
285
- <dt>Theme Keyword Thesaurus</dt>
286
- <dd> <xsl:value-of select="ancestor-or-self::*/gmd:thesaurusName/gmd:CI_Citation/gmd:title"/></dd>
287
- </dl>
288
- </xsl:if>
289
- </dd>
290
- </xsl:for-each>
291
-
292
- </xsl:when>
293
-
294
- <xsl:when test="ancestor-or-self::*/gmd:type/gmd:MD_KeywordTypeCode[@codeListValue='place']">
295
- <dt>Place Keyword</dt>
296
- <xsl:for-each select="gmd:keyword">
297
-
298
- <dd>
299
- <xsl:value-of select="."/>
300
- <xsl:if test="position()=last()">
301
- <dl>
302
- <dt>Place Keyword Thesaurus</dt>
303
- <dd> <xsl:value-of select="ancestor-or-self::*/gmd:thesaurusName/gmd:CI_Citation/gmd:title"/></dd>
304
- </dl>
305
- </xsl:if>
306
- </dd>
307
- </xsl:for-each>
308
- </xsl:when>
309
-
310
- <xsl:when test="ancestor-or-self::*/gmd:type/gmd:MD_KeywordTypeCode[@codeListValue='temporal']">
311
- <dt>Temporal Keyword</dt>
312
- <xsl:for-each select="gmd:keyword">
313
-
314
- <dd>
315
- <xsl:value-of select="."/>
316
- </dd>
317
- </xsl:for-each>
318
- </xsl:when>
319
- </xsl:choose>
320
-
321
-
322
- </xsl:for-each>
323
-
324
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints">
325
-
326
- <xsl:if test="gmd:MD_LegalConstraints">
327
- <dt>Legal Constraints</dt>
328
- </xsl:if>
329
-
330
- <xsl:if test="gmd:MD_SecurityConstraints">
331
- <dt>Security Constraints</dt>
332
- </xsl:if>
333
-
334
- <xsl:if test="gmd:MD_Constraints">
335
- <dt>Resource Constraints</dt>
336
- </xsl:if>
337
-
338
- <dd>
339
- <dl>
340
- <xsl:if test="*/gmd:useLimitation">
341
- <dt>Use Limitation</dt>
342
- <dd>
343
- <xsl:value-of select="*/gmd:useLimitation"/>
344
- </dd>
345
- </xsl:if>
346
- <xsl:if test="*/gmd:accessConstraints">
347
- <dt>Access Restrictions</dt>
348
- <dd>
349
- <xsl:value-of select="*/gmd:accessConstraints/gmd:MD_RestrictionCode/@codeListValue"/>
350
- </dd>
351
- </xsl:if>
352
- <xsl:if test="*/gmd:useConstraints">
353
- <dt>Use Restrictions</dt>
354
- <dd>
355
- <xsl:value-of select="*/gmd:useConstraints/gmd:MD_RestrictionCode/@codeListValue"/>
356
- </dd>
357
- </xsl:if>
358
- <xsl:if test="*/gmd:otherConstraints">
359
- <dt>Other Restrictions</dt>
360
- <dd>
361
- <xsl:value-of select="*/gmd:otherConstraints"/>
362
- </dd>
363
- </xsl:if>
364
- </dl>
365
- </dd>
366
- </xsl:for-each>
367
-
368
-
369
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:status">
370
- <dt>Status</dt>
371
- <dd><xsl:value-of select="gmd:MD_ProgressCode/@codeListValue"/></dd>
372
- </xsl:for-each>
373
-
374
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceMaintenance/gmd:MD_MaintenanceInformation/gmd:maintenanceAndUpdateFrequency">
375
- <dt>Maintenance and Update Frequency</dt>
376
- <dd>
377
- <xsl:value-of select="gmd:MD_MaintenanceFrequencyCode/@codeListValue"/>
378
- </dd>
379
- </xsl:for-each>
380
-
381
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:aggregationInfo/gmd:MD_AggregateInformation/gmd:associationType/gmd:DS_AssociationTypeCode[@codeListValue='largerWorkCitation']">
382
- <dt>Collection</dt>
383
- <dd>
384
- <dl>
385
- <dt>Collection Title</dt>
386
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:title"/></dd>
387
- <dt>URL</dt>
388
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:code"/></dd>
389
- <xsl:for-each select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='originator']">
390
- <dt>Originator</dt>
391
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/></dd>
392
- </xsl:for-each>
393
- <xsl:for-each select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='publisher']">
394
- <dt>Publisher</dt>
395
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/></dd>
396
- </xsl:for-each>
397
- <xsl:for-each select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:date">
398
- <xsl:if test="contains(descendant-or-self::*/gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'publication')">
399
- <dt>Publication Date</dt>
400
- <dd><xsl:value-of select="gmd:CI_Date/gmd:date"/></dd>
401
- </xsl:if>
402
- <xsl:if test="contains(descendant-or-self::*/gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'creation')">
403
- <dt>Creation Date</dt>
404
- <dd><xsl:value-of select="gmd:CI_Date/gmd:date"/></dd>
405
- </xsl:if>
406
- <xsl:if test="contains(descendant-or-self::*/gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'revision')">
407
- <dt>Revision Date</dt>
408
- <dd><xsl:value-of select="gmd:CI_Date/gmd:date"/></dd>
409
- </xsl:if>
410
- </xsl:for-each>
411
- <xsl:for-each select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:series/gmd:CI_Series">
412
- <dt>Series</dt>
413
- <dd>
414
- <dl>
415
- <dd>
416
- <dt>Series Title</dt>
417
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:name"/></dd>
418
- <dt>Issue</dt>
419
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:issueIdentification"/></dd>
420
- </dd>
421
- </dl>
422
- </dd>
423
- </xsl:for-each>
424
- </dl>
425
- </dd>
426
- </xsl:for-each>
427
-
428
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:aggregationInfo/gmd:MD_AggregateInformation/gmd:associationType/gmd:DS_AssociationTypeCode[@codeListValue='crossReference']">
429
- <dt>Cross Reference</dt>
430
- <dd>
431
- <dl>
432
- <dt>Title</dt>
433
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:title"/></dd>
434
- <dt>URL</dt>
435
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:code"/></dd>
436
- <xsl:for-each select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='originator']">
437
- <dt>Originator</dt>
438
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/></dd>
439
- </xsl:for-each>
440
- <xsl:for-each select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='publisher']">
441
- <dt>Publisher</dt>
442
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/></dd>
443
- </xsl:for-each>
444
- <xsl:for-each select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:date">
445
- <xsl:if test="contains(descendant-or-self::*/gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'publication')">
446
- <dt>Publication Date</dt>
447
- <dd><xsl:value-of select="gmd:CI_Date/gmd:date"/></dd>
448
- </xsl:if>
449
- <xsl:if test="contains(descendant-or-self::*/gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'creation')">
450
- <dt>Creation Date</dt>
451
- <dd><xsl:value-of select="gmd:CI_Date/gmd:date"/></dd>
452
- </xsl:if>
453
- <xsl:if test="contains(descendant-or-self::*/gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'revision')">
454
- <dt>Revision Date</dt>
455
- <dd><xsl:value-of select="gmd:CI_Date/gmd:date"/></dd>
456
- </xsl:if>
457
- </xsl:for-each>
458
- </dl>
459
- </dd>
460
- </xsl:for-each>
461
- <dt>Language</dt>
462
- <dd>
463
- <xsl:value-of select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:language"/>
464
- </dd>
465
-
466
- <xsl:if test="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:credit">
467
- <dt>Credit</dt>
468
- <dd><xsl:value-of select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:credit"/></dd>
469
- </xsl:if>
470
-
471
- <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact">
472
- <dt>Point of Contact</dt>
473
- <dd>
474
- <dl>
475
- <xsl:for-each select="gmd:CI_ResponsibleParty">
476
- <dt>Contact</dt>
477
- <dd>
478
- <xsl:value-of select="gmd:organisationName | gmd:individualName"/>
479
- </dd>
480
- <xsl:if test="gmd:positionName">
481
- <dt>Position Name</dt>
482
- <dd>
483
- <xsl:value-of select="gmd:positionName"/>
484
- </dd>
485
- </xsl:if>
486
-
487
- <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:deliveryPoint">
488
- <dt>Delivery Point</dt>
489
- <dd>
490
- <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:deliveryPoint"/>
491
- </dd>
492
- </xsl:if>
493
-
494
- <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city">
495
- <dt>City</dt>
496
- <dd>
497
- <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city"/>
498
- </dd>
499
- </xsl:if>
500
- <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:administrativeArea">
501
- <dt>Administrative Area</dt>
502
- <dd>
503
- <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:administrativeArea"/>
504
- </dd>
505
- </xsl:if>
506
- <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:postalCode">
507
- <dt>Postal Code</dt>
508
- <dd><xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:postalCode"/></dd>
509
- </xsl:if>
510
- <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:country">
511
- <dt>Country</dt>
512
- <dd>
513
- <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:country"/>
514
- </dd>
515
- </xsl:if>
516
- <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress">
517
- <dt>Email</dt>
518
- <dd>
519
- <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress"/>
520
- </dd>
521
- </xsl:if>
522
- <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:phone/gmd:CI_Telephone/gmd:voice">
523
- <dt>Phone</dt>
524
- <dd>
525
- <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:phone/gmd:CI_Telephone/gmd:voice"/>
526
- </dd>
527
- </xsl:if>
528
- </xsl:for-each>
529
- </dl>
530
- </dd>
531
- </xsl:for-each>
532
- </dl>
533
- </dd>
534
- </div>
535
-
536
- <!-- Spatial Reference Info -->
537
-
538
- <xsl:if test="gmd:referenceSystemInfo">
539
- <div id="iso-spatial-reference-info">
540
- <dt>Spatial Reference Information</dt>
541
- <dd>
542
- <dl>
543
- <dt>Reference System Identifier</dt>
544
- <dd>
545
- <dl>
546
- <dt>Code</dt>
547
- <dd><xsl:value-of select="gmd:referenceSystemInfo/gmd:MD_ReferenceSystem/gmd:referenceSystemIdentifier/gmd:RS_Identifier/gmd:code"/></dd>
548
- <dt>Code Space</dt>
549
- <dd><xsl:value-of select="gmd:referenceSystemInfo/gmd:MD_ReferenceSystem/gmd:referenceSystemIdentifier/gmd:RS_Identifier/gmd:codeSpace"/></dd>
550
- <dt>Version</dt>
551
- <dd><xsl:value-of select="gmd:referenceSystemInfo/gmd:MD_ReferenceSystem/gmd:referenceSystemIdentifier/gmd:RS_Identifier/gmd:version"/></dd>
552
- </dl>
553
- </dd>
554
- </dl>
555
- </dd>
556
- </div>
557
- </xsl:if>
558
-
559
- <!-- Data Quality Info -->
560
- <xsl:if test="gmd:dataQualityInfo/gmd:DQ_DataQuality">
561
- <div id="iso-data-quality-info">
562
- <dt>Data Quality Information</dt>
563
- <dd>
564
- <dl>
565
- <xsl:if test="gmd:DQ_Scope/gmd:level">
566
- <dt>Hierarchy Level</dt>
567
- <dd>
568
- <xsl:value-of select="gmd:DQ_Scope/gmd:level/gmd:MD_ScopeCode[@codeListValue]"/>
569
- </dd>
570
- </xsl:if>
571
- <xsl:for-each select="gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:report">
572
- <xsl:if test="gmd:DQ_QuantitativeAttributeAccuracy">
573
- <dt>Quantitative Attribute Accuracy Report</dt>
574
- <dd>
575
- <dl>
576
- <xsl:if test="gmd:DQ_QuantitativeAttributeAccuracy/gmd:evaluationMethodDescription/text()">
577
- <dt>Evaluation Method</dt>
578
- <dd><xsl:value-of select="gmd:DQ_QuantitativeAttributeAccuracy/gmd:evaluationMethodDescription"/></dd>
579
- </xsl:if>
580
- <xsl:if test="gmd:DQ_QuantitativeAttributeAccuracy/gmd:result/text()">
581
- <dt>Result</dt>
582
- <dd><xsl:value-of select="gmd:DQ_QuantitativeAttributeAccuracy/gmd:result"/></dd>
583
- </xsl:if>
584
- </dl>
585
- </dd>
586
- </xsl:if>
587
-
588
- <xsl:if test="gmd:DQ_AbsoluteExternalPositionalAccuracy">
589
- <dt>Absolute External Positional Accuracy</dt>
590
- <dd>
591
- <dl>
592
- <xsl:if test="gmd:DQ_AbsoluteExternalPositionalAccuracy/gmd:evaluationMethodDescription/text()">
593
- <dt>Evaluation Method</dt>
594
- <dd><xsl:value-of select="gmd:DQ_AbsoluteExternalPositionalAccuracy/gmd:evaluationMethodDescription"/></dd>
595
- </xsl:if>
596
- <xsl:if test="gmd:DQ_AbsoluteExternalPositionalAccuracy/gmd:result/text()">
597
- <dt>Result</dt>
598
- <dd><xsl:value-of select="gmd:DQ_AbsoluteExternalPositionalAccuracy/gmd:result"/></dd>
599
- </xsl:if>
600
- </dl>
601
- </dd>
602
- </xsl:if>
603
-
604
- <xsl:if test="gmd:DQ_CompletenessCommission">
605
- <dt>Completeness Commission</dt>
606
- <dd>
607
- <dl>
608
- <xsl:if test="gmd:DQ_CompletenessCommission/gmd:evaluationMethodDescription/text()">
609
- <dt>Evaluation Method</dt>
610
- <dd><xsl:value-of select="gmd:DQ_CompletenessCommission/gmd:evaluationMethodDescription"/></dd>
611
- </xsl:if>
612
- <xsl:if test="gmd:DQ_CompletenessCommission/gmd:result/text()">
613
- <dt>Result</dt>
614
- <dd><xsl:value-of select="gmd:DQ_CompletenessCommission/gmd:result"/></dd>
615
- </xsl:if>
616
- </dl>
617
- </dd>
618
- </xsl:if>
619
- </xsl:for-each>
620
- <xsl:for-each select="gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:lineage/gmd:LI_Lineage">
621
- <dt>Lineage</dt>
622
- <dd>
623
- <dl>
624
- <xsl:if test="gmd:statement">
625
- <dt>Statement</dt>
626
- <dd>
627
- <xsl:value-of select="gmd:statement"/>
628
- </dd>
629
- </xsl:if>
630
- <xsl:for-each select="gmd:processStep/gmd:LI_ProcessStep">
631
- <dt>Process Step</dt>
632
- <dd>
633
- <dl>
634
- <xsl:if test="gmd:description">
635
- <dt>Description</dt>
636
- <dd>
637
- <xsl:value-of select="gmd:description"/>
638
- </dd>
639
- </xsl:if>
640
-
641
- <xsl:for-each select="gmd:CI_ResponsibleParty">
642
- <dt>Processor</dt>
643
- <dd>
644
- <xsl:value-of select="gmd:individualName | gmd:organisationName"/>
645
- </dd>
646
- </xsl:for-each>
647
-
648
- <xsl:if test="gmd:dateTime">
649
- <dt>Process Date</dt>
650
- <dd>
651
- <xsl:value-of select="gmd:dateTime"/>
652
- </dd>
653
- </xsl:if>
654
- </dl>
655
- </dd>
656
- </xsl:for-each>
657
- <xsl:for-each select="gmd:source/gmd:LI_Source/gmd:sourceCitation">
658
- <dt>Source</dt>
659
- <dd>
660
- <dl>
661
- <dt>Title</dt>
662
- <dd>
663
- <xsl:value-of select="gmd:CI_Citation/gmd:title"/>
664
- </dd>
665
- <xsl:for-each select="gmd:CI_Citation/gmd:date/gmd:CI_Date">
666
- <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'publication')">
667
- <dt>Publication Date</dt>
668
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/></dd>
669
- </xsl:if>
670
- <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'creation')">
671
- <dt>Creation Date</dt>
672
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/></dd>
673
- </xsl:if>
674
- <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'revision')">
675
- <dt>Revision Date</dt>
676
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/></dd>
677
- </xsl:if>
678
- </xsl:for-each>
679
- <xsl:for-each select="gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='originator']">
680
- <dt>Originator</dt>
681
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/></dd>
682
- </xsl:for-each>
683
-
684
- <xsl:for-each select="gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='publisher']">
685
- <dt>Publisher</dt>
686
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/></dd>
687
- <xsl:if test="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city">
688
- <dt>Place of Publication</dt>
689
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city"/></dd>
690
- </xsl:if>
691
- </xsl:for-each>
692
-
693
- <xsl:if test="gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:code">
694
- <dt>Identifier</dt>
695
- <dd><xsl:value-of select="gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:code"/></dd>
696
- </xsl:if>
697
- <xsl:if test="ancestor-or-self::*/gmd:description">
698
- <dt>Description</dt>
699
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:description"/></dd>
700
- </xsl:if>
701
- </dl>
702
- </dd>
703
- </xsl:for-each>
704
- </dl>
705
- </dd>
706
- </xsl:for-each>
707
-
708
- </dl>
709
- </dd>
710
- </div>
711
- </xsl:if>
712
-
713
- <!-- Distribution -->
714
- <xsl:if test="gmd:distributionInfo">
715
- <div id="iso-distribution-info">
716
- <dt>Distribution Information</dt>
717
- <dd>
718
- <dl>
719
- <xsl:if test="gmd:distributionInfo/gmd:MD_Distribution/gmd:distributionFormat/gmd:MD_Format">
720
- <dt>Format Name</dt>
721
- <dd>
722
- <xsl:value-of select="gmd:distributionInfo/gmd:MD_Distribution/gmd:distributionFormat/gmd:MD_Format/gmd:name"/>
723
- </dd>
724
- <xsl:if test="gmd:distributionInfo/gmd:MD_Distribution/gmd:distributionFormat/gmd:MD_Format/gmd:version/text()">
725
- <dt>Format Version</dt>
726
- <dd>
727
- <xsl:value-of select="gmd:distributionInfo/gmd:MD_Distribution/gmd:distributionFormat/gmd:MD_Format/gmd:version"/>
728
- </dd>
729
- </xsl:if>
730
- </xsl:if>
731
-
732
- <xsl:for-each select="gmd:distributionInfo/gmd:MD_Distribution/gmd:distributor/gmd:MD_Distributor">
733
- <dt>Distributor</dt>
734
- <dd>
735
- <xsl:value-of select="gmd:distributorContact/gmd:CI_ResponsibleParty/gmd:organisationName"/>
736
- </dd>
737
- </xsl:for-each>
738
-
739
- <xsl:for-each select="gmd:distributionInfo/gmd:MD_Distribution/gmd:transferOptions/gmd:MD_DigitalTransferOptions">
740
- <dt>Online Access</dt>
741
- <dd>
742
- <xsl:value-of select="gmd:onLine/gmd:CI_OnlineResource/gmd:linkage/gmd:URL"/>
743
- </dd>
744
- <dt>Protocol</dt>
745
- <dd>
746
- <xsl:value-of select="gmd:onLine/gmd:CI_OnlineResource/gmd:protocol"/>
747
- </dd>
748
- <dt>Name</dt>
749
- <dd>
750
- <xsl:value-of select="gmd:onLine/gmd:CI_OnlineResource/gmd:name"/>
751
- </dd>
752
- <xsl:if test="gmd:onLine/gmd:CI_OnlineResource/gmd:function/gmd:CI_OnLineFunctionCode/@codeListValue">
753
- <dt>Function</dt>
754
- <dd>
755
- <xsl:value-of select="gmd:onLine/gmd:CI_OnlineResource/gmd:function/gmd:CI_OnLineFunctionCode/@codeListValue"/>
756
- </dd>
757
- </xsl:if>
758
- <xsl:if test="gmd:distributionInfo/gmd:MD_Distribution/gmd:transferOptions/gmd:MD_DigitalTransferOptions/gmd:transferSize">
759
- <dt>Transfer Size</dt>
760
- <dd><xsl:value-of select="gmd:distributionInfo/gmd:MD_Distribution/gmd:transferOptions/gmd:MD_DigitalTransferOptions/gmd:transferSize"/></dd>
761
- </xsl:if>
762
- </xsl:for-each>
763
- </dl>
764
- </dd>
765
- </div>
766
- </xsl:if>
767
-
768
- <!-- Content Info -->
769
- <xsl:if test="gmd:contentInfo">
770
- <div id="iso-content-info">
771
- <dt>Content Information</dt>
772
- <dd>
773
- <dl>
774
- <xsl:if test="gmd:contentInfo/gmd:MD_FeatureCatalogueDescription">
775
- <dt>Feature Catalog Description</dt>
776
- <dd>
777
- <dl>
778
- <dt>Compliance Code</dt>
779
- <dd><xsl:value-of select="gmd:contentInfo/gmd:MD_FeatureCatalogueDescription/gmd:complianceCode"/></dd>
780
- <dt>Language</dt>
781
- <dd><xsl:value-of select="gmd:contentInfo/gmd:MD_FeatureCatalogueDescription/gmd:language"/></dd>
782
- <dt>Included With Dataset</dt>
783
- <dd><xsl:value-of select="gmd:contentInfo/gmd:MD_FeatureCatalogueDescription/gmd:includedWithDataset"/></dd>
784
- <dt>Feature Catalog Citation</dt>
785
- <dd>
786
- <dl>
787
- <dt>Title</dt>
788
- <dd>
789
- <xsl:value-of select="gmd:contentInfo/gmd:MD_FeatureCatalogueDescription/gmd:featureCatalogueCitation/gmd:CI_Citation/gmd:title"/>
790
- </dd>
791
-
792
- <xsl:for-each select="gmd:contentInfo/gmd:MD_FeatureCatalogueDescription/gmd:featureCatalogueCitation/gmd:CI_Citation/gmd:date/gmd:CI_Date">
793
- <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'publication')">
794
- <dt>Publication Date</dt>
795
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/></dd>
796
- </xsl:if>
797
- <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'creation')">
798
- <dt>Creation Date</dt>
799
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/></dd>
800
- </xsl:if>
801
- <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'revision')">
802
- <dt>Revision Date</dt>
803
- <dd><xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/></dd>
804
- </xsl:if>
805
- </xsl:for-each>
806
- <dt>Feature Catalog Identifier</dt>
807
- <dd><xsl:value-of select="gmd:contentInfo/gmd:MD_FeatureCatalogueDescription/gmd:featureCatalogueCitation/gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:code"/></dd>
808
- </dl>
809
- </dd>
810
- </dl>
811
- </dd>
812
- </xsl:if>
813
- <xsl:if test="gmd:contentInfo/gmd:MD_ImageDescription">
814
- <dt>Content Type</dt>
815
- <dd>
816
- <xsl:value-of select="gmd:contentInfo/gmd:MD_ImageDescription/gmd:contentType/gmd:MD_CoverageContentTypeCode[@codeListValue]"/>
817
- </dd>
818
- </xsl:if>
819
- </dl>
820
- </dd>
821
- </div>
822
- </xsl:if>
823
- <!-- Spatial Representation -->
824
- <xsl:if test="gmd:spatialRepresentationInfo">
825
- <div id="iso-spatial-representation-info">
826
- <dt>Spatial Representation Information</dt>
827
- <dd>
828
- <dl>
829
- <xsl:choose>
830
- <xsl:when test="gmd:spatialRepresentationInfo/gmd:MD_VectorSpatialRepresentation">
831
- <dt>Vector</dt>
832
- <dd>
833
- <dl>
834
- <dt>Topology Level</dt>
835
- <dd>
836
- <xsl:value-of select="gmd:spatialRepresentationInfo/gmd:MD_VectorSpatialRepresentation/gmd:topologyLevel/gmd:MD_TopologyLevelCode[@codeListValue]"/>
837
- </dd>
838
- <dt>Vector Object Type</dt>
839
- <dd>
840
- <xsl:value-of select="gmd:spatialRepresentationInfo/gmd:MD_VectorSpatialRepresentation/gmd:geometricObjects/gmd:MD_GeometricObjects/gmd:geometricObjectType/gmd:MD_GeometricObjectTypeCode[@codeListValue]"/>
841
- </dd>
842
- <dt>Vector Object Count</dt>
843
- <dd>
844
- <xsl:value-of select="gmd:spatialRepresentationInfo/gmd:MD_VectorSpatialRepresentation/gmd:geometricObjects/gmd:MD_GeometricObjects/gmd:geometricObjectCount"/>
845
- </dd>
846
- </dl>
847
- </dd>
848
- </xsl:when>
849
-
850
- <xsl:when test="gmd:spatialRepresentationInfo/gmd:MD_GridSpatialRepresentation">
851
- <dt>Raster</dt>
852
- <dd>
853
- <dl>
854
- <xsl:if test="gmd:spatialRepresentationInfo/gmd:MD_GridSpatialRepresentation/gmd:numberOfDimensions">
855
- <dt>Number of Dimensions</dt>
856
- <dd>
857
- <xsl:value-of select="gmd:spatialRepresentationInfo/gmd:MD_GridSpatialRepresentation/gmd:numberOfDimensions"/>
858
- </dd>
859
- </xsl:if>
860
- <dd>
861
- <dl>
862
- <xsl:for-each select="gmd:spatialRepresentationInfo/MD_GridSpatialRepresentation/gmd:axisDimensionProperties/gmd:MD_Dimension">
863
- <xsl:if test="gmd:dimensionName/gmd:MD_DimensionNameTypeCode/@codeListValue='column'">
864
- <dt>Column Count</dt>
865
- <dd>
866
- <xsl:value-of select="gmd:dimensionSize"/>
867
- </dd></xsl:if>
868
-
869
- <xsl:if test="gmd:dimensionName/gmd:MD_DimensionNameTypeCode/@codeListValue='row'">
870
- <dt>Row Count</dt>
871
- <dd>
872
- <xsl:value-of select="gmd:dimensionSize"/>
873
- </dd></xsl:if>
874
- </xsl:for-each>
875
-
876
- <xsl:if test="gmd:spatialRepresentationInfo/MD_GridSpatialRepresentation/gmd:cellGeometry/gmd:MD_CellGeometryCode">
877
- <dt>Cell Geometry Type</dt>
878
- <dd>
879
- <xsl:value-of select="gmd:spatialRepresentationInfo/MD_GridSpatialRepresentation/gmd:cellGeometry/gmd:MD_CellGeometryCode/@codeListValue"/>
880
- </dd>
881
- </xsl:if>
882
-
883
- <xsl:if test="gmd:spatialRepresentationInfo/MD_GridSpatialRepresentation/gmd:cornerPoints">
884
- <dt>Corner Points</dt>
885
- <dd>
886
- <dl>
887
- <xsl:for-each select="gmd:spatialRepresentationInfo/MD_GridSpatialRepresentation/gmd:cornerPoints/gml:Point">
888
- <dt>Point</dt>
889
- <dd><xsl:value-of select="gml:pos"/></dd>
890
- </xsl:for-each>
891
- </dl>
892
- </dd>
893
-
894
- <xsl:for-each select="gmd:spatialRepresentationInfo/MD_GridSpatialRepresentation/gmd:centerPoint/gml:Point">
895
- <dt>Center Point</dt>
896
- <dd><xsl:value-of select="gml:pos"/></dd>
897
- </xsl:for-each>
898
- </xsl:if>
899
- </dl>
900
- </dd>
901
- </dl>
902
- </dd>
903
- </xsl:when>
904
- <xsl:when test="gmd:spatialRepresentationInfo/gmd:MD_Georectified">
905
- <dt>Raster</dt>
906
- <dd>
907
- <dl>
908
- <xsl:if test="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:numberOfDimensions">
909
- <dt>Number of Dimensions</dt>
910
- <dd>
911
- <xsl:value-of select="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:numberOfDimensions"/>
912
- </dd>
913
- </xsl:if>
914
-
915
- <xsl:for-each select="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:axisDimensionProperties/gmd:MD_Dimension">
916
- <xsl:if test="gmd:dimensionName/gmd:MD_DimensionNameTypeCode/@codeListValue='column'">
917
- <dt>Column Count</dt>
918
- <dd>
919
- <xsl:value-of select="gmd:dimensionSize"/>
920
- </dd></xsl:if>
921
-
922
- <xsl:if test="gmd:dimensionName/gmd:MD_DimensionNameTypeCode/@codeListValue='row'">
923
- <dt>Row Count</dt>
924
- <dd>
925
- <xsl:value-of select="gmd:dimensionSize"/>
926
- </dd></xsl:if>
927
- </xsl:for-each>
928
-
929
- <xsl:if test="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:cellGeometry/gmd:MD_CellGeometryCode">
930
- <dt>Cell Geometry Type</dt>
931
- <dd>
932
- <xsl:value-of select="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:cellGeometry/gmd:MD_CellGeometryCode/@codeListValue"/>
933
- </dd>
934
- </xsl:if>
935
-
936
- <xsl:if test="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:cornerPoints">
937
- <dt>Corner Points</dt>
938
- <dd>
939
- <dl>
940
- <xsl:for-each select="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:cornerPoints/gml:Point">
941
- <dt>Point</dt>
942
- <dd><xsl:value-of select="gml:pos"/></dd>
943
- </xsl:for-each>
944
- </dl>
945
- </dd>
946
-
947
- <xsl:for-each select="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:centerPoint/gml:Point">
948
- <dt>Center Point</dt>
949
- <dd><xsl:value-of select="gml:pos"/></dd>
950
- </xsl:for-each>
951
- </xsl:if>
952
- </dl>
953
- </dd>
954
- </xsl:when>
955
- </xsl:choose>
956
- </dl>
957
- </dd>
958
- </div>
959
- </xsl:if>
960
-
961
- <!-- Metadata Reference Info -->
962
- <div id="iso-metadata-reference-info">
963
- <dt>Metadata Reference Information</dt>
964
- <dd>
965
- <dl>
966
- <dt>Hierarchy Level</dt>
967
- <dd>
968
- <xsl:value-of select="gmd:hierarchyLevelName"/>
969
- </dd>
970
- <dt>Metadata File Identifier</dt>
971
- <dd>
972
- <xsl:value-of select="gmd:fileIdentifier"/>
973
- </dd>
974
- <xsl:if test="gmd:parentIdentifier">
975
- <dt>Parent Identifier</dt>
976
- <dd>
977
- <xsl:value-of select="gmd:parentIdentifier"/>
978
- </dd>
979
- </xsl:if>
980
- <xsl:if test="gmd:dataSetURI">
981
- <dt>Dataset URI</dt>
982
- <dd>
983
- <xsl:value-of select="gmd:dataSetURI"/>
984
- </dd>
985
- </xsl:if>
986
- <xsl:for-each select="gmd:metadataMaintenance/gmd:MD_MaintenanceInformation/gmd:contact">
987
- <dt>Metadata Point of Contact</dt>
988
- <dd>
989
- <dl>
990
- <xsl:for-each select="gmd:CI_ResponsibleParty">
991
- <dt>Name</dt>
992
- <dd>
993
- <xsl:value-of select="gmd:organisationName | gmd:individualName"/>
994
- </dd>
995
- <xsl:if test="gmd:positionName">
996
- <dt>Position Name</dt>
997
- <dd>
998
- <xsl:value-of select="gmd:positionName"/>
999
- </dd>
1000
- </xsl:if>
1001
- <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:deliveryPoint">
1002
- <dt>Delivery Point</dt>
1003
- <dd>
1004
- <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:deliveryPoint"/>
1005
- </dd>
1006
- </xsl:if>
1007
- <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city">
1008
- <dt>City</dt>
1009
- <dd>
1010
- <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city"/>
1011
- </dd>
1012
- </xsl:if>
1013
- <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:administrativeArea">
1014
- <dt>Administrative Area</dt>
1015
- <dd>
1016
- <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:administrativeArea"/>
1017
- </dd>
1018
- </xsl:if>
1019
- <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:postalCode">
1020
- <dt>Postal Code</dt>
1021
- <dd>
1022
- <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:postalCode"/>
1023
- </dd>
1024
- </xsl:if>
1025
- <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:country">
1026
- <dt>Country</dt>
1027
- <dd>
1028
- <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:country"/>
1029
- </dd>
1030
- </xsl:if>
1031
- <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress">
1032
- <dt>Email</dt>
1033
- <dd>
1034
- <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress"/>
1035
- </dd>
1036
- </xsl:if>
1037
- <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:phone/gmd:CI_Telephone/gmd:voice">
1038
- <dt>Phone</dt>
1039
- <dd>
1040
- <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:phone/gmd:CI_Telephone/gmd:voice"/>
1041
- </dd>
1042
- </xsl:if>
1043
- </xsl:for-each>
1044
- </dl>
1045
- </dd>
1046
- </xsl:for-each>
1047
- <dt>Metadata Date Stamp</dt>
1048
- <dd>
1049
- <xsl:value-of select="gmd:dateStamp"/>
1050
- </dd>
1051
- <dt>Metadata Standard Name</dt>
1052
- <dd>
1053
- <xsl:value-of select="gmd:metadataStandardName"/>
1054
- </dd>
1055
- <dt>Metadata Standard Version</dt>
1056
- <dd>
1057
- <xsl:value-of select="gmd:metadataStandardVersion"/>
1058
- </dd>
1059
- <xsl:if test="gmd:characterSet/gmd:MD_CharacterSetCode[@codeListValue]/text()">
1060
- <dt>Character Set</dt>
1061
- <dd>
1062
- <xsl:value-of select="gmd:characterSet/gmd:MD_CharacterSetCode[@codeListValue]"/>
1063
- </dd>
1064
- </xsl:if>
1065
- </dl>
1066
- </dd>
1067
- </dl>
1068
- </div>
1069
- </xsl:template>
1070
- </xsl:stylesheet>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- iso2html.xsl - Transformation from ISO 19139 into HTML Created by Kim Durante, Stanford University Libraries TODO: Needs full Data Quality section mapped Not sure if complete contactInfo is needed for each Responsible Party? -->
3
+ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:gts="http://www.isotc211.org/2005/gts" xmlns:srv="http://www.isotc211.org/2005/srv" xmlns:gml="http://www.opengis.net/gml" exclude-result-prefixes="gmd gco gml srv xlink gts">
4
+ <xsl:output method="html" encoding="UTF-8" indent="yes"/>
5
+ <xsl:template match="/">
6
+ <html>
7
+ <head>
8
+ <title>
9
+ <xsl:value-of select="gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title"/>
10
+ </title>
11
+ </head>
12
+ <body>
13
+ <h1>
14
+ <xsl:value-of select="gmd:MD_Metadata/gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation/gmd:title"/>
15
+ </h1>
16
+ <ul>
17
+ <xsl:if test="gmd:MD_Metadata/gmd:identificationInfo">
18
+ <li>
19
+ <a href="#iso-identification-info">Identification Information</a>
20
+ </li>
21
+ </xsl:if>
22
+ <xsl:if test="gmd:MD_Metadata/gmd:referenceSystemInfo">
23
+ <li>
24
+ <a href="#iso-spatial-reference-info">Spatial Reference Information</a>
25
+ </li>
26
+ </xsl:if>
27
+ <xsl:if test="gmd:MD_Metadata/gmd:dataQualityInfo">
28
+ <li>
29
+ <a href="#iso-data-quality-info">Data Quality Information</a>
30
+ </li>
31
+ </xsl:if>
32
+ <xsl:if test="gmd:MD_Metadata/gmd:distributionInfo">
33
+ <li>
34
+ <a href="#iso-distribution-info">Distribution Information</a>
35
+ </li>
36
+ </xsl:if>
37
+ <xsl:if test="gmd:MD_Metadata/gmd:contentInfo">
38
+ <li>
39
+ <a href="#iso-content-info">Content Information</a>
40
+ </li>
41
+ </xsl:if>
42
+ <xsl:if test="gmd:MD_Metadata/gmd:spatialRepresentationInfo">
43
+ <li>
44
+ <a href="#iso-spatial-representation-info">Spatial Representation Information</a>
45
+ </li>
46
+ </xsl:if>
47
+ <xsl:if test="gmd:MD_Metadata">
48
+ <li>
49
+ <a href="#iso-metadata-reference-info">Metadata Reference Information</a>
50
+ </li>
51
+ </xsl:if>
52
+ </ul>
53
+ <xsl:apply-templates/>
54
+ </body>
55
+ </html>
56
+ </xsl:template>
57
+ <xsl:template match="gmd:MD_Metadata">
58
+ <div id="iso-identification-info">
59
+ <h2>Identification Information</h2>
60
+ <dl>
61
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:citation/gmd:CI_Citation">
62
+ <dt>Citation</dt>
63
+ <dd>
64
+ <dl>
65
+ <dt>Title</dt>
66
+ <dd>
67
+ <xsl:value-of select="gmd:title"/>
68
+ </dd>
69
+ <xsl:choose>
70
+ <xsl:when test="gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='originator']">
71
+ <xsl:for-each select="gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='originator']">
72
+ <dt>Originator</dt>
73
+ <dd>
74
+ <xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/>
75
+ </dd>
76
+ </xsl:for-each>
77
+ </xsl:when>
78
+ <xsl:when test="//gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact">
79
+ <xsl:for-each select="//gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact">
80
+ <xsl:if test="gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode/@codeListValue='originator'">
81
+ <dt>Originator</dt>
82
+ <dd>
83
+ <xsl:value-of select="gmd:CI_ResponsibleParty/gmd:organisationName | gmd:CI_ResponsibleParty/gmd:individualName"/>
84
+ </dd>
85
+ </xsl:if>
86
+ </xsl:for-each>
87
+ </xsl:when>
88
+ </xsl:choose>
89
+ <xsl:for-each select="gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='publisher']">
90
+ <dt>Publisher</dt>
91
+ <dd>
92
+ <xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/>
93
+ </dd>
94
+ <xsl:if test="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city">
95
+ <dt>Place of Publication</dt>
96
+ <dd>
97
+ <xsl:value-of select="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city"/>
98
+ <xsl:if test="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:administrativeArea">
99
+ <xsl:text>,</xsl:text>
100
+ <xsl:value-of select="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:administrativeArea"/>
101
+ </xsl:if>
102
+ <xsl:if test="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:country">
103
+ <xsl:text>,</xsl:text>
104
+ <xsl:value-of select="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:country"/>
105
+ </xsl:if>
106
+ </dd>
107
+ </xsl:if>
108
+ </xsl:for-each>
109
+ <xsl:for-each select="gmd:date/gmd:CI_Date">
110
+ <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'publication')">
111
+ <dt>Publication Date</dt>
112
+ <dd>
113
+ <xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/>
114
+ </dd>
115
+ </xsl:if>
116
+ <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'creation')">
117
+ <dt>Creation Date</dt>
118
+ <dd>
119
+ <xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/>
120
+ </dd>
121
+ </xsl:if>
122
+ <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'revision')">
123
+ <dt>Revision Date</dt>
124
+ <dd>
125
+ <xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/>
126
+ </dd>
127
+ </xsl:if>
128
+ </xsl:for-each>
129
+ <xsl:if test="gmd:edition">
130
+ <dt>Edition</dt>
131
+ <dd>
132
+ <xsl:value-of select="gmd:edition"/>
133
+ </dd>
134
+ </xsl:if>
135
+ <xsl:if test="gmd:identifier/gmd:MD_Identifier/gmd:code">
136
+ <dt>Identifier</dt>
137
+ <dd>
138
+ <xsl:value-of select="gmd:identifier/gmd:MD_Identifier/gmd:code"/>
139
+ </dd>
140
+ </xsl:if>
141
+ <xsl:for-each select="gmd:presentationForm/gmd:CI_PresentationFormCode/@codeListValue">
142
+ <dt>Geospatial Data Presentation Form</dt>
143
+ <dd>
144
+ <xsl:value-of select="."/>
145
+ </dd>
146
+ </xsl:for-each>
147
+ <xsl:for-each select="gmd:collectiveTitle">
148
+ <dt>Collection Title</dt>
149
+ <dd>
150
+ <xsl:value-of select="."/>
151
+ </dd>
152
+ </xsl:for-each>
153
+ <xsl:for-each select="gmd:otherCitationDetails">
154
+ <dt>Other Citation Details</dt>
155
+ <dd>
156
+ <xsl:value-of select="."/>
157
+ </dd>
158
+ </xsl:for-each>
159
+ <xsl:for-each select="gmd:series/gmd:CI_Series">
160
+ <dt>Series</dt>
161
+ <dd>
162
+ <dl>
163
+ <dd>
164
+ <dt>Series Title</dt>
165
+ <dd>
166
+ <xsl:value-of select="gmd:name"/>
167
+ </dd>
168
+ <dt>Issue</dt>
169
+ <dd>
170
+ <xsl:value-of select="gmd:issueIdentification"/>
171
+ </dd>
172
+ </dd>
173
+ </dl>
174
+ </dd>
175
+ </xsl:for-each>
176
+ </dl>
177
+ </dd>
178
+ </xsl:for-each>
179
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:abstract">
180
+ <dt>Abstract</dt>
181
+ <dd>
182
+ <xsl:value-of select="."/>
183
+ </dd>
184
+ </xsl:for-each>
185
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:purpose">
186
+ <dt>Purpose</dt>
187
+ <dd>
188
+ <xsl:value-of select="."/>
189
+ </dd>
190
+ </xsl:for-each>
191
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:supplementalInformation">
192
+ <dt>Supplemental Information</dt>
193
+ <dd>
194
+ <xsl:value-of select="."/>
195
+ </dd>
196
+ </xsl:for-each>
197
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:spatialResolution/gmd:MD_Resolution/gmd:equivalentScale/gmd:MD_RepresentativeFraction/gmd:denominator">
198
+ <dt>Scale Denominator</dt>
199
+ <dd>
200
+ <xsl:value-of select="."/>
201
+ </dd>
202
+ </xsl:for-each>
203
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:temporalElement/gmd:EX_TemporalExtent/gmd:extent">
204
+ <dt>Temporal Extent</dt>
205
+ <dd>
206
+ <dl>
207
+ <xsl:if test="ancestor-or-self::*/gmd:description">
208
+ <dt>Currentness Reference</dt>
209
+ <dd>
210
+ <xsl:value-of select="ancestor-or-self::*/gmd:description"/>
211
+ </dd>
212
+ </xsl:if>
213
+ <xsl:choose>
214
+ <xsl:when test="gml:TimePeriod">
215
+ <dt>Time Period</dt>
216
+ <dd>
217
+ <dl>
218
+ <dt>Begin</dt>
219
+ <dd>
220
+ <xsl:value-of select="gml:TimePeriod/gml:beginPosition"/>
221
+ </dd>
222
+ <dt>End</dt>
223
+ <dd>
224
+ <xsl:value-of select="gml:TimePeriod/gml:endPosition"/>
225
+ </dd>
226
+ </dl>
227
+ </dd>
228
+ </xsl:when>
229
+ <xsl:when test="gml:TimeInstant">
230
+ <dt>Time Instant</dt>
231
+ <dd>
232
+ <xsl:value-of select="gml:TimeInstant/gml:timePosition"/>
233
+ </dd>
234
+ </xsl:when>
235
+ </xsl:choose>
236
+ </dl>
237
+ </dd>
238
+ </xsl:for-each>
239
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:extent/gmd:EX_Extent/gmd:geographicElement/gmd:EX_GeographicBoundingBox">
240
+ <dt>Bounding Box</dt>
241
+ <dd>
242
+ <dl>
243
+ <dt>West</dt>
244
+ <dd>
245
+ <xsl:value-of select="gmd:westBoundLongitude"/>
246
+ </dd>
247
+ <dt>East</dt>
248
+ <dd>
249
+ <xsl:value-of select="gmd:eastBoundLongitude"/>
250
+ </dd>
251
+ <dt>North</dt>
252
+ <dd>
253
+ <xsl:value-of select="gmd:northBoundLatitude"/>
254
+ </dd>
255
+ <dt>South</dt>
256
+ <dd>
257
+ <xsl:value-of select="gmd:southBoundLatitude"/>
258
+ </dd>
259
+ </dl>
260
+ </dd>
261
+ </xsl:for-each>
262
+ <xsl:if test="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:topicCategory/gmd:MD_TopicCategoryCode">
263
+ <dt>ISO Topic Category</dt>
264
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:topicCategory/gmd:MD_TopicCategoryCode">
265
+ <dd>
266
+ <xsl:value-of select="."/>
267
+ </dd>
268
+ </xsl:for-each>
269
+ </xsl:if>
270
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords">
271
+ <xsl:choose>
272
+ <xsl:when test="ancestor-or-self::*/gmd:type/gmd:MD_KeywordTypeCode[@codeListValue='theme']">
273
+ <dt>Theme Keyword</dt>
274
+ <xsl:for-each select="gmd:keyword">
275
+ <dd>
276
+ <xsl:value-of select="."/>
277
+ <xsl:if test="position()=last()">
278
+ <dl>
279
+ <dt>Theme Keyword Thesaurus</dt>
280
+ <dd>
281
+ <xsl:value-of select="ancestor-or-self::*/gmd:thesaurusName/gmd:CI_Citation/gmd:title"/>
282
+ </dd>
283
+ </dl>
284
+ </xsl:if>
285
+ </dd>
286
+ </xsl:for-each>
287
+ </xsl:when>
288
+ <xsl:when test="ancestor-or-self::*/gmd:type/gmd:MD_KeywordTypeCode[@codeListValue='place']">
289
+ <dt>Place Keyword</dt>
290
+ <xsl:for-each select="gmd:keyword">
291
+ <dd>
292
+ <xsl:value-of select="."/>
293
+ <xsl:if test="position()=last()">
294
+ <dl>
295
+ <dt>Place Keyword Thesaurus</dt>
296
+ <dd>
297
+ <xsl:value-of select="ancestor-or-self::*/gmd:thesaurusName/gmd:CI_Citation/gmd:title"/>
298
+ </dd>
299
+ </dl>
300
+ </xsl:if>
301
+ </dd>
302
+ </xsl:for-each>
303
+ </xsl:when>
304
+ <xsl:when test="ancestor-or-self::*/gmd:type/gmd:MD_KeywordTypeCode[@codeListValue='temporal']">
305
+ <dt>Temporal Keyword</dt>
306
+ <xsl:for-each select="gmd:keyword">
307
+ <dd>
308
+ <xsl:value-of select="."/>
309
+ </dd>
310
+ </xsl:for-each>
311
+ </xsl:when>
312
+ </xsl:choose>
313
+ </xsl:for-each>
314
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceConstraints">
315
+ <xsl:if test="gmd:MD_LegalConstraints">
316
+ <dt>Legal Constraints</dt>
317
+ </xsl:if>
318
+ <xsl:if test="gmd:MD_SecurityConstraints">
319
+ <dt>Security Constraints</dt>
320
+ </xsl:if>
321
+ <xsl:if test="gmd:MD_Constraints">
322
+ <dt>Resource Constraints</dt>
323
+ </xsl:if>
324
+ <dd>
325
+ <dl>
326
+ <xsl:if test="*/gmd:useLimitation">
327
+ <dt>Use Limitation</dt>
328
+ <dd>
329
+ <xsl:value-of select="*/gmd:useLimitation"/>
330
+ </dd>
331
+ </xsl:if>
332
+ <xsl:if test="*/gmd:accessConstraints">
333
+ <dt>Access Restrictions</dt>
334
+ <dd>
335
+ <xsl:value-of select="*/gmd:accessConstraints/gmd:MD_RestrictionCode/@codeListValue"/>
336
+ </dd>
337
+ </xsl:if>
338
+ <xsl:if test="*/gmd:useConstraints">
339
+ <dt>Use Restrictions</dt>
340
+ <dd>
341
+ <xsl:value-of select="*/gmd:useConstraints/gmd:MD_RestrictionCode/@codeListValue"/>
342
+ </dd>
343
+ </xsl:if>
344
+ <xsl:if test="*/gmd:otherConstraints">
345
+ <dt>Other Restrictions</dt>
346
+ <dd>
347
+ <xsl:value-of select="*/gmd:otherConstraints"/>
348
+ </dd>
349
+ </xsl:if>
350
+ </dl>
351
+ </dd>
352
+ </xsl:for-each>
353
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:status">
354
+ <dt>Status</dt>
355
+ <dd>
356
+ <xsl:value-of select="gmd:MD_ProgressCode/@codeListValue"/>
357
+ </dd>
358
+ </xsl:for-each>
359
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:resourceMaintenance/gmd:MD_MaintenanceInformation/gmd:maintenanceAndUpdateFrequency">
360
+ <dt>Maintenance and Update Frequency</dt>
361
+ <dd>
362
+ <xsl:value-of select="gmd:MD_MaintenanceFrequencyCode/@codeListValue"/>
363
+ </dd>
364
+ </xsl:for-each>
365
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:aggregationInfo/gmd:MD_AggregateInformation/gmd:associationType/gmd:DS_AssociationTypeCode[@codeListValue='largerWorkCitation']">
366
+ <dt>Collection</dt>
367
+ <dd>
368
+ <dl>
369
+ <dt>Collection Title</dt>
370
+ <dd>
371
+ <xsl:value-of select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:title"/>
372
+ </dd>
373
+ <dt>URL</dt>
374
+ <dd>
375
+ <xsl:value-of select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:code"/>
376
+ </dd>
377
+ <xsl:for-each select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='originator']">
378
+ <dt>Originator</dt>
379
+ <dd>
380
+ <xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/>
381
+ </dd>
382
+ </xsl:for-each>
383
+ <xsl:for-each select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='publisher']">
384
+ <dt>Publisher</dt>
385
+ <dd>
386
+ <xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/>
387
+ </dd>
388
+ </xsl:for-each>
389
+ <xsl:for-each select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:date">
390
+ <xsl:if test="contains(descendant-or-self::*/gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'publication')">
391
+ <dt>Publication Date</dt>
392
+ <dd>
393
+ <xsl:value-of select="gmd:CI_Date/gmd:date"/>
394
+ </dd>
395
+ </xsl:if>
396
+ <xsl:if test="contains(descendant-or-self::*/gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'creation')">
397
+ <dt>Creation Date</dt>
398
+ <dd>
399
+ <xsl:value-of select="gmd:CI_Date/gmd:date"/>
400
+ </dd>
401
+ </xsl:if>
402
+ <xsl:if test="contains(descendant-or-self::*/gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'revision')">
403
+ <dt>Revision Date</dt>
404
+ <dd>
405
+ <xsl:value-of select="gmd:CI_Date/gmd:date"/>
406
+ </dd>
407
+ </xsl:if>
408
+ </xsl:for-each>
409
+ <xsl:for-each select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:series/gmd:CI_Series">
410
+ <dt>Series</dt>
411
+ <dd>
412
+ <dl>
413
+ <dd>
414
+ <dt>Series Title</dt>
415
+ <dd>
416
+ <xsl:value-of select="ancestor-or-self::*/gmd:name"/>
417
+ </dd>
418
+ <dt>Issue</dt>
419
+ <dd>
420
+ <xsl:value-of select="ancestor-or-self::*/gmd:issueIdentification"/>
421
+ </dd>
422
+ </dd>
423
+ </dl>
424
+ </dd>
425
+ </xsl:for-each>
426
+ </dl>
427
+ </dd>
428
+ </xsl:for-each>
429
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:aggregationInfo/gmd:MD_AggregateInformation/gmd:associationType/gmd:DS_AssociationTypeCode[@codeListValue='crossReference']">
430
+ <dt>Cross Reference</dt>
431
+ <dd>
432
+ <dl>
433
+ <dt>Title</dt>
434
+ <dd>
435
+ <xsl:value-of select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:title"/>
436
+ </dd>
437
+ <dt>URL</dt>
438
+ <dd>
439
+ <xsl:value-of select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:code"/>
440
+ </dd>
441
+ <xsl:for-each select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='originator']">
442
+ <dt>Originator</dt>
443
+ <dd>
444
+ <xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/>
445
+ </dd>
446
+ </xsl:for-each>
447
+ <xsl:for-each select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='publisher']">
448
+ <dt>Publisher</dt>
449
+ <dd>
450
+ <xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/>
451
+ </dd>
452
+ </xsl:for-each>
453
+ <xsl:for-each select="ancestor-or-self::*/gmd:aggregateDataSetName/gmd:CI_Citation/gmd:date">
454
+ <xsl:if test="contains(descendant-or-self::*/gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'publication')">
455
+ <dt>Publication Date</dt>
456
+ <dd>
457
+ <xsl:value-of select="gmd:CI_Date/gmd:date"/>
458
+ </dd>
459
+ </xsl:if>
460
+ <xsl:if test="contains(descendant-or-self::*/gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'creation')">
461
+ <dt>Creation Date</dt>
462
+ <dd>
463
+ <xsl:value-of select="gmd:CI_Date/gmd:date"/>
464
+ </dd>
465
+ </xsl:if>
466
+ <xsl:if test="contains(descendant-or-self::*/gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'revision')">
467
+ <dt>Revision Date</dt>
468
+ <dd>
469
+ <xsl:value-of select="gmd:CI_Date/gmd:date"/>
470
+ </dd>
471
+ </xsl:if>
472
+ </xsl:for-each>
473
+ </dl>
474
+ </dd>
475
+ </xsl:for-each>
476
+ <dt>Language</dt>
477
+ <dd>
478
+ <xsl:value-of select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:language"/>
479
+ </dd>
480
+ <xsl:if test="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:credit">
481
+ <dt>Credit</dt>
482
+ <dd>
483
+ <xsl:value-of select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:credit"/>
484
+ </dd>
485
+ </xsl:if>
486
+ <xsl:for-each select="gmd:identificationInfo/gmd:MD_DataIdentification/gmd:pointOfContact">
487
+ <dt>Point of Contact</dt>
488
+ <dd>
489
+ <dl>
490
+ <xsl:for-each select="gmd:CI_ResponsibleParty">
491
+ <dt>Contact</dt>
492
+ <dd>
493
+ <xsl:value-of select="gmd:organisationName | gmd:individualName"/>
494
+ </dd>
495
+ <xsl:if test="gmd:positionName">
496
+ <dt>Position Name</dt>
497
+ <dd>
498
+ <xsl:value-of select="gmd:positionName"/>
499
+ </dd>
500
+ </xsl:if>
501
+ <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:deliveryPoint">
502
+ <dt>Delivery Point</dt>
503
+ <dd>
504
+ <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:deliveryPoint"/>
505
+ </dd>
506
+ </xsl:if>
507
+ <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city">
508
+ <dt>City</dt>
509
+ <dd>
510
+ <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city"/>
511
+ </dd>
512
+ </xsl:if>
513
+ <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:administrativeArea">
514
+ <dt>Administrative Area</dt>
515
+ <dd>
516
+ <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:administrativeArea"/>
517
+ </dd>
518
+ </xsl:if>
519
+ <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:postalCode">
520
+ <dt>Postal Code</dt>
521
+ <dd>
522
+ <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:postalCode"/>
523
+ </dd>
524
+ </xsl:if>
525
+ <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:country">
526
+ <dt>Country</dt>
527
+ <dd>
528
+ <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:country"/>
529
+ </dd>
530
+ </xsl:if>
531
+ <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress">
532
+ <dt>Email</dt>
533
+ <dd>
534
+ <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress"/>
535
+ </dd>
536
+ </xsl:if>
537
+ <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:phone/gmd:CI_Telephone/gmd:voice">
538
+ <dt>Phone</dt>
539
+ <dd>
540
+ <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:phone/gmd:CI_Telephone/gmd:voice"/>
541
+ </dd>
542
+ </xsl:if>
543
+ </xsl:for-each>
544
+ </dl>
545
+ </dd>
546
+ </xsl:for-each>
547
+ </dl>
548
+ </div>
549
+ <!-- Spatial Reference Info -->
550
+ <xsl:if test="gmd:referenceSystemInfo">
551
+ <div id="iso-spatial-reference-info">
552
+ <h2>Spatial Reference Information</h2>
553
+ <dl>
554
+ <dt>Reference System Identifier</dt>
555
+ <dd>
556
+ <dl>
557
+ <dt>Code</dt>
558
+ <dd>
559
+ <xsl:value-of select="gmd:referenceSystemInfo/gmd:MD_ReferenceSystem/gmd:referenceSystemIdentifier/gmd:RS_Identifier/gmd:code"/>
560
+ </dd>
561
+ <dt>Code Space</dt>
562
+ <dd>
563
+ <xsl:value-of select="gmd:referenceSystemInfo/gmd:MD_ReferenceSystem/gmd:referenceSystemIdentifier/gmd:RS_Identifier/gmd:codeSpace"/>
564
+ </dd>
565
+ <dt>Version</dt>
566
+ <dd>
567
+ <xsl:value-of select="gmd:referenceSystemInfo/gmd:MD_ReferenceSystem/gmd:referenceSystemIdentifier/gmd:RS_Identifier/gmd:version"/>
568
+ </dd>
569
+ </dl>
570
+ </dd>
571
+ </dl>
572
+ </div>
573
+ </xsl:if>
574
+ <!-- Data Quality Info -->
575
+ <xsl:if test="gmd:dataQualityInfo/gmd:DQ_DataQuality">
576
+ <div id="iso-data-quality-info">
577
+ <h2>Data Quality Information</h2>
578
+ <dl>
579
+ <xsl:if test="gmd:DQ_Scope/gmd:level">
580
+ <dt>Hierarchy Level</dt>
581
+ <dd>
582
+ <xsl:value-of select="gmd:DQ_Scope/gmd:level/gmd:MD_ScopeCode[@codeListValue]"/>
583
+ </dd>
584
+ </xsl:if>
585
+ <xsl:for-each select="gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:report">
586
+ <xsl:if test="gmd:DQ_QuantitativeAttributeAccuracy">
587
+ <dt>Quantitative Attribute Accuracy Report</dt>
588
+ <dd>
589
+ <dl>
590
+ <xsl:if test="gmd:DQ_QuantitativeAttributeAccuracy/gmd:evaluationMethodDescription/text()">
591
+ <dt>Evaluation Method</dt>
592
+ <dd>
593
+ <xsl:value-of select="gmd:DQ_QuantitativeAttributeAccuracy/gmd:evaluationMethodDescription"/>
594
+ </dd>
595
+ </xsl:if>
596
+ <xsl:if test="gmd:DQ_QuantitativeAttributeAccuracy/gmd:result/text()">
597
+ <dt>Result</dt>
598
+ <dd>
599
+ <xsl:value-of select="gmd:DQ_QuantitativeAttributeAccuracy/gmd:result"/>
600
+ </dd>
601
+ </xsl:if>
602
+ </dl>
603
+ </dd>
604
+ </xsl:if>
605
+ <xsl:if test="gmd:DQ_AbsoluteExternalPositionalAccuracy">
606
+ <dt>Absolute External Positional Accuracy</dt>
607
+ <dd>
608
+ <dl>
609
+ <xsl:if test="gmd:DQ_AbsoluteExternalPositionalAccuracy/gmd:evaluationMethodDescription/text()">
610
+ <dt>Evaluation Method</dt>
611
+ <dd>
612
+ <xsl:value-of select="gmd:DQ_AbsoluteExternalPositionalAccuracy/gmd:evaluationMethodDescription"/>
613
+ </dd>
614
+ </xsl:if>
615
+ <xsl:if test="gmd:DQ_AbsoluteExternalPositionalAccuracy/gmd:result/text()">
616
+ <dt>Result</dt>
617
+ <dd>
618
+ <xsl:value-of select="gmd:DQ_AbsoluteExternalPositionalAccuracy/gmd:result"/>
619
+ </dd>
620
+ </xsl:if>
621
+ </dl>
622
+ </dd>
623
+ </xsl:if>
624
+ <xsl:if test="gmd:DQ_CompletenessCommission">
625
+ <dt>Completeness Commission</dt>
626
+ <dd>
627
+ <dl>
628
+ <xsl:if test="gmd:DQ_CompletenessCommission/gmd:evaluationMethodDescription/text()">
629
+ <dt>Evaluation Method</dt>
630
+ <dd>
631
+ <xsl:value-of select="gmd:DQ_CompletenessCommission/gmd:evaluationMethodDescription"/>
632
+ </dd>
633
+ </xsl:if>
634
+ <xsl:if test="gmd:DQ_CompletenessCommission/gmd:result/text()">
635
+ <dt>Result</dt>
636
+ <dd>
637
+ <xsl:value-of select="gmd:DQ_CompletenessCommission/gmd:result"/>
638
+ </dd>
639
+ </xsl:if>
640
+ </dl>
641
+ </dd>
642
+ </xsl:if>
643
+ </xsl:for-each>
644
+ <xsl:for-each select="gmd:dataQualityInfo/gmd:DQ_DataQuality/gmd:lineage/gmd:LI_Lineage">
645
+ <dt>Lineage</dt>
646
+ <dd>
647
+ <dl>
648
+ <xsl:if test="gmd:statement">
649
+ <dt>Statement</dt>
650
+ <dd>
651
+ <xsl:value-of select="gmd:statement"/>
652
+ </dd>
653
+ </xsl:if>
654
+ <xsl:for-each select="gmd:processStep/gmd:LI_ProcessStep">
655
+ <dt>Process Step</dt>
656
+ <dd>
657
+ <dl>
658
+ <xsl:if test="gmd:description">
659
+ <dt>Description</dt>
660
+ <dd>
661
+ <xsl:value-of select="gmd:description"/>
662
+ </dd>
663
+ </xsl:if>
664
+ <xsl:for-each select="gmd:CI_ResponsibleParty">
665
+ <dt>Processor</dt>
666
+ <dd>
667
+ <xsl:value-of select="gmd:individualName | gmd:organisationName"/>
668
+ </dd>
669
+ </xsl:for-each>
670
+ <xsl:if test="gmd:dateTime">
671
+ <dt>Process Date</dt>
672
+ <dd>
673
+ <xsl:value-of select="gmd:dateTime"/>
674
+ </dd>
675
+ </xsl:if>
676
+ </dl>
677
+ </dd>
678
+ </xsl:for-each>
679
+ <xsl:for-each select="gmd:source/gmd:LI_Source/gmd:sourceCitation">
680
+ <dt>Source</dt>
681
+ <dd>
682
+ <dl>
683
+ <dt>Title</dt>
684
+ <dd>
685
+ <xsl:value-of select="gmd:CI_Citation/gmd:title"/>
686
+ </dd>
687
+ <xsl:for-each select="gmd:CI_Citation/gmd:date/gmd:CI_Date">
688
+ <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'publication')">
689
+ <dt>Publication Date</dt>
690
+ <dd>
691
+ <xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/>
692
+ </dd>
693
+ </xsl:if>
694
+ <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'creation')">
695
+ <dt>Creation Date</dt>
696
+ <dd>
697
+ <xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/>
698
+ </dd>
699
+ </xsl:if>
700
+ <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'revision')">
701
+ <dt>Revision Date</dt>
702
+ <dd>
703
+ <xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/>
704
+ </dd>
705
+ </xsl:if>
706
+ </xsl:for-each>
707
+ <xsl:for-each select="gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='originator']">
708
+ <dt>Originator</dt>
709
+ <dd>
710
+ <xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/>
711
+ </dd>
712
+ </xsl:for-each>
713
+ <xsl:for-each select="gmd:CI_Citation/gmd:citedResponsibleParty/gmd:CI_ResponsibleParty/gmd:role/gmd:CI_RoleCode[@codeListValue='publisher']">
714
+ <dt>Publisher</dt>
715
+ <dd>
716
+ <xsl:value-of select="ancestor-or-self::*/gmd:organisationName | ancestor-or-self::*/gmd:individualName"/>
717
+ </dd>
718
+ <xsl:if test="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city">
719
+ <dt>Place of Publication</dt>
720
+ <dd>
721
+ <xsl:value-of select="ancestor-or-self::*/gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city"/>
722
+ </dd>
723
+ </xsl:if>
724
+ </xsl:for-each>
725
+ <xsl:if test="gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:code">
726
+ <dt>Identifier</dt>
727
+ <dd>
728
+ <xsl:value-of select="gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:code"/>
729
+ </dd>
730
+ </xsl:if>
731
+ <xsl:if test="ancestor-or-self::*/gmd:description">
732
+ <dt>Description</dt>
733
+ <dd>
734
+ <xsl:value-of select="ancestor-or-self::*/gmd:description"/>
735
+ </dd>
736
+ </xsl:if>
737
+ </dl>
738
+ </dd>
739
+ </xsl:for-each>
740
+ </dl>
741
+ </dd>
742
+ </xsl:for-each>
743
+ </dl>
744
+ </div>
745
+ </xsl:if>
746
+ <!-- Distribution -->
747
+ <xsl:if test="gmd:distributionInfo">
748
+ <div id="iso-distribution-info">
749
+ <h2>Distribution Information</h2>
750
+ <dl>
751
+ <xsl:if test="gmd:distributionInfo/gmd:MD_Distribution/gmd:distributionFormat/gmd:MD_Format">
752
+ <dt>Format Name</dt>
753
+ <dd>
754
+ <xsl:value-of select="gmd:distributionInfo/gmd:MD_Distribution/gmd:distributionFormat/gmd:MD_Format/gmd:name"/>
755
+ </dd>
756
+ <xsl:if test="gmd:distributionInfo/gmd:MD_Distribution/gmd:distributionFormat/gmd:MD_Format/gmd:version/text()">
757
+ <dt>Format Version</dt>
758
+ <dd>
759
+ <xsl:value-of select="gmd:distributionInfo/gmd:MD_Distribution/gmd:distributionFormat/gmd:MD_Format/gmd:version"/>
760
+ </dd>
761
+ </xsl:if>
762
+ </xsl:if>
763
+ <xsl:for-each select="gmd:distributionInfo/gmd:MD_Distribution/gmd:distributor/gmd:MD_Distributor">
764
+ <dt>Distributor</dt>
765
+ <dd>
766
+ <xsl:value-of select="gmd:distributorContact/gmd:CI_ResponsibleParty/gmd:organisationName"/>
767
+ </dd>
768
+ </xsl:for-each>
769
+ <xsl:for-each select="gmd:distributionInfo/gmd:MD_Distribution/gmd:transferOptions/gmd:MD_DigitalTransferOptions">
770
+ <dt>Online Access</dt>
771
+ <dd>
772
+ <xsl:value-of select="gmd:onLine/gmd:CI_OnlineResource/gmd:linkage/gmd:URL"/>
773
+ </dd>
774
+ <dt>Protocol</dt>
775
+ <dd>
776
+ <xsl:value-of select="gmd:onLine/gmd:CI_OnlineResource/gmd:protocol"/>
777
+ </dd>
778
+ <dt>Name</dt>
779
+ <dd>
780
+ <xsl:value-of select="gmd:onLine/gmd:CI_OnlineResource/gmd:name"/>
781
+ </dd>
782
+ <xsl:if test="gmd:onLine/gmd:CI_OnlineResource/gmd:function/gmd:CI_OnLineFunctionCode/@codeListValue">
783
+ <dt>Function</dt>
784
+ <dd>
785
+ <xsl:value-of select="gmd:onLine/gmd:CI_OnlineResource/gmd:function/gmd:CI_OnLineFunctionCode/@codeListValue"/>
786
+ </dd>
787
+ </xsl:if>
788
+ <xsl:if test="gmd:distributionInfo/gmd:MD_Distribution/gmd:transferOptions/gmd:MD_DigitalTransferOptions/gmd:transferSize">
789
+ <dt>Transfer Size</dt>
790
+ <dd>
791
+ <xsl:value-of select="gmd:distributionInfo/gmd:MD_Distribution/gmd:transferOptions/gmd:MD_DigitalTransferOptions/gmd:transferSize"/>
792
+ </dd>
793
+ </xsl:if>
794
+ </xsl:for-each>
795
+ </dl>
796
+ </div>
797
+ </xsl:if>
798
+ <!-- Content Info -->
799
+ <xsl:if test="gmd:contentInfo">
800
+ <div id="iso-content-info">
801
+ <h2>Content Information</h2>
802
+ <dl>
803
+ <xsl:if test="gmd:contentInfo/gmd:MD_FeatureCatalogueDescription">
804
+ <dt>Feature Catalog Description</dt>
805
+ <dd>
806
+ <dl>
807
+ <dt>Compliance Code</dt>
808
+ <dd>
809
+ <xsl:value-of select="gmd:contentInfo/gmd:MD_FeatureCatalogueDescription/gmd:complianceCode"/>
810
+ </dd>
811
+ <dt>Language</dt>
812
+ <dd>
813
+ <xsl:value-of select="gmd:contentInfo/gmd:MD_FeatureCatalogueDescription/gmd:language"/>
814
+ </dd>
815
+ <dt>Included With Dataset</dt>
816
+ <dd>
817
+ <xsl:value-of select="gmd:contentInfo/gmd:MD_FeatureCatalogueDescription/gmd:includedWithDataset"/>
818
+ </dd>
819
+ <dt>Feature Catalog Citation</dt>
820
+ <dd>
821
+ <dl>
822
+ <dt>Title</dt>
823
+ <dd>
824
+ <xsl:value-of select="gmd:contentInfo/gmd:MD_FeatureCatalogueDescription/gmd:featureCatalogueCitation/gmd:CI_Citation/gmd:title"/>
825
+ </dd>
826
+ <xsl:for-each select="gmd:contentInfo/gmd:MD_FeatureCatalogueDescription/gmd:featureCatalogueCitation/gmd:CI_Citation/gmd:date/gmd:CI_Date">
827
+ <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'publication')">
828
+ <dt>Publication Date</dt>
829
+ <dd>
830
+ <xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/>
831
+ </dd>
832
+ </xsl:if>
833
+ <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'creation')">
834
+ <dt>Creation Date</dt>
835
+ <dd>
836
+ <xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/>
837
+ </dd>
838
+ </xsl:if>
839
+ <xsl:if test="contains(gmd:dateType/gmd:CI_DateTypeCode/@codeListValue,'revision')">
840
+ <dt>Revision Date</dt>
841
+ <dd>
842
+ <xsl:value-of select="ancestor-or-self::*/gmd:date/gmd:CI_Date/gmd:date"/>
843
+ </dd>
844
+ </xsl:if>
845
+ </xsl:for-each>
846
+ <dt>Feature Catalog Identifier</dt>
847
+ <dd>
848
+ <xsl:value-of select="gmd:contentInfo/gmd:MD_FeatureCatalogueDescription/gmd:featureCatalogueCitation/gmd:CI_Citation/gmd:identifier/gmd:MD_Identifier/gmd:code"/>
849
+ </dd>
850
+ </dl>
851
+ </dd>
852
+ </dl>
853
+ </dd>
854
+ </xsl:if>
855
+ <xsl:if test="gmd:contentInfo/gmd:MD_ImageDescription">
856
+ <dt>Content Type</dt>
857
+ <dd>
858
+ <xsl:value-of select="gmd:contentInfo/gmd:MD_ImageDescription/gmd:contentType/gmd:MD_CoverageContentTypeCode[@codeListValue]"/>
859
+ </dd>
860
+ </xsl:if>
861
+ </dl>
862
+ </div>
863
+ </xsl:if>
864
+ <!-- Spatial Representation -->
865
+ <xsl:if test="gmd:spatialRepresentationInfo">
866
+ <div id="iso-spatial-representation-info">
867
+ <h2>Spatial Representation Information</h2>
868
+ <dl>
869
+ <xsl:choose>
870
+ <xsl:when test="gmd:spatialRepresentationInfo/gmd:MD_VectorSpatialRepresentation">
871
+ <dt>Vector</dt>
872
+ <dd>
873
+ <dl>
874
+ <dt>Topology Level</dt>
875
+ <dd>
876
+ <xsl:value-of select="gmd:spatialRepresentationInfo/gmd:MD_VectorSpatialRepresentation/gmd:topologyLevel/gmd:MD_TopologyLevelCode[@codeListValue]"/>
877
+ </dd>
878
+ <dt>Vector Object Type</dt>
879
+ <dd>
880
+ <xsl:value-of select="gmd:spatialRepresentationInfo/gmd:MD_VectorSpatialRepresentation/gmd:geometricObjects/gmd:MD_GeometricObjects/gmd:geometricObjectType/gmd:MD_GeometricObjectTypeCode[@codeListValue]"/>
881
+ </dd>
882
+ <dt>Vector Object Count</dt>
883
+ <dd>
884
+ <xsl:value-of select="gmd:spatialRepresentationInfo/gmd:MD_VectorSpatialRepresentation/gmd:geometricObjects/gmd:MD_GeometricObjects/gmd:geometricObjectCount"/>
885
+ </dd>
886
+ </dl>
887
+ </dd>
888
+ </xsl:when>
889
+ <xsl:when test="gmd:spatialRepresentationInfo/gmd:MD_GridSpatialRepresentation">
890
+ <dt>Raster</dt>
891
+ <dd>
892
+ <dl>
893
+ <xsl:if test="gmd:spatialRepresentationInfo/gmd:MD_GridSpatialRepresentation/gmd:numberOfDimensions">
894
+ <dt>Number of Dimensions</dt>
895
+ <dd>
896
+ <xsl:value-of select="gmd:spatialRepresentationInfo/gmd:MD_GridSpatialRepresentation/gmd:numberOfDimensions"/>
897
+ </dd>
898
+ </xsl:if>
899
+ <dd>
900
+ <dl>
901
+ <xsl:for-each select="gmd:spatialRepresentationInfo/MD_GridSpatialRepresentation/gmd:axisDimensionProperties/gmd:MD_Dimension">
902
+ <xsl:if test="gmd:dimensionName/gmd:MD_DimensionNameTypeCode/@codeListValue='column'">
903
+ <dt>Column Count</dt>
904
+ <dd>
905
+ <xsl:value-of select="gmd:dimensionSize"/>
906
+ </dd>
907
+ </xsl:if>
908
+ <xsl:if test="gmd:dimensionName/gmd:MD_DimensionNameTypeCode/@codeListValue='row'">
909
+ <dt>Row Count</dt>
910
+ <dd>
911
+ <xsl:value-of select="gmd:dimensionSize"/>
912
+ </dd>
913
+ </xsl:if>
914
+ </xsl:for-each>
915
+ <xsl:if test="gmd:spatialRepresentationInfo/MD_GridSpatialRepresentation/gmd:cellGeometry/gmd:MD_CellGeometryCode">
916
+ <dt>Cell Geometry Type</dt>
917
+ <dd>
918
+ <xsl:value-of select="gmd:spatialRepresentationInfo/MD_GridSpatialRepresentation/gmd:cellGeometry/gmd:MD_CellGeometryCode/@codeListValue"/>
919
+ </dd>
920
+ </xsl:if>
921
+ <xsl:if test="gmd:spatialRepresentationInfo/MD_GridSpatialRepresentation/gmd:cornerPoints">
922
+ <dt>Corner Points</dt>
923
+ <dd>
924
+ <dl>
925
+ <xsl:for-each select="gmd:spatialRepresentationInfo/MD_GridSpatialRepresentation/gmd:cornerPoints/gml:Point">
926
+ <dt>Point</dt>
927
+ <dd>
928
+ <xsl:value-of select="gml:pos"/>
929
+ </dd>
930
+ </xsl:for-each>
931
+ </dl>
932
+ </dd>
933
+ <xsl:for-each select="gmd:spatialRepresentationInfo/MD_GridSpatialRepresentation/gmd:centerPoint/gml:Point">
934
+ <dt>Center Point</dt>
935
+ <dd>
936
+ <xsl:value-of select="gml:pos"/>
937
+ </dd>
938
+ </xsl:for-each>
939
+ </xsl:if>
940
+ </dl>
941
+ </dd>
942
+ </dl>
943
+ </dd>
944
+ </xsl:when>
945
+ <xsl:when test="gmd:spatialRepresentationInfo/gmd:MD_Georectified">
946
+ <dt>Raster</dt>
947
+ <dd>
948
+ <dl>
949
+ <xsl:if test="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:numberOfDimensions">
950
+ <dt>Number of Dimensions</dt>
951
+ <dd>
952
+ <xsl:value-of select="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:numberOfDimensions"/>
953
+ </dd>
954
+ </xsl:if>
955
+ <xsl:for-each select="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:axisDimensionProperties/gmd:MD_Dimension">
956
+ <xsl:if test="gmd:dimensionName/gmd:MD_DimensionNameTypeCode/@codeListValue='column'">
957
+ <dt>Column Count</dt>
958
+ <dd>
959
+ <xsl:value-of select="gmd:dimensionSize"/>
960
+ </dd>
961
+ </xsl:if>
962
+ <xsl:if test="gmd:dimensionName/gmd:MD_DimensionNameTypeCode/@codeListValue='row'">
963
+ <dt>Row Count</dt>
964
+ <dd>
965
+ <xsl:value-of select="gmd:dimensionSize"/>
966
+ </dd>
967
+ </xsl:if>
968
+ </xsl:for-each>
969
+ <xsl:if test="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:cellGeometry/gmd:MD_CellGeometryCode">
970
+ <dt>Cell Geometry Type</dt>
971
+ <dd>
972
+ <xsl:value-of select="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:cellGeometry/gmd:MD_CellGeometryCode/@codeListValue"/>
973
+ </dd>
974
+ </xsl:if>
975
+ <xsl:if test="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:cornerPoints">
976
+ <dt>Corner Points</dt>
977
+ <dd>
978
+ <dl>
979
+ <xsl:for-each select="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:cornerPoints/gml:Point">
980
+ <dt>Point</dt>
981
+ <dd>
982
+ <xsl:value-of select="gml:pos"/>
983
+ </dd>
984
+ </xsl:for-each>
985
+ </dl>
986
+ </dd>
987
+ <xsl:for-each select="gmd:spatialRepresentationInfo/gmd:MD_Georectified/gmd:centerPoint/gml:Point">
988
+ <dt>Center Point</dt>
989
+ <dd>
990
+ <xsl:value-of select="gml:pos"/>
991
+ </dd>
992
+ </xsl:for-each>
993
+ </xsl:if>
994
+ </dl>
995
+ </dd>
996
+ </xsl:when>
997
+ </xsl:choose>
998
+ </dl>
999
+ </div>
1000
+ </xsl:if>
1001
+ <!-- Metadata Reference Info -->
1002
+ <div id="iso-metadata-reference-info">
1003
+ <h2>Metadata Reference Information</h2>
1004
+ <dl>
1005
+ <dt>Hierarchy Level</dt>
1006
+ <dd>
1007
+ <xsl:value-of select="gmd:hierarchyLevelName"/>
1008
+ </dd>
1009
+ <dt>Metadata File Identifier</dt>
1010
+ <dd>
1011
+ <xsl:value-of select="gmd:fileIdentifier"/>
1012
+ </dd>
1013
+ <xsl:if test="gmd:parentIdentifier">
1014
+ <dt>Parent Identifier</dt>
1015
+ <dd>
1016
+ <xsl:value-of select="gmd:parentIdentifier"/>
1017
+ </dd>
1018
+ </xsl:if>
1019
+ <xsl:if test="gmd:dataSetURI">
1020
+ <dt>Dataset URI</dt>
1021
+ <dd>
1022
+ <xsl:value-of select="gmd:dataSetURI"/>
1023
+ </dd>
1024
+ </xsl:if>
1025
+ <xsl:for-each select="gmd:metadataMaintenance/gmd:MD_MaintenanceInformation/gmd:contact">
1026
+ <dt>Metadata Point of Contact</dt>
1027
+ <dd>
1028
+ <dl>
1029
+ <xsl:for-each select="gmd:CI_ResponsibleParty">
1030
+ <dt>Name</dt>
1031
+ <dd>
1032
+ <xsl:value-of select="gmd:organisationName | gmd:individualName"/>
1033
+ </dd>
1034
+ <xsl:if test="gmd:positionName">
1035
+ <dt>Position Name</dt>
1036
+ <dd>
1037
+ <xsl:value-of select="gmd:positionName"/>
1038
+ </dd>
1039
+ </xsl:if>
1040
+ <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:deliveryPoint">
1041
+ <dt>Delivery Point</dt>
1042
+ <dd>
1043
+ <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:deliveryPoint"/>
1044
+ </dd>
1045
+ </xsl:if>
1046
+ <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city">
1047
+ <dt>City</dt>
1048
+ <dd>
1049
+ <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:city"/>
1050
+ </dd>
1051
+ </xsl:if>
1052
+ <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:administrativeArea">
1053
+ <dt>Administrative Area</dt>
1054
+ <dd>
1055
+ <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:administrativeArea"/>
1056
+ </dd>
1057
+ </xsl:if>
1058
+ <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:postalCode">
1059
+ <dt>Postal Code</dt>
1060
+ <dd>
1061
+ <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:postalCode"/>
1062
+ </dd>
1063
+ </xsl:if>
1064
+ <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:country">
1065
+ <dt>Country</dt>
1066
+ <dd>
1067
+ <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:country"/>
1068
+ </dd>
1069
+ </xsl:if>
1070
+ <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress">
1071
+ <dt>Email</dt>
1072
+ <dd>
1073
+ <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:address/gmd:CI_Address/gmd:electronicMailAddress"/>
1074
+ </dd>
1075
+ </xsl:if>
1076
+ <xsl:if test="gmd:contactInfo/gmd:CI_Contact/gmd:phone/gmd:CI_Telephone/gmd:voice">
1077
+ <dt>Phone</dt>
1078
+ <dd>
1079
+ <xsl:value-of select="gmd:contactInfo/gmd:CI_Contact/gmd:phone/gmd:CI_Telephone/gmd:voice"/>
1080
+ </dd>
1081
+ </xsl:if>
1082
+ </xsl:for-each>
1083
+ </dl>
1084
+ </dd>
1085
+ </xsl:for-each>
1086
+ <dt>Metadata Date Stamp</dt>
1087
+ <dd>
1088
+ <xsl:value-of select="gmd:dateStamp"/>
1089
+ </dd>
1090
+ <dt>Metadata Standard Name</dt>
1091
+ <dd>
1092
+ <xsl:value-of select="gmd:metadataStandardName"/>
1093
+ </dd>
1094
+ <dt>Metadata Standard Version</dt>
1095
+ <dd>
1096
+ <xsl:value-of select="gmd:metadataStandardVersion"/>
1097
+ </dd>
1098
+ <xsl:if test="gmd:characterSet/gmd:MD_CharacterSetCode[@codeListValue]/text()">
1099
+ <dt>Character Set</dt>
1100
+ <dd>
1101
+ <xsl:value-of select="gmd:characterSet/gmd:MD_CharacterSetCode[@codeListValue]"/>
1102
+ </dd>
1103
+ </xsl:if>
1104
+ </dl>
1105
+ </div>
1106
+ </xsl:template>
1107
+ </xsl:stylesheet>