Project

General

Profile

1
<?xml version="1.0"?>
2
<!--
3
  *  '$RCSfile$'
4
  *      Authors: Matt Jones
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 10:37:09 -0700 (Mon, 15 Jul 2013) $'
11
  * '$Revision: 7982 $'
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-dataset.dtd
29
  * module of the Ecological Metadata Language (EML) into an HTML format
30
  * suitable for rendering with modern web browsers.
31
-->
32
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
33

    
34

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

    
40
  <xsl:template match="dataset" mode="dataset">
41
      <xsl:choose>
42
         <xsl:when test="references!=''">
43
          <xsl:variable name="ref_id" select="references"/>
44
          <xsl:variable name="references" select="$ids[@id=$ref_id]" />
45
          <xsl:for-each select="$references">
46
             <xsl:call-template name="datasetmixed"/>
47
          </xsl:for-each>
48
       </xsl:when>
49
       <xsl:otherwise>
50
             <xsl:call-template name="datasetmixed"/>
51
       </xsl:otherwise>
52
      </xsl:choose>
53

    
54
  </xsl:template>
55
  
56
  <xsl:template name="datasetmixed">
57
  	<!-- redundant with the citation, BRL 01/13/2011
58
		<h3>
59
	 		<xsl:choose>
60
	     		<xsl:when test="normalize-space(./title) != ''">
61
			     	<xsl:for-each select="./title">
62
			     		<xsl:call-template name="i18n">
63
			     			<xsl:with-param name="i18nElement" select="."/>
64
			     		</xsl:call-template>
65
			     	</xsl:for-each>
66
			     </xsl:when>
67
			     <xsl:otherwise>
68
			     	Data Set Documentation
69
			     </xsl:otherwise>
70
	     	</xsl:choose>
71
	 	</h3>
72
	 -->	
73
     <!-- citation -->
74
     <table class="group group_border onehundred_percent">
75
     	<xsl:for-each select=".">
76
	     	<xsl:call-template name="datasetcitation" />
77
	    </xsl:for-each>		
78
     </table>
79
     
80
     <table class="subGroup onehundred_percent">
81
       <tr>
82
         <td class="fortyfive_percent">
83
           <!-- style the identifying information into a small table -->
84
           <table class="{$tabledefaultStyle}">
85
             <tr><th colspan="2">General Information:</th></tr>
86
             <!-- put in the title -->
87
             <xsl:if test="./title">
88
               <xsl:for-each select="./title">
89
                 <xsl:call-template name="resourcetitle">
90
                   <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
91
                   <xsl:with-param name="ressecondColStyle" select="$secondColStyle"/>
92
                 </xsl:call-template>
93
               </xsl:for-each>
94
             </xsl:if>
95
             <!-- put in the short name -->
96
             <xsl:if test="shortName">
97
             <xsl:for-each select="./shortName">
98
             <xsl:call-template name="resourceshortName">
99
               <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
100
               <xsl:with-param name="ressecondColStyle" select="$secondColStyle"/>
101
             </xsl:call-template>
102
             </xsl:for-each>
103
             </xsl:if>
104
             <!-- put in the identifier and system that the ID belongs to -->
105
             <xsl:if test="../@packageId">
106
             <xsl:for-each select="../@packageId">
107
             	<xsl:choose>
108
             		<xsl:when test="$docid != ''" >
109
             			<!-- use docid parameter when we have it -->         	
110
						<xsl:call-template name="identifier">
111
							<xsl:with-param name="packageID" select="$docid"/>
112
							<xsl:with-param name="system" select="../@system"/>
113
							<xsl:with-param name="IDfirstColStyle" select="$firstColStyle"/>
114
							<xsl:with-param name="IDsecondColStyle" select="$secondColStyle"/>
115
						</xsl:call-template>
116
		             </xsl:when>
117
		             <xsl:otherwise>
118
		             	<xsl:call-template name="identifier">
119
			               <xsl:with-param name="packageID" select="../@packageId"/>
120
			               <xsl:with-param name="system" select="../@system"/>
121
			               <xsl:with-param name="IDfirstColStyle" select="$firstColStyle"/>
122
			               <xsl:with-param name="IDsecondColStyle" select="$secondColStyle"/>
123
			             </xsl:call-template>
124
		             </xsl:otherwise>
125
	             </xsl:choose>
126
             </xsl:for-each>
127
             </xsl:if>
128
             <!-- put in the alternate identifiers -->
129
             <xsl:if test="keywordSet">
130
             <xsl:for-each select="alternateIdentifier">
131
               <xsl:call-template name="resourcealternateIdentifier">
132
                 <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
133
                 <xsl:with-param name="ressecondColStyle" select="$secondColStyle"/>
134
               </xsl:call-template>
135
             </xsl:for-each>
136
             </xsl:if>
137
             <!-- put in the text of the abstract-->
138
             <xsl:if test="./abstract">
139
             <xsl:for-each select="./abstract">
140
               <xsl:call-template name="resourceabstract">
141
                 <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
142
                 <xsl:with-param name="ressecondColStyle" select="$secondColStyle"/>
143
               </xsl:call-template>
144
             </xsl:for-each>
145
             </xsl:if>
146
             <!-- put in the purpose of the dataset-->
147
             <xsl:if test="./purpose">
148
             <xsl:for-each select="./purpose">
149
               <xsl:call-template name="datasetpurpose">
150
                 <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
151
                 <xsl:with-param name="ressecondColStyle" select="$secondColStyle"/>
152
               </xsl:call-template>
153
             </xsl:for-each>
154
             </xsl:if>
155
             <!-- put in the keyword sets -->
156
             <xsl:if test="keywordSet">
157
               <tr>
158
                 <td class="{$firstColStyle}">
159
                   <xsl:text>Keywords:</xsl:text>
160
                 </td>
161
                 <td class="{$secondColStyle}">
162
                 <xsl:for-each select="keywordSet">
163
                   <xsl:call-template name="resourcekeywordSet" >
164
                     <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
165
                     <xsl:with-param name="ressecondColStyle" select="$secondColStyle"/>
166
                   </xsl:call-template>
167
                 </xsl:for-each>
168
                 </td>
169
               </tr>
170
             </xsl:if>
171

    
172
             <!-- put in the publication date -->
173
             <xsl:if test="./pubDate">
174
               <xsl:for-each select="pubDate">
175
                <xsl:call-template name="resourcepubDate" >
176
                  <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
177
                 </xsl:call-template>
178
               </xsl:for-each>
179
             </xsl:if>
180

    
181
             <!-- put in the language -->
182
             <xsl:if test="./language">
183
               <xsl:for-each select="language">
184
                 <xsl:call-template name="resourcelanguage" >
185
                   <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
186
                  </xsl:call-template>
187
               </xsl:for-each>
188
             </xsl:if>
189

    
190
             <!-- put in the series -->
191
             <xsl:if test="./series">
192
               <xsl:for-each select="series">
193
                 <xsl:call-template name="resourceseries" >
194
                   <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
195
                 </xsl:call-template>
196
               </xsl:for-each>
197
             </xsl:if>
198
           </table>
199
         </td>
200
         <!-- begin the second column of the 'Data Set Description' section -->
201
         <td class="fortyfive_percent">
202
           <!-- create a second easy access table listing the data entities -->
203
           <xsl:if test="dataTable|spatialRaster|spatialVector|storedProcedure|view|otherEntity">
204
           <xsl:if test="$withEntityLinks='1' or $displaymodule = 'printall'">
205
               <table class="{$tabledefaultStyle}">
206
	             <xsl:call-template name="datasetentity"/>
207
	           </table>
208
             </xsl:if>
209
           </xsl:if>
210
         </td>
211
       </tr>
212
     </table>
213
     <h3>Involved Parties</h3>
214

    
215
     <!-- this section creates a two column table to present the involved
216
     parties in boxes across the entire page -->
217
     <table class="subGroup onehundred_percent">
218

    
219
       <!-- add in the creators using a two column table -->
220
       <xsl:if test="creator">
221
         <tr><th colspan="2">Data Set Creators:</th></tr>
222
         <xsl:for-each select="creator">
223
         <tr>
224
           <xsl:if test="position() mod 2 = 1">
225
             <td class="fortyfive_percent">
226
               <xsl:call-template name="party">
227
                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
228
                 <xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
229
               </xsl:call-template>
230
             </td>
231
             <xsl:for-each select="following-sibling::creator[position()=1]">
232
             <td class="fortyfive_percent">
233
               <xsl:call-template name="party">
234
                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
235
                 <xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
236
               </xsl:call-template>
237
             </td>
238
             </xsl:for-each>
239
           </xsl:if>
240
         </tr>
241
         </xsl:for-each>
242
       </xsl:if>
243

    
244
       <!-- add in the contacts using a two column table -->
245
       <xsl:if test="contact">
246
         <tr><th colspan="2">Data Set Contacts:</th></tr>
247
         <xsl:for-each select="contact">
248
         <tr>
249
           <xsl:if test="position() mod 2 = 1">
250
             <td class="fortyfive_percent">
251
               <xsl:call-template name="party">
252
                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
253
                 <xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
254
               </xsl:call-template>
255
             </td>
256
             <xsl:for-each select="following-sibling::contact[position()=1]">
257
             <td class="fortyfive_percent">
258
               <xsl:call-template name="party">
259
                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
260
                 <xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
261
               </xsl:call-template>
262
             </td>
263
             </xsl:for-each>
264
           </xsl:if>
265
         </tr>
266
         </xsl:for-each>
267
       </xsl:if>
268

    
269
       <!-- add in the associatedParty using a two column table -->
270
       <xsl:if test="associatedParty">
271
         <tr><th colspan="2">Associated Parties:</th></tr>
272
         <xsl:for-each select="associatedParty">
273
         <tr>
274
           <xsl:if test="position() mod 2 = 1">
275
             <td class="fortyfive_percent">
276
               <xsl:call-template name="party">
277
                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
278
                 <xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
279
               </xsl:call-template>
280
             </td>
281
             <xsl:for-each select="following-sibling::associatedParty[position()=1]">
282
             <td class="fortyfive_percent">
283
               <xsl:call-template name="party">
284
                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
285
                 <xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
286
               </xsl:call-template>
287
             </td>
288
             </xsl:for-each>
289
           </xsl:if>
290
         </tr>
291
         </xsl:for-each>
292
       </xsl:if>
293

    
294
       <!-- add in the metadataProviders using a two column table -->
295
       <xsl:if test="metadataProvider">
296
         <tr><th colspan="2">Metadata Providers:</th></tr>
297
         <xsl:for-each select="metadataProvider">
298
         <tr>
299
           <xsl:if test="position() mod 2 = 1">
300
             <td class="fortyfive_percent">
301
               <xsl:call-template name="party">
302
                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
303
                 <xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
304
               </xsl:call-template>
305
             </td>
306
             <xsl:for-each select="following-sibling::metadataProvider[position()=1]">
307
             <td class="fortyfive_percent">
308
               <xsl:call-template name="party">
309
                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
310
                 <xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
311
               </xsl:call-template>
312
             </td>
313
             </xsl:for-each>
314
           </xsl:if>
315
         </tr>
316
         </xsl:for-each>
317
       </xsl:if>
318

    
319
       <!-- add in the publishers using a two column table -->
320
       <xsl:if test="publisher">
321
         <tr><th colspan="2">Data Set Publishers:</th></tr>
322
         <xsl:for-each select="publisher">
323
         <tr>
324
           <xsl:if test="position() mod 2 = 1">
325
             <td class="fortyfive_percent">
326
               <xsl:call-template name="party">
327
                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
328
                 <xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
329
               </xsl:call-template>
330
             </td>
331
             <xsl:for-each select="following-sibling::publisher[position()=1]">
332
             <td class="fortyfive_percent">
333
               <xsl:call-template name="party">
334
                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
335
                 <xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
336
               </xsl:call-template>
337
             </td>
338
             </xsl:for-each>
339
           </xsl:if>
340
         </tr>
341
         </xsl:for-each>
342
       </xsl:if>
343
     </table>
344

    
345
     <h3>Data Set Characteristics</h3>
346

    
347
       <!-- add in the coverage info -->
348
     <table class="subGroup onehundred_percent">  
349
       <tr>
350
       <!-- add in the geographic coverage info -->
351
         <td class="fortyfive_percent">
352
           <xsl:if test="./coverage/geographicCoverage">
353
             <xsl:for-each select="./coverage/geographicCoverage">
354
               <xsl:call-template name="geographicCoverage">
355
                 <xsl:with-param name="firstColStyle" select="$firstColStyle"/>
356
                 <xsl:with-param name="secondColStyle" select="$secondColStyle"/>
357
               </xsl:call-template>
358
             </xsl:for-each>
359
           </xsl:if>
360
         </td>
361
       <!-- add in the temporal coverage info -->
362
         <td class="fortyfive_percent">
363
           <xsl:if test="./coverage/temporalCoverage">
364
             <xsl:for-each select="./coverage/temporalCoverage">
365
               <xsl:call-template name="temporalCoverage">
366
                 <xsl:with-param name="firstColStyle" select="$firstColStyle"/>
367
                 <xsl:with-param name="secondColStyle" select="$secondColStyle"/>
368
               </xsl:call-template>
369
             </xsl:for-each>
370
           </xsl:if>
371
         </td>
372
       </tr>
373
       <tr>
374
       <!-- add in the taxonomic coverage info -->
375
         <td colspan="2" class="onehundred_percent">
376
           <xsl:if test="./coverage/taxonomicCoverage">
377
             <xsl:for-each select="./coverage/taxonomicCoverage">
378
               <xsl:call-template name="taxonomicCoverage">
379
                 <xsl:with-param name="firstColStyle" select="$firstColStyle"/>
380
                 <xsl:with-param name="secondColStyle" select="$secondColStyle"/>
381
               </xsl:call-template>
382
             </xsl:for-each>
383
           </xsl:if>
384
         </td>
385
       </tr>
386
     </table>
387

    
388
     <!-- add in the method info -->
389
     <h3>Sampling, Processing and Quality Control Methods</h3>
390

    
391
     <table class="subGroup onehundred_percent">  
392
       <tr>
393
         <td colspan="2" class="onehundred_percent">
394
           <xsl:if test="./methods">
395
             <xsl:for-each select="./methods">
396
               <xsl:call-template name="datasetmethod">
397
                 <xsl:with-param name="methodfirstColStyle" select="$firstColStyle"/>
398
                 <xsl:with-param name="methodsecondColStyle" select="$secondColStyle"/>
399
               </xsl:call-template>
400
             </xsl:for-each>
401
           </xsl:if>
402
         </td>
403
       </tr>
404
     </table>
405

    
406
     <h3>Data Set Usage Rights</h3>
407

    
408
       <!-- add in the intellectiual rights info -->
409
     <table class="subGroup onehundred_percent">  
410
       <tr>
411
         <td>
412
           <xsl:if test="intellectualRights">
413
             <xsl:for-each select="intellectualRights">
414
               <xsl:call-template name="resourceintellectualRights">
415
                 <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
416
                 <xsl:with-param name="ressecondColStyle" select="$secondColStyle"/>
417
               </xsl:call-template>
418
             </xsl:for-each>
419
           </xsl:if>
420
         </td>
421
       </tr>
422
     </table>
423

    
424
       <!-- add in the access control info -->
425
     <table class="subGroup onehundred_percent">  
426
       <tr>
427
         <td>
428
           <xsl:if test="access">
429
             <xsl:for-each select="access">
430
               <xsl:call-template name="access">
431
                 <xsl:with-param name="accessfirstColStyle" select="$firstColStyle"/>
432
                 <xsl:with-param name="accesssecondColStyle" select="$secondColStyle"/>
433
               </xsl:call-template>
434
             </xsl:for-each>
435
           </xsl:if>
436
         </td>
437
       </tr>
438
     </table>
439
  </xsl:template>
440

    
441
  <xsl:template name="datasetresource">
442
     <tr>
443
        <td colspan="2">
444
          <xsl:call-template name="resource">
445
            <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
446
            <xsl:with-param name="ressubHeaderStyle" select="$subHeaderStyle"/>
447
          </xsl:call-template>
448
       </td>
449
     </tr>
450
  </xsl:template>
451

    
452

    
453

    
454
  <xsl:template name="datasetpurpose">
455
    <xsl:for-each select="purpose">
456
      <tr><td colspan="2">
457
           <xsl:text>Purpose:</xsl:text>
458
        </td>
459
       </tr>
460
       <tr>
461
            <td  class="{$firstColStyle}">
462
            &#160;
463
            </td>
464
            <td>
465
              <xsl:call-template name="text">
466
                <xsl:with-param name="textfirstColStyle" select="$firstColStyle"/>
467
              </xsl:call-template>
468
            </td>
469
       </tr>
470
     </xsl:for-each>
471
  </xsl:template>
472

    
473
  <xsl:template name="datasetmaintenance">
474
    <xsl:for-each select="maintenance">
475
      <tr><td colspan="2">
476
        <xsl:text>Maintenance:</xsl:text>
477
     </td></tr>
478
     <xsl:call-template name="mantenancedescription"/>
479
      <tr>
480
          <td  class="{$firstColStyle}">
481
          Frequency:
482
          </td>
483
          <td class="{$secondColStyle}" >
484
           <xsl:value-of select="maintenanceUpdateFrequency"/>
485
          </td>
486
     </tr>
487
     <xsl:call-template name="datasetchangehistory"/>
488
   </xsl:for-each>
489
  </xsl:template>
490

    
491
  <xsl:template name="mantenancedescription">
492
   <xsl:for-each select="description">
493
     <tr>
494
          <td  class="{$firstColStyle}">
495
          Description:
496
          </td>
497
          <td>
498
            <xsl:call-template name="text">
499
               <xsl:with-param name="textfirstColStyle" select="$firstColStyle"/>
500
             </xsl:call-template>
501
          </td>
502
     </tr>
503
    </xsl:for-each>
504
  </xsl:template>
505

    
506
   <xsl:template name="datasetchangehistory">
507
   <xsl:if test="changeHistory">
508
     <tr>
509
          <td class="{$firstColStyle}">
510
          History:
511
          </td>
512
          <td>
513
            <table class="{$tabledefaultStyle}">
514
              <xsl:for-each select="changeHistory">
515
                <xsl:call-template name="historydetails"/>
516
              </xsl:for-each>
517
            </table>
518
          </td>
519
     </tr>
520
     </xsl:if>
521
   </xsl:template>
522

    
523
   <xsl:template name="historydetails">
524
        <tr><td class="{$firstColStyle}">
525
            scope:</td>
526
            <td class="{$secondColStyle}">
527
            <xsl:value-of select="changeScope"/>
528
        </td></tr>
529
        <tr><td class="{$firstColStyle}">
530
            old value:</td>
531
            <td class="{$secondColStyle}">
532
            <xsl:value-of select="oldValue"/>
533
        </td></tr>
534
        <tr><td class="{$firstColStyle}">
535
            change date:</td>
536
            <td class="{$secondColStyle}">
537
            <xsl:value-of select="changeDate"/>
538
        </td></tr>
539
        <xsl:if test="comment and normalize-space(comment)!=''">
540
          <tr><td class="{$firstColStyle}">
541
            comment:</td><td class="{$secondColStyle}">
542
            <xsl:value-of select="comment"/>
543
          </td></tr>
544
        </xsl:if>
545
  </xsl:template>
546

    
547
  <xsl:template name="datasetcontact">
548
    <tr><td colspan="2">
549
        <xsl:text>Contact:</xsl:text>
550
     </td></tr>
551
    <xsl:for-each select="contact">
552
     <tr><td colspan="2">
553
       <xsl:call-template name="party">
554
              <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
555
       </xsl:call-template>
556
     </td></tr>
557
    </xsl:for-each>
558
  </xsl:template>
559

    
560
  <xsl:template name="datasetpublisher">
561
   <xsl:for-each select="publisher">
562
     <tr><td colspan="2">
563
        <xsl:text>Publisher:</xsl:text>
564
     </td></tr>
565
     <tr><td colspan="2">
566
       <xsl:call-template name="party">
567
              <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
568
       </xsl:call-template>
569
     </td></tr>
570
   </xsl:for-each>
571
  </xsl:template>
572

    
573
  <xsl:template name="datasetpubplace">
574
    <xsl:for-each select="pubPlace">
575
      <tr><td class="{$firstColStyle}">
576
           Publish Place:</td>
577
          <td class="{$secondColStyle}">
578
          <xsl:value-of select="."/>
579
          </td>
580
      </tr>
581
   </xsl:for-each>
582
  </xsl:template>
583

    
584
  <xsl:template name="datasetmethod">
585
     <xsl:for-each select=".">
586
        <xsl:call-template name="method">
587
          <xsl:with-param name="methodfirstColStyle" select="$firstColStyle"/>
588
        </xsl:call-template>
589
    </xsl:for-each>
590
  </xsl:template>
591

    
592
  <xsl:template name="datasetproject">
593
    <xsl:for-each select="project">
594
     <tr>
595
       <td colspan="2">
596
         <h3><xsl:text>Parent Project Information:</xsl:text></h3>
597
       </td>
598
     </tr>
599
     <tr>
600
       <td colspan="2">
601
       <xsl:call-template name="project">
602
         <xsl:with-param name="projectfirstColStyle" select="$firstColStyle"/>
603
       </xsl:call-template>
604
       </td>
605
     </tr>
606
    </xsl:for-each>
607
  </xsl:template>
608

    
609
   <xsl:template name="datasetaccess">
610
    <xsl:for-each select="access">
611
      <tr>
612
        <td colspan="2">
613
        <xsl:call-template name="access">
614
          <xsl:with-param name="accessfirstColStyle" select="$firstColStyle"/>
615
          <xsl:with-param name="accesssubHeaderStyle" select="$subHeaderStyle"/>
616
        </xsl:call-template>
617
        </td>
618
      </tr>
619
    </xsl:for-each>
620
  </xsl:template>
621
  
622
	<xsl:template name="datasetentity">
623
		<xsl:if test="dataTable or spatialRaster or spatialVector or storedProcedures or view or otherEntity">
624
			<tr>
625
				<th colspan="2">
626
					<xsl:text>Data Table, Image, and Other Data Details:</xsl:text>
627
				</th>
628
			</tr>
629
		</xsl:if>
630
		
631
		<xsl:call-template name="xml" />
632
			
633
		<xsl:choose>
634
			<xsl:when test="$displaymodule!='printall'">
635
				<xsl:for-each select="dataTable">
636
					<xsl:call-template name="entityurl">
637
						<xsl:with-param name="type">dataTable</xsl:with-param>
638
						<xsl:with-param name="showtype">Data Table</xsl:with-param>
639
						<xsl:with-param name="index" select="position()" />
640
					</xsl:call-template>
641
				</xsl:for-each>
642
				<xsl:for-each select="spatialRaster">
643
					<xsl:call-template name="entityurl">
644
						<xsl:with-param name="type">spatialRaster</xsl:with-param>
645
						<xsl:with-param name="showtype">Spatial Raster</xsl:with-param>
646
						<xsl:with-param name="index" select="position()" />
647
					</xsl:call-template>
648
				</xsl:for-each>
649
				<xsl:for-each select="spatialVector">
650
					<xsl:call-template name="entityurl">
651
						<xsl:with-param name="type">spatialVector</xsl:with-param>
652
						<xsl:with-param name="showtype">Spatial Vector</xsl:with-param>
653
						<xsl:with-param name="index" select="position()" />
654
					</xsl:call-template>
655
				</xsl:for-each>
656
				<xsl:for-each select="storedProcedure">
657
					<xsl:call-template name="entityurl">
658
						<xsl:with-param name="type">storedProcedure</xsl:with-param>
659
						<xsl:with-param name="showtype">Stored Procedure</xsl:with-param>
660
						<xsl:with-param name="index" select="position()" />
661
					</xsl:call-template>
662
				</xsl:for-each>
663
				<xsl:for-each select="view">
664
					<xsl:call-template name="entityurl">
665
						<xsl:with-param name="type">view</xsl:with-param>
666
						<xsl:with-param name="showtype">View</xsl:with-param>
667
						<xsl:with-param name="index" select="position()" />
668
					</xsl:call-template>
669
				</xsl:for-each>
670
				<xsl:for-each select="otherEntity">
671
					<xsl:call-template name="entityurl">
672
						<xsl:with-param name="type">otherEntity</xsl:with-param>
673
						<xsl:with-param name="showtype">Other Data</xsl:with-param>
674
						<xsl:with-param name="index" select="position()" />
675
					</xsl:call-template>
676
				</xsl:for-each>
677
			</xsl:when>
678
			<xsl:otherwise>
679
				<xsl:for-each select="dataTable">
680
					<xsl:variable name="currentNode" select="position()" />
681
					<xsl:for-each select="../.">
682
						<tr>
683
							<td class="{$subHeaderStyle}" colspan="2">
684
								<xsl:text>Data Table:</xsl:text>
685
							</td>
686
						</tr>
687
						<tr>
688
							<td>
689
								<xsl:call-template name="chooseentity">
690
									<xsl:with-param name="entitytype">dataTable</xsl:with-param>
691
									<xsl:with-param name="entityindex" select="$currentNode" />
692
								</xsl:call-template>
693
							</td>
694
						</tr>
695
					</xsl:for-each>
696
				</xsl:for-each>
697
				<xsl:for-each select="spatialRaster">
698
					<xsl:variable name="currentNode" select="position()" />
699
					<xsl:for-each select="../.">
700
						<tr>
701
							<td class="{$subHeaderStyle}" colspan="2">
702
								<xsl:text>Spatial Raster:</xsl:text>
703
							</td>
704
						</tr>
705
						<tr>
706
							<td>
707
								<xsl:call-template name="chooseentity">
708
									<xsl:with-param name="entitytype">spatialRaster</xsl:with-param>
709
									<xsl:with-param name="entityindex" select="$currentNode" />
710
								</xsl:call-template>
711
							</td>
712
						</tr>
713
					</xsl:for-each>
714
				</xsl:for-each>
715
				<xsl:for-each select="spatialVector">
716
					<xsl:variable name="currentNode" select="position()" />
717
					<xsl:for-each select="../.">
718
						<tr>
719
							<td class="{$subHeaderStyle}" colspan="2">
720
								<xsl:text>Spatial Vector:</xsl:text>
721
							</td>
722
						</tr>
723
						<tr>
724
							<td>
725
								<xsl:call-template name="chooseentity">
726
									<xsl:with-param name="entitytype">spatialVector</xsl:with-param>
727
									<xsl:with-param name="entityindex" select="$currentNode" />
728
								</xsl:call-template>
729
							</td>
730
						</tr>
731
					</xsl:for-each>
732
				</xsl:for-each>
733
				<xsl:for-each select="storedProcedure">
734
					<xsl:variable name="currentNode" select="position()" />
735
					<xsl:for-each select="../.">
736
						<tr>
737
							<td class="{$subHeaderStyle}" colspan="2">
738
								<xsl:text>Stored Procedure:</xsl:text>
739
							</td>
740
						</tr>
741
						<tr>
742
							<td>
743
								<xsl:call-template name="chooseentity">
744
									<xsl:with-param name="entitytype">storedProcedure</xsl:with-param>
745
									<xsl:with-param name="entityindex" select="$currentNode" />
746
								</xsl:call-template>
747
							</td>
748
						</tr>
749
					</xsl:for-each>
750
				</xsl:for-each>
751
				<xsl:for-each select="view">
752
					<xsl:variable name="currentNode" select="position()" />
753
					<xsl:for-each select="../.">
754
						<tr>
755
							<td class="{$subHeaderStyle}" colspan="2">
756
								<xsl:text>View:</xsl:text>
757
							</td>
758
						</tr>
759
						<tr>
760
							<td>
761
								<xsl:call-template name="chooseentity">
762
									<xsl:with-param name="entitytype">view</xsl:with-param>
763
									<xsl:with-param name="entityindex" select="$currentNode" />
764
								</xsl:call-template>
765
							</td>
766
						</tr>
767
					</xsl:for-each>
768
				</xsl:for-each>
769
				<xsl:for-each select="otherEntity">
770
					<xsl:variable name="currentNode" select="position()" />
771
					<xsl:for-each select="../.">
772
						<tr>
773
							<td class="{$subHeaderStyle}" colspan="2">
774
								<xsl:text>Other Entity:</xsl:text>
775
							</td>
776
						</tr>
777
						<tr>
778
							<td>
779
								<xsl:call-template name="chooseentity">
780
									<xsl:with-param name="entitytype">otherEntity</xsl:with-param>
781
									<xsl:with-param name="entityindex" select="$currentNode" />
782
								</xsl:call-template>
783
							</td>
784
						</tr>
785
					</xsl:for-each>
786
				</xsl:for-each>
787
			</xsl:otherwise>
788
		</xsl:choose>
789
	</xsl:template>
790

    
791
	<xsl:template name="entityurl">
792
		<xsl:param name="showtype" />
793
		<xsl:param name="type" />
794
		<xsl:param name="index" />
795
		<xsl:choose>
796
			<xsl:when test="references!=''">
797
				<xsl:variable name="ref_id" select="references" />
798
				<xsl:variable name="references" select="$ids[@id=$ref_id]" />
799
				<xsl:for-each select="$references">
800
					<tr>
801
						<td class="{$firstColStyle}">
802
							Metadata:
803
							<a>
804
								<xsl:attribute name="href">
805
									<xsl:value-of select="$tripleURI" /><xsl:value-of select="$docid" />&amp;displaymodule=entity&amp;entitytype=<xsl:value-of select="$type"/>&amp;entityindex=<xsl:value-of select="$index"/>
806
								</xsl:attribute>
807
								<b><xsl:value-of select="./physical/objectName"/></b>
808
							</a>
809
						</td>
810
					</tr>
811
				</xsl:for-each>
812
			</xsl:when>
813
			<xsl:otherwise>
814
				<tr>
815
					<td width="{$firstColWidth}" class="{$firstColStyle}">
816
						<xsl:value-of select="$showtype"/>:</td>
817
					<td width="{$secondColWidth}" class="{$secondColStyle}"> 
818
						<xsl:value-of select="./entityName"/> 
819
						(<a>
820
						<xsl:attribute name="href">
821
						<xsl:value-of select="$tripleURI"/><xsl:value-of select="$docid"/>&amp;displaymodule=entity&amp;entitytype=<xsl:value-of select="$type"/>&amp;entityindex=<xsl:value-of select="$index"/></xsl:attribute>
822
						View Metadata</a> 
823
						<xsl:text> </xsl:text>
824
					    <xsl:choose>
825
						    <xsl:when test="./physical/distribution/online/url"> 
826
						    	| 
827
						    	<xsl:variable name="URL" select="./physical/distribution/online/url"/>
828
					            <a>
829
									<xsl:choose>
830
										<xsl:when test="starts-with($URL,'ecogrid')">
831
											<xsl:variable name="URL1" select="substring-after($URL, 'ecogrid://')"/>
832
											<xsl:variable name="dataDocID" select="substring-after($URL1, '/')"/>
833
											<xsl:attribute name="href"><xsl:value-of select="$tripleURI"/><xsl:value-of select="$dataDocID"/></xsl:attribute>
834
										</xsl:when>
835
										<xsl:otherwise>
836
											<xsl:attribute name="href"><xsl:value-of select="$URL"/></xsl:attribute>
837
										</xsl:otherwise>
838
									</xsl:choose>
839
								<xsl:attribute name="target">_blank</xsl:attribute>
840
								Download File <img src="/knb/style/images/page_white_put.png" style="margin:0px 0px; padding:0px;" border="0" alt="download"/></a>
841
							</xsl:when>
842
						</xsl:choose>)
843
					</td>
844
				</tr>
845
			</xsl:otherwise>
846
		</xsl:choose>
847
	</xsl:template>
848

    
849
  <xsl:template match="text()" mode="dataset" />
850
  <xsl:template match="text()" mode="resource" />
851

    
852
</xsl:stylesheet>
(7-7/27)