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: 2015-11-13 11:51:31 -0800 (Fri, 13 Nov 2015) $'
11
  * '$Revision: 9403 $'
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="UTF-8"
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
	
58
     <!-- citation -->
59
	<xsl:for-each select=".">
60
		<xsl:call-template name="datasetcitation" />
61
    </xsl:for-each>		
62
     
63
     <h4>General</h4>
64
             <!-- put in the title -->
65
             <xsl:if test="./title">
66
               <xsl:for-each select="./title">
67
                 <xsl:call-template name="resourcetitle">
68
                   <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
69
                   <xsl:with-param name="ressecondColStyle" select="$secondColStyle"/>
70
                 </xsl:call-template>
71
               </xsl:for-each>
72
             </xsl:if>
73
             <!-- put in the short name -->
74
             <xsl:if test="shortName">
75
             <xsl:for-each select="./shortName">
76
             <xsl:call-template name="resourceshortName">
77
               <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
78
               <xsl:with-param name="ressecondColStyle" select="$secondColStyle"/>
79
             </xsl:call-template>
80
             </xsl:for-each>
81
             </xsl:if>
82
             <!-- put in the identifier and system that the ID belongs to -->
83
             <xsl:if test="../@packageId">
84
	             <xsl:for-each select="../@packageId">
85
	             	<xsl:call-template name="identifier">
86
		               <xsl:with-param name="packageID" select="../@packageId"/>
87
		               <xsl:with-param name="system" select="../@system"/>
88
		               <xsl:with-param name="IDfirstColStyle" select="$firstColStyle"/>
89
		               <xsl:with-param name="IDsecondColStyle" select="$secondColStyle"/>
90
		             </xsl:call-template>
91
	             </xsl:for-each>
92
             </xsl:if>
93
             <!-- put in the alternate identifiers -->
94
             <xsl:if test="keywordSet">
95
             <xsl:for-each select="alternateIdentifier">
96
               <xsl:call-template name="resourcealternateIdentifier">
97
                 <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
98
                 <xsl:with-param name="ressecondColStyle" select="$secondColStyle"/>
99
               </xsl:call-template>
100
             </xsl:for-each>
101
             </xsl:if>
102
             <!-- put in the text of the abstract-->
103
             <xsl:if test="./abstract">
104
             <xsl:for-each select="./abstract">
105
               <xsl:call-template name="resourceabstract">
106
                 <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
107
                 <xsl:with-param name="ressecondColStyle" select="$secondColStyle"/>
108
               </xsl:call-template>
109
             </xsl:for-each>
110
             </xsl:if>
111
             <!-- put in the purpose of the dataset-->
112
             <xsl:if test="./purpose">
113
             <xsl:for-each select="./purpose">
114
               <xsl:call-template name="datasetpurpose">
115
                 <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
116
                 <xsl:with-param name="ressecondColStyle" select="$secondColStyle"/>
117
               </xsl:call-template>
118
             </xsl:for-each>
119
             </xsl:if>
120
             <!-- put in the keyword sets -->
121
             <xsl:if test="keywordSet">
122
             	<div class="row-fluid">
123
					<div class="control-group">
124
						<label class="control-label">
125
							<xsl:text>Keywords</xsl:text>
126
						</label>	
127
						<div class="controls controls-well">
128
							<xsl:for-each select="keywordSet">
129
								<xsl:call-template name="resourcekeywordSet" >
130
									<xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
131
									<xsl:with-param name="ressecondColStyle" select="$secondColStyle"/>
132
								</xsl:call-template>
133
							</xsl:for-each>
134
						</div>
135
					</div>	
136
				</div>
137
             </xsl:if>
138

    
139
             <!-- put in the publication date -->
140
             <xsl:if test="./pubDate">
141
               <xsl:for-each select="pubDate">
142
                <xsl:call-template name="resourcepubDate" >
143
                  <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
144
                 </xsl:call-template>
145
               </xsl:for-each>
146
             </xsl:if>
147

    
148
             <!-- put in the language -->
149
             <xsl:if test="./language">
150
               <xsl:for-each select="language">
151
                 <xsl:call-template name="resourcelanguage" >
152
                   <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
153
                  </xsl:call-template>
154
               </xsl:for-each>
155
             </xsl:if>
156

    
157
             <!-- put in the series -->
158
             <xsl:if test="./series">
159
               <xsl:for-each select="series">
160
                 <xsl:call-template name="resourceseries" >
161
                   <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
162
                 </xsl:call-template>
163
               </xsl:for-each>
164
             </xsl:if>
165
             
166
         
167
         
168
           <!-- create a second easy access table listing the data entities -->
169
           <xsl:if test="dataTable|spatialRaster|spatialVector|storedProcedure|view|otherEntity">
170
			<xsl:if test="$withEntityLinks='1' or $displaymodule = 'printall'">
171
	             <xsl:call-template name="datasetentity"/>
172
			</xsl:if>
173
           </xsl:if>
174
           
175

    
176
     
177
     <h4>People and Associated Parties</h4>
178

    
179
       <!-- add in the creators -->
180
       <xsl:if test="creator">
181
         <div class="control-group">
182
         	<label class="control-label">
183
         		Data Set Creators
184
         	</label>
185
         	<div class="controls controls-well">
186
		         <xsl:for-each select="creator">
187
		         
188
		         	<xsl:variable name="absolutePath" >
189
			         	<xsl:for-each select="ancestor-or-self::*">
190
			         		<xsl:text>/</xsl:text>			         	
191
			         		<xsl:value-of select="local-name()" />
192
			         	</xsl:for-each>
193
			         </xsl:variable>	
194
					<xsl:variable name="index" select="position()" />
195
		         	<div>
196
		         		<div class="annotation-target">
197
			         		<xsl:attribute name="resource">#xpointer(<xsl:value-of select="$absolutePath"/>[<xsl:value-of select="$index"/>])</xsl:attribute>
198
			         		<xsl:attribute name="type">party</xsl:attribute>
199
			         		PARTY
200
			         	</div>	
201
		               <xsl:call-template name="party">
202
		                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
203
		                 <xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
204
		               </xsl:call-template>
205
		         	</div>      
206
		         </xsl:for-each>
207
         	</div>
208
         </div>
209
       </xsl:if>
210

    
211
       <!-- add in the contacts -->
212
       <xsl:if test="contact">
213
         <div class="control-group">
214
         	<label class="control-label">Data Set Contacts</label>
215
         	<div class="controls controls-well">
216
	         	<xsl:for-each select="contact">
217
	         		<xsl:variable name="absolutePath" >
218
			         	<xsl:for-each select="ancestor-or-self::*">
219
			         		<xsl:text>/</xsl:text>			         	
220
			         		<xsl:value-of select="local-name()" />
221
			         	</xsl:for-each>
222
			         </xsl:variable>	
223
					<xsl:variable name="index" select="position()" />
224
		         	<div>
225
		         		<div class="annotation-target">
226
			         		<xsl:attribute name="resource">#xpointer(<xsl:value-of select="$absolutePath"/>[<xsl:value-of select="$index"/>])</xsl:attribute>
227
			         		<xsl:attribute name="type">party</xsl:attribute>
228
			         		PARTY
229
			         	</div>
230
	               <xsl:call-template name="party">
231
	                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
232
	                 <xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
233
	               </xsl:call-template>
234
	               </div>
235
		             
236
	         	</xsl:for-each>
237
	         </div>	
238
         </div>
239
       </xsl:if>
240

    
241
       <!-- add in the associatedParty  -->
242
       <xsl:if test="associatedParty">
243
         <div class="control-group">
244
         	<label class="control-label">Associated Parties</label>
245
         	<div class="controls controls-well">
246
				<xsl:for-each select="associatedParty">
247
					<xsl:variable name="absolutePath" >
248
			         	<xsl:for-each select="ancestor-or-self::*">
249
			         		<xsl:text>/</xsl:text>			         	
250
			         		<xsl:value-of select="local-name()" />
251
			         	</xsl:for-each>
252
			         </xsl:variable>	
253
					<xsl:variable name="index" select="position()" />
254
		         	<div>
255
		         		<div class="annotation-target">
256
			         		<xsl:attribute name="resource">#xpointer(<xsl:value-of select="$absolutePath"/>[<xsl:value-of select="$index"/>])</xsl:attribute>
257
			         		<xsl:attribute name="type">party</xsl:attribute>
258
			         		PARTY
259
			         	</div>
260
					<xsl:call-template name="party">
261
						<xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
262
						<xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
263
					</xsl:call-template>
264
					</div>	
265
		         </xsl:for-each>
266
	         </div>	
267
         </div>
268
		         
269
       </xsl:if>
270

    
271
       <!-- add in the metadataProviders using a two column table -->
272
       <xsl:if test="metadataProvider">
273
		<div class="control-group">
274
         	<label class="control-label">Metadata Providers</label>
275
         	<div class="controls controls-well">
276
				<xsl:for-each select="metadataProvider">
277
					<xsl:variable name="absolutePath" >
278
			         	<xsl:for-each select="ancestor-or-self::*">
279
			         		<xsl:text>/</xsl:text>			         	
280
			         		<xsl:value-of select="local-name()" />
281
			         	</xsl:for-each>
282
			         </xsl:variable>	
283
					<xsl:variable name="index" select="position()" />
284
		         	<div>
285
		         		<div class="annotation-target">
286
			         		<xsl:attribute name="resource">#xpointer(<xsl:value-of select="$absolutePath"/>[<xsl:value-of select="$index"/>])</xsl:attribute>
287
			         		<xsl:attribute name="type">party</xsl:attribute>
288
			         		PARTY
289
			         	</div>
290
	               <xsl:call-template name="party">
291
	                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
292
	                 <xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
293
	               </xsl:call-template>
294
					</div>	
295
				</xsl:for-each>
296
		   </div>
297
		</div>      
298
       </xsl:if>
299

    
300
       <!-- add in the publishers using a two column table -->
301
       <xsl:if test="publisher">
302
         <div class="control-group">
303
         	<label class="control-label">Data Set Publishers</label>
304
         	<div class="controls controls-well">
305
		         <xsl:for-each select="publisher">
306
		         	<xsl:variable name="absolutePath" >
307
			         	<xsl:for-each select="ancestor-or-self::*">
308
			         		<xsl:text>/</xsl:text>			         	
309
			         		<xsl:value-of select="local-name()" />
310
			         	</xsl:for-each>
311
			         </xsl:variable>	
312
					<xsl:variable name="index" select="position()" />
313
		         	<div>
314
		         		<div class="annotation-target">
315
			         		<xsl:attribute name="resource">#xpointer(<xsl:value-of select="$absolutePath"/>[<xsl:value-of select="$index"/>])</xsl:attribute>
316
			         		<xsl:attribute name="type">party</xsl:attribute>
317
			         		PARTY
318
			         	</div>
319
	               <xsl:call-template name="party">
320
	                 <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
321
	                 <xsl:with-param name="partysecondColStyle" select="$secondColStyle"/>
322
	               </xsl:call-template>
323
					</div>		
324
		         </xsl:for-each>
325
	         </div>
326
         </div>
327
       </xsl:if>
328

    
329
     <!-- add in the coverage info -->
330
     <!--  <h4>Context</h4> -->
331
     
332
     <!-- add in the geographic coverage info -->
333
     <div class="row-fluid">  
334
           <xsl:if test="./coverage/geographicCoverage">
335
             <xsl:for-each select="./coverage/geographicCoverage">
336
               <xsl:call-template name="geographicCoverage">
337
                 <xsl:with-param name="firstColStyle" select="$firstColStyle"/>
338
                 <xsl:with-param name="secondColStyle" select="$secondColStyle"/>
339
               </xsl:call-template>
340
             </xsl:for-each>
341
           </xsl:if>
342
       </div>
343
       <!-- add in the temporal coverage info -->
344
       <div class="row-fluid">
345
           <xsl:if test="./coverage/temporalCoverage">
346
             <xsl:for-each select="./coverage/temporalCoverage">
347
               <xsl:call-template name="temporalCoverage">
348
                 <xsl:with-param name="firstColStyle" select="$firstColStyle"/>
349
                 <xsl:with-param name="secondColStyle" select="$secondColStyle"/>
350
               </xsl:call-template>
351
             </xsl:for-each>
352
           </xsl:if>
353
       </div>
354
       <!-- add in the taxonomic coverage info -->
355
       <div class="row-fluid">
356
           <xsl:if test="./coverage/taxonomicCoverage">
357
             <xsl:for-each select="./coverage/taxonomicCoverage">
358
               <xsl:call-template name="taxonomicCoverage">
359
                 <xsl:with-param name="firstColStyle" select="$firstColStyle"/>
360
                 <xsl:with-param name="secondColStyle" select="$secondColStyle"/>
361
               </xsl:call-template>
362
             </xsl:for-each>
363
           </xsl:if>
364
       </div>
365

    
366
     <!-- add in the method info -->
367
     <h4>Sampling, Processing and Quality Control Methods</h4>
368

    
369
     <div class="row-fluid">
370
         <xsl:if test="./methods">
371
           <xsl:for-each select="./methods">
372
             <xsl:call-template name="datasetmethod">
373
               <xsl:with-param name="methodfirstColStyle" select="$firstColStyle"/>
374
               <xsl:with-param name="methodsecondColStyle" select="$secondColStyle"/>
375
             </xsl:call-template>
376
           </xsl:for-each>
377
         </xsl:if>
378
     </div>
379

    
380
     <h4>Data Set Usage Rights</h4>
381

    
382
       <!-- add in the intellectiual rights info -->
383
     <div class="row-fluid">
384
         <xsl:if test="intellectualRights">
385
           <xsl:for-each select="intellectualRights">
386
             <xsl:call-template name="resourceintellectualRights">
387
               <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
388
               <xsl:with-param name="ressecondColStyle" select="$secondColStyle"/>
389
             </xsl:call-template>
390
           </xsl:for-each>
391
         </xsl:if>
392
     </div>
393

    
394
       <!-- add in the access control info -->
395
     <div class="row-fluid">
396
         <xsl:if test="access">
397
           <xsl:for-each select="access">
398
             <xsl:call-template name="access">
399
               <xsl:with-param name="accessfirstColStyle" select="$firstColStyle"/>
400
               <xsl:with-param name="accesssecondColStyle" select="$secondColStyle"/>
401
             </xsl:call-template>
402
           </xsl:for-each>
403
         </xsl:if>
404
     </div>
405
  </xsl:template>
406

    
407
  <xsl:template name="datasetresource">
408
     <div class="row-fluid">
409
        <xsl:call-template name="resource">
410
          <xsl:with-param name="resfirstColStyle" select="$firstColStyle"/>
411
          <xsl:with-param name="ressubHeaderStyle" select="$subHeaderStyle"/>
412
        </xsl:call-template>
413
     </div>
414
  </xsl:template>
415

    
416

    
417
  <xsl:template name="datasetpurpose">
418
    <xsl:for-each select="purpose">
419
      <div class="control-group">
420
      	<label class="control-label"><xsl:text>Purpose</xsl:text></label>
421
       	<div  class="controls">
422
            &#160;
423
              <xsl:call-template name="text">
424
                <xsl:with-param name="textfirstColStyle" select="$firstColStyle"/>
425
              </xsl:call-template>
426
          </div>
427
       </div>
428
     </xsl:for-each>
429
  </xsl:template>
430

    
431
  <xsl:template name="datasetmaintenance">
432
    <xsl:for-each select="maintenance">
433
      <div class="control-group">
434
      	<label class="control-label"><xsl:text>Maintenance</xsl:text></label>
435
      	<div class="controls">
436
		     <xsl:call-template name="mantenancedescription"/>
437
		      <div class="control-group">
438
      			<label class="control-label">Frequency</label>
439
		        <div class="controls" >
440
		           <xsl:value-of select="maintenanceUpdateFrequency"/>
441
		        </div>
442
		     </div>
443
		     <xsl:call-template name="datasetchangehistory"/>
444
		   </div>
445
		</div>
446
   	</xsl:for-each>
447
  </xsl:template>
448

    
449
  <xsl:template name="mantenancedescription">
450
   <xsl:for-each select="description">
451
     <div class="control-group">
452
      	<label class="control-label">Description</label>
453
        <div class="controls">
454
            <xsl:call-template name="text">
455
               <xsl:with-param name="textfirstColStyle" select="$firstColStyle"/>
456
             </xsl:call-template>
457
          </div>
458
     </div>
459
    </xsl:for-each>
460
  </xsl:template>
461

    
462
   <xsl:template name="datasetchangehistory">
463
   <xsl:if test="changeHistory">
464
     <div class="control-group">
465
      	<label class="control-label">History</label>
466
          <div class="controls">
467
              <xsl:for-each select="changeHistory">
468
                <xsl:call-template name="historydetails"/>
469
              </xsl:for-each>
470
          </div>
471
     </div>
472
     </xsl:if>
473
   </xsl:template>
474

    
475
   <xsl:template name="historydetails">
476
        <div class="control-group">
477
	      	<label class="control-label">scope</label>
478
	        <div class="controls">
479
	            <xsl:value-of select="changeScope"/>
480
	        </div>
481
        </div>
482
        <div class="control-group">
483
	      	<label class="control-label">old value</label>
484
	        <div class="controls">
485
	            <xsl:value-of select="oldValue"/>
486
        	</div>
487
       	</div>
488
        <div class="control-group">
489
      		<label class="control-label">change date</label>
490
            <div class="controls">
491
	            <xsl:value-of select="changeDate"/>
492
	        </div>
493
	    </div>
494
        <xsl:if test="comment and normalize-space(comment)!=''">
495
			<div class="control-group">
496
      			<label class="control-label">comment</label>
497
      			<div class="controls">
498
		            <xsl:value-of select="comment"/>
499
				</div>
500
			</div>
501
        </xsl:if>
502
  </xsl:template>
503

    
504
  <xsl:template name="datasetcontact">
505
    <div class="control-group">
506
      	<label class="control-label"><xsl:text>Contact</xsl:text></label>
507
	    <div class="controls">
508
		    <xsl:for-each select="contact">
509
			       <xsl:call-template name="party">
510
		              <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
511
		       </xsl:call-template>
512
	    	</xsl:for-each>
513
	    </div>
514
	</div>    	
515
  </xsl:template>
516

    
517
  <xsl:template name="datasetpublisher">
518
   <xsl:for-each select="publisher">
519
     <div class="control-group">
520
      	<label class="control-label"><xsl:text>Publisher</xsl:text></label>
521
     	<div class="controls">
522
	       <xsl:call-template name="party">
523
	              <xsl:with-param name="partyfirstColStyle" select="$firstColStyle"/>
524
	       </xsl:call-template>
525
     	</div>
526
     </div>
527
   </xsl:for-each>
528
  </xsl:template>
529

    
530
  <xsl:template name="datasetpubplace">
531
    <xsl:for-each select="pubPlace">
532
      <div class="control-group">
533
      	<label class="control-label">Publish Place</label>
534
        <div class="controls">
535
          <xsl:value-of select="."/>
536
		</div>
537
      </div>
538
   </xsl:for-each>
539
  </xsl:template>
540

    
541
  <xsl:template name="datasetmethod">
542
     <xsl:for-each select=".">
543
        <xsl:call-template name="method">
544
          <xsl:with-param name="methodfirstColStyle" select="$firstColStyle"/>
545
        </xsl:call-template>
546
    </xsl:for-each>
547
  </xsl:template>
548

    
549
  <xsl:template name="datasetproject">
550
    <h4><xsl:text>Parent Project Information</xsl:text></h4>
551
    <xsl:for-each select="project">
552
     <div class="row-fluid">
553
       <xsl:call-template name="project">
554
         <xsl:with-param name="projectfirstColStyle" select="$firstColStyle"/>
555
       </xsl:call-template>
556
     </div>
557
    </xsl:for-each>
558
  </xsl:template>
559

    
560
   <xsl:template name="datasetaccess">
561
    <xsl:for-each select="access">
562
      <div class="row-fluid">
563
        <xsl:call-template name="access">
564
          <xsl:with-param name="accessfirstColStyle" select="$firstColStyle"/>
565
          <xsl:with-param name="accesssubHeaderStyle" select="$subHeaderStyle"/>
566
        </xsl:call-template>
567
      </div>
568
    </xsl:for-each>
569
  </xsl:template>
570
  
571
	<xsl:template name="datasetentity">
572
		<xsl:if test="dataTable or spatialRaster or spatialVector or storedProcedures or view or otherEntity">
573
			<h4>
574
				<xsl:text>Data Table, Image, and Other Data Details</xsl:text>
575
			</h4>
576
		</xsl:if>
577
		
578
		<xsl:call-template name="xml" />
579
			
580
		<xsl:choose>
581
			<xsl:when test="$displaymodule!='printall'">
582
				<xsl:for-each select="dataTable">
583
					<xsl:call-template name="entityurl">
584
						<xsl:with-param name="type">dataTable</xsl:with-param>
585
						<xsl:with-param name="showtype">Data Table</xsl:with-param>
586
						<xsl:with-param name="index" select="position()" />
587
					</xsl:call-template>
588
				</xsl:for-each>
589
				<xsl:for-each select="spatialRaster">
590
					<xsl:call-template name="entityurl">
591
						<xsl:with-param name="type">spatialRaster</xsl:with-param>
592
						<xsl:with-param name="showtype">Spatial Raster</xsl:with-param>
593
						<xsl:with-param name="index" select="position()" />
594
					</xsl:call-template>
595
				</xsl:for-each>
596
				<xsl:for-each select="spatialVector">
597
					<xsl:call-template name="entityurl">
598
						<xsl:with-param name="type">spatialVector</xsl:with-param>
599
						<xsl:with-param name="showtype">Spatial Vector</xsl:with-param>
600
						<xsl:with-param name="index" select="position()" />
601
					</xsl:call-template>
602
				</xsl:for-each>
603
				<xsl:for-each select="storedProcedure">
604
					<xsl:call-template name="entityurl">
605
						<xsl:with-param name="type">storedProcedure</xsl:with-param>
606
						<xsl:with-param name="showtype">Stored Procedure</xsl:with-param>
607
						<xsl:with-param name="index" select="position()" />
608
					</xsl:call-template>
609
				</xsl:for-each>
610
				<xsl:for-each select="view">
611
					<xsl:call-template name="entityurl">
612
						<xsl:with-param name="type">view</xsl:with-param>
613
						<xsl:with-param name="showtype">View</xsl:with-param>
614
						<xsl:with-param name="index" select="position()" />
615
					</xsl:call-template>
616
				</xsl:for-each>
617
				<xsl:for-each select="otherEntity">
618
					<xsl:call-template name="entityurl">
619
						<xsl:with-param name="type">otherEntity</xsl:with-param>
620
						<xsl:with-param name="showtype">Other Data</xsl:with-param>
621
						<xsl:with-param name="index" select="position()" />
622
					</xsl:call-template>
623
				</xsl:for-each>
624
			</xsl:when>
625
			<xsl:otherwise>
626
				<xsl:for-each select="dataTable">
627
					<xsl:variable name="currentNode" select="position()" />
628
					<xsl:for-each select="../.">
629
						<div class="control-group entity">
630
							<div class="controls controls-well entitydetails">
631
								<label class="control-label">
632
									<xsl:text>Data Table</xsl:text>
633
								</label>
634
								<xsl:call-template name="chooseentity">
635
									<xsl:with-param name="entitytype">dataTable</xsl:with-param>
636
									<xsl:with-param name="entityindex" select="$currentNode" />
637
								</xsl:call-template>
638
							</div>
639
						</div>
640
					</xsl:for-each>
641
				</xsl:for-each>
642
				<xsl:for-each select="spatialRaster">
643
					<xsl:variable name="currentNode" select="position()" />
644
					<xsl:for-each select="../.">
645
						<div class="control-group entity">
646
							<div class="controls controls-well entitydetails">
647
								<label class="control-label">
648
									<xsl:text>Spatial Raster</xsl:text>
649
								</label>
650
								<xsl:call-template name="chooseentity">
651
									<xsl:with-param name="entitytype">spatialRaster</xsl:with-param>
652
									<xsl:with-param name="entityindex" select="$currentNode" />
653
								</xsl:call-template>
654
							</div>
655
						</div>
656
					</xsl:for-each>
657
				</xsl:for-each>
658
				<xsl:for-each select="spatialVector">
659
					<xsl:variable name="currentNode" select="position()" />
660
					<xsl:for-each select="../.">
661
						<div class="control-group entity">
662
							<div class="controls controls-well entitydetails">
663
								<label class="control-label">
664
									<xsl:text>Spatial Vector</xsl:text>
665
								</label>
666
								<xsl:call-template name="chooseentity">
667
									<xsl:with-param name="entitytype">spatialVector</xsl:with-param>
668
									<xsl:with-param name="entityindex" select="$currentNode" />
669
								</xsl:call-template>
670
							</div>
671
						</div>
672
					</xsl:for-each>
673
				</xsl:for-each>
674
				<xsl:for-each select="storedProcedure">
675
					<xsl:variable name="currentNode" select="position()" />
676
					<xsl:for-each select="../.">
677
						<div class="control-group entity">
678
							<div class="controls controls-well entitydetails">
679
								<label class="control-label">
680
									<xsl:text>Stored Procedure</xsl:text>
681
								</label>
682
								<xsl:call-template name="chooseentity">
683
									<xsl:with-param name="entitytype">storedProcedure</xsl:with-param>
684
									<xsl:with-param name="entityindex" select="$currentNode" />
685
								</xsl:call-template>
686
							</div>
687
						</div>
688
					</xsl:for-each>
689
				</xsl:for-each>
690
				<xsl:for-each select="view">
691
					<xsl:variable name="currentNode" select="position()" />
692
					<xsl:for-each select="../.">
693
						<div class="control-group entity">
694
							<div class="controls controls-well entitydetails">
695
								<label class="control-label">
696
									<xsl:text>View</xsl:text>
697
								</label>
698
								<xsl:call-template name="chooseentity">
699
									<xsl:with-param name="entitytype">view</xsl:with-param>
700
									<xsl:with-param name="entityindex" select="$currentNode" />
701
								</xsl:call-template>
702
							</div>
703
						</div>
704
					</xsl:for-each>
705
				</xsl:for-each>
706
				<xsl:for-each select="otherEntity">
707
					<xsl:variable name="currentNode" select="position()" />
708
					<xsl:for-each select="../.">
709
						<div class="control-group entity">
710
							<div class="controls controls-well entitydetails">
711
								<label class="control-label">
712
									<xsl:text>Other Entity</xsl:text>
713
								</label>
714
								<xsl:call-template name="chooseentity">
715
									<xsl:with-param name="entitytype">otherEntity</xsl:with-param>
716
									<xsl:with-param name="entityindex" select="$currentNode" />
717
								</xsl:call-template>
718
							</div>
719
						</div>
720
					</xsl:for-each>
721
				</xsl:for-each>
722
			</xsl:otherwise>
723
		</xsl:choose>
724
	</xsl:template>
725

    
726
	<xsl:template name="entityurl">
727
		<xsl:param name="showtype" />
728
		<xsl:param name="type" />
729
		<xsl:param name="index" />
730
		<xsl:choose>
731
			<xsl:when test="references!=''">
732
				<xsl:variable name="ref_id" select="references" />
733
				<xsl:variable name="references" select="$ids[@id=$ref_id]" />
734
				<xsl:for-each select="$references">
735
					<div class="control-group">
736
						<label class="control-label">
737
							View Metadata
738
						</label>
739
						<div class="controls controls-well">
740
							<a>
741
								<xsl:attribute name="href">
742
									<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"/>
743
								</xsl:attribute>
744
								<xsl:value-of select="./physical/objectName"/>
745
							</a>
746
						</div>
747
					</div>
748
				</xsl:for-each>
749
			</xsl:when>
750
			<xsl:otherwise>
751
				<div class="control-group">
752
					<label class="control-label">
753
						<xsl:value-of select="$showtype"/>
754
					</label>
755
					<div class="controls controls-well"> 
756
						<xsl:value-of select="./entityName"/> 
757
						(<a>
758
						<xsl:attribute name="href">
759
						<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>
760
						View Metadata</a> 
761
						<xsl:text> </xsl:text>
762
					    <xsl:choose>
763
						    <xsl:when test="./physical/distribution/online/url"> 
764
						    	| 
765
						    	<xsl:variable name="URL" select="./physical/distribution/online/url"/>
766
					            <a>
767
									<xsl:choose>
768
										<xsl:when test="starts-with($URL,'ecogrid')">
769
											<xsl:variable name="URL1" select="substring-after($URL, 'ecogrid://')"/>
770
											<xsl:variable name="dataDocID" select="substring-after($URL1, '/')"/>
771
											<xsl:attribute name="href">
772
												<xsl:value-of select="$tripleURI"/><xsl:value-of select="$dataDocID"/>
773
											</xsl:attribute>
774
										</xsl:when>
775
										<xsl:otherwise>
776
											<xsl:attribute name="href"><xsl:value-of select="$URL"/></xsl:attribute>
777
										</xsl:otherwise>
778
									</xsl:choose>
779
								<xsl:attribute name="target">_blank</xsl:attribute>
780
								Download File <i class="icon-download" alt="download"></i>
781
								</a>
782
							</xsl:when>
783
						</xsl:choose>)
784
					</div>
785
				</div>
786
			</xsl:otherwise>
787
		</xsl:choose>
788
	</xsl:template>
789

    
790
  <xsl:template match="text()" mode="dataset" />
791
  <xsl:template match="text()" mode="resource" />
792

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