Project

General

Profile

1
<?xml version="1.0"?>
2
<!--
3
  *  '$RCSfile$'
4
  *      Authors: Matthew Brooke
5
  *    Copyright: 2000 Regents of the University of California and the
6
  *               National Center for Ecological Analysis and Synthesis
7
  *  For Details: http://www.nceas.ucsb.edu/
8
  *
9
  *   '$Author: leinfelder $'
10
  *     '$Date: 2013-07-15 17:44:16 -0700 (Mon, 15 Jul 2013) $'
11
  * '$Revision: 7992 $'
12
  *
13
  * This program is free software; you can redistribute it and/or modify
14
  * it under the terms of the GNU General Public License as published by
15
  * the Free Software Foundation; either version 2 of the License, or
16
  * (at your option) any later version.
17
  *
18
  * This program is distributed in the hope that it will be useful,
19
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21
  * GNU General Public License for more details.
22
  *
23
  * You should have received a copy of the GNU General Public License
24
  * along with this program; if not, write to the Free Software
25
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
26
  *
27
  * This is an XSLT (http://www.w3.org/TR/xslt) stylesheet designed to
28
  * convert an XML file that is valid with respect to the eml-variable.dtd
29
  * module of the Ecological Metadata Language (EML) into an HTML format
30
  * suitable for rendering with modern web browsers.
31
-->
32

    
33
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
34
  <xsl:import href="eml-literature.xsl"/>
35

    
36
  <xsl:output method="html" encoding="iso-8859-1"
37
    doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
38
    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
39
    indent="yes" />  
40

    
41
  <!-- This module is for coverage and it is self contained(It is a table
42
       and will handle reference by it self)-->
43
  <xsl:template name="coverage">
44
        <xsl:choose>
45
         <xsl:when test="references!=''">
46
          <xsl:variable name="ref_id" select="references"/>
47
          <xsl:variable name="references" select="$ids[@id=$ref_id]" />
48
          <xsl:for-each select="$references">
49
          <div class="row-fluid">
50
            <xsl:for-each select="geographicCoverage">
51
                <xsl:call-template name="geographicCoverage">
52
                </xsl:call-template>
53
            </xsl:for-each>
54
          </div>
55
          <div class="row-fluid">
56
             <xsl:for-each select="temporalCoverage">
57
                <xsl:call-template name="temporalCoverage">
58
                </xsl:call-template>
59
            </xsl:for-each>
60
          </div>
61
          <div class="row-fluid">
62
            <xsl:for-each select="taxonomicCoverage">
63
                <xsl:call-template name="taxonomicCoverage">
64
                </xsl:call-template>
65
            </xsl:for-each>
66
          </div>
67
          </xsl:for-each>
68
        </xsl:when>
69
        <xsl:otherwise>
70
          <div class="row-fluid">
71
            <xsl:for-each select="geographicCoverage">
72
                <xsl:call-template name="geographicCoverage">
73
                </xsl:call-template>
74
            </xsl:for-each>
75
          </div>
76
          <div class="row-fluid">
77
            <xsl:for-each select="temporalCoverage">
78
                <xsl:call-template name="temporalCoverage">
79
                </xsl:call-template>
80
            </xsl:for-each>
81
          </div>
82
          <div class="row-fluid">
83
            <xsl:for-each select="taxonomicCoverage">
84
                <xsl:call-template name="taxonomicCoverage">
85
                </xsl:call-template>
86
            </xsl:for-each>
87
          </div>
88
        </xsl:otherwise>
89
      </xsl:choose>
90
  </xsl:template>
91

    
92
 <!-- ********************************************************************* -->
93
 <!-- **************  G E O G R A P H I C   C O V E R A G E  ************** -->
94
 <!-- ********************************************************************* -->
95
  <xsl:template name="geographicCoverage">
96
    <xsl:choose>
97
      <xsl:when test="references!=''">
98
        <xsl:variable name="ref_id" select="references"/>
99
        <xsl:variable name="references" select="$ids[@id=$ref_id]" />
100
        <xsl:for-each select="$references">
101
        	
102
          	<div class="row-fluid">
103
              <xsl:call-template name="geographicCovCommon" />
104
            </div>
105
            
106
        </xsl:for-each>
107
      </xsl:when>
108
      <xsl:otherwise>
109
          <div class="row-fluid">
110
            <xsl:call-template name="geographicCovCommon" />
111
          </div>
112
      </xsl:otherwise>
113
    </xsl:choose>
114
  </xsl:template>
115

    
116
  <xsl:template name="geographicCovCommon">
117
      <!-- Geographic Region -->
118
      <h4>Geographic Region</h4>
119
      <xsl:apply-templates select="geographicDescription"/>
120
      <xsl:apply-templates select="boundingCoordinates"/>
121
      <xsl:for-each select="datasetGPolygon">
122
          <xsl:if test="datasetGPolygonOuterGRing">
123
            <xsl:apply-templates select="datasetGPolygonOuterGRing"/>
124
          </xsl:if>
125
          <xsl:if test="datasetGPolygonExclusionGRing">
126
              <xsl:apply-templates select="datasetGPolygonExclusionGRing"/>
127
          </xsl:if>
128
     </xsl:for-each>
129
  </xsl:template>
130

    
131
  <xsl:template match="geographicDescription">
132
    <div class="control-group">
133
		<label class="control-label">Geographic Description</label>
134
      	<div class="controls controls-well">
135
      		<xsl:value-of select="."/>
136
    	</div>
137
	</div>
138
  </xsl:template>
139

    
140
  <xsl:template match="boundingCoordinates">
141
      <div class="control-group">
142
		<label class="control-label">Bounding Coordinates</label>
143
      	<div class="controls controls-well">
144
      		<xsl:apply-templates select="northBoundingCoordinate"/>
145
			<xsl:apply-templates select="southBoundingCoordinate"/>
146
			<xsl:apply-templates select="eastBoundingCoordinate"/>
147
			<xsl:apply-templates select="westBoundingCoordinate"/>
148
			<xsl:apply-templates select="boundingAltitudes"/>
149
      </div>
150
	</div>
151
  </xsl:template>
152

    
153
  <xsl:template match="westBoundingCoordinate">
154
    <div class="control-group">
155
		<label class="control-label"><xsl:text>West</xsl:text></label>
156
        <div class="controls">
157
         	<xsl:value-of select="."/>&#160; degrees
158
        </div>
159
     </div>
160
  </xsl:template>
161

    
162
  <xsl:template match="eastBoundingCoordinate">
163
    <div class="control-group">
164
		<label class="control-label"><xsl:text>East</xsl:text></label>
165
		<div class="controls">
166
			<xsl:value-of select="."/>&#160; degrees
167
		</div>
168
     </div>
169
  </xsl:template>
170

    
171
  <xsl:template match="northBoundingCoordinate">
172
    <div class="control-group">
173
		<label class="control-label"><xsl:text>North</xsl:text></label>
174
        <div class="controls">
175
          <xsl:value-of select="."/>&#160; degrees
176
        </div>
177
     </div>
178
  </xsl:template>
179

    
180
  <xsl:template match="southBoundingCoordinate">
181
    <div class="control-group">
182
		<label class="control-label"><xsl:text>South</xsl:text></label>
183
		<div class="controls">
184
			<xsl:value-of select="."/>&#160; degrees
185
        </div>
186
    </div>
187
  </xsl:template>
188

    
189

    
190
  <xsl:template match="boundingAltitudes">
191

    
192
      <div class="control-group">
193
		<label class="control-label">Mimimum Altitude</label>
194
		<div class="controls">
195
        	<xsl:apply-templates select="altitudeMinimum"/>
196
        </div>
197
      </div>  
198
      <div class="control-group">
199
		<label class="control-label">Maximum Altitude</label>
200
		<div class="controls">
201
        	<xsl:apply-templates select="altitudeMaximum"/>
202
        </div>
203
       </div>
204

    
205
  </xsl:template>
206

    
207
  <xsl:template match="altitudeMinimum">
208
     <xsl:value-of select="."/> &#160;<xsl:value-of select="../altitudeUnits"/>
209
  </xsl:template>
210

    
211
  <xsl:template match="altitudeMaximum">
212
    <xsl:value-of select="."/> &#160;<xsl:value-of select="../altitudeUnits"/>
213
  </xsl:template>
214

    
215
  <xsl:template match="datasetGPolygonOuterGRing">
216
    <div class="control-group">
217
		<label class="control-label"><xsl:text>G-Ploygon(Outer Ring)</xsl:text>
218
        </label>
219
        <div class="controls">
220
           <xsl:apply-templates select="gRingPoint"/>
221
           <xsl:apply-templates select="gRing"/>
222
        </div>
223
     </div>
224
  </xsl:template>
225

    
226
  <xsl:template match="datasetGPolygonExclusionGRing">
227
    <div class="control-group">
228
		<label class="control-label"><xsl:text>G-Ploygon(Exclusion Ring)</xsl:text>
229
        </label>
230
        <div class="controls">
231
           <xsl:apply-templates select="gRingPoint"/>
232
           <xsl:apply-templates select="gRing"/>
233
        </div>
234
     </div>
235
  </xsl:template>
236

    
237
  <xsl:template match="gRing">
238
    <xsl:text>(GRing) &#160;</xsl:text>
239
    <xsl:text>Latitude: </xsl:text>
240
    <xsl:value-of select="gRingLatitude"/>,
241
    <xsl:text>Longitude: </xsl:text>
242
    <xsl:value-of select="gRingLongitude"/><br/>
243
  </xsl:template>
244

    
245
  <xsl:template match="gRingPoint">
246
    <xsl:text>Latitude: </xsl:text>
247
    <xsl:value-of select="gRingLatitude"/>,
248
    <xsl:text>Longitude: </xsl:text>
249
    <xsl:value-of select="gRingLongitude"/><br/>
250
  </xsl:template>
251

    
252
<!-- ********************************************************************* -->
253
<!-- ****************  T E M P O R A L   C O V E R A G E  **************** -->
254
<!-- ********************************************************************* -->
255

    
256
  <xsl:template name="temporalCoverage">
257
    <xsl:choose>
258
      <xsl:when test="references!=''">
259
        <xsl:variable name="ref_id" select="references"/>
260
        <xsl:variable name="references" select="$ids[@id=$ref_id]" />
261
        <xsl:for-each select="$references">
262
            <xsl:call-template name="temporalCovCommon" />
263
        </xsl:for-each>
264
      </xsl:when>
265
      <xsl:otherwise>
266
            <xsl:call-template name="temporalCovCommon" />
267
      </xsl:otherwise>
268
    </xsl:choose>
269
  </xsl:template>
270

    
271
  <xsl:template name="temporalCovCommon" >
272
		<h4>Temporal Coverage</h4>
273
		<xsl:apply-templates select="singleDateTime"/>
274
		<xsl:apply-templates select="rangeOfDates"/>
275
  </xsl:template>
276

    
277
  <xsl:template match="singleDateTime">
278
    <div class="control-group">
279
		<label class="control-label">Single Date</label>
280
        <div class="controls controls-well">
281
             <xsl:call-template name="singleDateType" />
282
        </div>
283
     </div>
284
   </xsl:template>
285

    
286
  <xsl:template match="rangeOfDates">
287
 	<div class="control-group">
288
		<label class="control-label">Date Range</label>
289
		<div class="controls controls-well">
290
		     <div class="control-group">
291
				<label class="control-label">Begin</label>
292
		         <div class="controls">
293
		            <xsl:apply-templates select="beginDate"/>
294
		         </div>
295
		     </div>
296
		     <div class="control-group">    
297
		         <label class="control-label">End</label>
298
		         <div class="controls">
299
		            <xsl:apply-templates select="endDate"/>
300
		          </div>
301
		     </div>
302
	     </div>
303
     </div>
304
  </xsl:template>
305

    
306

    
307
  <xsl:template match="beginDate">
308
      <xsl:call-template name="singleDateType"/>
309
  </xsl:template>
310

    
311
  <xsl:template match="endDate">
312
      <xsl:call-template name="singleDateType"/>
313
  </xsl:template>
314

    
315
  <xsl:template name="singleDateType">
316
  	<div class="row-fluid">
317
		<xsl:if test="calendarDate">
318
          <xsl:value-of select="calendarDate"/>
319
          <xsl:if test="./time and normalize-space(./time)!=''">
320
            <xsl:text>&#160; at &#160;</xsl:text><xsl:apply-templates select="time"/>
321
          </xsl:if>
322
		</xsl:if>
323
		<xsl:if test="alternativeTimeScale">
324
			<xsl:apply-templates select="alternativeTimeScale"/>
325
		</xsl:if>
326
     </div>
327
  </xsl:template>
328

    
329

    
330
  <xsl:template match="alternativeTimeScale">
331

    
332
        <div class="control-group">
333
			<label class="control-label">Timescale</label>
334
			<div class="controls">
335
				<xsl:value-of select="timeScaleName"/>
336
			</div>
337
		</div>
338
        <div class="control-group">
339
			<label class="control-label">Time estimate</label>
340
			<div class="controls">
341
				<xsl:value-of select="timeScaleAgeEstimate"/>
342
			</div>
343
		</div>
344
        <xsl:if test="timeScaleAgeUncertainty and normalize-space(timeScaleAgeUncertainty)!=''">
345
        	<div class="control-group">
346
				<label class="control-label">Time uncertainty</label>
347
				<div class="controls">
348
					<xsl:value-of select="timeScaleAgeUncertainty"/>
349
				</div>
350
			</div>
351
        </xsl:if>
352
        <xsl:if test="timeScaleAgeExplanation and normalize-space(timeScaleAgeExplanation)!=''">
353
        	<div class="control-group">
354
				<label class="control-label">Time explanation</label>
355
				<div class="controls">
356
					<xsl:value-of select="timeScaleAgeExplanation"/>
357
				</div>
358
			</div>
359
        </xsl:if>
360
        <xsl:if test="timeScaleCitation and normalize-space(timeScaleCitation)!=''">
361
        	<div class="control-group">
362
				<label class="control-label">Citation</label>
363
				<div class="controls">
364
            		<xsl:apply-templates select="timeScaleCitation"/>
365
        		</div>
366
        	</div>
367
        </xsl:if>
368

    
369
  </xsl:template>
370

    
371
  <xsl:template match="timeScaleCitation">
372
     <!-- Using citation module here -->
373
     <xsl:call-template name="citation">
374
     </xsl:call-template>
375
  </xsl:template>
376

    
377
<!-- ********************************************************************* -->
378
<!-- ***************  T A X O N O M I C   C O V E R A G E  *************** -->
379
<!-- ********************************************************************* -->
380
  <xsl:template name="taxonomicCoverage">
381
     <xsl:choose>
382
      <xsl:when test="references!=''">
383
        <xsl:variable name="ref_id" select="references"/>
384
        <xsl:variable name="references" select="$ids[@id=$ref_id]" />
385
        <xsl:for-each select="$references">
386
            <xsl:call-template name="taxonomicCovCommon" />
387
        </xsl:for-each>
388
      </xsl:when>
389
      <xsl:otherwise>
390
          <xsl:call-template name="taxonomicCovCommon" />
391
      </xsl:otherwise>
392
    </xsl:choose>
393
  </xsl:template>
394

    
395

    
396
  <xsl:template name="taxonomicCovCommon">
397
      <h4>Taxonomic Range</h4>
398
      
399
      <xsl:apply-templates select="taxonomicSystem"/>
400
      <xsl:apply-templates select="generalTaxonomicCoverage"/>
401
      <xsl:for-each select="taxonomicClassification">
402
          <xsl:apply-templates select="."/>
403
      </xsl:for-each>
404
  </xsl:template>
405

    
406

    
407
 <xsl:template match="taxonomicSystem">
408
     <div class="control-group">
409
		<label class="control-label"><xsl:text>Taxonomic System</xsl:text></label>
410
        <div class="controls controls-well">
411
              <xsl:apply-templates select="./*"/>
412
        </div>
413
     </div>
414
  </xsl:template>
415

    
416

    
417
  <xsl:template match="classificationSystem">
418
     <xsl:for-each select="classificationSystemCitation">
419
        <div class="control-group">
420
			<label class="control-label">Classification Citation</label>
421
          	<div class="controls">
422
	           <xsl:call-template name="citation">
423
	             <xsl:with-param name="citationfirstColStyle" select="$firstColStyle"/>
424
	             <xsl:with-param name="citationsubHeaderStyle" select="$subHeaderStyle"/>
425
	           </xsl:call-template>
426
	         </div>
427
        </div>
428
     </xsl:for-each>
429
     <xsl:if test="classificationSystemModifications and normalize-space(classificationSystemModifications)!=''">
430
      <div class="control-group">
431
		<label class="control-label">Modification</label>
432
        <div class="controls">
433
          <xsl:value-of select="classificationSystemModifications"/>
434
        </div>
435
      </div>
436
     </xsl:if>
437
  </xsl:template>
438

    
439

    
440
  <xsl:template match="identificationReference">
441
      <div class="control-group">
442
		<label class="control-label">ID Reference</label>
443
        <div class="controls">
444
             <xsl:call-template name="citation">
445
                <xsl:with-param name="citationfirstColStyle" select="$firstColStyle"/>
446
                <xsl:with-param name="citationsubHeaderStyle" select="$subHeaderStyle"/>
447
             </xsl:call-template>
448
          </div>
449
     </div>
450
  </xsl:template>
451

    
452
  <xsl:template match="identifierName">
453
      <div class="control-group">
454
		<label class="control-label">ID Name</label>
455
        <div class="controls">
456
           <xsl:call-template name="party">
457
             <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
458
           </xsl:call-template>
459
        </div>
460
      </div>
461
  </xsl:template>
462

    
463
  <xsl:template match="taxonomicProcedures">
464
    <div class="control-group">
465
		<label class="control-label"><xsl:text>Procedures</xsl:text></label>
466
		<div class="controls">
467
        	<xsl:value-of select="."/>
468
        </div>
469
    </div>
470
  </xsl:template>
471

    
472
  <xsl:template match="taxonomicCompleteness">
473
    <div class="control-group">
474
		<label class="control-label"><xsl:text>Completeness</xsl:text></label>
475
		<div class="contorls">
476
        	<xsl:value-of select="."/>
477
        </div>
478
    </div>
479
  </xsl:template>
480

    
481
  <xsl:template match="vouchers">
482
      <div class="control-group">
483
		<label class="control-label">Vouchers</label>
484
        <div class="controls">
485
	        <xsl:apply-templates select="specimen"/>
486
	        <xsl:apply-templates select="repository"/>
487
        </div>
488
      </div>
489
  </xsl:template>
490

    
491
  <xsl:template match="specimen">
492
    <div class="control-group">
493
		<label class="control-label"><xsl:text>Specimen</xsl:text></label>
494
		<div class="controls">
495
        	<xsl:value-of select="."/>
496
        </div>
497
    </div>
498
  </xsl:template>
499

    
500
  <xsl:template match="repository">
501
    <div class="control-group">
502
		<label class="control-label">Repository</label>
503
        <div class="controls">
504
            <xsl:for-each select="originator">
505
               <xsl:call-template name="party">
506
                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
507
               </xsl:call-template>
508
            </xsl:for-each>
509
        </div>
510
    </div>
511
  </xsl:template>
512

    
513

    
514
  <xsl:template match="generalTaxonomicCoverage">
515
      <div class="control-group">
516
		<label class="control-label"><xsl:text>General Coverage</xsl:text></label>
517
        <div class="controls controls-well">
518
             <xsl:value-of select="."/>
519
        </div>
520
      </div>
521
  </xsl:template>
522

    
523

    
524
  <xsl:template match="taxonomicClassification">
525
    <div class="control-group">
526
		<label class="control-label"><xsl:text>Classification</xsl:text></label>
527
		<div class="controls controls-well">
528
        	<xsl:apply-templates select="./*" mode="nest"/>
529
        </div>
530
    </div>
531
  </xsl:template>
532

    
533
  <xsl:template match="taxonRankName" mode="nest" >
534
      <div class="control-group">
535
		<label class="control-label"><xsl:text>Rank Name</xsl:text></label>
536
		<div class="controls">
537
        	<xsl:value-of select="."/>
538
        </div>
539
   	</div>
540
  </xsl:template>
541

    
542
  <xsl:template match="taxonRankValue" mode="nest">
543
      <div class="control-group">
544
		<label class="control-label"><xsl:text>Rank Value</xsl:text></label>
545
		<div class="controls">
546
        	<xsl:value-of select="."/>
547
       	</div>
548
    </div>
549
  </xsl:template>
550

    
551
  <xsl:template match="commonName" mode="nest">
552
      <div class="control-group">
553
		<label class="control-label"><xsl:text>Common Name</xsl:text></label>
554
		<div class="{$secondColStyle}">
555
            <xsl:value-of select="."/>
556
        </div>
557
      </div>
558
  </xsl:template>
559

    
560
  <xsl:template match="taxonomicClassification" mode="nest">
561
    <div class="control-group">
562
		<label class="control-label"><xsl:text>Classification</xsl:text></label>
563
        <div class="controls">
564
             <xsl:apply-templates select="./*" mode="nest"/>
565
        </div>
566
     </div>
567
  </xsl:template>
568

    
569
</xsl:stylesheet>
(6-6/27)