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
    <xsl:template match="gmd:EX_Extent">
14
      <h4>Extent</h4>
15

    
16
      <!-- description -->
17
      <xsl:if test=".//gmd:description">
18
        <div class="control-group">
19
          <label class="control-label">Description</label>
20
          <div class="controls">
21
            <div class="controls-well">
22
              <xsl:apply-templates />
23
            </div>
24
          </div>
25
        </div>
26
      </xsl:if>
27

    
28
      <!-- Geographic -->
29
      <xsl:for-each select=".//gmd:geographicElement">
30
        <div class="control-group">
31
          <label class="control-label">Geographic</label>
32
          <div class="controls">
33
            <div class="controls-well">
34
              <xsl:apply-templates />
35
            </div>
36
          </div>
37
        </div>
38
      </xsl:for-each>
39

    
40
      <!-- Temporal -->
41
      <xsl:for-each select=".//gmd:temporalElement">
42
        <div class="control-group">
43
          <label class="control-label">Temporal</label>
44
          <div class="controls">
45
            <div class="controls-well">
46
              <xsl:apply-templates />
47
            </div>
48
          </div>
49
        </div>
50
      </xsl:for-each>
51

    
52
      <!-- Vertical -->
53
      <xsl:for-each select=".//gmd:verticalElement">
54
        <div class="control-group">
55
          <label class="control-label">Vertical</label>
56
          <div class="controls">
57
            <div class="controls-well">
58
              <xsl:apply-templates />
59
            </div>
60
          </div>
61
        </div>
62
      </xsl:for-each>
63
    </xsl:template>
64

    
65
  <!-- EX_GeographicExtent-->
66
  <xsl:template match="gmd:EX_GeographicExtent">
67
    <xsl:apply-templates />
68
  </xsl:template>
69

    
70
  <!-- EX_BoundingPolygon-->
71
  <xsl:template match="gmd:EX_BoundingPolygon">
72
    <xsl:apply-templates />
73
  </xsl:template>
74

    
75
  <!-- EX_GeographicDescription-->
76
  <xsl:template match="gmd:EX_GeographicDescription">
77
    <xsl:apply-templates />
78
  </xsl:template>
79

    
80

    
81

    
82
  <!-- EX_GeographicBoundingBox-->
83
  <xsl:template match="gmd:EX_GeographicBoundingBox">
84
    <!-- Set up variables for N E S W -->
85
    <xsl:variable name="north"><xsl:value-of select="./gmd:northBoundLatitude/gco:Decimal/text()" /></xsl:variable>
86
    <xsl:variable name="east"><xsl:value-of select="./gmd:eastBoundLongitude/gco:Decimal/text())" /></xsl:variable>
87
    <xsl:variable name="south"><xsl:value-of select="./gmd:southBoundLatitude/gco:Decimal/text()" /></xsl:variable>
88
    <xsl:variable name="west"><xsl:value-of select="./gmd:westBoundLongitude/gco:Decimal/text()" /></xsl:variable>
89

    
90
    <div data-value="{$north}" data-content="northBoundingCoordinate" class="control-group northBoundingCoordinate">
91
      <label class="control-label">North</label>
92
      <div class="controls"><xsl:value-of select="$north" />&#xa0; degrees</div>
93
    </div>
94

    
95
    <div data-value="{$east}" data-content="eastBoundingCoordinate" class="control-group eastBoundingCoordinate">
96
      <label class="control-label">East</label>
97
      <div class="controls"><xsl:value-of select="$east" />&#xa0; degrees</div>
98
    </div>
99

    
100
    <div data-value="{$south}" data-content="southBoundingCoordinate" class="control-group southBoundingCoordinate">
101
      <label class="control-label">South</label>
102
      <div class="controls"><xsl:value-of select="$south" />&#xa0; degrees</div>
103
    </div>
104

    
105
    <div data-value="{$west}" data-content="westBoundingCoordinate" class="control-group westBoundingCoordinate">
106
      <label class="control-label">West</label>
107
      <div class="controls"><xsl:value-of select="$west" />&#xa0; degrees</div>
108
    </div>
109

    
110
    <xsl:apply-templates select="./gmd:extentTypeCode" />
111
  </xsl:template>
112

    
113
  <xsl:template match="gmd:polygon">
114
    <div class="control-group">
115
      <label class="control-label">Polygon</label>
116
      <div class="controls">
117
        <div class="controls-well">
118
          <xsl:apply-templates />
119
        </div>
120
      </div>
121
    </div>
122
  </xsl:template>
123

    
124
  <!-- EX_TemporalExtent -->
125
  <xsl:template match="gmd:EX_TemporalExtent">
126
    <span>temporal extent                
127
      <xsl:apply-templates select=".//gmd:extent/*" />
128
    </span>
129
  </xsl:template>
130

    
131
  <!-- EX_VerticalExtent-->
132
  <!-- TODO: Improve DOM structure -->
133
  <xsl:template name="verticalextent" match="gmd:EX_VerticalExtent">
134
    <span>minimumValue:     
135
      <xsl:value-of select="./gmd:minimumValue/gco:Real" />
136
    </span>
137
    <span>maximumValue:     
138
      <xsl:value-of select="./gmd:maximumValue/gco:Real" />
139
    </span>
140
    <!-- TODO: Flesh this out a bit more -->
141
    <span>verticalCRS:     
142
      <xsl:value-of select="./gmd:verticalCRS" />
143
    </span>
144
  </xsl:template>
145

    
146
  <!-- TimeInstant-->
147
  <!-- TODO
148
        - Attributes: frame, calendarEraName, indeterminatePosition
149
    -->
150
  <xsl:template name="timeinstant" match="gml:TimeInstant">
151
    <span>time instant</span>
152
    <span>description:             
153
      <xsl:value-of select=".//gmd:description" />
154
    </span>
155
    <span>
156
      <span>timePosition:             
157
        <xsl:value-of select=".//gml:timePosition" />
158
      </span>
159
      <xsl:if test=".//gml:timePosition/@calendarEraName">
160
        <span>
161
          <xsl:value-of select=".//gml:timePosition/@calendarEraName" /> (calendarEraName)
162
        </span>
163
      </xsl:if>
164
      <xsl:if test=".//gml:timePosition/@indeterminatePosition">
165
        <span>
166
          <xsl:value-of select=".//gml:timePosition/@indeterminatePosition" /> (indeterminatePosition)
167
        </span>
168
      </xsl:if>
169
    </span>
170
  </xsl:template>
171

    
172
  <!-- TimePeriod-->
173
  <!-- TODO: 
174
        - All the attributes
175
        - timeInterval units, radix, factor
176
    -->
177
  <xsl:template name="timeperiod" match="gml:TimePeriod">
178

    
179

    
180

    
181

    
182
    <xsl:if test=".//gml:beginPosition">
183
      <div class="control-group">
184
        <label class="control-label">Begin</label>
185
        <div class="controls">
186
          <span><xsl:value-of select=".//gml:beginPosition" /></span>
187
          <xsl:if test=".//gml:beginPosition/@calendarEraName">
188
            <span><xsl:value-of select=".//gml:beginPosition/@calendarEraName" /> (calendarEraName)</span>                        
189
          </xsl:if>
190
          <xsl:if test=".//gml:beginPosition/@indeterminatePosition">
191
            <span><xsl:value-of select=".//gml:beginPosition/@indeterminatePosition" /> (indeterminatePosition)</span>                        
192
          </xsl:if>
193
        </div>
194
      </div>
195
    </xsl:if>
196

    
197
    <xsl:if test=".//gml:endPosition">
198
      <div class="control-group">
199
        <label class="control-label">End</label>
200
        <div class="controls">
201
          <span><xsl:value-of select=".//gml:endPosition" /></span>
202
          <xsl:if test=".//gml:endPosition/@calendarEraName">
203
            <span><xsl:value-of select=".//gml:endPosition/@calendarEraName" /> (calendarEraName)</span>                        
204
          </xsl:if>
205
          <xsl:if test=".//gml:endPosition/@indeterminatePosition">
206
            <span><xsl:value-of select=".//gml:endPosition/@indeterminatePosition" /> (indeterminatePosition)</span>                        
207
          </xsl:if>
208
        </div>
209
      </div>
210
    </xsl:if>
211

    
212
    <xsl:if test=".//gml:duration">
213
        <span>duration:         
214
        <xsl:value-of select=".//gml:duration" />
215
      </span>
216
    </xsl:if>
217

    
218
    <xsl:if test=".//gml:timeInterval">
219
      <span>timeInterval:         
220
        <xsl:value-of select=".//gml:timeInterval" />
221
      </span>
222
    </xsl:if>
223
  </xsl:template>
224

    
225
  <!-- extentTypeCode -->
226
  <xsl:template match="gmd:extentTypeCode">
227
    <div class="control-group extentTypeCode">
228
      <label class="control-label">Type</label>
229
      <div class="controls">
230
        <xsl:choose>
231
          <xsl:when test="./gco:Boolean = 0">Exclusion</xsl:when>
232
          <xsl:when test="./gco:Boolean = 1">Inclusion</xsl:when>
233
          <xsl:when test="./@nilReason"><xsl:value-of select="./@nilReason" /></xsl:when>
234
        </xsl:choose>
235
      </div>
236
    </div>
237
  </xsl:template>
238
</xsl:stylesheet>
(2-2/5)