geohydra 0.3.1 → 0.3.3

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