source: 1dwg/trunk/cansasxml-html.xsl @ 271

Last change on this file since 271 was 261, checked in by prjemian, 9 years ago

refs #20, refs #27

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision URL
File size: 17.6 KB
Line 
1<?xml version="1.0"?>
2
3<!--
4########### SVN repository information ###################
5# $Date$
6# $Author$
7# $Revision$
8# $HeadURL$
9# $Id$
10########### SVN repository information ###################
11
12Purpose:
13        This stylesheet is used to translate cansas1d/1.1
14        XML data files into a display form for viewing
15        in a web browser such as Firefox or Internet Explorer.
16
17Usage:
18        xsltproc cansasxml-html.xsl datafile.xml > datafile.html
19        (or include it as indicated at the documentation site
20        http://www.cansas.org/wgwiki/index.php/cansas1d_documentation)
21-->
22
23<xsl:stylesheet version="1.1"
24        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
25        xmlns:cs="urn:cansas1d:1.1"
26        xmlns:fn="http://www.w3.org/2005/02/xpath-functions"
27        xmlns:ues="urn:efficiency:spectrum"
28        xmlns:ums="urn:monitor:spectrum"
29        xmlns:uts="urn:transmission:spectrum"
30        >
31
32        <xsl:template match="/">
33<!-- DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" -->
34                <html>
35                        <head>
36                                <title>SAS data in canSAS 1-D format</title>
37                        </head>
38                        <body>
39                                <h1>SAS data in canSAS 1-D format</h1>
40                                <small>generated using <TT>cansasxml-html.xsl</TT> from canSAS</small>
41                                <BR />
42                                <table border="2">
43                                        <tr>
44                                                <th bgcolor="lavender">canSAS 1-D XML version:</th>
45                                                <td><xsl:value-of select="cs:SASroot/@version" /></td>
46                                        </tr>
47                                        <tr>
48                                                <th bgcolor="lavender">number of entries:</th>
49                                                <td><xsl:value-of select="count(cs:SASroot/cs:SASentry)" /></td>
50                                        </tr>
51                                        <xsl:if test="count(/cs:SASroot//cs:SASentry)>1">
52                                                <!-- if more than one SASentry, make a table of contents -->
53                                                <xsl:for-each select="/cs:SASroot//cs:SASentry">
54                                                        <tr>
55                                                                <th bgcolor="lavender">SASentry-<xsl:value-of select="position()" /></th>
56                                                                <td>
57                                                                        <a href="#SASentry-{generate-id(.)}">
58                                                                                <xsl:if test="@name!=''">(<xsl:value-of select="@name" />)</xsl:if>
59                                                                                <xsl:value-of select="cs:Title" />
60                                                                        </a>
61                                                                </td>
62                                                                <xsl:if test="count(cs:SASdata)>1">
63                                                                        <td>
64                                                                                <!-- if more than one SASdata, make a local table of contents -->
65                                                                                <xsl:for-each select="cs:SASdata">
66                                                                                        <xsl:if test="position()>1">
67                                                                                                <xsl:text> | </xsl:text>
68                                                                                        </xsl:if>
69                                                                                        <a href="#SASdata-{generate-id(.)}">
70                                                                                                <xsl:choose>
71                                                                                                        <xsl:when test="cs:name!=''">
72                                                                                                                <xsl:value-of select="cs:name" />
73                                                                                                        </xsl:when>
74                                                                                                        <xsl:when test="@name!=''">
75                                                                                                                <xsl:value-of select="@name" />
76                                                                                                        </xsl:when>
77                                                                                                        <xsl:otherwise>
78                                                                                                                SASdata<xsl:value-of select="position()" />
79                                                                                                        </xsl:otherwise>
80                                                                                                </xsl:choose>
81                                                                                        </a>
82                                                                                </xsl:for-each>
83                                                                        </td>
84                                                                </xsl:if>
85                                                        </tr>
86                                                </xsl:for-each>
87                                        </xsl:if>
88                                </table>
89                                <xsl:apply-templates  />
90                                <hr />
91                                <small><center>$Id$</center></small>
92                        </body>
93                </html>
94        </xsl:template>
95
96        <xsl:template match="cs:SASroot">
97                <xsl:for-each select="cs:SASentry">
98                        <hr />
99                        <br />
100                        <a id="#SASentry-{generate-id(.)}"  name="SASentry-{generate-id(.)}" />
101                        <h1>SASentry<xsl:value-of select="position()" />:<xsl:if 
102                                test="@name!=''">(<xsl:value-of select="@name" />)</xsl:if>
103                                <xsl:value-of select="cs:Title" /></h1>
104                        <xsl:if test="count(cs:SASdata)>1">
105                                <table border="2">
106                                        <caption>SASdata contents</caption>
107                                        <xsl:for-each select="cs:SASdata">
108                                                <tr>
109                                                        <th>SASdata-<xsl:value-of select="position()" /></th>
110                                                        <td>
111                                                                <a href="#SASdata-{generate-id(.)}">
112                                                                        <xsl:choose>
113                                                                        <xsl:when test="@name!=''">
114                                                                                        <xsl:value-of select="@name" />
115                                                                                </xsl:when>
116                                                                                <xsl:otherwise>
117                                                                                        SASdata<xsl:value-of select="position()" />
118                                                                                </xsl:otherwise>
119                                                                        </xsl:choose>
120                                                                </a>
121                                                        </td>
122                                                </tr>
123                                        </xsl:for-each>
124                                </table>
125                        </xsl:if>
126                        <br />
127                        <table border="2">
128                                <tr>
129                                        <th>SAS data</th>
130                                        <th>Selected Metadata</th>
131                                </tr>
132                                <tr>
133                                        <td valign="top">
134                                                <xsl:apply-templates  select="cs:SASdata" />
135                                                <xsl:apply-templates  select="cs:SASsample/ues:efficiency_ratio" />
136                                                <xsl:apply-templates  select="cs:SASsample/ums:monitor_spectrum" />
137                                                <xsl:apply-templates  select="cs:SASsample/uts:transmission_spectrum" />
138                                        </td>
139                                        <td valign="top">
140                                                <table border="2">
141                                                        <tr bgcolor="lavender">
142                                                                <th>name</th>
143                                                                <th>value</th>
144                                                                <th>unit</th>
145                                                        </tr>
146                                                        <tr>
147                                                                <td>Title</td>
148                                                                <td><xsl:value-of select="cs:Title" /></td>
149                                                                <td />
150                                                        </tr>
151                                                        <tr>
152                                                                <td>Run</td>
153                                                                <td><xsl:value-of select="cs:Run" /></td>
154                                                                <td />
155                                                        </tr>
156                                                        <tr><xsl:apply-templates  select="run" /></tr>
157                                                        <xsl:apply-templates  select="cs:SASsample" />
158                                                        <xsl:apply-templates  select="cs:SASinstrument" />
159                                                        <xsl:apply-templates  select="cs:SASprocess" />
160                                                        <xsl:apply-templates  select="cs:SASnote" />
161                                                </table>
162                                        </td>
163                                </tr>
164                        </table>
165                </xsl:for-each>
166        </xsl:template>
167
168        <xsl:template match="cs:SASdata">
169                <a id="#SASdata-{generate-id(.)}"  name="SASdata-{generate-id(.)}" />
170                <table border="2">
171                        <caption><xsl:if 
172                                test="@name!=''"><xsl:value-of select="@name" /></xsl:if> (<xsl:value-of 
173                                select="count(cs:Idata)" /> points)</caption>
174                        <tr bgcolor="lavender">
175                                <xsl:for-each select="cs:Idata[1]/*">
176                                        <th>
177                                                <xsl:value-of select="name()" /> 
178                                                <xsl:if test="@unit!=''"> (<xsl:value-of select="@unit" />)</xsl:if>
179                                        </th>
180                                </xsl:for-each>
181                        </tr>
182                        <xsl:for-each select="cs:Idata">
183                                <tr>
184                                        <xsl:for-each select="*">
185                                                <td><xsl:value-of select="." /></td>
186                                        </xsl:for-each>
187                                </tr>
188                        </xsl:for-each>
189                </table>
190        </xsl:template>
191
192        <xsl:template match="cs:SASsample">
193                <tr>
194                        <td>SASsample</td>
195                        <td><xsl:value-of select="@name" /></td>
196                        <td />
197                </tr>
198                <xsl:for-each select="*">
199                        <xsl:choose>
200                                <xsl:when test="name()='position'">
201                                        <xsl:apply-templates select="." />
202                                </xsl:when>
203                                <xsl:when test="name()='orientation'">
204                                        <xsl:apply-templates select="." />
205                                </xsl:when>
206                                <xsl:when test="name()='efficiency_ratio'">
207                                        <!-- xmlns="urn:efficiency:spectrum" -->
208                                </xsl:when>
209                                <xsl:when test="name()='monitor_spectrum'">
210                                        <!-- xmlns="urn:monitor:spectrum" -->
211                                </xsl:when>
212                                <xsl:when test="name()='transmission_spectrum'">
213                                        <!-- xmlns="urn:transmission:spectrum" -->
214                                </xsl:when>
215                                <xsl:otherwise>
216                                        <tr>
217                                                <td><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
218                                                <td><xsl:value-of select="." /></td>
219                                                <td><xsl:value-of select="@unit" /></td>
220                                        </tr>
221                                </xsl:otherwise>
222                        </xsl:choose>
223                </xsl:for-each>
224        </xsl:template>
225
226        <xsl:template match="cs:SASinstrument">
227                <tr>
228                        <td>SASinstrument</td>
229                        <td><xsl:value-of select="cs:name" /></td>
230                        <td><xsl:value-of select="@name" /></td>
231                </tr>
232                <xsl:for-each select="*">
233                        <xsl:choose>
234                                <xsl:when test="name()='SASsource'"><xsl:apply-templates select="." /></xsl:when>
235                                <xsl:when test="name()='SAScollimation'"><xsl:apply-templates select="." /></xsl:when>
236                                <xsl:when test="name()='SASdetector'"><xsl:apply-templates select="." /></xsl:when>
237                                <xsl:when test="name()='name'" />
238                                <xsl:otherwise>
239                                        <tr>
240                                                <td><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
241                                                <td><xsl:value-of select="." /></td>
242                                                <td><xsl:value-of select="@unit" /></td>
243                                        </tr>
244                                </xsl:otherwise>
245                        </xsl:choose>
246                </xsl:for-each>
247        </xsl:template>
248
249        <xsl:template match="cs:SASsource">
250                <tr>
251                        <td><xsl:value-of select="name()" /></td>
252                        <td><xsl:value-of select="@name" /></td>
253                        <td />
254                </tr>
255                <xsl:for-each select="*">
256                        <xsl:choose>
257                                <xsl:when test="name()='beam_size'"><xsl:apply-templates select="." /></xsl:when>
258                                <xsl:otherwise>
259                                        <tr>
260                                                <td><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
261                                                <td><xsl:value-of select="." /></td>
262                                                <td><xsl:value-of select="@unit" /></td>
263                                        </tr>
264                                </xsl:otherwise>
265                        </xsl:choose>
266                </xsl:for-each>
267        </xsl:template>
268
269        <xsl:template match="cs:beam_size">
270                <tr>
271                        <td><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
272                        <td><xsl:value-of select="@name" /></td>
273                        <td />
274                </tr>
275                <xsl:for-each select="*">
276                        <tr>
277                                <td><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
278                                <td><xsl:value-of select="." /></td>
279                                <td><xsl:value-of select="@unit" /></td>
280                        </tr>
281                </xsl:for-each>
282        </xsl:template>
283
284        <xsl:template match="cs:SAScollimation">
285                <xsl:for-each select="*">
286                        <xsl:choose>
287                                <xsl:when test="name()='aperture'"><xsl:apply-templates select="." /></xsl:when>
288                                <xsl:otherwise>
289                                        <tr>
290                                                <td><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
291                                                <td><xsl:value-of select="." /></td>
292                                                <td><xsl:value-of select="@unit" /></td>
293                                        </tr>
294                                </xsl:otherwise>
295                        </xsl:choose>
296                </xsl:for-each>
297        </xsl:template>
298
299        <xsl:template match="cs:aperture">
300                <tr>
301                        <td><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
302                        <td><xsl:value-of select="@name" /></td>
303                        <td><xsl:value-of select="@type" /></td>
304                </tr>
305                <xsl:for-each select="*">
306                        <xsl:choose>
307                                <xsl:when test="name()='size'"><xsl:apply-templates select="." /></xsl:when>
308                                <xsl:otherwise>
309                                        <tr>
310                                                <td><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
311                                                <td><xsl:value-of select="." /></td>
312                                                <td><xsl:value-of select="@unit" /></td>
313                                        </tr>
314                                </xsl:otherwise>
315                        </xsl:choose>
316                </xsl:for-each>
317        </xsl:template>
318
319        <xsl:template match="cs:size">
320                <tr>
321                        <td><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
322                        <td><xsl:value-of select="@name" /></td>
323                        <td />
324                </tr>
325                <xsl:for-each select="*">
326                        <tr>
327                                <td><xsl:value-of select="name(../../..)" />_<xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
328                                <td><xsl:value-of select="." /></td>
329                                <td><xsl:value-of select="@unit" /></td>
330                        </tr>
331                </xsl:for-each>
332        </xsl:template>
333
334        <xsl:template match="cs:SASdetector">
335                <tr>
336                        <td><xsl:value-of select="name()" /></td>
337                        <td><xsl:value-of select="cs:name" /></td>
338                        <td><xsl:value-of select="@name" /></td>
339                </tr>
340                <xsl:for-each select="*">
341                        <xsl:choose>
342                                <xsl:when test="name()='name'" />
343                                <xsl:when test="name()='offset'"><xsl:apply-templates select="." /></xsl:when>
344                                <xsl:when test="name()='orientation'"><xsl:apply-templates select="." /></xsl:when>
345                                <xsl:when test="name()='beam_center'"><xsl:apply-templates select="." /></xsl:when>
346                                <xsl:when test="name()='pixel_size'"><xsl:apply-templates select="." /></xsl:when>
347                                <xsl:otherwise>
348                                        <tr>
349                                                <td><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
350                                                <td><xsl:value-of select="." /></td>
351                                                <td><xsl:value-of select="@unit" /></td>
352                                        </tr>
353                                </xsl:otherwise>
354                        </xsl:choose>
355                </xsl:for-each>
356        </xsl:template>
357
358        <xsl:template match="cs:orientation">
359                <tr>
360                        <td><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
361                        <td><xsl:value-of select="@name" /></td>
362                        <td />
363                </tr>
364                <xsl:for-each select="*">
365                        <tr>
366                                <td><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
367                                <td><xsl:value-of select="." /></td>
368                                <td><xsl:value-of select="@unit" /></td>
369                        </tr>
370                </xsl:for-each>
371        </xsl:template>
372
373        <xsl:template match="cs:position">
374                <tr>
375                        <td><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
376                        <td><xsl:value-of select="@name" /></td>
377                        <td />
378                </tr>
379                <xsl:for-each select="*">
380                        <tr>
381                                <td><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
382                                <td><xsl:value-of select="." /></td>
383                                <td><xsl:value-of select="@unit" /></td>
384                        </tr>
385                </xsl:for-each>
386        </xsl:template>
387
388        <xsl:template match="cs:offset">
389                <tr>
390                        <td><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
391                        <td><xsl:value-of select="@name" /></td>
392                        <td />
393                </tr>
394                <xsl:for-each select="*">
395                        <tr>
396                                <td><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
397                                <td><xsl:value-of select="." /></td>
398                                <td><xsl:value-of select="@unit" /></td>
399                        </tr>
400                </xsl:for-each>
401        </xsl:template>
402
403        <xsl:template match="cs:beam_center">
404                <tr>
405                        <td><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
406                        <td><xsl:value-of select="@name" /></td>
407                        <td />
408                </tr>
409                <xsl:for-each select="*">
410                        <tr>
411                                <td><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
412                                <td><xsl:value-of select="." /></td>
413                                <td><xsl:value-of select="@unit" /></td>
414                        </tr>
415                </xsl:for-each>
416        </xsl:template>
417
418        <xsl:template match="cs:pixel_size">
419                <tr>
420                        <td><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
421                        <td><xsl:value-of select="@name" /></td>
422                        <td />
423                </tr>
424                <xsl:for-each select="*">
425                        <tr>
426                                <td><xsl:value-of select="name(../..)" />_<xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
427                                <td><xsl:value-of select="." /></td>
428                                <td><xsl:value-of select="@unit" /></td>
429                        </tr>
430                </xsl:for-each>
431        </xsl:template>
432
433        <xsl:template match="cs:term">
434                <tr>
435                        <td><xsl:value-of select="@name" /></td>
436                        <td><xsl:value-of select="." /></td>
437                        <td><xsl:value-of select="@unit" /></td>
438                </tr>
439        </xsl:template>
440
441        <xsl:template match="cs:SASprocessnote" mode="standard">
442                <tr>
443                        <td><xsl:value-of select="name()" /></td>
444                        <td><xsl:value-of select="." /></td>
445                        <td><xsl:value-of select="@name" /></td>
446                </tr>
447        </xsl:template>
448       
449        <xsl:template match="cs:SASprocess">
450                <tr>
451                        <td><xsl:value-of select="name()" /></td>
452                        <td><xsl:value-of select="cs:name" /></td>
453                        <td><xsl:value-of select="@name" /></td>
454                </tr>
455                <xsl:for-each select="*">
456                        <xsl:choose>
457                                <xsl:when test="name()='name'" />
458                                <xsl:when test="name()='term'"><xsl:apply-templates select="." /></xsl:when>
459                                <xsl:when test="name()='SASprocessnote'">
460                                        <xsl:choose>
461                                                <xsl:when test="../@name='Indra'">
462                                                        <!-- Customization for APS USAXS metadata -->
463                                                        <xsl:apply-templates select="." mode="Indra"/>
464                                                </xsl:when>
465                                                <xsl:otherwise><xsl:apply-templates select="." mode="standard"/></xsl:otherwise>
466                                        </xsl:choose>
467                                </xsl:when>
468                                <xsl:otherwise>
469                                        <tr>
470                                                <td><xsl:value-of select="name(..)" />_<xsl:value-of select="name()" /></td>
471                                                <td><xsl:value-of select="." /></td>
472                                                <td />
473                                        </tr>
474                                </xsl:otherwise>
475                        </xsl:choose>
476                </xsl:for-each>
477        </xsl:template>
478       
479        <xsl:template match="cs:SASnote">
480                <tr>
481                        <td><xsl:value-of select="name()" /></td>
482                        <td><xsl:value-of select="." /></td>
483                        <xsl:if test="@name=''">
484                                <td/>
485                        </xsl:if>
486                        <xsl:if test="@name!=''">
487                                <td><xsl:value-of select="@name" /></td>
488                        </xsl:if>
489                </tr>
490        </xsl:template>
491       
492        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
493        <!-- ++++++++++  Customizations  +++++++++++ -->
494        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
495       
496        <xsl:template match="cs:SASprocessnote" mode="Indra">
497                <!--
498                        Customization for APS USAXS metadata
499                        These will be IgorPro wavenote variables
500                -->
501                <xsl:for-each select="cs:APS_USAXS">
502                        <!-- ignore any other elements at this point -->
503                        <tr>
504                                <td bgcolor="lightgrey"><xsl:value-of select="name(..)" /></td>
505                                <td bgcolor="lightgrey"><xsl:value-of select="name()" /></td>
506                                <td bgcolor="lightgrey"><xsl:value-of select="@name" /></td>
507                        </tr>
508                        <xsl:for-each select="*">
509                                <tr>
510                                        <td><xsl:value-of select="name()" /></td>
511                                        <td><xsl:value-of select="." /></td>
512                                        <td><xsl:value-of select="@name" /></td>
513                                </tr>
514                        </xsl:for-each>
515                </xsl:for-each>
516        </xsl:template>
517       
518        <xsl:template match="ues:efficiency_ratio">
519                <!--
520                        Customization for ISIS wavelength-dependent data
521                -->
522                <table border="2">
523                        <caption>
524                                wavelength-dependent detector efficiency spectrum
525                        </caption>
526                        <tr bgcolor="lavender">
527                                <xsl:for-each select="ues:data[1]/*">
528                                        <th>
529                                                <xsl:value-of select="name()" /> 
530                                                <xsl:if test="@unit!=''"> (<xsl:value-of select="@unit" />)</xsl:if>
531                                        </th>
532                                </xsl:for-each>
533                        </tr>
534                        <xsl:for-each select="ues:data">
535                                <tr>
536                                        <xsl:for-each select="*">
537                                                <td><xsl:value-of select="." /></td>
538                                        </xsl:for-each>
539                                </tr>
540                        </xsl:for-each>
541                </table>
542        </xsl:template>
543       
544        <xsl:template match="ums:monitor_spectrum">
545                <!--
546                        Customization for ISIS wavelength-dependent data
547                -->
548                <table border="2">
549                        <caption>
550                                wavelength-dependent monitor spectrum
551                        </caption>
552                        <tr bgcolor="lavender">
553                                <xsl:for-each select="ums:data[1]/*">
554                                        <th>
555                                                <xsl:value-of select="name()" /> 
556                                                <xsl:if test="@unit!=''"> (<xsl:value-of select="@unit" />)</xsl:if>
557                                        </th>
558                                </xsl:for-each>
559                        </tr>
560                        <xsl:for-each select="ums:data">
561                                <tr>
562                                        <xsl:for-each select="*">
563                                                <td><xsl:value-of select="." /></td>
564                                        </xsl:for-each>
565                                </tr>
566                        </xsl:for-each>
567                </table>
568        </xsl:template>
569       
570        <xsl:template match="uts:transmission_spectrum">
571                <!--
572                        Customization for ISIS wavelength-dependent data
573                -->
574                <table border="2">
575                        <caption>
576                                wavelength-dependent transmission spectrum
577                        </caption>
578                        <tr bgcolor="lavender">
579                                <xsl:for-each select="uts:data[1]/*">
580                                        <th>
581                                                <xsl:value-of select="name()" /> 
582                                                <xsl:if test="@unit!=''"> (<xsl:value-of select="@unit" />)</xsl:if>
583                                        </th>
584                                </xsl:for-each>
585                        </tr>
586                        <xsl:for-each select="uts:data">
587                                <tr>
588                                        <xsl:for-each select="*">
589                                                <td><xsl:value-of select="." /></td>
590                                        </xsl:for-each>
591                                </tr>
592                        </xsl:for-each>
593                </table>
594        </xsl:template>
595
596</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.