Project

General

Profile

1 295 berkley
<?xml version="1.0"?>
2
<!--
3
  * marine.xsl
4
  *
5
  *      Authors: Matt Jones, Chad Berkley
6
  *    Copyright: 2000 Regents of the University of California and the
7
  *               National Center for Ecological Analysis and Synthesis
8
  *  For Details: http://www.nceas.ucsb.edu/
9
  *      Created: 2000 July 20
10 304 berkley
  *    File Info: '$Id$'
11 295 berkley
  *
12
  * This is an XSLT (http://www.w3.org/TR/xslt) stylesheet designed to
13
  * convert an XML file showing the resultset of a query
14
  * into an HTML format suitable for rendering with modern web browsers.
15
  * This stylesheet formats .
16
-->
17
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
18
  <xsl:output method="html"/>
19
  <xsl:template match="/">
20
    <html>
21
      <head>
22 497 jones
        <link rel="stylesheet" type="text/css" href="@html-path@/style/rowcol.css" />
23 498 jones
        <script language="JavaScript">
24
          <![CDATA[
25
          function submitform(current_action,form_ref) {
26
              form_ref.action.value=current_action;
27
              form_ref.submit();
28
          }
29
          ]]>
30
        </script>
31
32 295 berkley
      </head>
33
      <body class="emlbody">
34 304 berkley
        <a name="top" />
35 318 berkley
        <table width="100%">
36
        <tr>
37
          <td align="left" valign="top">
38 400 berkley
            <form action="@html-path@/servlet/marine#browse"
39 318 berkley
                  method="POST">
40 400 berkley
             <input type="hidden" name="action" value="query" />
41 318 berkley
    	       <input type="hidden" name="query" value="" />
42
    	       <input type="hidden" name="qformat" value="html" />
43 400 berkley
             <input type="hidden" name="operator" value="UNION" />
44
             <input type="hidden" name="anyfield" value="%" />
45 420 berkley
             <input type="hidden" name="returnfield"
46
               value="resource/dataset/originator/individualName/surName" />
47
             <input type="hidden" name="returnfield"
48
               value="resource/dataset/originator/individualName/givenName" />
49
             <input type="hidden" name="returnfield"
50
               value="resource/dataset/originator/organizationName" />
51 469 berkley
             <input type="hidden" name="returnfield"
52
               value="resource/dataset/title" />
53
             <input type="hidden" name="returnfield"
54
              value="resource/dataset/keywordInfo/keyword" />
55
             <input type="hidden" name="returndoc"
56
             value="-//NCEAS//resource//EN" />
57
             <input type="hidden" name="returndoc"
58
              value="-//NCEAS//eml-dataset//EN" />
59 416 berkley
             <input border="0" type="image"
60
                    src="@image-path@/marine/browsebutton.jpg"
61
                    alt="browse the database"
62
                    size="15" /><br/>
63
             <a href="#beginform" border="0">
64
              <img border="0"
65
                   src="@image-path@/marine/skipbutton.jpg"
66
                   alt="skip the introduction"/>
67
            </a>
68
           </form>
69
    	   </td>
70
         <td align="center" valign="top">
71
            <img src="@image-path@/marine/logo-line.gif" alt="NCEAS Logo" />
72
         </td>
73
         <td align="right" valign="top">
74 400 berkley
            <form action="@html-path@/servlet/marine#browse"
75 318 berkley
                  method="POST">
76 416 berkley
               <font size="2">
77 386 berkley
               Quick Search: <input type="text" name="anyfield" size="10" />
78 416 berkley
               </font>
79 318 berkley
               <input type="hidden" name="action" value="query" />
80
    	       <input type="hidden" name="qformat" value="html" />
81
    	       <input type="hidden" name="operator" value="UNION" />
82 438 berkley
83
             <input type="hidden" name="returnfield"
84
              value="resource/dataset/originator/individualName/surName" />
85
             <input type="hidden" name="returnfield"
86
              value="resource/dataset/originator/individualName/givenName" />
87
            <input type="hidden" name="returnfield"
88
             value="resource/dataset/originator/organizationName" />
89 469 berkley
            <input type="hidden" name="returnfield"
90
             value="resource/dataset/title" />
91
            <input type="hidden" name="returnfield"
92
             value="resource/dataset/keywordInfo/keyword" />
93
            <input type="hidden" name="returndoc"
94
             value="-//NCEAS//resource//EN" />
95
            <input type="hidden" name="returndoc"
96
             value="-//NCEAS//eml-dataset//EN" />
97 318 berkley
    	     </form>
98 416 berkley
         </td>
99
    	 </tr>
100
       </table>
101 318 berkley
102
        <hr />
103 469 berkley
        <center><h3>MARINE Search Interface</h3></center>
104 318 berkley
        <font size="2">
105
        <p class="intro">
106 469 berkley
          This page is a search tool for
107 386 berkley
          <a href="http://www.mms.gov/omm/pacific/enviro/mint.htm">MARINE</a>
108 469 berkley
          scientists to retrieve information from
109 318 berkley
          the NCEAS Ecological Metadata Database.  For more information on
110
          this project, please read the
111 386 berkley
          <a href=
112
          "http://www.nceas.ucsb.edu/marinedata/">
113 318 berkley
          proposal abstract</a>.
114
        </p>
115 304 berkley
116 318 berkley
        <p class="intro">
117 386 berkley
           Each step below contains several fields relating to a part of the
118
           dataset.  You may also browse
119
           the entire database by simply clicking the browse link at the top
120
           of the page.
121 318 berkley
           Clicking on the buttons next to each data line will give you more
122 386 berkley
           information about the dataset or allow you to download the entire
123
           dataset.
124 469 berkley
           Please note some fields in the search forms will not be pertinent to
125 386 berkley
           your dataset.
126
           If this is the case, simply leave any field blank to omit it from
127
           the searching.
128 318 berkley
        </p>
129 304 berkley
130 318 berkley
        <p class="intro">
131 386 berkley
           Note that the wildcard character is a percent sign (%).  It may
132
           be used in any
133 469 berkley
           field to denote "any" value.  For example, the search "do%" would
134 386 berkley
           return "document"
135
           or "dog" or "domino" or "dolphin", etc.  Placing a single percent
136
           sign in a field
137
           will return any document that contains that field.  Placing a
138
           percent sign in
139
           the "Any Field" field is equivalent to browsing the database (i.e.
140
           it will return
141 318 berkley
           every document).
142
        </p>
143
        </font>
144 416 berkley
        <hr />
145 400 berkley
        <form action="@html-path@/servlet/marine#browse"
146 298 berkley
              method="POST">
147 416 berkley
        <a name="beginform" />
148
        <table width="100%" border="0">
149 304 berkley
          <tr>
150 318 berkley
             <td valign="bottom" width = "25">
151 416 berkley
        	<img src="@image-path@/marine/step1.jpg" alt="step 1"/>
152 304 berkley
             </td>
153 318 berkley
             <td>
154
               <p>
155 416 berkley
               <b><font size="2">Keywords and Title</font></b><br/>
156 318 berkley
               <font size="2">
157 386 berkley
                 Enter any keywords that might partain to the dataset you
158
                 are looking for.
159
                 The "Any Field" text box will search for any field in any
160
                 document for
161
                 the text you provide.  The title and alternate title will
162
                 search for text
163
                 in the title or alternate title fields of a document only.
164
                 Fields left
165 318 berkley
                 blank will not be used in the search criteria.
166
               </font></p>
167
             </td>
168 304 berkley
          </tr>
169
        </table>
170 318 berkley
171 304 berkley
        <table width="100%">
172 298 berkley
             <tr>
173 416 berkley
                <td align="right">Title:</td>
174 318 berkley
                <td>
175 416 berkley
                  <input type="text" name="title" size="30">
176 318 berkley
                  <xsl:attribute name="value">
177
                  <xsl:value-of select="resultset/query/title" />
178
                  </xsl:attribute>
179
                  </input>
180
                </td>
181 416 berkley
                <td align="right">Alternate Title:</td>
182
             	  <td>
183
                <input type="text" name="alttitle" size="30">
184
             	  <xsl:attribute name="value">
185
                  <xsl:value-of select="resultset/query/alttitle" />
186 318 berkley
                  </xsl:attribute>
187
                  </input>
188
                </td>
189 298 berkley
             </tr>
190 304 berkley
             <tr>
191 416 berkley
              <td align="right">Keywords:</td>
192
                <td>
193
                  <input type="text" name="keyword" size="30">
194
                  <xsl:attribute name="value">
195
                  <xsl:value-of select="resultset/query/keyword" />
196 318 berkley
                  </xsl:attribute>
197
                  </input>
198
                </td>
199 416 berkley
                <td align="right">Any Field:</td>
200 318 berkley
                <td>
201 416 berkley
                  <input type="text" name="anyfield" size="30">
202 318 berkley
                  <xsl:attribute name="value">
203 416 berkley
                  <xsl:value-of select="resultset/query/anyfield" />
204 318 berkley
                  </xsl:attribute>
205
                  </input>
206
                </td>
207 304 berkley
             </tr>
208
        </table>
209 318 berkley
210 416 berkley
        <table width="100%" border="0">
211 304 berkley
          <tr>
212 416 berkley
             <td valign="center" align="left" width="25">
213
        	   <img src="@image-path@/marine/step2.jpg" alt="step 2"/>
214 318 berkley
             </td>
215
             <td>
216 416 berkley
             <font size="2"><b>Associated Individual Information</b><br/>
217
        	   Enter data about an owner or someone else who is associated with
218
             the dataset. Any field(s) left blank will not be used
219 318 berkley
        	   in the search criteria.
220
        	   </font>
221 304 berkley
             </td>
222
          </tr>
223
        </table>
224
        <table width="100%">
225
             <tr>
226 416 berkley
                <td align="right">First Name:</td>
227 318 berkley
                <td>
228 416 berkley
                  <input type="text" name="givenName" size="30">
229 318 berkley
             	  <xsl:attribute name="value">
230 404 berkley
                  <xsl:value-of select="resultset/query/givenName" />
231 318 berkley
                  </xsl:attribute>
232
                  </input>
233
                </td>
234 416 berkley
                <td align="right">Last Name:</td>
235 406 berkley
                <td>
236 416 berkley
                  <input type="text" name="surName" size="30">
237 318 berkley
             	  <xsl:attribute name="value">
238 404 berkley
                  <xsl:value-of select="resultset/query/surName" />
239 318 berkley
                  </xsl:attribute>
240
                  </input>
241
                </td>
242 304 berkley
             </tr>
243 318 berkley
             <tr>
244 416 berkley
             	<td align="right">Organization:</td>
245 318 berkley
             	<td>
246 416 berkley
             	  <input type="text" name="organizationName" size="30">
247 318 berkley
             	  <xsl:attribute name="value">
248
                  <xsl:value-of select="resultset/query/organizationName" />
249
                  </xsl:attribute>
250
                  </input>
251
                </td>
252 416 berkley
             	<td align="right">Email Address:</td>
253 318 berkley
             	<td>
254 416 berkley
             	  <input type="text" name="electronicMailAddress" size="30">
255 318 berkley
             	  <xsl:attribute name="value">
256
                  <xsl:value-of select="resultset/query/electronicMailAddress" />
257
                  </xsl:attribute>
258
                  </input>
259
                </td>
260
             </tr>
261
           </table>
262 416 berkley
        <table width="100%" border="0">
263 304 berkley
          <tr>
264 416 berkley
            <td valign="center" align="left" width="25">
265
              <img src="@image-path@/marine/step3.jpg" alt="step 3"/>
266
            </td>
267
            <td>
268
              <p>
269 469 berkley
              <b><font size="2">Search the Database</font></b><br/>
270 416 berkley
              <font size="2">
271 469 berkley
              Click the Search button to submit your search.  The results will be
272 416 berkley
              displayed below under the heading "Results".
273
              </font>
274
              </p>
275
            </td>
276 304 berkley
          </tr>
277
        </table>
278 400 berkley
      <input type="hidden" name="action" value="query" />
279 304 berkley
    	<input type="hidden" name="qformat" value="html" />
280
    	<input type="hidden" name="operator" value="UNION" />
281 420 berkley
      <input type="hidden" name="returnfield"
282 422 berkley
             value="resource/dataset/originator/individualName/surName" />
283 420 berkley
      <input type="hidden" name="returnfield"
284 422 berkley
            value="resource/dataset/originator/individualName/givenName" />
285 420 berkley
      <input type="hidden" name="returnfield"
286 422 berkley
            value="resource/dataset/originator/organizationName" />
287 455 berkley
      <input type="hidden" name="returnfield"
288 469 berkley
             value="resource/dataset/title" />
289
      <input type="hidden" name="returnfield"
290
             value="resource/dataset/keywordInfo/keyword" />
291
      <input type="hidden" name="returndoc"
292
             value="-//NCEAS//resource//EN" />
293
      <input type="hidden" name="returndoc"
294
             value="-//NCEAS//eml-dataset//EN" />
295
      <input type="submit" value="Search" />
296 422 berkley
      <input type="reset" value="Clear Form" />
297 304 berkley
298 422 berkley
    </form>
299 304 berkley
300 438 berkley
    <a name="browse" />
301
	  <font size="2"><xsl:number value="count(resultset/document)" /> documents
302
     found.</font>
303
	  <!-- This tests to see if there are returned documents,
304
	       if there are not then don't show the query results -->
305
	  <xsl:if test="count(resultset/document) &gt; 0">
306
	    <center>
307
        <u><h2>Results</h2></u>
308
      </center>
309
310 295 berkley
        <table width="100%">
311 497 jones
          <tr>
312
           <th class="sectionhead">&nbsp;</th>
313
           <th class="sectionhead"><font size="2">
314
             <xsl:text>Title</xsl:text></font></th>
315
           <th class="sectionhead"><font size="2">
316
             <xsl:text>Contacts</xsl:text></font></th>
317
           <th class="sectionhead"><font size="2">
318
             <xsl:text>Organization</xsl:text></font></th>
319
           <th class="sectionhead"><font size="2">
320
             <xsl:text>Keywords</xsl:text></font></th>
321
           <!--<th class="sectionhead"><font size="2">
322
             <xsl:text>Related Documents</xsl:text></font></th>-->
323 438 berkley
          </tr>
324 406 berkley
	      <font size="2">
325 469 berkley
326
        <!--<xsl:for-each select="resultset/document[doctype = 'resource']">-->
327
        <xsl:for-each select="resultset/document">
328 318 berkley
          <xsl:sort select="doctitle"/>
329 295 berkley
          <tr valign="top">
330
            <xsl:attribute name="class">
331
              <xsl:choose>
332 497 jones
                <xsl:when test="position() mod 2 = 1">rowodd</xsl:when>
333
                <xsl:when test="position() mod 2 = 0">roweven</xsl:when>
334 295 berkley
              </xsl:choose>
335
            </xsl:attribute>
336
337
          <td>
338 455 berkley
            <form action="@html-path@/servlet/marine" method="POST">
339 498 jones
              <xsl:attribute name="name">
340
                <xsl:value-of select="translate(./docid,':','')"/>
341
              </xsl:attribute>
342 455 berkley
            <!-- abstractpath tells the servlet where the abstract is in the
343
                 document.  The % sign is used because the path could be
344
                 resource/literature or resource/dataset. -->
345
            <input type="hidden" name="abstractpath" value="resource/%/abstract" />
346
            <input type="hidden" name="action" value="getdocument"/>
347 498 jones
            <input type="hidden" name="docid">
348
              <xsl:attribute name="value">
349
                <xsl:value-of select="./docid"/>
350
              </xsl:attribute>
351
            </input>
352 456 berkley
            <xsl:for-each select="./relation">
353
              <input type="hidden" name="relation">
354
                <xsl:attribute name="value" >
355
                  <xsl:value-of select="./relationdoc" />
356
                </xsl:attribute>
357
              </input>
358
            </xsl:for-each>
359 498 jones
360
            <a>
361
              <xsl:attribute name="href">javascript:submitform('getdocument',document.<xsl:value-of select="translate(./docid, ':', '')"/>)</xsl:attribute>
362
               Dataset Information
363
            </a><br />
364
            <a>
365
              <xsl:attribute name="href">javascript:submitform('getabstract',document.<xsl:value-of select="translate(./docid,':','')"/>)</xsl:attribute>
366
              View Abstract
367
            </a><br />
368
            <a>
369
              <xsl:attribute name="href">javascript:submitform('getdatadoc',document.<xsl:value-of select="translate(./docid,':','')"/>)</xsl:attribute>
370
               Download Data and Metadata
371
            </a><br />
372
<!--
373
            <input border="0" type="image">
374
              <xsl:attribute name="src">
375
                <xsl:choose>
376
                  <xsl:when test="position()
377
                       mod 2 = 1">@image-path@/marine/whiteMenu.jpg</xsl:when>
378
                  <xsl:when test="position()
379
                       mod 2 = 0">@image-path@/marine/blueMenu.jpg</xsl:when>
380
                </xsl:choose>
381
              </xsl:attribute>
382
              <xsl:attribute name="name">
383
                <xsl:value-of select="./docid"/>
384
              </xsl:attribute>
385
            </input>
386
-->
387
            </form>
388
            <pre>Document ID: <xsl:value-of select="./docid"/></pre>
389 295 berkley
          </td>
390 477 berkley
          <td>
391 488 berkley
            <font size="4">
392
              <b>
393
              <xsl:value-of select="./param[@name='resource/dataset/title']"/>
394
              </b><br/>
395
              &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
396
            </font>
397
            <a>
398 487 berkley
              <xsl:attribute name="href">
399
                <xsl:text>@html-path@/servlet/marine/?action=getdocument&amp;qformat=html&amp;docid=</xsl:text>
400
                <xsl:value-of select="./docid"/>
401
              </xsl:attribute>
402 488 berkley
              <font size="2">
403
              Dataset Information
404
              </font>
405
            </a><br/><br/>
406
            <i>Related Documents:</i><br/>
407 477 berkley
            <xsl:if test="count(./relation) &gt; 0">
408
              <xsl:for-each select="./relation">
409
              <xsl:text>&nbsp;</xsl:text><xsl:text>&nbsp;</xsl:text>
410
              <xsl:text>&nbsp;</xsl:text><xsl:text>&nbsp;</xsl:text>
411
              <xsl:text>&nbsp;</xsl:text><xsl:text>&nbsp;</xsl:text>
412
                <a>
413 482 berkley
                  <xsl:if test="starts-with(./relationdoc, 'http')">
414
                    <xsl:attribute name="href">
415
                      <xsl:value-of select="./relationdoc" />
416
                    </xsl:attribute>
417 488 berkley
                    <xsl:if test="./relationdoctype = '-//NCEAS//eml-variable//EN'">
418
                      <font size="2">Variable Information</font>
419
                    </xsl:if>
420
                    <xsl:if test="./relationdoctype = '-//NCEAS//eml-file//EN'">
421
                      <font size="2">File Information</font>
422
                    </xsl:if>
423
                    <xsl:if test="./relationdoctype = '-//NCEAS//eml-access//EN'">
424
                      <font size="2">Access Information</font>
425
                    </xsl:if>
426
                    <xsl:if test="./relationdoctype = '-//NCEAS//eml-context//EN'">
427
                      <font size="2">Context Information</font>
428
                    </xsl:if>
429
                    <xsl:if test="./relationdoctype = '-//NCEAS//eml-software//EN'">
430
                      <font size="2">Software Information</font>
431
                    </xsl:if>
432
                    <xsl:if test="./relationdoctype = '-//NCEAS//eml-status//EN'">
433
                      <font size="2">Status Information</font>
434
                    </xsl:if>
435
                    <xsl:if test="./relationdoctype = '-//NCEAS//eml-supplement//EN'">
436
                      <font size="2">Supplemental Information</font>
437
                    </xsl:if>
438
                    <!-- If the doctype is null, this file is assumed to
439
                         be a data file
440
                     -->
441
                    <xsl:if test="./relationdoctype = 'null'">
442
                      <font size="2">Data File</font>
443
                    </xsl:if>
444 482 berkley
                  </xsl:if>
445
                  <xsl:if test="starts-with(./relationdoc, 'metacat')">
446
                    <xsl:attribute name="href">
447
                      <xsl:text>http://dev.nceas.ucsb.edu@html-path@/servlet/marine/?action=getrelateddocument&amp;qformat=html&amp;url=</xsl:text>
448
                      <xsl:value-of select="./relationdoc" />
449
                    </xsl:attribute>
450 488 berkley
                    <xsl:if test="./relationdoctype = '-//NCEAS//eml-variable//EN'">
451
                      <font size="2">Variable Information</font>
452
                    </xsl:if>
453
                    <xsl:if test="./relationdoctype = '-//NCEAS//eml-file//EN'">
454
                      <font size="2">File Information</font>
455
                    </xsl:if>
456
                    <xsl:if test="./relationdoctype = '-//NCEAS//eml-access//EN'">
457
                      <font size="2">Access Information</font>
458
                    </xsl:if>
459
                    <xsl:if test="./relationdoctype = '-//NCEAS//eml-context//EN'">
460
                      <font size="2">Context Information</font>
461
                    </xsl:if>
462
                    <xsl:if test="./relationdoctype = '-//NCEAS//eml-software//EN'">
463
                      <font size="2">Software Information</font>
464
                    </xsl:if>
465
                    <xsl:if test="./relationdoctype = '-//NCEAS//eml-status//EN'">
466
                      <font size="2">Status Information</font>
467
                    </xsl:if>
468
                    <xsl:if test="./relationdoctype = '-//NCEAS//eml-supplement//EN'">
469
                      <font size="2">Supplemental Information</font>
470
                    </xsl:if>
471
                    <!-- If the doctype is null, this file is assumed to
472
                         be a data file
473
                     -->
474
                    <xsl:if test="./relationdoctype = 'null'">
475
                      <font size="2">Data File</font>
476
                    </xsl:if>
477 482 berkley
                  </xsl:if>
478 477 berkley
                </a>
479
                <br/>
480 487 berkley
              </xsl:for-each>
481 477 berkley
            </xsl:if>
482 318 berkley
          </td>
483 400 berkley
          <td>
484 477 berkley
            <xsl:for-each
485 456 berkley
               select="./param[@name='resource/dataset/originator/individualName/surName']" >
486 455 berkley
              <font size="2">
487
              <xsl:value-of
488 456 berkley
                select="." />
489 455 berkley
              </font>
490 469 berkley
              <br/>
491 400 berkley
492 456 berkley
      <!--        <font size="2">
493 455 berkley
              <xsl:value-of
494
                select="./param[@name='resource/dataset/originator/individualName/surName']" />
495
              </font><br/>
496 456 berkley
      -->
497 477 berkley
            </xsl:for-each>
498
            <xsl:text>&nbsp;</xsl:text>
499 318 berkley
          </td>
500 416 berkley
          <td>
501 422 berkley
              <font size="2">
502
              <xsl:value-of
503
                select="./param[@name='resource/dataset/originator/organizationName']" />
504
              </font>
505 318 berkley
              <xsl:text>&nbsp;</xsl:text>
506
          </td>
507 400 berkley
508 295 berkley
          <td>
509 455 berkley
           <xsl:for-each
510
            select="./param[@name='resource/dataset/keywordInfo/keyword']" >
511
              <font size="2">
512
              <xsl:value-of
513
               select="." />
514
               <br/>
515
              </font>
516
            </xsl:for-each>
517
            <xsl:text>&nbsp;</xsl:text>
518 295 berkley
          </td>
519 477 berkley
          <!--
520 318 berkley
          <td>
521 469 berkley
            <xsl:text>&nbsp;</xsl:text>
522 455 berkley
            <xsl:if test="count(./relation) &gt; 0">
523
              <form action="@html-path@/servlet/marine" method="POST">
524
              <input type="hidden" name="action" value="getrelateddocument"/>
525
              <input type="hidden" name="qformat" value="xml" />
526
              <xsl:for-each select="./relation">
527 469 berkley
                <font size="2">
528
                <input type="radio" name="url">
529
                <xsl:attribute name="value" >
530
                  <xsl:value-of select="./relationdoc" />
531
                </xsl:attribute>
532 455 berkley
                <xsl:value-of select="./relationdoc" />
533 469 berkley
                </input>
534
                </font>
535
                <br/>
536 455 berkley
             </xsl:for-each>
537
             <input type="submit" value="Get" />
538
             </form>
539
            </xsl:if>
540 406 berkley
          </td>
541 477 berkley
          -->
542 295 berkley
          </tr>
543
        </xsl:for-each>
544 406 berkley
        </font>
545 295 berkley
        </table>
546
547 469 berkley
        <h3><a href="#top">New Search</a></h3>
548 318 berkley
        </xsl:if>
549
550 295 berkley
      </body>
551
    </html>
552
  </xsl:template>
553
554
</xsl:stylesheet>