Project

General

Profile

1
<?xml version="1.0"?>
2
<xsl:stylesheet 
3
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
4
  xmlns:gmd="http://www.isotc211.org/2005/gmd" 
5
  xmlns:gco="http://www.isotc211.org/2005/gco" 
6
  xmlns:gml="http://www.opengis.net/gml/3.2" version="1.0">
7

    
8
  <xsl:output method="html" encoding="UTF-8"
9
      doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
10
      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
11
      indent="yes" />  
12

    
13
  <!-- EX_BoundingPolygon-->
14
  <!-- TODO: This whole thing -->
15
  <xsl:template name="ex_boundingpolygon" match="gmd:EX_BoundingPolygon">
16
    <xsl:apply-templates />
17
  </xsl:template>
18

    
19
  <!-- EX_Extent-->
20
  <!-- TODO: Convert this to EX_Extent and use apply-templates elsewhere-->
21
  <xsl:template name="extent">
22
    <!-- description -->
23
    <xsl:if test=".//gmd:description">
24
      <div class="control-group">
25
        <label class="control-label">Description</label>
26
        <div class="controls">
27
          <div class="controls-well">
28
            <xsl:value-of select=".//gmd:description/gco:CharacterString/text()" />
29
          </div>
30
        </div>
31
      </div>
32
    </xsl:if>
33

    
34
    <!-- Geographic -->
35
    <xsl:for-each select=".//gmd:geographicElement">
36
      <div class="control-group">
37
        <label class="control-label">Geographic</label>
38
        <div class="controls">
39
          <div class="controls-well">
40
            <xsl:apply-templates />
41
          </div>
42
        </div>
43
      </div>
44
    </xsl:for-each>
45

    
46
    <!-- Temporal -->
47
    <xsl:for-each select=".//gmd:temporalElement">
48
      <div class="control-group">
49
        <label class="control-label">Temporal</label>
50
        <div class="controls">
51
          <div class="controls-well">
52
            <xsl:apply-templates />
53
          </div>
54
        </div>
55
      </div>
56
    </xsl:for-each>
57

    
58
    <!-- Vertical -->
59
    <xsl:for-each select=".//gmd:verticalElement">
60
      <div class="control-group">
61
        <label class="control-label">Vertical</label>
62
        <div class="controls">
63
          <div class="controls-well">
64
            <xsl:apply-templates />
65
          </div>
66
        </div>
67
      </div>
68
    </xsl:for-each>
69
  </xsl:template>
70

    
71
  <!-- EX_GeographicBoundingBox-->
72
  <xsl:template name="ex_geographicboundingbox" match="gmd:EX_GeographicBoundingBox">
73
  	<xsl:variable name="north"><xsl:value-of select="./gmd:northBoundLongitude/gco:Decimal" /></xsl:variable>
74
  	<xsl:variable name="east"><xsl:value-of select="./gmd:eastBoundLongitude/gco:Decimal" /></xsl:variable>
75
  	<xsl:variable name="south"><xsl:value-of select="./gmd:southBoundLongitude/gco:Decimal" /></xsl:variable>
76
  	<xsl:variable name="west"><xsl:value-of select="./gmd:westBoundLongitude/gco:Decimal" /></xsl:variable>
77

    
78

    
79
    <div data-value="{$north}" data-content="northBoundingCoordinate" class="control-group northBoundingCoordinate">
80
      <label class="control-label">North</label>
81
      <div class="controls"><xsl:value-of select="$north" />&#xa0; degrees</div>
82
    </div>
83

    
84
    <div data-value="{$east}" data-content="eastBoundingCoordinate" class="control-group eastBoundingCoordinate">
85
      <label class="control-label">East</label>
86
      <div class="controls"><xsl:value-of select="$east" />&#xa0; degrees</div>
87
    </div>
88

    
89
    <div data-value="{$south}" data-content="southBoundingCoordinate" class="control-group southBoundingCoordinate">
90
      <label class="control-label">South</label>
91
      <div class="controls"><xsl:value-of select="$south" />&#xa0; degrees</div>
92
    </div>
93

    
94
    <div data-value="{$west}" data-content="westBoundingCoordinate" class="control-group westBoundingCoordinate">
95
      <label class="control-label">West</label>
96
      <div class="controls"><xsl:value-of select="$west" />&#xa0; degrees</div>
97
    </div>
98

    
99
    <span>
100
      <xsl:apply-templates select="./gmd:extentTypeCode" />
101
    </span>
102
  </xsl:template>
103

    
104
  <!-- EX_GeographicDescription-->
105
  <xsl:template name="ex_geographicdescription" match="gmd:EX_GeographicDescription">
106
    <xsl:apply-templates />
107
  </xsl:template>
108

    
109
  <!-- EX_GeographicExtent-->
110
  <xsl:template name="ex_geographicextent" match="gmd:EX_GeographicExtent">
111
    <xsl:apply-templates />
112
  </xsl:template>
113

    
114
  <!-- EX_TemporalExtent -->
115
  <xsl:template name="ex_temporalextent" match="gmd:EX_TemporalExtent">
116
    <span>temporal extent                
117
      <xsl:apply-templates select=".//gmd:extent/*" />
118
    </span>
119
  </xsl:template>
120

    
121
  <!-- EX_VerticalExtent-->
122
  <!-- TODO: Improve DOM structure -->
123
  <xsl:template name="verticalextent" match="gmd:EX_VerticalExtent">
124
    <span>minimumValue:     
125
      <xsl:value-of select="./gmd:minimumValue/gco:Real" />
126
    </span>
127
    <span>maximumValue:     
128
      <xsl:value-of select="./gmd:maximumValue/gco:Real" />
129
    </span>
130
    <!-- TODO: Flesh this out a bit more -->
131
    <span>verticalCRS:     
132
      <xsl:value-of select="./gmd:verticalCRS" />
133
    </span>
134
  </xsl:template>
135

    
136
  <!-- TimeInstant-->
137
  <!-- TODO
138
        - Attributes: frame, calendarEraName, indeterminatePosition
139
    -->
140
  <xsl:template name="timeinstant" match="gml:TimeInstant">
141
    <span>time instant</span>
142
    <span>description:             
143
      <xsl:value-of select=".//gmd:description" />
144
    </span>
145
    <span>
146
      <span>timePosition:             
147
        <xsl:value-of select=".//gml:timePosition" />
148
      </span>
149
      <xsl:if test=".//gml:timePosition/@calendarEraName">
150
        <span>
151
          <xsl:value-of select=".//gml:timePosition/@calendarEraName" /> (calendarEraName)
152
        </span>
153
      </xsl:if>
154
      <xsl:if test=".//gml:timePosition/@indeterminatePosition">
155
        <span>
156
          <xsl:value-of select=".//gml:timePosition/@indeterminatePosition" /> (indeterminatePosition)
157
        </span>
158
      </xsl:if>
159
    </span>
160
  </xsl:template>
161

    
162
  <!-- TimePeriod-->
163
  <!-- TODO: 
164
        - All the attributes
165
        - timeInterval units, radix, factor
166
    -->
167
  <xsl:template name="timeperiod" match="gml:TimePeriod">
168

    
169

    
170

    
171

    
172
    <xsl:if test=".//gml:beginPosition">
173
      <div class="control-group">
174
        <label class="control-label">Begin</label>
175
        <div class="controls">
176
          <span><xsl:value-of select=".//gml:beginPosition" /></span>
177
          <xsl:if test=".//gml:beginPosition/@calendarEraName">
178
            <span><xsl:value-of select=".//gml:beginPosition/@calendarEraName" /> (calendarEraName)</span>                        
179
          </xsl:if>
180
          <xsl:if test=".//gml:beginPosition/@indeterminatePosition">
181
            <span><xsl:value-of select=".//gml:beginPosition/@indeterminatePosition" /> (indeterminatePosition)</span>                        
182
          </xsl:if>
183
        </div>
184
      </div>
185
    </xsl:if>
186

    
187
    <xsl:if test=".//gml:endPosition">
188
      <div class="control-group">
189
        <label class="control-label">End</label>
190
        <div class="controls">
191
          <span><xsl:value-of select=".//gml:endPosition" /></span>
192
          <xsl:if test=".//gml:endPosition/@calendarEraName">
193
            <span><xsl:value-of select=".//gml:endPosition/@calendarEraName" /> (calendarEraName)</span>                        
194
          </xsl:if>
195
          <xsl:if test=".//gml:endPosition/@indeterminatePosition">
196
            <span><xsl:value-of select=".//gml:endPosition/@indeterminatePosition" /> (indeterminatePosition)</span>                        
197
          </xsl:if>
198
        </div>
199
      </div>
200
    </xsl:if>
201

    
202
    <xsl:if test=".//gml:duration">
203
      <span>duration:         
204
        <xsl:value-of select=".//gml:duration" />
205
      </span>
206
    </xsl:if>
207

    
208
    <xsl:if test=".//gml:timeInterval">
209
      <span>timeInterval:         
210
        <xsl:value-of select=".//gml:timeInterval" />
211
      </span>
212
    </xsl:if>
213
  </xsl:template>
214

    
215
  <!-- extentTypeCode -->
216
  <!-- TODO: Work on language. Not sure what I want here.-->
217
  <xsl:template name="gmd_extent_type_code" match="gmd:extentTypeCode">
218
  <span>extentTypeCode:     
219
    <xsl:choose>
220
      <xsl:when test="./gco:Boolean = 0"><span>Exclusion</span></xsl:when>
221
      <xsl:when test="./gco:Boolean = 1"><span>Inclusion</span></xsl:when>
222
    </xsl:choose>
223
    </span>
224
  </xsl:template>
225
</xsl:stylesheet>
(2-2/4)