Project

General

Profile

« Previous | Next » 

Revision 5771

use the eml/emlroot pattern for filenames before merging this into the eml repository

View differences:

lib/style/shared/eml-2/eml.xsl
1 1
<?xml version="1.0"?>
2 2
<!--
3
  *  '$RCSfile$'
3
  *  '$RCSfile: eml.xsl,v $'
4 4
  *      Authors: Matt Jones
5 5
  *    Copyright: 2000 Regents of the University of California and the
6
  *         National Center for Ecological Analysis and Synthesis
6
  *               National Center for Ecological Analysis and Synthesis
7 7
  *  For Details: http://www.nceas.ucsb.edu/
8 8
  *
9
  *   '$Author: barteau $'
10
  *     '$Date: 2008-01-15 17:12:44 -0800 (Tue, 15 Jan 2008) $'
11
  * '$Revision: 3689 $'
9
  *   '$Author: obrien $'
10
  *     '$Date: 2008-08-28 22:59:33 $'
11
  * '$Revision: 1.8 $'
12 12
  *
13 13
  * This program is free software; you can redistribute it and/or modify
14 14
  * it under the terms of the GNU General Public License as published by
......
29 29
  * module of the Ecological Metadata Language (EML) into an HTML format
30 30
  * suitable for rendering with modern web browsers.
31 31
-->
32
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
33
  <xsl:import href="eml-access.xsl"/>
34
  <xsl:import href="eml-additionalmetadata.xsl"/>
35
  <xsl:import href="eml-attribute.xsl"/>
36
  <xsl:import href="eml-attribute-enumeratedDomain.xsl"/>
37
  <xsl:import href="eml-constraint.xsl"/>
38
  <xsl:import href="eml-coverage.xsl"/>
39
  <xsl:import href="eml-dataset.xsl"/>
40
  <xsl:import href="eml-datatable.xsl"/>
41
  <xsl:import href="eml-distribution.xsl"/>
42
  <xsl:import href="eml-entity.xsl"/>
43
  <xsl:import href="eml-identifier.xsl"/>
44
  <xsl:import href="eml-literature.xsl"/>
45
  <xsl:import href="eml-method.xsl"/>
46
  <xsl:import href="eml-otherentity.xsl"/>
47
  <xsl:import href="eml-party.xsl"/>
48
  <xsl:import href="eml-physical.xsl"/>
49
  <xsl:import href="eml-project.xsl"/>
50
  <xsl:import href="eml-protocol.xsl"/>
51
  <xsl:import href="eml-resource.xsl"/>
52
  <xsl:import href="eml-settings.xsl"/>
53
  <xsl:import href="eml-software.xsl"/>
54
  <xsl:import href="eml-spatialraster.xsl"/>
55
  <xsl:import href="eml-spatialvector.xsl"/>
56
  <xsl:import href="eml-storedprocedure.xsl"/>
57
  <xsl:import href="eml-text.xsl"/>
58
  <xsl:import href="eml-view.xsl"/>
32
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="http://www.w3.org/2005/02/xpath-function" xmlns:eml="eml://ecoinformatics.org/eml-2.1.0" version="1.0">
33
  <xsl:import href="emlroot.xsl"/>
59 34

  
60
  <xsl:output method="html" encoding="iso-8859-1"
61
    doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
62
    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
63
    indent="yes" />  
64
  <!-- global variables to store id node set in case to be referenced-->
65
  <xsl:variable name="ids" select="//*[@id!='']"/>
35
  <xsl:output method="html" encoding="UTF-8"
36
              doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
37
              doctype-system="http://www.w3.org/TR/html4/loose.dtd"
38
              indent="yes" />
66 39

  
67
   <xsl:template match="*[local-name()='eml']">
68
     <xsl:for-each select="dataset">
69
       <xsl:call-template name="emldataset"/>
70
     </xsl:for-each>
71
     <xsl:for-each select="citation">
72
       <xsl:call-template name="emlcitation"/>
73
     </xsl:for-each>
74
     <xsl:for-each select="software">
75
       <xsl:call-template name="emlsoftware"/>
76
     </xsl:for-each>
77
     <xsl:for-each select="protocol">
78
       <xsl:call-template name="emlprotocol"/>
79
     </xsl:for-each>
80
     <!-- Additional metadata-->
81
     <xsl:choose>
82
       <xsl:when test="$displaymodule='additionalmetadata'">
83
         <xsl:for-each select="additionalMetadata">
84
           <xsl:if test="$additionalmetadataindex=position()">
85
              <div class="{$tabledefaultStyle}">
86
                 <xsl:call-template name="additionalmetadata"/>
87
               </div>
88
            </xsl:if>
89
         </xsl:for-each>
90
       </xsl:when>
91
       <xsl:otherwise>
92
         <xsl:if test="$displaymodule='dataset'">
93
           <xsl:if test="$withAdditionalMetadataLink='1'">
94
             <xsl:for-each select="additionalMetadata">
95
               <div class="{$tabledefaultStyle}">
96
                 <xsl:call-template name="additionalmetadataURL">
97
                    <xsl:with-param name="index" select="position()"/>
98
                  </xsl:call-template>
99
               </div>
100
             </xsl:for-each>
101
           </xsl:if>
102
         </xsl:if>
103
       </xsl:otherwise>
104
     </xsl:choose>
105
     <!-- xml format-->
106
     <xsl:if test="$displaymodule='dataset'">
107
       <xsl:if test="$withOriginalXMLLink='1'">
108
         <xsl:call-template name="xml"/>
109
       </xsl:if>
110
     </xsl:if>
111
   </xsl:template>
40
  <xsl:template match="/">
41
    <html>
42
      <head>
43
        <title><xsl:value-of select="./eml:eml/dataset/title"/></title>
44
        <link rel="stylesheet" type="text/css"
45
              href="{$contextURL}/style/skins/{$qformat}/{$qformat}.css"></link>
46
        <script language="Javascript" type="text/JavaScript"
47
                src="{$contextURL}/style/skins/{$qformat}/{$qformat}.js"></script>
48
        <script language="Javascript"
49
                type="text/JavaScript"
50
                src="{$contextURL}/style/common/branding.js"></script>
51
      </head>
52
      <body>
112 53

  
113
   <!--********************************************************
114
                       dataset part
115
       ********************************************************-->
54
        <div id="{$mainTableAligmentStyle}">
55
          <script language="JavaScript" type="text/JavaScript">
56
	     <xsl:if test="$insertTemplate='0'">
57
                 <xsl:comment>insertTemplateOpening('<xsl:value-of select="$contextURL" />');//</xsl:comment>
58
             </xsl:if>
59
	     <xsl:if test="$insertTemplate='1'">
60
                 insertTemplateOpening('<xsl:value-of select="$contextURL" />');
61
             </xsl:if>
62
          </script>
116 63

  
117
   <xsl:template name="emldataset">
118
    <xsl:if test="$displaymodule='dataset'">
119
    	<div>
120
			<xsl:call-template name="datasetpart"/>
121
		</div>	
122
    </xsl:if>
123
    <xsl:if test="$displaymodule='entity'">
124
       <xsl:call-template name="entitypart"/>
125
    </xsl:if>
126
    <xsl:if test="$displaymodule='attribute'">
127
       <xsl:call-template name="attributepart"/>
128
    </xsl:if>
129
    <xsl:if test="$displaymodule='attributedomain'">
130
       <xsl:call-template name="datasetattributedomain"/>
131
    </xsl:if>
132
    <xsl:if test="$displaymodule='attributecoverage'">
133
       <xsl:call-template name="datasetattributecoverage"/>
134
    </xsl:if>
135
    <xsl:if test="$displaymodule='attributemethod'">
136
       <xsl:call-template name="datasetattributemethod"/>
137
    </xsl:if>
138
    <xsl:if test="$displaymodule='inlinedata'">
139
       <xsl:call-template name="emlinlinedata"/>
140
    </xsl:if>
141
    <xsl:if test="$displaymodule='attributedetail'">
142
       <xsl:call-template name="entityparam"/>
143
    </xsl:if>
144
   </xsl:template>
64
          <table xsl:use-attribute-sets="cellspacing" width="100%"
65
                                        class="{$mainContainerTableStyle}">
66
          <xsl:apply-templates select="*[local-name()='eml']"/>
67
          </table>
145 68

  
146
   <!--*************** Data set diaplay *************-->
147
   <xsl:template name="datasetpart">
148
       <xsl:apply-templates select="." mode="dataset"/>
149
   </xsl:template>
150

  
151
   <!--************ Entity diplay *****************-->
152
   <xsl:template name="entitypart">
153
       <xsl:choose>
154
         <xsl:when test="references!=''">
155
            <xsl:variable name="ref_id" select="references"/>
156
            <xsl:variable name="references" select="$ids[@id=$ref_id]" />
157
            <xsl:for-each select="$references">
158
               <xsl:call-template name="entitypartcommon"/>
159
            </xsl:for-each>
160
         </xsl:when>
161
         <xsl:otherwise>
162
            <xsl:call-template name="entitypartcommon"/>
163
        </xsl:otherwise>
164
   </xsl:choose>
165
    </xsl:template>
166

  
167

  
168
    <xsl:template name="entitypartcommon">
169
      <tr><th colspan="2">
170
      Data Object Description
171
      </th></tr>
172
      <xsl:call-template name="identifier">
173
          <xsl:with-param name="packageID" select="../@packageId"/>
174
          <xsl:with-param name="system" select="../@system"/>
175
      </xsl:call-template>
176
      <tr>
177
     <td colspan="2">
178
        <!-- find the subtree to process -->
179
       <xsl:call-template name="entityparam"/>
180
     </td>
181
      </tr>
182
   </xsl:template>
183

  
184
   <!--************ Attribute display *****************-->
185
   <xsl:template name="attributedetailpart">
186
   </xsl:template>
187

  
188
    <xsl:template name="attributepart">
189
      <tr><td>
190
      <h3>Attributes Description</h3>
191
      </td></tr>
192
      <tr>
193
     <td>
194
        <!-- find the subtree to process -->
195
      <xsl:if test="$entitytype='dataTable'">
196
        <xsl:for-each select="dataTable">
197
            <xsl:if test="position()=$entityindex">
198
                <xsl:for-each select="attributeList">
199
                   <xsl:call-template name="attributelist">
200
                      <xsl:with-param name="docid" select="$docid"/>
201
                      <xsl:with-param name="entitytype" select="$entitytype"/>
202
                      <xsl:with-param name="entityindex" select="$entityindex"/>
203
                   </xsl:call-template>
204
                </xsl:for-each>
205
            </xsl:if>
206
        </xsl:for-each>
207
      </xsl:if>
208
    </td>
209
      </tr>
210
   </xsl:template>
211

  
212
   <!--************************Attribute Domain display module************************-->
213
   <xsl:template name="datasetattributedomain">
214
      <tr><td>
215
      <h3>Attribute Domain</h3>
216
      </td></tr>
217
      <tr>
218
     <td>
219
       <!-- find the subtree to process -->
220
       <xsl:call-template name="entityparam"/>
221
    </td>
222
      </tr>
223
   </xsl:template>
224

  
225

  
226
   <!--************************Attribute Method display module************************-->
227
   <xsl:template name="datasetattributemethod">
228
      <tr><td>
229
      <h3>Attribute Method</h3>
230
      </td></tr>
231
      <tr>
232
     <td>
233
       <!-- find the subtree to process -->
234
       <xsl:call-template name="entityparam"/>
235
    </td>
236
      </tr>
237
   </xsl:template>
238

  
239

  
240
   <!--************************Attribute Coverage display module************************-->
241
   <xsl:template name="datasetattributecoverage">
242
     <tr><td>
243
      <h3>Attribute Coverage</h3>
244
      </td></tr>
245
      <tr>
246
     <td>
247
       <!-- find the subtree to process -->
248
       <xsl:call-template name="entityparam"/>
249
    </td>
250
      </tr>
251
   </xsl:template>
252

  
253

  
254
   <xsl:template name="entityparam">
255
     <xsl:choose>
256
      <xsl:when test="$entitytype=''">
257
        <xsl:variable name="dataTableCount" select="0"/>
258
        <xsl:variable name="spatialRasterCount" select="0"/>
259
        <xsl:variable name="spatialVectorCount" select="0"/>
260
        <xsl:variable name="storedProcedureCount" select="0"/>
261
        <xsl:variable name="viewCount" select="0"/>
262
        <xsl:variable name="otherEntityCount" select="0"/>
263
        <xsl:for-each select="dataTable|spatialRaster|spatialVector|storedProcedure|view|otherEntity">
264

  
265
        <xsl:if test="'dataTable' = name()">
266
           <xsl:variable name="currentNode" select="."/>
267
           <xsl:variable name="dataTableCount">
268
            <xsl:for-each select="../dataTable">
269
                  <xsl:if test=". = $currentNode">
270
                <xsl:value-of select="position()"/>
271
              </xsl:if>
272
            </xsl:for-each>
273
           </xsl:variable>
274
           <xsl:if test="position() = $entityindex">
275
             <xsl:choose>
276
               <xsl:when test="$displaymodule='attributedetail'">
277
                 <xsl:for-each select="attributeList">
278
                   <xsl:call-template name="singleattribute">
279
                    <xsl:with-param name="attributeindex" select="$attributeindex"/>
280
                    <xsl:with-param name="docid" select="$docid"/>
281
                    <xsl:with-param name="entitytype" select="'dataTable'"/>
282
                    <xsl:with-param name="entityindex" select="$dataTableCount"/>
283
                   </xsl:call-template>
284
                 </xsl:for-each>
285
               </xsl:when>
286
               <xsl:otherwise>
287
                 <xsl:for-each select="../.">
288
                   <xsl:call-template name="chooseentity">
289
                    <xsl:with-param name="entitytype" select="'dataTable'"/>
290
                    <xsl:with-param name="entityindex" select="$dataTableCount"/>
291
                   </xsl:call-template>
292
                  </xsl:for-each>
293
                  </xsl:otherwise>
294
                 </xsl:choose>
295
           </xsl:if>
296
        </xsl:if>
297

  
298
        <xsl:if test="'spatialRaster' = name()">
299
          <xsl:variable name="currentNode" select="."/>
300
           <xsl:variable name="spatialRasterCount">
301
            <xsl:for-each select="../spatialRaster">
302
                  <xsl:if test=". = $currentNode">
303
                <xsl:value-of select="position()"/>
304
              </xsl:if>
305
            </xsl:for-each>
306
           </xsl:variable>
307
            <xsl:if test="position() = $entityindex">
308
           <xsl:choose>
309
               <xsl:when test="$displaymodule='attributedetail'">
310
                 <xsl:for-each select="attributeList">
311
                   <xsl:call-template name="singleattribute">
312
                    <xsl:with-param name="attributeindex" select="$attributeindex"/>
313
                    <xsl:with-param name="docid" select="$docid"/>
314
                    <xsl:with-param name="entitytype" select="'spatialRaster'"/>
315
                    <xsl:with-param name="entityindex" select="$spatialRasterCount"/>
316
                   </xsl:call-template>
317
                 </xsl:for-each>
318
               </xsl:when>
319
               <xsl:otherwise>
320
                 <xsl:for-each select="../.">
321
                   <xsl:call-template name="chooseentity">
322
                    <xsl:with-param name="entitytype" select="'spatialRaster'"/>
323
                    <xsl:with-param name="entityindex" select="$spatialRasterCount"/>
324
                   </xsl:call-template>
325
                  </xsl:for-each>
326
                  </xsl:otherwise>
327
                 </xsl:choose>
328
            </xsl:if>
329
        </xsl:if>
330

  
331
        <xsl:if test="'spatialVector' = name()">
332
          <xsl:variable name="currentNode" select="."/>
333
           <xsl:variable name="spatialVectorCount">
334
            <xsl:for-each select="../spatialVector">
335
                  <xsl:if test=". = $currentNode">
336
                <xsl:value-of select="position()"/>
337
              </xsl:if>
338
            </xsl:for-each>
339
           </xsl:variable>
340
           <xsl:if test="position() = $entityindex">
341
             <xsl:choose>
342
               <xsl:when test="$displaymodule='attributedetail'">
343
                 <xsl:for-each select="attributeList">
344
                   <xsl:call-template name="singleattribute">
345
                    <xsl:with-param name="attributeindex" select="$attributeindex"/>
346
                    <xsl:with-param name="docid" select="$docid"/>
347
                    <xsl:with-param name="entitytype" select="'spatialVector'"/>
348
                    <xsl:with-param name="entityindex" select="$spatialVectorCount"/>
349
                   </xsl:call-template>
350
                 </xsl:for-each>
351
               </xsl:when>
352
               <xsl:otherwise>
353
                 <xsl:for-each select="../.">
354
                   <xsl:call-template name="chooseentity">
355
                    <xsl:with-param name="entitytype" select="'spatialVector'"/>
356
                    <xsl:with-param name="entityindex" select="$spatialVectorCount"/>
357
                   </xsl:call-template>
358
                  </xsl:for-each>
359
                  </xsl:otherwise>
360
                 </xsl:choose>
361
           </xsl:if>
362
        </xsl:if>
363

  
364
        <xsl:if test="'storedProcedure' = name()">
365
          <xsl:variable name="currentNode" select="."/>
366
           <xsl:variable name="storedProcedureCount">
367
            <xsl:for-each select="../storedProcedure">
368
                  <xsl:if test=". = $currentNode">
369
                <xsl:value-of select="position()"/>
370
              </xsl:if>
371
            </xsl:for-each>
372
           </xsl:variable>
373
           <xsl:if test="position() = $entityindex">
374
             <xsl:choose>
375
               <xsl:when test="$displaymodule='attributedetail'">
376
                 <xsl:for-each select="attributeList">
377
                   <xsl:call-template name="singleattribute">
378
                    <xsl:with-param name="attributeindex" select="$attributeindex"/>
379
                    <xsl:with-param name="docid" select="$docid"/>
380
                    <xsl:with-param name="entitytype" select="'storedProcedure'"/>
381
                    <xsl:with-param name="entityindex" select="$storedProcedureCount"/>
382
                   </xsl:call-template>
383
                 </xsl:for-each>
384
               </xsl:when>
385
               <xsl:otherwise>
386
                 <xsl:for-each select="../.">
387
                   <xsl:call-template name="chooseentity">
388
                    <xsl:with-param name="entitytype" select="'storedProcedure'"/>
389
                    <xsl:with-param name="entityindex" select="$storedProcedureCount"/>
390
                   </xsl:call-template>
391
                  </xsl:for-each>
392
                  </xsl:otherwise>
393
              </xsl:choose>
394
           </xsl:if>
395
        </xsl:if>
396

  
397
        <xsl:if test="'view' = name()">
398
          <xsl:variable name="currentNode" select="."/>
399
           <xsl:variable name="viewCount">
400
            <xsl:for-each select="../view">
401
                  <xsl:if test=". = $currentNode">
402
                <xsl:value-of select="position()"/>
403
              </xsl:if>
404
            </xsl:for-each>
405
           </xsl:variable>
406
           <xsl:if test="position() = $entityindex">
407
            <xsl:choose>
408
               <xsl:when test="$displaymodule='attributedetail'">
409
                 <xsl:for-each select="attributeList">
410
                   <xsl:call-template name="singleattribute">
411
                    <xsl:with-param name="attributeindex" select="$attributeindex"/>
412
                    <xsl:with-param name="docid" select="$docid"/>
413
                    <xsl:with-param name="entitytype" select="'view'"/>
414
                    <xsl:with-param name="entityindex" select="$viewCount"/>
415
                   </xsl:call-template>
416
                 </xsl:for-each>
417
               </xsl:when>
418
               <xsl:otherwise>
419
                 <xsl:for-each select="../.">
420
                   <xsl:call-template name="chooseentity">
421
                    <xsl:with-param name="entitytype" select="'view'"/>
422
                    <xsl:with-param name="entityindex" select="$viewCount"/>
423
                   </xsl:call-template>
424
                  </xsl:for-each>
425
                  </xsl:otherwise>
426
                 </xsl:choose>
427
            </xsl:if>
428
        </xsl:if>
429

  
430
        <xsl:if test="'otherEntityTable' = name()">
431
          <xsl:variable name="currentNode" select="."/>
432
           <xsl:variable name="otherEntityCount">
433
            <xsl:for-each select="../otherEntity">
434
                  <xsl:if test=". = $currentNode">
435
                <xsl:value-of select="position()"/>
436
              </xsl:if>
437
            </xsl:for-each>
438
           </xsl:variable>
439
           <xsl:if test="position() = $entityindex">
440
            <xsl:choose>
441
               <xsl:when test="$displaymodule='attributedetail'">
442
                 <xsl:for-each select="attributeList">
443
                   <xsl:call-template name="singleattribute">
444
                    <xsl:with-param name="attributeindex" select="$attributeindex"/>
445
                    <xsl:with-param name="docid" select="$docid"/>
446
                    <xsl:with-param name="entitytype" select="'otherEntity'"/>
447
                    <xsl:with-param name="entityindex" select="$otherEntityCount"/>
448
                   </xsl:call-template>
449
                 </xsl:for-each>
450
               </xsl:when>
451
               <xsl:otherwise>
452
                 <xsl:for-each select="../.">
453
                   <xsl:call-template name="chooseentity">
454
                    <xsl:with-param name="entitytype" select="'otherEntity'"/>
455
                    <xsl:with-param name="entityindex" select="$otherEntityCount"/>
456
                   </xsl:call-template>
457
                  </xsl:for-each>
458
                  </xsl:otherwise>
459
                 </xsl:choose>
69
	  <script language="JavaScript" type="text/JavaScript">
70
	     <xsl:if test="$insertTemplate='0'">
71
               <xsl:comment>insertTemplateClosing('<xsl:value-of select="$contextURL" />');//</xsl:comment>
460 72
             </xsl:if>
461
          </xsl:if>
462
        </xsl:for-each>
463
      </xsl:when>
464
      <xsl:otherwise>
465
  <xsl:choose>
466
     <xsl:when test="$displaymodule='attributedetail'">
467
      <xsl:for-each select="attributeList">
468
       <xsl:call-template name="singleattribute">
469
         <xsl:with-param name="attributeindex" select="$attributeindex"/>
470
         <xsl:with-param name="docid" select="$docid"/>
471
         <xsl:with-param name="entitytype" select="$entitytype"/>
472
         <xsl:with-param name="entityindex" select="$entityindex"/>
473
       </xsl:call-template>
474
      </xsl:for-each>
475
     </xsl:when>
476
     <xsl:otherwise>
477
       <xsl:call-template name="chooseentity">
478
         <xsl:with-param name="entitytype" select="$entitytype"/>
479
         <xsl:with-param name="entityindex" select="$entityindex"/>
480
       </xsl:call-template>
481
     </xsl:otherwise>
482
    </xsl:choose>
483
       </xsl:otherwise>
484
     </xsl:choose>
73
	     <xsl:if test="$insertTemplate='1'">
74
                 insertTemplateClosing('<xsl:value-of select="$contextURL" />');
75
             </xsl:if>
76
          </script>
77
        </div>
78
      </body>
79
    </html>
485 80
   </xsl:template>
486 81

  
487

  
488
   <xsl:template name="chooseentity" match='dataset'>
489
      <xsl:param name="entityindex"/>
490
      <xsl:param name="entitytype"/>
491
     <xsl:if test="$entitytype='dataTable'">
492
        <xsl:for-each select="dataTable">
493
            <xsl:if test="position()=$entityindex">
494
                   <xsl:choose>
495
                     <xsl:when test="references!=''">
496
                        <xsl:variable name="ref_id" select="references"/>
497
                        <xsl:variable name="references" select="$ids[@id=$ref_id]" />
498
                          <xsl:for-each select="$references">
499
                              <xsl:choose>
500
                                 <xsl:when test="$displaymodule='entity'">
501
                                    <xsl:call-template name="dataTable">
502
                                        <xsl:with-param name="datatablefirstColStyle" select="$firstColStyle"/>
503
                                        <xsl:with-param name="datatablesubHeaderStyle" select="$subHeaderStyle"/>
504
                                        <xsl:with-param name="docid" select="$docid"/>
505
                                        <xsl:with-param name="entitytype" select="$entitytype"/>
506
                                        <xsl:with-param name="entityindex" select="$entityindex"/>
507
                                    </xsl:call-template>
508
                                 </xsl:when>
509
                                 <xsl:otherwise>
510
                                    <xsl:call-template name="chooseattributelist"/>
511
                                 </xsl:otherwise>
512
                              </xsl:choose>
513
                          </xsl:for-each>
514
                     </xsl:when>
515
                     <xsl:otherwise>
516
                       <xsl:choose>
517
                                 <xsl:when test="$displaymodule='entity'">
518
                                    <xsl:call-template name="dataTable">
519
                                        <xsl:with-param name="datatablefirstColStyle" select="$firstColStyle"/>
520
                                        <xsl:with-param name="datatablesubHeaderStyle" select="$subHeaderStyle"/>
521
                                        <xsl:with-param name="docid" select="$docid"/>
522
                                        <xsl:with-param name="entitytype" select="$entitytype"/>
523
                                        <xsl:with-param name="entityindex" select="$entityindex"/>
524
                                    </xsl:call-template>
525
                                 </xsl:when>
526
                                 <xsl:otherwise>
527
                                    <xsl:call-template name="chooseattributelist"/>
528
                                 </xsl:otherwise>
529
                       </xsl:choose>
530
                   </xsl:otherwise>
531
                </xsl:choose>
532
            </xsl:if>
533
        </xsl:for-each>
534
      </xsl:if>
535
      <xsl:if test="$entitytype='spatialRaster'">
536
        <xsl:for-each select="spatialRaster">
537
            <xsl:if test="position()=$entityindex">
538
                   <xsl:choose>
539
                     <xsl:when test="references!=''">
540
                        <xsl:variable name="ref_id" select="references"/>
541
                        <xsl:variable name="references" select="$ids[@id=$ref_id]" />
542
                          <xsl:for-each select="$references">
543
                              <xsl:choose>
544
                                 <xsl:when test="$displaymodule='entity'">
545
                                    <xsl:call-template name="spatialRaster">
546
                                        <xsl:with-param name="spatialrasterfirstColStyle" select="$firstColStyle"/>
547
                                        <xsl:with-param name="spatialrastersubHeaderStyle" select="$subHeaderStyle"/>
548
                                        <xsl:with-param name="docid" select="$docid"/>
549
                                        <xsl:with-param name="entitytype" select="$entitytype"/>
550
                                        <xsl:with-param name="entityindex" select="$entityindex"/>
551
                                    </xsl:call-template>
552
                                 </xsl:when>
553
                                 <xsl:otherwise>
554
                                    <xsl:call-template name="chooseattributelist"/>
555
                                 </xsl:otherwise>
556
                              </xsl:choose>
557
                          </xsl:for-each>
558
                     </xsl:when>
559
                     <xsl:otherwise>
560
                       <xsl:choose>
561
                                 <xsl:when test="$displaymodule='entity'">
562
                                    <xsl:call-template name="spatialRaster">
563
                                        <xsl:with-param name="spatialrasterfirstColStyle" select="$firstColStyle"/>
564
                                        <xsl:with-param name="spatialrastersubHeaderStyle" select="$subHeaderStyle"/>
565
                                        <xsl:with-param name="docid" select="$docid"/>
566
                                        <xsl:with-param name="entitytype" select="$entitytype"/>
567
                                        <xsl:with-param name="entityindex" select="$entityindex"/>
568
                                    </xsl:call-template>
569
                                 </xsl:when>
570
                                 <xsl:otherwise>
571
                                    <xsl:call-template name="chooseattributelist"/>
572
                                 </xsl:otherwise>
573
                       </xsl:choose>
574
                   </xsl:otherwise>
575
                </xsl:choose>
576
            </xsl:if>
577
        </xsl:for-each>
578
      </xsl:if>
579
      <xsl:if test="$entitytype='spatialVector'">
580
        <xsl:for-each select="spatialVector">
581
            <xsl:if test="position()=$entityindex">
582
                   <xsl:choose>
583
                     <xsl:when test="references!=''">
584
                        <xsl:variable name="ref_id" select="references"/>
585
                        <xsl:variable name="references" select="$ids[@id=$ref_id]" />
586
                          <xsl:for-each select="$references">
587
                              <xsl:choose>
588
                                 <xsl:when test="$displaymodule='entity'">
589
                                    <xsl:call-template name="spatialVector">
590
                                       <xsl:with-param name="spatialvectorfirstColStyle" select="$firstColStyle"/>
591
                                        <xsl:with-param name="spatialvectorsubHeaderStyle" select="$subHeaderStyle"/>
592
                                        <xsl:with-param name="docid" select="$docid"/>
593
                                        <xsl:with-param name="entitytype" select="$entitytype"/>
594
                                        <xsl:with-param name="entityindex" select="$entityindex"/>
595
                                    </xsl:call-template>
596
                                 </xsl:when>
597
                                 <xsl:otherwise>
598
                                    <xsl:call-template name="chooseattributelist"/>
599
                                 </xsl:otherwise>
600
                              </xsl:choose>
601
                          </xsl:for-each>
602
                     </xsl:when>
603
                     <xsl:otherwise>
604
                       <xsl:choose>
605
                                 <xsl:when test="$displaymodule='entity'">
606
                                    <xsl:call-template name="spatialVector">
607
                                        <xsl:with-param name="spatialvectorfirstColStyle" select="$firstColStyle"/>
608
                                        <xsl:with-param name="spatialvectorsubHeaderStyle" select="$subHeaderStyle"/>
609
                                        <xsl:with-param name="docid" select="$docid"/>
610
                                        <xsl:with-param name="entitytype" select="$entitytype"/>
611
                                        <xsl:with-param name="entityindex" select="$entityindex"/>
612
                                    </xsl:call-template>
613
                                 </xsl:when>
614
                                 <xsl:otherwise>
615
                                    <xsl:call-template name="chooseattributelist"/>
616
                                 </xsl:otherwise>
617
                       </xsl:choose>
618
                   </xsl:otherwise>
619
                </xsl:choose>
620
            </xsl:if>
621
        </xsl:for-each>
622
      </xsl:if>
623
      <xsl:if test="$entitytype='storedProcedure'">
624
        <xsl:for-each select="storedProcedure">
625
            <xsl:if test="position()=$entityindex">
626
                   <xsl:choose>
627
                     <xsl:when test="references!=''">
628
                        <xsl:variable name="ref_id" select="references"/>
629
                        <xsl:variable name="references" select="$ids[@id=$ref_id]" />
630
                          <xsl:for-each select="$references">
631
                              <xsl:choose>
632
                                 <xsl:when test="$displaymodule='entity'">
633
                                    <xsl:call-template name="storedProcedure">
634
                                       <xsl:with-param name="storedprocedurefirstColStyle" select="$firstColStyle"/>
635
                                       <xsl:with-param name="storedproceduresubHeaderStyle" select="$subHeaderStyle"/>
636
                                       <xsl:with-param name="docid" select="$docid"/>
637
                                       <xsl:with-param name="entitytype" select="$entitytype"/>
638
                                       <xsl:with-param name="entityindex" select="$entityindex"/>
639
                                    </xsl:call-template>
640
                                 </xsl:when>
641
                                 <xsl:otherwise>
642
                                    <xsl:call-template name="chooseattributelist"/>
643
                                 </xsl:otherwise>
644
                              </xsl:choose>
645
                          </xsl:for-each>
646
                     </xsl:when>
647
                     <xsl:otherwise>
648
                       <xsl:choose>
649
                                 <xsl:when test="$displaymodule='entity'">
650
                                    <xsl:call-template name="storedProcedure">
651
                                       <xsl:with-param name="storedprocedurefirstColStyle" select="$firstColStyle"/>
652
                                       <xsl:with-param name="storedproceduresubHeaderStyle" select="$subHeaderStyle"/>
653
                                       <xsl:with-param name="docid" select="$docid"/>
654
                                       <xsl:with-param name="entitytype" select="$entitytype"/>
655
                                       <xsl:with-param name="entityindex" select="$entityindex"/>
656
                                    </xsl:call-template>
657
                                 </xsl:when>
658
                                 <xsl:otherwise>
659
                                    <xsl:call-template name="chooseattributelist"/>
660
                                 </xsl:otherwise>
661
                       </xsl:choose>
662
                   </xsl:otherwise>
663
                </xsl:choose>
664
            </xsl:if>
665
        </xsl:for-each>
666
      </xsl:if>
667
      <xsl:if test="$entitytype='view'">
668
        <xsl:for-each select="view">
669
            <xsl:if test="position()=$entityindex">
670
                   <xsl:choose>
671
                     <xsl:when test="references!=''">
672
                        <xsl:variable name="ref_id" select="references"/>
673
                        <xsl:variable name="references" select="$ids[@id=$ref_id]" />
674
                          <xsl:for-each select="$references">
675
                              <xsl:choose>
676
                                 <xsl:when test="$displaymodule='entity'">
677
                                    <xsl:call-template name="view">
678
                                       <xsl:with-param name="viewfirstColStyle" select="$firstColStyle"/>
679
                                       <xsl:with-param name="viewsubHeaderStyle" select="$subHeaderStyle"/>
680
                                       <xsl:with-param name="docid" select="$docid"/>
681
                                       <xsl:with-param name="entitytype" select="$entitytype"/>
682
                                       <xsl:with-param name="entityindex" select="$entityindex"/>
683
                                    </xsl:call-template>
684
                                 </xsl:when>
685
                                 <xsl:otherwise>
686
                                    <xsl:call-template name="chooseattributelist"/>
687
                                 </xsl:otherwise>
688
                              </xsl:choose>
689
                          </xsl:for-each>
690
                     </xsl:when>
691
                     <xsl:otherwise>
692
                       <xsl:choose>
693
                                 <xsl:when test="$displaymodule='entity'">
694
                                    <xsl:call-template name="view">
695
                                       <xsl:with-param name="viewfirstColStyle" select="$firstColStyle"/>
696
                                       <xsl:with-param name="viewsubHeaderStyle" select="$subHeaderStyle"/>
697
                                       <xsl:with-param name="docid" select="$docid"/>
698
                                       <xsl:with-param name="entitytype" select="$entitytype"/>
699
                                       <xsl:with-param name="entityindex" select="$entityindex"/>
700
                                    </xsl:call-template>
701
                                 </xsl:when>
702
                                 <xsl:otherwise>
703
                                    <xsl:call-template name="chooseattributelist"/>
704
                                 </xsl:otherwise>
705
                       </xsl:choose>
706
                   </xsl:otherwise>
707
                </xsl:choose>
708
            </xsl:if>
709
        </xsl:for-each>
710
      </xsl:if>
711
      <xsl:if test="$entitytype='otherEntity'">
712
        <xsl:for-each select="otherEntity">
713
            <xsl:if test="position()=$entityindex">
714
                   <xsl:choose>
715
                     <xsl:when test="references!=''">
716
                        <xsl:variable name="ref_id" select="references"/>
717
                        <xsl:variable name="references" select="$ids[@id=$ref_id]" />
718
                          <xsl:for-each select="$references">
719
                              <xsl:choose>
720
                                 <xsl:when test="$displaymodule='entity'">
721
                                    <xsl:call-template name="otherEntity">
722
                                       <xsl:with-param name="otherentityfirstColStyle" select="$firstColStyle"/>
723
                                       <xsl:with-param name="otherentitysubHeaderStyle" select="$subHeaderStyle"/>
724
                                       <xsl:with-param name="docid" select="$docid"/>
725
                                       <xsl:with-param name="entitytype" select="$entitytype"/>
726
                                       <xsl:with-param name="entityindex" select="$entityindex"/>
727
                                    </xsl:call-template>
728
                                 </xsl:when>
729
                                 <xsl:otherwise>
730
                                    <xsl:call-template name="chooseattributelist"/>
731
                                 </xsl:otherwise>
732
                              </xsl:choose>
733
                          </xsl:for-each>
734
                     </xsl:when>
735
                     <xsl:otherwise>
736
                       <xsl:choose>
737
                                 <xsl:when test="$displaymodule='entity'">
738
                                    <xsl:call-template name="otherEntity">
739
                                       <xsl:with-param name="otherentityfirstColStyle" select="$firstColStyle"/>
740
                                       <xsl:with-param name="otherentitysubHeaderStyle" select="$subHeaderStyle"/>
741
                                       <xsl:with-param name="docid" select="$docid"/>
742
                                       <xsl:with-param name="entitytype" select="$entitytype"/>
743
                                       <xsl:with-param name="entityindex" select="$entityindex"/>
744
                                    </xsl:call-template>
745
                                 </xsl:when>
746
                                 <xsl:otherwise>
747
                                    <xsl:call-template name="chooseattributelist"/>
748
                                 </xsl:otherwise>
749
                       </xsl:choose>
750
                   </xsl:otherwise>
751
                </xsl:choose>
752
            </xsl:if>
753
        </xsl:for-each>
754
      </xsl:if>
755
   </xsl:template>
756

  
757
   <xsl:template name="chooseattributelist">
758
       <xsl:for-each select="attributeList">
759
    <xsl:choose>
760
         <xsl:when test="references!=''">
761
            <xsl:variable name="ref_id" select="references"/>
762
            <xsl:variable name="references" select="$ids[@id=$ref_id]" />
763
            <xsl:for-each select="$references">
764
               <xsl:call-template name="chooseattribute"/>
765
           </xsl:for-each>
766
         </xsl:when>
767
         <xsl:otherwise>
768
             <xsl:call-template name="chooseattribute"/>
769
        </xsl:otherwise>
770
   </xsl:choose>
771
      </xsl:for-each>
772
   </xsl:template>
773

  
774
   <xsl:template name="chooseattribute">
775
       <xsl:for-each select="attribute">
776
    <xsl:if test="position()=$attributeindex">
777
      <xsl:if test="$displaymodule='attributedomain'">
778
        <xsl:for-each select="measurementScale/*/*">
779
          <xsl:call-template name="nonNumericDomain">
780
              <xsl:with-param name="nondomainfirstColStyle" select="$firstColStyle"/>
781
           </xsl:call-template>
782
        </xsl:for-each>
783
     </xsl:if>
784
     <xsl:if test="$displaymodule='attributecoverage'">
785
        <xsl:for-each select="coverage">
786
          <xsl:call-template name="coverage">
787
          </xsl:call-template>
788
        </xsl:for-each>
789
     </xsl:if>
790
     <xsl:if test="$displaymodule='attributemethod'">
791
        <xsl:for-each select="method">
792
          <xsl:call-template name="method">
793
              <xsl:with-param name="methodfirstColStyle" select="$firstColStyle"/>
794
              <xsl:with-param name="methodsubHeaderStyle" select="$firstColStyle"/>
795
           </xsl:call-template>
796
        </xsl:for-each>
797
     </xsl:if>
798
   </xsl:if>
799
       </xsl:for-each>
800
   </xsl:template>
801

  
802

  
803

  
804
   <!--*************************Distribution Inline Data display module*****************-->
805
   <xsl:template name="emlinlinedata">
806
      <tr><td>
807
      <h3>Inline Data</h3>
808
      </td></tr>
809
      <tr>
810
     <td>
811
      <xsl:if test="$distributionlevel='toplevel'">
812
         <xsl:for-each select="distribution">
813
            <xsl:if test="position()=$distributionindex">
814
               <xsl:choose>
815
                 <xsl:when test="references!=''">
816
                    <xsl:variable name="ref_id1" select="references"/>
817
                    <xsl:variable name="references1" select="$ids[@id=$ref_id1]" />
818
                    <xsl:for-each select="$references1">
819
                        <xsl:for-each select="inline">
820
                            <xsl:value-of select="."/>
821
                        </xsl:for-each>
822
                    </xsl:for-each>
823
                 </xsl:when>
824
                 <xsl:otherwise>
825
                     <xsl:for-each select="inline">
826
                            <xsl:value-of select="."/>
827
                     </xsl:for-each>
828
                 </xsl:otherwise>
829
               </xsl:choose>
830
            </xsl:if>
831
         </xsl:for-each>
832
      </xsl:if>
833
      <xsl:if test="$distributionlevel='entitylevel'">
834
        <xsl:if test="$entitytype='dataTable'">
835
          <xsl:for-each select="dataTable">
836
            <xsl:if test="position()=$entityindex">
837
                <xsl:choose>
838
                 <xsl:when test="references!=''">
839
                    <xsl:variable name="ref_id2" select="references"/>
840
                    <xsl:variable name="references2" select="$ids[@id=$ref_id2]" />
841
                    <xsl:for-each select="$references2">
842
                       <xsl:call-template name="choosephysical"/>
843
                    </xsl:for-each>
844
                 </xsl:when>
845
                 <xsl:otherwise>
846
                     <xsl:call-template name="choosephysical"/>
847
                 </xsl:otherwise>
848
               </xsl:choose>
849
            </xsl:if>
850
          </xsl:for-each>
851
        </xsl:if>
852
        <xsl:if test="$entitytype='spatialRaster'">
853
          <xsl:for-each select="spatialRaster">
854
            <xsl:if test="position()=$entityindex">
855
                <xsl:choose>
856
                 <xsl:when test="references!=''">
857
                    <xsl:variable name="ref_id2" select="references"/>
858
                    <xsl:variable name="references2" select="$ids[@id=$ref_id2]" />
859
                    <xsl:for-each select="$references2">
860
                       <xsl:call-template name="choosephysical"/>
861
                    </xsl:for-each>
862
                 </xsl:when>
863
                 <xsl:otherwise>
864
                     <xsl:call-template name="choosephysical"/>
865
                 </xsl:otherwise>
866
               </xsl:choose>
867
            </xsl:if>
868
          </xsl:for-each>
869
        </xsl:if>
870
        <xsl:if test="$entitytype='spatialVector'">
871
          <xsl:for-each select="spatialVector">
872
            <xsl:if test="position()=$entityindex">
873
                <xsl:choose>
874
                 <xsl:when test="references!=''">
875
                    <xsl:variable name="ref_id2" select="references"/>
876
                    <xsl:variable name="references2" select="$ids[@id=$ref_id2]" />
877
                    <xsl:for-each select="$references2">
878
                       <xsl:call-template name="choosephysical"/>
879
                    </xsl:for-each>
880
                 </xsl:when>
881
                 <xsl:otherwise>
882
                     <xsl:call-template name="choosephysical"/>
883
                 </xsl:otherwise>
884
               </xsl:choose>
885
            </xsl:if>
886
          </xsl:for-each>
887
        </xsl:if>
888
        <xsl:if test="$entitytype='storedProcedure'">
889
          <xsl:for-each select="storedProcedure">
890
            <xsl:if test="position()=$entityindex">
891
                <xsl:choose>
892
                 <xsl:when test="references!=''">
893
                    <xsl:variable name="ref_id2" select="references"/>
894
                    <xsl:variable name="references2" select="$ids[@id=$ref_id2]" />
895
                    <xsl:for-each select="$references2">
896
                       <xsl:call-template name="choosephysical"/>
897
                    </xsl:for-each>
898
                 </xsl:when>
899
                 <xsl:otherwise>
900
                     <xsl:call-template name="choosephysical"/>
901
                 </xsl:otherwise>
902
               </xsl:choose>
903
            </xsl:if>
904
          </xsl:for-each>
905
        </xsl:if>
906
        <xsl:if test="$entitytype='view'">
907
          <xsl:for-each select="view">
908
            <xsl:if test="position()=$entityindex">
909
                <xsl:choose>
910
                 <xsl:when test="references!=''">
911
                    <xsl:variable name="ref_id2" select="references"/>
912
                    <xsl:variable name="references2" select="$ids[@id=$ref_id2]" />
913
                    <xsl:for-each select="$references2">
914
                       <xsl:call-template name="choosephysical"/>
915
                    </xsl:for-each>
916
                 </xsl:when>
917
                 <xsl:otherwise>
918
                     <xsl:call-template name="choosephysical"/>
919
                 </xsl:otherwise>
920
               </xsl:choose>
921
            </xsl:if>
922
          </xsl:for-each>
923
        </xsl:if>
924
        <xsl:if test="$entitytype='otherEntity'">
925
          <xsl:for-each select="otherEntity">
926
            <xsl:if test="position()=$entityindex">
927
                <xsl:choose>
928
                 <xsl:when test="references!=''">
929
                    <xsl:variable name="ref_id2" select="references"/>
930
                    <xsl:variable name="references2" select="$ids[@id=$ref_id2]" />
931
                    <xsl:for-each select="$references2">
932
                       <xsl:call-template name="choosephysical"/>
933
                    </xsl:for-each>
934
                 </xsl:when>
935
                 <xsl:otherwise>
936
                     <xsl:call-template name="choosephysical"/>
937
                 </xsl:otherwise>
938
               </xsl:choose>
939
            </xsl:if>
940
          </xsl:for-each>
941
        </xsl:if>
942
      </xsl:if>
943
    </td>
944
      </tr>
945
   </xsl:template>
946

  
947
   <xsl:template name="choosephysical">
948
      <xsl:for-each select="physical">
949
   <xsl:if test="position()=$physicalindex">
950
      <xsl:choose>
951
         <xsl:when test="references!=''">
952
            <xsl:variable name="ref_id" select="references"/>
953
            <xsl:variable name="references" select="$ids[@id=$ref_id]" />
954
            <xsl:for-each select="$references">
955
               <xsl:call-template name="choosedistribution"/>
956
            </xsl:for-each>
957
         </xsl:when>
958
         <xsl:otherwise>
959
            <xsl:call-template name="choosedistribution"/>
960
        </xsl:otherwise>
961
     </xsl:choose>
962
  </xsl:if>
963
      </xsl:for-each>
964
   </xsl:template>
965

  
966
   <xsl:template name="choosedistribution">
967
      <xsl:for-each select="distribution">
968
   <xsl:if test="$distributionindex=position()">
969
      <xsl:choose>
970
         <xsl:when test="references!=''">
971
            <xsl:variable name="ref_id" select="references"/>
972
            <xsl:variable name="references" select="$ids[@id=$ref_id]" />
973
            <xsl:for-each select="$references">
974
               <xsl:for-each select="inline">
975
                  <xsl:value-of select="."/>
976
                </xsl:for-each>
977
            </xsl:for-each>
978
         </xsl:when>
979
         <xsl:otherwise>
980
            <xsl:for-each select="inline">
981
              <xsl:value-of select="."/>
982
            </xsl:for-each>
983
        </xsl:otherwise>
984
     </xsl:choose>
985
  </xsl:if>
986
      </xsl:for-each>
987
   </xsl:template>
988

  
989

  
990
     <!--********************************************************
991
               Citation part
992
       ********************************************************-->
993
   <xsl:template name="emlcitation">
994
     <xsl:choose>
995
       <xsl:when test="$displaymodule='inlinedata'">
996
    <xsl:call-template name="emlinlinedata"/>
997
       </xsl:when>
998
       <xsl:otherwise>
999
  <table xsl:use-attribute-sets="cellspacing" class="{$tabledefaultStyle}">
1000
  <tr>
1001
    <td colspan="2">
1002
         <h3>Citation Description</h3>
1003
    </td>
1004
  </tr>
1005
  <xsl:call-template name="identifier">
1006
        <xsl:with-param name="packageID" select="../@packageId"/>
1007
        <xsl:with-param name="system" select="../@system"/>
1008
  </xsl:call-template>
1009
  <tr>
1010
    <td colspan="2">
1011
      <xsl:call-template name="citation">
1012
         <xsl:with-param name="citationfirstColStyle" select="$firstColStyle"/>
1013
         <xsl:with-param name="citationsubHeaderStyle" select="$subHeaderStyle"/>
1014
     </xsl:call-template>
1015
    </td>
1016
  </tr>
1017
      </table>
1018
     </xsl:otherwise>
1019
    </xsl:choose>
1020
   </xsl:template>
1021

  
1022

  
1023

  
1024
     <!--********************************************************
1025
              Software part
1026
       ********************************************************-->
1027

  
1028
   <xsl:template name="emlsoftware">
1029
     <xsl:choose>
1030
       <xsl:when test="$displaymodule='inlinedata'">
1031
    <xsl:call-template name="emlinlinedata"/>
1032
       </xsl:when>
1033
       <xsl:otherwise>
1034
    <table xsl:use-attribute-sets="cellspacing" class="{$tabledefaultStyle}">
1035
    <tr>
1036
      <td colspan="2">
1037
         <h3>Software Description</h3>
1038
     </td>
1039
    </tr>
1040
    <xsl:call-template name="identifier">
1041
        <xsl:with-param name="packageID" select="../@packageId"/>
1042
        <xsl:with-param name="system" select="../@system"/>
1043
    </xsl:call-template>
1044
    <tr>
1045
     <td colspan="2">
1046
      <xsl:call-template name="software">
1047
         <xsl:with-param name="softwarefirstColStyle" select="$firstColStyle"/>
1048
         <xsl:with-param name="softwaresubHeaderStyle" select="$subHeaderStyle"/>
1049
     </xsl:call-template>
1050
     </td>
1051
   </tr>
1052
       </table>
1053
      </xsl:otherwise>
1054
     </xsl:choose>
1055
   </xsl:template>
1056

  
1057

  
1058
     <!--********************************************************
1059
              Protocal part
1060
       ********************************************************-->
1061

  
1062
   <xsl:template name="emlprotocol">
1063
    <xsl:choose>
1064
       <xsl:when test="$displaymodule='inlinedata'">
1065
    <xsl:call-template name="emlinlinedata"/>
1066
       </xsl:when>
1067
       <xsl:otherwise>
1068
  <table xsl:use-attribute-sets="cellspacing" class="{$tabledefaultStyle}">
1069
   <tr>
1070
    <td colspan="2">
1071
         <h3>Protocal Description</h3>
1072
    </td>
1073
   </tr>
1074
   <xsl:call-template name="identifier">
1075
        <xsl:with-param name="packageID" select="../@packageId"/>
1076
        <xsl:with-param name="system" select="../@system"/>
1077
   </xsl:call-template>
1078
   <tr>
1079
    <td colspan="2">
1080
      <xsl:call-template name="protocol">
1081
         <xsl:with-param name="protocolfirstColStyle" select="$firstColStyle"/>
1082
         <xsl:with-param name="protocolsubHeaderStyle" select="$subHeaderStyle"/>
1083
     </xsl:call-template>
1084
    </td>
1085
   </tr>
1086
       </table>
1087
      </xsl:otherwise>
1088
    </xsl:choose>
1089
   </xsl:template>
1090

  
1091
      <!--********************************************************
1092
             additionalmetadata part
1093
       ********************************************************-->
1094
   <xsl:template name="additionalmetadataURL">
1095
     <xsl:param name="index"/>
1096
     <table class="{$tabledefaultStyle}">
1097
       <tr>
1098
         <td>
1099
           <a><xsl:attribute name="href"><xsl:value-of select="$tripleURI"/><xsl:value-of select="$docid"/>&amp;displaymodule=additionalmetadata&amp;additionalmetadataindex=<xsl:value-of select="$index"/></xsl:attribute>
1100
             Additional Metadata
1101
           </a>
1102
         </td>
1103
       </tr>
1104
     </table>
1105
   </xsl:template>
1106
     <!--********************************************************
1107
             download xml part
1108
       ********************************************************-->
1109
   <xsl:template name="xml">
1110
     <xsl:param name="index"/>
1111
        <br />
1112
        <a>
1113
          <xsl:attribute name="href">
1114
            <xsl:value-of select="$xmlURI"/>
1115
            <xsl:value-of select="$docid"/>
1116
          </xsl:attribute>
1117
          View the original XML Data (EML format)
1118
        </a>
1119
   </xsl:template>
1120 82
</xsl:stylesheet>
lib/style/shared/eml-2/emlroot.xsl
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$'
10
  *     '$Date$'
11
  * '$Revision$'
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
  <xsl:import href="eml-access.xsl"/>
34
  <xsl:import href="eml-additionalmetadata.xsl"/>
35
  <xsl:import href="eml-attribute.xsl"/>
36
  <xsl:import href="eml-attribute-enumeratedDomain.xsl"/>
37
  <xsl:import href="eml-constraint.xsl"/>
38
  <xsl:import href="eml-coverage.xsl"/>
39
  <xsl:import href="eml-dataset.xsl"/>
40
  <xsl:import href="eml-datatable.xsl"/>
41
  <xsl:import href="eml-distribution.xsl"/>
42
  <xsl:import href="eml-entity.xsl"/>
43
  <xsl:import href="eml-identifier.xsl"/>
44
  <xsl:import href="eml-literature.xsl"/>
45
  <xsl:import href="eml-method.xsl"/>
46
  <xsl:import href="eml-otherentity.xsl"/>
47
  <xsl:import href="eml-party.xsl"/>
48
  <xsl:import href="eml-physical.xsl"/>
49
  <xsl:import href="eml-project.xsl"/>
50
  <xsl:import href="eml-protocol.xsl"/>
51
  <xsl:import href="eml-resource.xsl"/>
52
  <xsl:import href="eml-settings.xsl"/>
53
  <xsl:import href="eml-software.xsl"/>
54
  <xsl:import href="eml-spatialraster.xsl"/>
55
  <xsl:import href="eml-spatialvector.xsl"/>
56
  <xsl:import href="eml-storedprocedure.xsl"/>
57
  <xsl:import href="eml-text.xsl"/>
58
  <xsl:import href="eml-view.xsl"/>
59

  
60
  <!-- global variables to store id node set in case to be referenced-->
61
  <xsl:variable name="ids" select="//*[@id!='']"/>
62

  
63
   <xsl:template match="*[local-name()='eml']">
64
     <xsl:for-each select="dataset">
65
       <xsl:call-template name="emldataset"/>
66
     </xsl:for-each>
67
     <xsl:for-each select="citation">
68
       <xsl:call-template name="emlcitation"/>
69
     </xsl:for-each>
70
     <xsl:for-each select="software">
71
       <xsl:call-template name="emlsoftware"/>
72
     </xsl:for-each>
73
     <xsl:for-each select="protocol">
74
       <xsl:call-template name="emlprotocol"/>
75
     </xsl:for-each>
76
     <!-- Additional metadata-->
77
     <xsl:choose>
78
       <xsl:when test="$displaymodule='additionalmetadata'">
79
         <xsl:for-each select="additionalMetadata">
80
           <xsl:if test="$additionalmetadataindex=position()">
81
              <div class="{$tabledefaultStyle}">
82
                 <xsl:call-template name="additionalmetadata"/>
83
               </div>
84
            </xsl:if>
85
         </xsl:for-each>
86
       </xsl:when>
87
       <xsl:otherwise>
88
         <xsl:if test="$displaymodule='dataset'">
89
           <xsl:if test="$withAdditionalMetadataLink='1'">
90
             <xsl:for-each select="additionalMetadata">
91
               <div class="{$tabledefaultStyle}">
92
                 <xsl:call-template name="additionalmetadataURL">
93
                    <xsl:with-param name="index" select="position()"/>
94
                  </xsl:call-template>
95
               </div>
96
             </xsl:for-each>
97
           </xsl:if>
98
         </xsl:if>
99
       </xsl:otherwise>
100
     </xsl:choose>
101
     <!-- xml format-->
102
     <xsl:if test="$displaymodule='dataset'">
103
       <xsl:if test="$withOriginalXMLLink='1'">
104
         <xsl:call-template name="xml"/>
105
       </xsl:if>
106
     </xsl:if>
107
   </xsl:template>
108

  
109
   <!--********************************************************
110
                       dataset part
111
       ********************************************************-->
112

  
113
   <xsl:template name="emldataset">
114
    <xsl:if test="$displaymodule='dataset'">
115
    	<div>
116
			<xsl:call-template name="datasetpart"/>
117
		</div>	
118
    </xsl:if>
119
    <xsl:if test="$displaymodule='entity'">
120
       <xsl:call-template name="entitypart"/>
121
    </xsl:if>
122
    <xsl:if test="$displaymodule='attribute'">
123
       <xsl:call-template name="attributepart"/>
124
    </xsl:if>
125
    <xsl:if test="$displaymodule='attributedomain'">
126
       <xsl:call-template name="datasetattributedomain"/>
127
    </xsl:if>
128
    <xsl:if test="$displaymodule='attributecoverage'">
129
       <xsl:call-template name="datasetattributecoverage"/>
130
    </xsl:if>
131
    <xsl:if test="$displaymodule='attributemethod'">
132
       <xsl:call-template name="datasetattributemethod"/>
133
    </xsl:if>
134
    <xsl:if test="$displaymodule='inlinedata'">
135
       <xsl:call-template name="emlinlinedata"/>
136
    </xsl:if>
137
    <xsl:if test="$displaymodule='attributedetail'">
138
       <xsl:call-template name="entityparam"/>
139
    </xsl:if>
140
   </xsl:template>
141

  
142
   <!--*************** Data set diaplay *************-->
143
   <xsl:template name="datasetpart">
144
       <xsl:apply-templates select="." mode="dataset"/>
145
   </xsl:template>
146

  
147
   <!--************ Entity diplay *****************-->
148
   <xsl:template name="entitypart">
149
       <xsl:choose>
150
         <xsl:when test="references!=''">
151
            <xsl:variable name="ref_id" select="references"/>
152
            <xsl:variable name="references" select="$ids[@id=$ref_id]" />
153
            <xsl:for-each select="$references">
154
               <xsl:call-template name="entitypartcommon"/>
155
            </xsl:for-each>
156
         </xsl:when>
157
         <xsl:otherwise>
158
            <xsl:call-template name="entitypartcommon"/>
159
        </xsl:otherwise>
160
   </xsl:choose>
161
    </xsl:template>
162

  
163

  
164
    <xsl:template name="entitypartcommon">
165
      <tr><th colspan="2">
166
      Data Object Description
167
      </th></tr>
168
      <xsl:call-template name="identifier">
169
          <xsl:with-param name="packageID" select="../@packageId"/>
170
          <xsl:with-param name="system" select="../@system"/>
171
      </xsl:call-template>
172
      <tr>
173
     <td colspan="2">
174
        <!-- find the subtree to process -->
175
       <xsl:call-template name="entityparam"/>
176
     </td>
177
      </tr>
178
   </xsl:template>
179

  
180
   <!--************ Attribute display *****************-->
181
   <xsl:template name="attributedetailpart">
182
   </xsl:template>
183

  
184
    <xsl:template name="attributepart">
185
      <tr><td>
186
      <h3>Attributes Description</h3>
187
      </td></tr>
188
      <tr>
189
     <td>
190
        <!-- find the subtree to process -->
191
      <xsl:if test="$entitytype='dataTable'">
192
        <xsl:for-each select="dataTable">
193
            <xsl:if test="position()=$entityindex">
194
                <xsl:for-each select="attributeList">
195
                   <xsl:call-template name="attributelist">
196
                      <xsl:with-param name="docid" select="$docid"/>
197
                      <xsl:with-param name="entitytype" select="$entitytype"/>
198
                      <xsl:with-param name="entityindex" select="$entityindex"/>
199
                   </xsl:call-template>
200
                </xsl:for-each>
201
            </xsl:if>
202
        </xsl:for-each>
203
      </xsl:if>
204
    </td>
205
      </tr>
206
   </xsl:template>
207

  
208
   <!--************************Attribute Domain display module************************-->
209
   <xsl:template name="datasetattributedomain">
210
      <tr><td>
211
      <h3>Attribute Domain</h3>
212
      </td></tr>
213
      <tr>
214
     <td>
215
       <!-- find the subtree to process -->
216
       <xsl:call-template name="entityparam"/>
217
    </td>
218
      </tr>
219
   </xsl:template>
220

  
221

  
222
   <!--************************Attribute Method display module************************-->
223
   <xsl:template name="datasetattributemethod">
224
      <tr><td>
225
      <h3>Attribute Method</h3>
226
      </td></tr>
227
      <tr>
228
     <td>
229
       <!-- find the subtree to process -->
230
       <xsl:call-template name="entityparam"/>
231
    </td>
232
      </tr>
233
   </xsl:template>
234

  
235

  
236
   <!--************************Attribute Coverage display module************************-->
237
   <xsl:template name="datasetattributecoverage">
238
     <tr><td>
239
      <h3>Attribute Coverage</h3>
240
      </td></tr>
241
      <tr>
242
     <td>
243
       <!-- find the subtree to process -->
244
       <xsl:call-template name="entityparam"/>
245
    </td>
246
      </tr>
247
   </xsl:template>
248

  
249

  
250
   <xsl:template name="entityparam">
251
     <xsl:choose>
252
      <xsl:when test="$entitytype=''">
253
        <xsl:variable name="dataTableCount" select="0"/>
254
        <xsl:variable name="spatialRasterCount" select="0"/>
255
        <xsl:variable name="spatialVectorCount" select="0"/>
256
        <xsl:variable name="storedProcedureCount" select="0"/>
257
        <xsl:variable name="viewCount" select="0"/>
258
        <xsl:variable name="otherEntityCount" select="0"/>
259
        <xsl:for-each select="dataTable|spatialRaster|spatialVector|storedProcedure|view|otherEntity">
260

  
261
        <xsl:if test="'dataTable' = name()">
262
           <xsl:variable name="currentNode" select="."/>
263
           <xsl:variable name="dataTableCount">
264
            <xsl:for-each select="../dataTable">
265
                  <xsl:if test=". = $currentNode">
266
                <xsl:value-of select="position()"/>
267
              </xsl:if>
268
            </xsl:for-each>
269
           </xsl:variable>
270
           <xsl:if test="position() = $entityindex">
271
             <xsl:choose>
272
               <xsl:when test="$displaymodule='attributedetail'">
273
                 <xsl:for-each select="attributeList">
274
                   <xsl:call-template name="singleattribute">
275
                    <xsl:with-param name="attributeindex" select="$attributeindex"/>
276
                    <xsl:with-param name="docid" select="$docid"/>
277
                    <xsl:with-param name="entitytype" select="'dataTable'"/>
278
                    <xsl:with-param name="entityindex" select="$dataTableCount"/>
279
                   </xsl:call-template>
280
                 </xsl:for-each>
281
               </xsl:when>
282
               <xsl:otherwise>
283
                 <xsl:for-each select="../.">
284
                   <xsl:call-template name="chooseentity">
285
                    <xsl:with-param name="entitytype" select="'dataTable'"/>
286
                    <xsl:with-param name="entityindex" select="$dataTableCount"/>
287
                   </xsl:call-template>
288
                  </xsl:for-each>
289
                  </xsl:otherwise>
290
                 </xsl:choose>
291
           </xsl:if>
292
        </xsl:if>
293

  
294
        <xsl:if test="'spatialRaster' = name()">
295
          <xsl:variable name="currentNode" select="."/>
296
           <xsl:variable name="spatialRasterCount">
297
            <xsl:for-each select="../spatialRaster">
298
                  <xsl:if test=". = $currentNode">
299
                <xsl:value-of select="position()"/>
300
              </xsl:if>
301
            </xsl:for-each>
302
           </xsl:variable>
303
            <xsl:if test="position() = $entityindex">
304
           <xsl:choose>
305
               <xsl:when test="$displaymodule='attributedetail'">
306
                 <xsl:for-each select="attributeList">
307
                   <xsl:call-template name="singleattribute">
308
                    <xsl:with-param name="attributeindex" select="$attributeindex"/>
309
                    <xsl:with-param name="docid" select="$docid"/>
310
                    <xsl:with-param name="entitytype" select="'spatialRaster'"/>
311
                    <xsl:with-param name="entityindex" select="$spatialRasterCount"/>
312
                   </xsl:call-template>
313
                 </xsl:for-each>
314
               </xsl:when>
315
               <xsl:otherwise>
316
                 <xsl:for-each select="../.">
317
                   <xsl:call-template name="chooseentity">
318
                    <xsl:with-param name="entitytype" select="'spatialRaster'"/>
319
                    <xsl:with-param name="entityindex" select="$spatialRasterCount"/>
320
                   </xsl:call-template>
321
                  </xsl:for-each>
322
                  </xsl:otherwise>
323
                 </xsl:choose>
324
            </xsl:if>
325
        </xsl:if>
326

  
327
        <xsl:if test="'spatialVector' = name()">
328
          <xsl:variable name="currentNode" select="."/>
329
           <xsl:variable name="spatialVectorCount">
330
            <xsl:for-each select="../spatialVector">
331
                  <xsl:if test=". = $currentNode">
332
                <xsl:value-of select="position()"/>
333
              </xsl:if>
334
            </xsl:for-each>
335
           </xsl:variable>
336
           <xsl:if test="position() = $entityindex">
337
             <xsl:choose>
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff