Project

General

Profile

1 10046 mecum
<?xml version="1.0"?>
2
<xsl:stylesheet
3 10169 mecum
    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 10418 mecum
    xmlns:gml="http://www.opengis.net/gml/3.2"
7
    xmlns:xlink="http://www.w3.org/1999/xlink" version="1.0">
8 10058 mecum
    <xsl:template match="gmd:EX_Extent">
9 10169 mecum
        <h4>Coverage</h4>
10
        <!-- description -->
11
        <xsl:if test=".//gmd:description">
12
            <div class="control-group">
13
                <label class="control-label">Description</label>
14
                <div class="controls">
15
                    <div class="controls-well">
16 10418 mecum
                        <xsl:apply-templates select=".//gmd:description" />
17 10169 mecum
                    </div>
18
                </div>
19 10058 mecum
            </div>
20 10169 mecum
        </xsl:if>
21
        <!-- Geographic -->
22
        <xsl:for-each select=".//gmd:geographicElement">
23 10418 mecum
            <!--  Dynamically add the geographicCoverage class depending on
24
            whether this is a bounding box or not because Google Static Maps are
25
             shown if the class is set but the current MetacatUI codebase only
26
             supports rectangular bounding boxes and not geometries like
27
             polygons.
28
             -->
29
30
            <xsl:element name="div">
31
                <xsl:choose>
32
                    <xsl:when test=".//gmd:EX_GeographicBoundingBox">
33
                        <xsl:attribute name="class">row-fluid geographicCoverage</xsl:attribute>
34
                    </xsl:when>
35
                    <xsl:otherwise>
36
                        <xsl:attribute name="class">row-fluid</xsl:attribute>
37
                    </xsl:otherwise>
38
                </xsl:choose>
39
40 10169 mecum
                <div class="control-group">
41
                    <label class="control-label">Geographic</label>
42
                    <div class="controls">
43
                        <div class="controls-well">
44
                            <xsl:apply-templates />
45
                        </div>
46
                    </div>
47
                </div>
48 10418 mecum
            </xsl:element>
49 10169 mecum
        </xsl:for-each>
50
        <!-- Temporal -->
51
        <xsl:for-each select=".//gmd:temporalElement">
52
            <div class="control-group">
53
                <label class="control-label">Temporal</label>
54
                <div class="controls">
55
                    <div class="controls-well">
56
                        <xsl:apply-templates />
57
                    </div>
58
                </div>
59 10058 mecum
            </div>
60 10169 mecum
        </xsl:for-each>
61
        <!-- Vertical -->
62
        <xsl:for-each select=".//gmd:verticalElement">
63
            <div class="control-group">
64
                <label class="control-label">Vertical</label>
65
                <div class="controls">
66
                    <div class="controls-well">
67
                        <xsl:apply-templates />
68
                    </div>
69
                </div>
70 10058 mecum
            </div>
71 10169 mecum
        </xsl:for-each>
72 10058 mecum
    </xsl:template>
73 10169 mecum
    <!-- EX_GeographicExtent-->
74
    <xsl:template match="gmd:EX_GeographicExtent">
75
        <xsl:apply-templates />
76
    </xsl:template>
77
    <!-- EX_BoundingPolygon-->
78
    <xsl:template match="gmd:EX_BoundingPolygon">
79
        <xsl:apply-templates />
80
    </xsl:template>
81
    <!-- EX_GeographicDescription-->
82
    <xsl:template match="gmd:EX_GeographicDescription">
83
        <xsl:apply-templates />
84
    </xsl:template>
85
    <!-- EX_GeographicBoundingBox-->
86
    <xsl:template match="gmd:EX_GeographicBoundingBox">
87
        <!-- Set up variables for N E S W -->
88
        <xsl:variable name="north">
89
            <xsl:value-of select="./gmd:northBoundLatitude/gco:Decimal/text()" />
90
        </xsl:variable>
91
        <xsl:variable name="east">
92
            <xsl:value-of select="./gmd:eastBoundLongitude/gco:Decimal/text()" />
93
        </xsl:variable>
94
        <xsl:variable name="south">
95
            <xsl:value-of select="./gmd:southBoundLatitude/gco:Decimal/text()" />
96
        </xsl:variable>
97
        <xsl:variable name="west">
98
            <xsl:value-of select="./gmd:westBoundLongitude/gco:Decimal/text()" />
99
        </xsl:variable>
100
        <div data-value="{$north}" data-content="northBoundingCoordinate" class="control-group northBoundingCoordinate">
101
            <label class="control-label">North</label>
102
            <div class="controls">
103
                <div class="controls-well">
104 10385 mecum
                    <xsl:value-of select="$north" />&#xa0; degrees
105 10169 mecum
                </div>
106
            </div>
107
        </div>
108
        <div data-value="{$east}" data-content="eastBoundingCoordinate" class="control-group eastBoundingCoordinate">
109
            <label class="control-label">East</label>
110
            <div class="controls">
111
                <div class="controls-well">
112 10385 mecum
                    <xsl:value-of select="$east" />&#xa0; degrees
113 10169 mecum
                </div>
114
            </div>
115
        </div>
116
        <div data-value="{$south}" data-content="southBoundingCoordinate" class="control-group southBoundingCoordinate">
117
            <label class="control-label">South</label>
118
            <div class="controls">
119
                <div class="controls-well">
120 10385 mecum
                    <xsl:value-of select="$south" />&#xa0; degrees
121 10169 mecum
                </div>
122
            </div>
123
        </div>
124
        <div data-value="{$west}" data-content="westBoundingCoordinate" class="control-group westBoundingCoordinate">
125
            <label class="control-label">West</label>
126
            <div class="controls">
127
                <div class="controls-well">
128 10385 mecum
                    <xsl:value-of select="$west" />&#xa0; degrees
129 10169 mecum
                </div>
130
            </div>
131
        </div>
132
        <xsl:apply-templates select="./gmd:extentTypeCode" />
133
    </xsl:template>
134
    <!-- gmd:polygon -->
135
    <xsl:template match="gmd:polygon">
136
        <div class="control-group">
137
            <label class="control-label">Polygon</label>
138
            <div class="controls">
139
                <div class="controls-well">
140
                    <xsl:apply-templates />
141
                </div>
142
            </div>
143 10058 mecum
        </div>
144 10169 mecum
    </xsl:template>
145
    <!-- EX_TemporalExtent -->
146
    <xsl:template match="gmd:EX_TemporalExtent">
147
        <xsl:apply-templates select=".//gmd:extent/*" />
148
    </xsl:template>
149
    <!-- EX_VerticalExtent-->
150
    <xsl:template match="gmd:EX_VerticalExtent">
151 10418 mecum
        <div class="control-group">
152
            <label class="control-label">Minimum</label>
153
            <div class="controls">
154
                <div class="controls-well">
155 10169 mecum
            <xsl:value-of select="./gmd:minimumValue/gco:Real" />
156 10418 mecum
                </div>
157
            </div>
158
        </div>
159
160
        <div class="control-group">
161
            <label class="control-label">Maximum</label>
162
            <div class="controls">
163
                <div class="controls-well">
164 10169 mecum
            <xsl:value-of select="./gmd:maximumValue/gco:Real" />
165 10418 mecum
                </div>
166
            </div>
167
        </div>
168
169
        <div class="control-group">
170
            <label class="control-label">CRS</label>
171
            <div class="controls">
172
                <div class="controls-well">
173
                    <xsl:apply-templates select="./gmd:verticalCRS" />
174
                </div>
175
            </div>
176
        </div>
177 10169 mecum
    </xsl:template>
178 10418 mecum
179 10169 mecum
    <!-- TimeInstant-->
180
    <!-- TODO
181 10046 mecum
        - Attributes: frame, calendarEraName, indeterminatePosition
182
    -->
183 10169 mecum
    <xsl:template match="gml:TimeInstant">
184 10174 mecum
        <label class="control-label">Instant</label>
185
        <div class="controls">
186 10385 mecum
            <div class="controls-well">
187 10174 mecum
                <xsl:if test="./gmd:description">
188
                    <label class="control-label">Description</label>
189
                    <div class="controls">
190
                        <div class="controls-well">
191
                            <xsl:if test="./gmd:description">
192
                                <xsl:value-of select=".//gmd:description" />
193
                            </xsl:if>
194
                        </div>
195
                    </div>
196
                </xsl:if>
197
                <label class="control-label">Time Position</label>
198
                <div class="controls">
199
                    <div class="controls-well">
200
                        <xsl:value-of select=".//gml:timePosition" />
201
                    </div>
202
                </div>
203
                <xsl:if test=".//gml:timePosition/@calendarEraName">
204
                    <label class="control-label">Calendar Era Name</label>
205
                    <div class="controls">
206
                        <div class="controls-well">
207
                            <xsl:value-of select=".//gml:timePosition/@calendarEraName" />
208
                        </div>
209
                    </div>
210
                </xsl:if>
211
                <xsl:if test=".//gml:timePosition/@indeterminatePosition">
212
                    <label class="control-label">Time Position</label>
213
                    <div class="controls">
214
                        <div class="controls-well">
215 10385 mecum
                            <xsl:value-of select=".//gml:timePosition/@indeterminatePosition" />
216 10174 mecum
                        </div>
217
                    </div>
218
                </xsl:if>
219
            </div>
220 10169 mecum
        </div>
221
    </xsl:template>
222
    <!-- TimePeriod-->
223
    <!-- TODO:
224 10046 mecum
        - All the attributes
225
        - timeInterval units, radix, factor
226
    -->
227 10169 mecum
    <xsl:template match="gml:TimePeriod">
228
        <xsl:if test=".//gml:beginPosition">
229
            <div class="control-group">
230
                <label class="control-label">Begin</label>
231
                <div class="controls">
232 10385 mecum
                    <div class="controls-well">
233
                        <xsl:value-of select=".//gml:beginPosition" />
234
                    </div>
235 10169 mecum
                    <xsl:if test=".//gml:beginPosition/@calendarEraName">
236
                        <span>
237 10385 mecum
                            <xsl:value-of select=".//gml:beginPosition/@calendarEraName" /> (calendarEraName)
238 10169 mecum
                        </span>
239
                    </xsl:if>
240
                    <xsl:if test=".//gml:beginPosition/@indeterminatePosition">
241
                        <span>
242 10385 mecum
                            <xsl:value-of select=".//gml:beginPosition/@indeterminatePosition" /> (indeterminatePosition)
243 10169 mecum
                        </span>
244
                    </xsl:if>
245
                </div>
246
            </div>
247
        </xsl:if>
248
        <xsl:if test=".//gml:endPosition">
249
            <div class="control-group">
250
                <label class="control-label">End</label>
251
                <div class="controls">
252 10385 mecum
                    <div class="controls-well">
253
                        <xsl:value-of select=".//gml:endPosition" />
254
                    </div>
255 10169 mecum
                    <xsl:if test=".//gml:endPosition/@calendarEraName">
256
                        <span>
257 10385 mecum
                            <xsl:value-of select=".//gml:endPosition/@calendarEraName" /> (calendarEraName)
258 10169 mecum
                        </span>
259
                    </xsl:if>
260
                    <xsl:if test=".//gml:endPosition/@indeterminatePosition">
261
                        <span>
262 10385 mecum
                            <xsl:value-of select=".//gml:endPosition/@indeterminatePosition" /> (indeterminatePosition)
263 10169 mecum
                        </span>
264
                    </xsl:if>
265
                </div>
266
            </div>
267
        </xsl:if>
268
        <xsl:if test=".//gml:duration">
269 10385 mecum
            <span>duration:
270 10169 mecum
                <xsl:value-of select=".//gml:duration" />
271
            </span>
272
        </xsl:if>
273
        <xsl:if test=".//gml:timeInterval">
274 10385 mecum
            <span>timeInterval:
275 10169 mecum
                <xsl:value-of select=".//gml:timeInterval" />
276
            </span>
277
        </xsl:if>
278
    </xsl:template>
279
    <!-- extentTypeCode -->
280
    <xsl:template match="gmd:extentTypeCode">
281
        <div class="control-group extentTypeCode">
282
            <label class="control-label">Type</label>
283
            <div class="controls">
284
                <xsl:choose>
285
                    <xsl:when test="./gco:Boolean = 0">Exclusive</xsl:when>
286
                    <xsl:when test="./gco:Boolean = 1">Inclusive</xsl:when>
287
                    <xsl:when test="./@nilReason">
288
                        <xsl:value-of select="./@nilReason" />
289
                    </xsl:when>
290
                </xsl:choose>
291
            </div>
292 10049 mecum
        </div>
293 10169 mecum
    </xsl:template>
294 10385 mecum
</xsl:stylesheet>