Project

General

Profile

1
<?xml version="1.0"?>
2
<!--
3
  *  '$RCSfile$'
4
  *      Authors: Jivka Bojilova
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: tao $'
10
  *     '$Date: 2003-07-17 17:48:51 -0700 (Thu, 17 Jul 2003) $'
11
  * '$Revision: 1735 $'
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-file.dtd
29
  * module of the Ecological Metadata Language (EML) into an HTML format
30
  * suitable for rendering with modern web browsers.
31
-->
32
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
33
 
34

    
35
  <xsl:output method="html" encoding="iso-8859-1"/>
36
  <!-- This module is for datatable module-->
37
  
38
  <xsl:template name="spatialRaster">
39
      <xsl:param name="spatialrasterfirstColStyle"/>
40
      <xsl:param name="spatialrastersubHeaderStyle"/>
41
      <xsl:param name="docid"/>
42
      <xsl:param name="entityindex"/>
43
      <table xsl:use-attribute-sets="cellspacing" class="tabledefault" width="100%">
44
        <xsl:choose>
45
         <xsl:when test="references!=''">
46
          <xsl:variable name="ref_id" select="references"/>
47
          <xsl:variable name="references" select="$ids[@id=$ref_id]" />
48
          <xsl:for-each select="$references">
49
            <xsl:call-template name="spatialRastercommon">
50
             <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
51
             <xsl:with-param name="spatialrastersubHeaderStyle" select="$spatialrastersubHeaderStyle"/>  
52
             <xsl:with-param name="docid" select="$docid"/>
53
             <xsl:with-param name="entityindex" select="$entityindex"/>
54
            </xsl:call-template>
55
          </xsl:for-each>
56
        </xsl:when>
57
        <xsl:otherwise>
58
           <xsl:call-template name="spatialRastercommon">
59
             <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
60
             <xsl:with-param name="spatialrastersubHeaderStyle" select="$spatialrastersubHeaderStyle"/>  
61
             <xsl:with-param name="docid" select="$docid"/>
62
             <xsl:with-param name="entityindex" select="$entityindex"/>
63
            </xsl:call-template>
64
         </xsl:otherwise>
65
      </xsl:choose>
66
      </table>
67
  </xsl:template>
68
  
69
  <xsl:template name="spatialRastercommon">
70
    <xsl:param name="spatialrasterfirstColStyle"/>
71
    <xsl:param name="spatialrastersubHeaderStyle"/>
72
    <xsl:param name="docid"/>
73
    <xsl:param name="entityindex"/>
74
    <xsl:for-each select="entityName">
75
       <xsl:call-template name="entityName">
76
          <xsl:with-param name="entityfirstColStyle" select="$spatialrasterfirstColStyle"/>
77
       </xsl:call-template>
78
    </xsl:for-each>
79
    <xsl:for-each select="alternateIdentifier">
80
       <xsl:call-template name="entityalternateIdentifier">
81
          <xsl:with-param name="entityfirstColStyle" select="$spatialrasterfirstColStyle"/>
82
       </xsl:call-template>
83
    </xsl:for-each>
84
    <xsl:for-each select="entityDescription">
85
       <xsl:call-template name="entityDescription">
86
          <xsl:with-param name="entityfirstColStyle" select="$spatialrasterfirstColStyle"/>
87
       </xsl:call-template>
88
    </xsl:for-each>
89
    <xsl:for-each select="additionalInfo">
90
       <xsl:call-template name="entityadditionalInfo">
91
          <xsl:with-param name="entityfirstColStyle" select="$spatialrasterfirstColStyle"/>
92
       </xsl:call-template>
93
    </xsl:for-each>
94
    <!-- call physical moduel without show distribution(we want see it later)-->
95
    <xsl:if test="physical">
96
       <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
97
        Physical Structure Description:
98
      </td></tr>
99
      <xsl:for-each select="physical">
100
      <tr><td colspan="2">
101
        <xsl:call-template name="physical">
102
         <xsl:with-param name="physicalfirstColStyle" select="$spatialrasterfirstColStyle"/>
103
         <xsl:with-param name="notshowdistribution">yes</xsl:with-param>
104
        </xsl:call-template>
105
         </td></tr>
106
      </xsl:for-each>
107
    </xsl:if>
108
    <xsl:if test="coverage">
109
       <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
110
        Coverage Description:
111
      </td></tr>
112
    </xsl:if>
113
    <xsl:for-each select="coverage">
114
      <tr><td colspan="2">
115
        <xsl:call-template name="coverage">
116
        </xsl:call-template>
117
      </td></tr>
118
    </xsl:for-each>
119
    <xsl:if test="method">
120
       <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
121
        Method Description:
122
      </td></tr>
123
    </xsl:if>
124
    <xsl:for-each select="method">
125
      <tr><td colspan="2">
126
        <xsl:call-template name="method">
127
          <xsl:with-param name="methodfirstColStyle" select="$spatialrasterfirstColStyle"/>
128
          <xsl:with-param name="methodsubHeaderStyle" select="$spatialrastersubHeaderStyle"/>
129
        </xsl:call-template>
130
      </td></tr>
131
    </xsl:for-each>
132
    <xsl:if test="constraint">
133
       <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
134
        Constraint:
135
      </td></tr>
136
    </xsl:if>
137
    <xsl:for-each select="constraint">
138
      <tr><td colspan="2">
139
        <xsl:call-template name="constraint">
140
          <xsl:with-param name="constraintfirstColStyle" select="$spatialrasterfirstColStyle"/>
141
        </xsl:call-template>
142
      </td></tr>
143
    </xsl:for-each>
144
    <xsl:for-each select="spatialReference">
145
       <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
146
        Spatial Reference:
147
      </td></tr>
148
      <xsl:call-template name="spatialReference">
149
        <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
150
      </xsl:call-template>
151
    </xsl:for-each>
152
     <xsl:for-each select="georeferenceInfo">
153
       <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
154
        Grid Postion:
155
      </td></tr>
156
      <xsl:call-template name="georeferenceInfo">
157
        <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
158
      </xsl:call-template>
159
    </xsl:for-each>
160
    <xsl:for-each select="horizontalAccuracy">
161
      <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
162
        Horizontal Accuracy:
163
      </td></tr>
164
      <xsl:call-template name="dataQuality">
165
        <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
166
      </xsl:call-template>
167
    </xsl:for-each>
168
    <xsl:for-each select="verticalAccuracy">
169
      <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
170
        Vertical Accuracy:
171
      </td></tr>
172
      <xsl:call-template name="dataQuality">
173
        <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
174
      </xsl:call-template>
175
    </xsl:for-each>
176
    <xsl:for-each select="cellSizeXDirection">
177
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
178
            Cell Size(X):
179
            </td>
180
            <td width="{$secondColWidth}" class="{$secondColStyle}">
181
              <xsl:value-of select="."/>
182
            </td>
183
       </tr>
184
    </xsl:for-each>
185
    <xsl:for-each select="cellSizeYDirection">
186
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
187
            Cell Size(Y):
188
            </td>
189
            <td width="{$secondColWidth}" class="{$secondColStyle}">
190
              <xsl:value-of select="."/>
191
            </td>
192
       </tr>
193
    </xsl:for-each>
194
    <xsl:for-each select="numberOfBands">
195
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
196
            Number of Bands:
197
            </td>
198
            <td width="{$secondColWidth}" class="{$secondColStyle}">
199
              <xsl:value-of select="."/>
200
            </td>
201
       </tr>
202
    </xsl:for-each>
203
    <xsl:for-each select="rasterOrigin">
204
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
205
            Origin:
206
            </td>
207
            <td width="{$secondColWidth}" class="{$secondColStyle}">
208
              <xsl:value-of select="."/>
209
            </td>
210
       </tr>
211
    </xsl:for-each>
212
    <xsl:for-each select="columns">
213
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
214
            Max Raster Objects(X):
215
            </td>
216
            <td width="{$secondColWidth}" class="{$secondColStyle}">
217
              <xsl:value-of select="."/>
218
            </td>
219
       </tr>
220
    </xsl:for-each>
221
    <xsl:for-each select="rows">
222
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
223
            Max Raster Objects(Y):
224
            </td>
225
            <td width="{$secondColWidth}" class="{$secondColStyle}">
226
              <xsl:value-of select="."/>
227
            </td>
228
       </tr>
229
    </xsl:for-each>
230
    <xsl:for-each select="verticals">
231
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
232
            Max Raster Objects(Z):
233
            </td>
234
            <td width="{$secondColWidth}" class="{$secondColStyle}">
235
              <xsl:value-of select="."/>
236
            </td>
237
       </tr>
238
    </xsl:for-each>
239
    <xsl:for-each select="cellGeometry">
240
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
241
            Cell Geometry:
242
            </td>
243
            <td width="{$secondColWidth}" class="{$secondColStyle}">
244
              <xsl:value-of select="."/>
245
            </td>
246
       </tr>
247
    </xsl:for-each>
248
    <xsl:for-each select="toneGradation">
249
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
250
            Number of Colors:
251
            </td>
252
            <td width="{$secondColWidth}" class="{$secondColStyle}">
253
              <xsl:value-of select="."/>
254
            </td>
255
       </tr>
256
    </xsl:for-each>
257
    <xsl:for-each select="scaleFactor">
258
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
259
            Scale Factor:
260
            </td>
261
            <td width="{$secondColWidth}" class="{$secondColStyle}">
262
              <xsl:value-of select="."/>
263
            </td>
264
       </tr>
265
    </xsl:for-each>
266
     <xsl:for-each select="offset">
267
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
268
            Offset:
269
            </td>
270
            <td width="{$secondColWidth}" class="{$secondColStyle}">
271
              <xsl:value-of select="."/>
272
            </td>
273
       </tr>
274
    </xsl:for-each>
275
    <xsl:for-each select="imageDescription">
276
      <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
277
        Image Info:
278
      </td></tr>
279
      <xsl:call-template name="imageDescription">
280
        <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
281
      </xsl:call-template>
282
    </xsl:for-each>
283
    <xsl:for-each select="attributeList">
284
      <xsl:call-template name="spatialRasterAttributeList">
285
        <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
286
        <xsl:with-param name="spatialrastersubHeaderStyle" select="$spatialrastersubHeaderStyle"/>  
287
        <xsl:with-param name="docid" select="$docid"/>
288
        <xsl:with-param name="entityindex" select="$entityindex"/>
289
      </xsl:call-template>
290
    </xsl:for-each>
291
    <!-- Here to display distribution info-->
292
    <xsl:for-each select="physical">
293
       <xsl:call-template name="spatialRasterShowDistribution">
294
          <xsl:with-param name="docid" select="$docid"/>
295
          <xsl:with-param name="entityindex" select="$entityindex"/>
296
          <xsl:with-param name="physicalindex" select="position()"/>
297
          <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
298
          <xsl:with-param name="spatialrastersubHeaderStyle" select="$spatialrastersubHeaderStyle"/>
299
       </xsl:call-template>
300
    </xsl:for-each>
301
  </xsl:template>
302
  
303
  <!--****************************************************
304
       spatial reference
305
      ****************************************************-->
306
    <xsl:template name="spatialReference">
307
      <xsl:param name="spatialrasterfirstColStyle"/>
308
       <xsl:choose>
309
         <xsl:when test="references!=''">
310
          <xsl:variable name="ref_id" select="references"/>
311
          <xsl:variable name="references" select="$ids[@id=$ref_id]" />
312
          <xsl:for-each select="$references">
313
            <xsl:call-template name="spatialReferenceCommon">
314
              <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
315
            </xsl:call-template>
316
          </xsl:for-each>
317
        </xsl:when>
318
        <xsl:otherwise>
319
           <xsl:call-template name="spatialReferenceCommon">
320
              <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
321
            </xsl:call-template>
322
        </xsl:otherwise>
323
      </xsl:choose>
324
    
325
  </xsl:template>
326
  
327
  
328
  <xsl:template name="spatialReferenceCommon">
329
    <xsl:param name="spatialrasterfirstColStyle"/>
330
    <xsl:for-each select="horizCoordSysName">
331
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
332
            Name of Coordinate System:
333
            </td>
334
            <td width="{$secondColWidth}" class="{$secondColStyle}">
335
              <xsl:value-of select="."/>
336
            </td>
337
       </tr>
338
    </xsl:for-each>
339
    <xsl:for-each select="horizCoordSysDef/geogCoordSys">
340
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
341
            Definition of <xsl:text> </xsl:text><xsl:value-of select="../@name"/> <xsl:text> </xsl:text> (Geographic Coordinate System):
342
            </td>
343
            <td width="{$secondColWidth}">
344
              <xsl:call-template name="geogCoordSysType">
345
                 <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
346
              </xsl:call-template>
347
            </td>
348
       </tr>
349
    </xsl:for-each>
350
    <xsl:for-each select="horizCoordSysDef/projCoordSys">
351
      <xsl:for-each select="geogCoordSys">
352
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
353
            Definition of<xsl:text> </xsl:text><xsl:value-of select="../../@name"/><xsl:text> </xsl:text>(Geographic Coordinate System):
354
            </td>
355
            <td width="{$secondColWidth}">
356
              <xsl:call-template name="geogCoordSysType">
357
                 <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
358
              </xsl:call-template>
359
            </td>
360
       </tr>
361
     </xsl:for-each>
362
     <xsl:for-each select="projection">
363
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
364
            Projection in Geo Coord. System:
365
            </td>
366
            <td width="{$secondColWidth}">
367
               <table xsl:use-attribute-sets="cellspacing" class="tabledefault" width="100%">
368
                 <xsl:for-each select="parameter">
369
                     <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
370
                          <xsl:value-of select="./@name"/>:
371
                         </td>
372
                         <td width="{$secondColWidth}">
373
                             <table xsl:use-attribute-sets="cellspacing" class="tabledefault" width="100%">
374
                                <tr>
375
                                    <td width="{$firstColWidth}" class="{$secondColStyle}">
376
                                      <xsl:value-of select="./@value"/>
377
                                    </td>
378
                                    <td width="{$secondColWidth}" class="{$secondColStyle}">
379
                                       <xsl:value-of select="./@description"/>
380
                                    </td>
381
                                 </tr>
382
                             </table>
383
                          </td>
384
                      </tr>
385
                 </xsl:for-each>
386
                 <xsl:for-each select="unit">
387
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
388
                          Unit:
389
                        </td>
390
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
391
                           <xsl:value-of select="./@name"/>
392
                        </td>
393
                   </tr>
394
                </xsl:for-each>
395
              </table>
396
            </td>
397
       </tr>
398
     </xsl:for-each>
399
    </xsl:for-each>
400
    <xsl:for-each select="vertCoordSys/altitudeSysDef">
401
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
402
            Altitude System Definition:
403
            </td>
404
            <td width="{$secondColWidth}">
405
               <table xsl:use-attribute-sets="cellspacing" class="tabledefault" width="100%">
406
                 <xsl:for-each select="altitudeDatumName">
407
                     <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
408
                          Datum:
409
                         </td>
410
                         <td width="{$secondColWidth}" class="{$secondColStyle}">
411
                            <xsl:value-of select="."/>
412
                          </td>
413
                      </tr>
414
                 </xsl:for-each>
415
                 <xsl:for-each select="altitudeResolution">
416
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
417
                          Resolution:
418
                        </td>
419
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
420
                           <xsl:value-of select="."/>
421
                        </td>
422
                   </tr>
423
                </xsl:for-each>
424
                <xsl:for-each select="altitudeDistanceUnits">
425
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
426
                          Distance Unit:
427
                        </td>
428
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
429
                           <xsl:value-of select="."/>
430
                        </td>
431
                   </tr>
432
                </xsl:for-each>
433
                <xsl:for-each select="altitudeEncodingMethod">
434
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
435
                          Encoding Method:
436
                        </td>
437
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
438
                           <xsl:value-of select="."/>
439
                        </td>
440
                   </tr>
441
                </xsl:for-each>
442
              </table>
443
            </td>
444
       </tr>
445
    </xsl:for-each>
446
    <xsl:for-each select="vertCoordSys/depthSysDef">
447
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
448
            Depth System Definition:
449
            </td>
450
            <td width="{$secondColWidth}">
451
               <table xsl:use-attribute-sets="cellspacing" class="tabledefault" width="100%">
452
                 <xsl:for-each select="depthDatumName">
453
                     <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
454
                          Datum:
455
                         </td>
456
                         <td width="{$secondColWidth}" class="{$secondColStyle}">
457
                            <xsl:value-of select="."/>
458
                          </td>
459
                      </tr>
460
                 </xsl:for-each>
461
                 <xsl:for-each select="depthResolution">
462
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
463
                          Resolution:
464
                        </td>
465
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
466
                           <xsl:value-of select="."/>
467
                        </td>
468
                   </tr>
469
                </xsl:for-each>
470
                <xsl:for-each select="depthDistanceUnits">
471
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
472
                          Distance Unit:
473
                        </td>
474
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
475
                           <xsl:value-of select="."/>
476
                        </td>
477
                   </tr>
478
                </xsl:for-each>
479
                <xsl:for-each select="depthEncodingMethod">
480
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
481
                          Encoding Method:
482
                        </td>
483
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
484
                           <xsl:value-of select="."/>
485
                        </td>
486
                   </tr>
487
                </xsl:for-each>
488
              </table>
489
            </td>
490
       </tr>
491
    </xsl:for-each>
492
  </xsl:template>
493
  
494
  <xsl:template name="geogCoordSysType">
495
   <xsl:param name="spatialrasterfirstColStyle"/>
496
   <table xsl:use-attribute-sets="cellspacing" class="tabledefault" width="100%">
497
      <xsl:for-each select="datum">
498
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
499
             Datum:
500
            </td>
501
            <td width="{$secondColWidth}" class="{$secondColStyle}">
502
              <xsl:value-of select="./@name"/>
503
            </td>
504
        </tr>
505
      </xsl:for-each>
506
      <xsl:for-each select="spheroid">
507
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
508
             Spheroid:
509
            </td>
510
            <td width="{$secondColWidth}">
511
               <table xsl:use-attribute-sets="cellspacing" class="tabledefault" width="100%">
512
                  <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
513
                       Name:
514
                       </td>
515
                       <td width="{$secondColWidth}" class="{$secondColStyle}">
516
                        <xsl:value-of select="./@name"/>
517
                       </td>
518
                   </tr>
519
                   <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
520
                       Semi Axis Major:
521
                       </td>
522
                       <td width="{$secondColWidth}" class="{$secondColStyle}">
523
                        <xsl:value-of select="./@semiAxisMajor"/>
524
                       </td>
525
                   </tr>
526
                   <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
527
                       Denom Flat Ratio:
528
                       </td>
529
                       <td width="{$secondColWidth}" class="{$secondColStyle}">
530
                        <xsl:value-of select="./@denomFlatRatio"/>
531
                       </td>
532
                   </tr>
533
               </table>
534
              
535
            </td>
536
        </tr>
537
      </xsl:for-each>
538
       <xsl:for-each select="primeMeridian">
539
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
540
             Prime Meridian:
541
            </td>
542
            <td width="{$secondColWidth}">
543
               <table xsl:use-attribute-sets="cellspacing" class="tabledefault" width="100%">
544
                  <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
545
                       Name:
546
                       </td>
547
                       <td width="{$secondColWidth}" class="{$secondColStyle}">
548
                        <xsl:value-of select="./@name"/>
549
                       </td>
550
                   </tr>
551
                   <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
552
                       Longitude:
553
                       </td>
554
                       <td width="{$secondColWidth}" class="{$secondColStyle}">
555
                        <xsl:value-of select="./@longitude"/>
556
                       </td>
557
                   </tr>
558
               </table>
559
            </td>
560
        </tr>
561
      </xsl:for-each>
562
     <xsl:for-each select="unit">
563
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
564
             Unit:
565
            </td>
566
            <td width="{$secondColWidth}" class="{$secondColStyle}">
567
              <xsl:value-of select="./@name"/>
568
            </td>
569
        </tr>
570
      </xsl:for-each> 
571
   </table>
572
  </xsl:template>
573
  
574
  <!--*******************************************************
575
       georeferenceinfo
576
      *******************************************************-->
577
 <xsl:template name="georeferenceInfo">
578
    <xsl:param name="spatialrasterfirstColStyle"/>
579
    <xsl:for-each select="cornerPoint">
580
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
581
            Corner Point:
582
            </td>
583
            <td width="{$secondColWidth}">
584
               <table xsl:use-attribute-sets="cellspacing" class="tabledefault" width="100%">
585
                 <xsl:for-each select="corner">
586
                     <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
587
                          Corner:
588
                         </td>
589
                         <td width="{$secondColWidth}" class="{$secondColStyle}">
590
                            <xsl:value-of select="."/>
591
                          </td>
592
                      </tr>
593
                 </xsl:for-each>
594
                 <xsl:for-each select="xCoordinate">
595
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
596
                          xCoordinate:
597
                        </td>
598
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
599
                           <xsl:value-of select="."/>
600
                        </td>
601
                   </tr>
602
                </xsl:for-each>
603
                <xsl:for-each select="yCoordinate">
604
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
605
                          yCoordinate:
606
                        </td>
607
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
608
                           <xsl:value-of select="."/>
609
                        </td>
610
                   </tr>
611
                </xsl:for-each>
612
                <xsl:for-each select="pointInPixel">
613
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
614
                          Point in Pixel:
615
                        </td>
616
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
617
                           <xsl:value-of select="."/>
618
                        </td>
619
                   </tr>
620
                </xsl:for-each>
621
              </table>
622
            </td>
623
       </tr>
624
    </xsl:for-each>
625
    <xsl:for-each select="controlPoint">
626
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
627
            Control Point:
628
            </td>
629
            <td width="{$secondColWidth}">
630
               <table xsl:use-attribute-sets="cellspacing" class="tabledefault" width="100%">
631
                 <xsl:for-each select="column">
632
                     <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
633
                          Column Location:
634
                         </td>
635
                         <td width="{$secondColWidth}" class="{$secondColStyle}">
636
                            <xsl:value-of select="."/>
637
                          </td>
638
                      </tr>
639
                 </xsl:for-each>
640
                 <xsl:for-each select="row">
641
                     <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
642
                          Row Location:
643
                         </td>
644
                         <td width="{$secondColWidth}" class="{$secondColStyle}">
645
                            <xsl:value-of select="."/>
646
                          </td>
647
                      </tr>
648
                 </xsl:for-each>
649
                 <xsl:for-each select="xCoordinate">
650
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
651
                          xCoordinate:
652
                        </td>
653
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
654
                           <xsl:value-of select="."/>
655
                        </td>
656
                   </tr>
657
                </xsl:for-each>
658
                <xsl:for-each select="yCoordinate">
659
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
660
                          yCoordinate:
661
                        </td>
662
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
663
                           <xsl:value-of select="."/>
664
                        </td>
665
                   </tr>
666
                </xsl:for-each>
667
                <xsl:for-each select="pointInPixel">
668
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
669
                          Point in Pixel:
670
                        </td>
671
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
672
                           <xsl:value-of select="."/>
673
                        </td>
674
                   </tr>
675
                </xsl:for-each>
676
              </table>
677
            </td>
678
       </tr>
679
    </xsl:for-each>
680
    <xsl:for-each select="bilinearFit">
681
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
682
            Bilinear Fit:
683
            </td>
684
            <td width="{$secondColWidth}">
685
               <table xsl:use-attribute-sets="cellspacing" class="tabledefault" width="100%">
686
                 <xsl:for-each select="xIntercept">
687
                     <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
688
                          X Intercept:
689
                         </td>
690
                         <td width="{$secondColWidth}" class="{$secondColStyle}">
691
                            <xsl:value-of select="."/>
692
                          </td>
693
                      </tr>
694
                 </xsl:for-each>
695
                 <xsl:for-each select="xSlope">
696
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
697
                          X Slope:
698
                        </td>
699
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
700
                           <xsl:value-of select="."/>
701
                        </td>
702
                   </tr>
703
                </xsl:for-each>
704
                <xsl:for-each select="yIntercept">
705
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
706
                          Y Intercept:
707
                        </td>
708
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
709
                           <xsl:value-of select="."/>
710
                        </td>
711
                   </tr>
712
                </xsl:for-each>
713
                <xsl:for-each select="ySlope">
714
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
715
                          Y Slope:
716
                        </td>
717
                        <td width="{$secondColWidth}" class="{$secondColStyle}">
718
                           <xsl:value-of select="."/>
719
                        </td>
720
                   </tr>
721
                </xsl:for-each>
722
              </table>
723
            </td>
724
       </tr>
725
    </xsl:for-each>
726
 </xsl:template>
727
 
728
 <!--********************************************************
729
     data quality
730
     ********************************************************-->
731
 <xsl:template name="dataQuality">
732
   <xsl:param name="spatialrasterfirstColStyle"/>
733
   <xsl:for-each select="accuracyReport">
734
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
735
             Report:
736
            </td>
737
            <td width="{$secondColWidth}" class="{$secondColStyle}">
738
                <xsl:value-of select="."/>
739
            </td>
740
       </tr>
741
   </xsl:for-each>
742
   <xsl:if test="quantitativeAccuracyReport">
743
       <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
744
             Quantitative Report:
745
            </td>
746
            <td width="{$secondColWidth}">
747
                <table xsl:use-attribute-sets="cellspacing" class="tabledefault" width="100%">
748
                  <xsl:for-each select="quantitativeAccuracyReport">
749
                     <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
750
                         Accuracy Value:
751
                      </td>
752
                      <td width="{$secondColWidth}" class="{$secondColStyle}">
753
                        <xsl:value-of select="quantitativeAccuracyValue"/>
754
                      </td>
755
                    </tr>
756
                    <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
757
                         Method:
758
                      </td>
759
                      <td width="{$secondColWidth}" class="{$secondColStyle}">
760
                        <xsl:value-of select="quantitativeAccuracyMethod"/>
761
                      </td>
762
                    </tr>
763
                  </xsl:for-each>
764
                </table>
765
            </td>
766
       </tr>
767
   </xsl:if>
768
 </xsl:template>
769
 
770
 <!--********************************************************
771
     imageDescription
772
     *********************************************************-->
773
  <xsl:template name="imageDescription">
774
    <xsl:param name="spatialrasterfirstColStyle"/>
775
    <xsl:for-each select="illuminationElevationAngle">
776
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
777
             Illumination Elevation:
778
            </td>
779
            <td width="{$secondColWidth}" class="{$secondColStyle}">
780
                <xsl:value-of select="."/>
781
            </td>
782
       </tr>
783
    </xsl:for-each>
784
    <xsl:for-each select="illuminationAzimuthAngle">
785
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
786
             Illumination Azimuth:
787
            </td>
788
            <td width="{$secondColWidth}" class="{$secondColStyle}">
789
                <xsl:value-of select="."/>
790
            </td>
791
       </tr>
792
    </xsl:for-each>
793
    <xsl:for-each select="imageOrientationAngle">
794
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
795
             Image Orientation:
796
            </td>
797
            <td width="{$secondColWidth}" class="{$secondColStyle}">
798
                <xsl:value-of select="."/>
799
            </td>
800
       </tr>
801
    </xsl:for-each>
802
    <xsl:for-each select="imagingCondition">
803
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
804
             Code Affectting Quality of Image:
805
            </td>
806
            <td width="{$secondColWidth}" class="{$secondColStyle}">
807
                <xsl:value-of select="."/>
808
            </td>
809
       </tr>
810
    </xsl:for-each>
811
    <xsl:for-each select="imageQualityCode">
812
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
813
             Quality:
814
            </td>
815
            <td width="{$secondColWidth}" class="{$secondColStyle}">
816
                <xsl:value-of select="."/>
817
            </td>
818
       </tr>
819
    </xsl:for-each>
820
    <xsl:for-each select="cloudCoverPercentage">
821
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
822
             Cloud Coverage:
823
            </td>
824
            <td width="{$secondColWidth}" class="{$secondColStyle}">
825
                <xsl:value-of select="."/>
826
            </td>
827
       </tr>
828
    </xsl:for-each>
829
    <xsl:for-each select="preProcessingTypeCode">
830
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
831
             PreProcessing:
832
            </td>
833
            <td width="{$secondColWidth}" class="{$secondColStyle}">
834
                <xsl:value-of select="."/>
835
            </td>
836
       </tr>
837
    </xsl:for-each>
838
    <xsl:for-each select="compressionGenerationQuality">
839
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
840
             Compression Quality:
841
            </td>
842
            <td width="{$secondColWidth}" class="{$secondColStyle}">
843
                <xsl:value-of select="."/>
844
            </td>
845
       </tr>
846
    </xsl:for-each>
847
    <xsl:for-each select="triangulationIndicator">
848
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
849
             Triangulation Indicator:
850
            </td>
851
            <td width="{$secondColWidth}" class="{$secondColStyle}">
852
                <xsl:value-of select="."/>
853
            </td>
854
       </tr>
855
    </xsl:for-each>
856
    <xsl:for-each select="radionmetricDataAvailability">
857
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
858
             Availability of Radionmetric Data:
859
            </td>
860
            <td width="{$secondColWidth}" class="{$secondColStyle}">
861
                <xsl:value-of select="."/>
862
            </td>
863
       </tr>
864
    </xsl:for-each>
865
    <xsl:for-each select="cameraCalibrationInformationAvailability">
866
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
867
             Availability of Camera Calibration Correction:
868
            </td>
869
            <td width="{$secondColWidth}" class="{$secondColStyle}">
870
                <xsl:value-of select="."/>
871
            </td>
872
       </tr>
873
    </xsl:for-each>
874
    <xsl:for-each select="filmDistortionInformationAvailability">
875
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
876
             Availability of Calibration Reseau:
877
            </td>
878
            <td width="{$secondColWidth}" class="{$secondColStyle}">
879
                <xsl:value-of select="."/>
880
            </td>
881
       </tr>
882
    </xsl:for-each>
883
    <xsl:for-each select="lensDistortionInformationAvailability">
884
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
885
             Availability of Lens Aberration Correction:
886
            </td>
887
            <td width="{$secondColWidth}" class="{$secondColStyle}">
888
                <xsl:value-of select="."/>
889
            </td>
890
       </tr>
891
    </xsl:for-each>
892
    <xsl:for-each select="bandDescription">
893
     <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
894
             Availability of Lens Aberration Correction:
895
            </td>
896
            <td width="{$secondColWidth}">
897
               <xsl:call-template name="bandDescription">
898
                  <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
899
               </xsl:call-template>
900
            </td>
901
      </tr>
902
    </xsl:for-each>
903
  </xsl:template>
904
  
905
  <!--***********************************************
906
      band description
907
      ************************************************-->
908
  <xsl:template name="bandDescription">
909
    <xsl:param name="spatialrasterfirstColStyle"/>
910
    <table xsl:use-attribute-sets="cellspacing" class="tabledefault" width="100%">
911
      <xsl:for-each select="sequenceIdentifier">
912
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
913
            Sequence Identifier:
914
            </td>
915
            <td width="{$secondColWidth}" class="{$secondColStyle}">
916
                <xsl:value-of select="."/>
917
            </td>
918
        </tr>
919
     </xsl:for-each>
920
     <xsl:for-each select="highWavelength">
921
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
922
             High Wave Length:
923
            </td>
924
            <td width="{$secondColWidth}" class="{$secondColStyle}">
925
                <xsl:value-of select="."/>
926
            </td>
927
        </tr>
928
     </xsl:for-each>
929
     <xsl:for-each select="lowWaveLength">
930
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
931
             High Wave Length:
932
            </td>
933
            <td width="{$secondColWidth}" class="{$secondColStyle}">
934
                <xsl:value-of select="."/>
935
            </td>
936
        </tr>
937
     </xsl:for-each>
938
     <xsl:for-each select="waveLengthUnits">
939
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
940
             Wave Length Units:
941
            </td>
942
            <td width="{$secondColWidth}" class="{$secondColStyle}">
943
                <xsl:value-of select="."/>
944
            </td>
945
        </tr>
946
     </xsl:for-each>
947
     <xsl:for-each select="peakResponse">
948
        <tr><td width="{$firstColWidth}" class="{$spatialrasterfirstColStyle}">
949
             Peak Response:
950
            </td>
951
            <td width="{$secondColWidth}" class="{$secondColStyle}">
952
                <xsl:value-of select="."/>
953
            </td>
954
        </tr>
955
     </xsl:for-each>
956
    </table>
957
  </xsl:template>
958
 
959
  <xsl:template name="spatialRasterShowDistribution">
960
     <xsl:param name="spatialrasterfirstColStyle"/>
961
     <xsl:param name="spatialrastersubHeaderStyle"/>
962
     <xsl:param name="docid"/>
963
     <xsl:param name="level">entitylevel</xsl:param>
964
     <xsl:param name="entitytype">spatialRaster</xsl:param>
965
     <xsl:param name="entityindex"/>
966
     <xsl:param name="physicalindex"/>
967
     
968
    <xsl:for-each select="distribution">
969
      <tr><td colspan="2">
970
        <xsl:call-template name="distribution">
971
          <xsl:with-param name="docid" select="$docid"/>
972
          <xsl:with-param name="level" select="$level"/>
973
          <xsl:with-param name="entitytype" select="$entitytype"/>
974
          <xsl:with-param name="entityindex" select="$entityindex"/>
975
          <xsl:with-param name="physicalindex" select="$physicalindex"/>
976
          <xsl:with-param name="distributionindex" select="position()"/>
977
          <xsl:with-param name="disfirstColStyle" select="$spatialrasterfirstColStyle"/>
978
          <xsl:with-param name="dissubHeaderStyle" select="$spatialrastersubHeaderStyle"/>
979
        </xsl:call-template>
980
      </td></tr>
981
    </xsl:for-each>
982
  </xsl:template>
983
  
984
  
985
  <xsl:template name="spatialRasterAttributeList">
986
    <xsl:param name="spatialrasterfirstColStyle"/>
987
    <xsl:param name="spatialrastersubHeaderStyle"/>
988
    <xsl:param name="docid"/>
989
    <xsl:param name="entitytype">spatialRaster</xsl:param>
990
    <xsl:param name="entityindex"/>
991
    <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
992
        <xsl:text>Attribute(s) Info:</xsl:text>
993
    </td></tr>
994
    <tr><td colspan="2">
995
         <xsl:call-template name="attributelist">
996
           <xsl:with-param name="docid" select="$docid"/>
997
           <xsl:with-param name="entitytype" select="$entitytype"/>
998
           <xsl:with-param name="entityindex" select="$entityindex"/>
999
         </xsl:call-template>
1000
       </td>
1001
    </tr>
1002
  </xsl:template>
1003
  
1004
</xsl:stylesheet>
(26-26/30)