/[volute]/trunk/projects/theory/snapdm/res/schema2xhtml.xsl
ViewVC logotype

Contents of /trunk/projects/theory/snapdm/res/schema2xhtml.xsl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 145 - (show annotations)
Tue Apr 1 18:11:01 2008 UTC (13 years, 6 months ago) by bourges.laurent
File MIME type: application/xml
File size: 22372 byte(s)
cleanup + XSLT 2 version
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
5
6
7 <xsl:output method="html" encoding="UTF-8" indent="yes" />
8 <xsl:strip-space elements="*" />
9
10
11 <xsl:key name="type" match="xsd:schema/xsd:element | xsd:schema/xsd:attribute | xsd:schema/xsd:complexType | xsd:schema/xsd:simpleType | xsd:schema/xsd:group | xsd:schema/xsd:attributeGroup" use="@name"/>
12
13
14
15 <xsl:template match="xsd:schema">
16
17 <xsl:variable name="Main" select="/"/>
18
19 <xsl:for-each select="xsd:annotation/xsd:documentation">
20 <p><xsl:value-of select="text()"/></p>
21 </xsl:for-each>
22
23 <xsl:if test="xsd:import">
24 <p style="font-weight:bold">Imported schemata:</p>
25 <ul>
26 <xsl:for-each select="xsd:import">
27 <li>
28 <a href="{@schemaLocation}">
29 <xsl:value-of select="@schemaLocation"/>
30 </a>
31 from namespace
32 <span style="font-weight:bold;">
33 <xsl:value-of select="@namespace"/>
34 </span>
35 </li>
36 </xsl:for-each>
37 </ul>
38 </xsl:if>
39
40 <xsl:if test="xsd:include">
41 <p style="font-weight:bold">Included schemata:</p>
42 <ul>
43 <xsl:for-each select="xsd:include">
44 <li>
45 <a href="{@schemaLocation}">
46 <xsl:value-of select="@schemaLocation"/>
47 </a>
48 </li>
49 </xsl:for-each>
50 </ul>
51 </xsl:if>
52
53 <xsl:if test="xsd:redefine">
54 <p style="font-weight:bold">Schemata affected by redefine:</p>
55 <ul>
56 <xsl:for-each select="xsd:redefine">
57 <li>
58 <a href="{@schemaLocation}">
59 <xsl:value-of select="@schemaLocation"/>
60 </a>
61 </li>
62 </xsl:for-each>
63 </ul>
64 </xsl:if>
65
66 <xsl:if test="xsd:element">
67 <p style="font-weight:bold">Global Elements in main module</p>
68 <xsl:apply-templates select="xsd:element"/>
69 </xsl:if>
70
71 <xsl:for-each select="xsd:include | xsd:redefine">
72 <xsl:variable name="emodule" select="document(@schemaLocation)"/>
73 <xsl:if test="$emodule/xsd:schema/xsd:element">
74 <p style="font-weight:bold">
75 Global Elements from <a href="{@schemaLocation}"><xsl:value-of select="$emodule/xsd:schema/@id"/></a>
76 </p>
77 <xsl:apply-templates select="$emodule/xsd:schema/xsd:element">
78 <xsl:with-param name="Main" select="$Main"/>
79 </xsl:apply-templates>
80 </xsl:if>
81 </xsl:for-each>
82
83 <xsl:if test="xsd:attribute">
84 <p style="font-weight:bold">Global Attributes in main module</p>
85 <xsl:apply-templates select="xsd:attribute"/>
86 </xsl:if>
87
88 <xsl:for-each select="xsd:include | xsd:redefine">
89 <xsl:variable name="amodule" select="document(@schemaLocation)"/>
90 <xsl:if test="$amodule/xsd:schema/xsd:attribute">
91 <p style="font-weight:bold">
92 Global Attributes from <a href="{@schemaLocation}"><xsl:value-of select="$amodule/xsd:schema/@id"/></a>
93 </p>
94 <xsl:apply-templates select="$amodule/xsd:schema/xsd:attribute">
95 <xsl:with-param name="Main" select="$Main"/>
96 </xsl:apply-templates>
97 </xsl:if>
98 </xsl:for-each>
99
100 <xsl:if test="xsd:complexType|xsd:simpleType">
101 <p style="font-weight:bold">Global Types in main module</p>
102 <xsl:apply-templates select="xsd:complexType | xsd:simpleType">
103 <xsl:sort select="@name"/>
104 </xsl:apply-templates>
105 </xsl:if>
106
107 <xsl:for-each select="xsd:include | xsd:redefine">
108 <xsl:variable name="tmodule" select="document(@schemaLocation)"/>
109 <xsl:if test="$tmodule/xsd:schema/xsd:complexType | $tmodule/xsd:schema/xsd:simpleType">
110 <p style="font-weight:bold">Global Types from
111 <a href="{@schemaLocation}"><xsl:value-of select="$tmodule/xsd:schema/@id"/></a>
112 </p>
113 <xsl:apply-templates select="$tmodule/xsd:schema/xsd:complexType | $tmodule/xsd:schema/xsd:simpleType">
114 <xsl:with-param name="Main" select="$Main"/>
115 </xsl:apply-templates>
116 </xsl:if>
117 </xsl:for-each>
118
119 <xsl:if test="xsd:group|xsd:attributeGroup">
120 <p style="font-weight:bold">Useful groups in main module</p>
121 <xsl:apply-templates select="xsd:group|xsd:attributeGroup">
122 <xsl:sort select="@name"/>
123 </xsl:apply-templates>
124 </xsl:if>
125
126 <xsl:for-each select="xsd:include | xsd:redefine">
127 <xsl:variable name="agmodule" select="document(@schemaLocation)"/>
128 <xsl:if test="$agmodule/xsd:schema/xsd:group | $agmodule/xsd:schema/xsd:attributeGroup">
129 <p style="font-weight:bold">Useful groups from
130 <a href="{@schemaLocation}"><xsl:value-of select="$agmodule/xsd:schema/@id"/></a>
131 </p>
132 <xsl:apply-templates select="$agmodule/xsd:schema/xsd:group | $agmodule/xsd:schema/xsd:attributeGroup">
133 <xsl:with-param name="Main" select="$Main"/>
134 </xsl:apply-templates>
135 </xsl:if>
136 </xsl:for-each>
137
138 </xsl:template>
139
140
141
142
143 <xsl:template name="link2">
144 <xsl:param name="Main" select="/"/>
145 <xsl:param name="type"/>
146 <xsl:choose>
147 <xsl:when test="document($Main/xsd:schema/xsd:include/@schemaLocation)">
148 <xsl:for-each select="document($Main/xsd:schema/xsd:include/@schemaLocation)">
149 <xsl:if test="key('type',$type)">
150 <xsl:text> </xsl:text>
151 <a href="#{generate-id(key('type',$type))}">{<xsl:value-of select="$type"/>}</a>
152 </xsl:if>
153 </xsl:for-each>
154 </xsl:when>
155 <xsl:otherwise>
156 <xsl:for-each select="$Main">
157 <xsl:if test="key('type',$type)">
158 <xsl:text> </xsl:text>
159 <a href="#{generate-id(key('type',$type))}">{<xsl:value-of select="$type"/>}</a>
160 </xsl:if>
161 </xsl:for-each>
162 </xsl:otherwise>
163 </xsl:choose>
164 </xsl:template>
165
166
167
168
169 <xsl:template match="xsd:element">
170 <xsl:param name="Main" select="/"/>
171 <ul>
172 <li>
173 <xsl:choose>
174 <xsl:when test="@name">
175 <span style="font-weight:normal; color:darkred;">&lt;<a name="{generate-id()}"><xsl:value-of select="@name"/>&gt;</a></span>
176 <xsl:call-template name="howmany"/>
177 <span style="font-weight:bold; color:darkblue">
178 <xsl:choose>
179 <xsl:when test="@type">
180 <xsl:choose>
181 <xsl:when test="contains(@type,':')">{<xsl:value-of select="@type"/>}</xsl:when>
182 <xsl:otherwise>
183 <xsl:call-template name="link2">
184 <xsl:with-param name="Main" select="$Main"/>
185 <xsl:with-param name="type" select="@type"/>
186 </xsl:call-template>
187 </xsl:otherwise>
188 </xsl:choose>
189 </xsl:when>
190 <xsl:when test="@ref">
191 <xsl:choose>
192 <xsl:when test="contains(@ref,':')">{<xsl:value-of select="@ref"/>}</xsl:when>
193 <xsl:otherwise>
194 <xsl:call-template name="link2">
195 <xsl:with-param name="Main" select="$Main"/>
196 <xsl:with-param name="type" select="@ref"/>
197 </xsl:call-template>
198 </xsl:otherwise>
199 </xsl:choose>
200 </xsl:when>
201 <!--default -->
202 </xsl:choose>
203 </span>
204 <xsl:if test="xsd:annotation">
205 <span style="font-weight:normal; color:black;"><xsl:apply-templates select="xsd:annotation"/></span>
206 </xsl:if>
207 </xsl:when>
208 <xsl:otherwise> <!--only @ref-->
209 <xsl:choose>
210 <xsl:when test="contains(@ref,':')">{<xsl:value-of select="@ref"/>}</xsl:when>
211 <xsl:otherwise>
212 <xsl:call-template name="link2">
213 <xsl:with-param name="Main" select="$Main"/>
214 <xsl:with-param name="type" select="@ref"/>
215 </xsl:call-template>
216 </xsl:otherwise>
217 </xsl:choose>
218 <xsl:if test="xsd:annotation">
219 <span style="font-weight:normal; color:black;"><xsl:apply-templates select="xsd:annotation"/></span>
220 </xsl:if>
221 </xsl:otherwise>
222 </xsl:choose>
223 <xsl:if test="xsd:complexType | xsd:simpleType">
224 <xsl:apply-templates select="xsd:complexType | xsd:simpleType">
225 <xsl:with-param name="Main" select="$Main"/>
226 </xsl:apply-templates>
227 </xsl:if>
228 <xsl:apply-templates select="xsd:unique | xsd:key | xsd:keyref">
229 <xsl:with-param name="Main" select="$Main"/>
230 </xsl:apply-templates>
231 </li>
232 </ul>
233 </xsl:template>
234
235
236
237
238 <xsl:template match="xsd:complexType">
239 <xsl:param name="Main" select="/"/>
240 <xsl:choose>
241 <xsl:when test="@name">
242 <ul>
243 <li>
244 <p style="font-weight:bold; color:darkblue;">
245 <a name="{generate-id()}"><xsl:value-of select="@name"/></a> :
246 <xsl:if test="@mixed='true'">
247 <span> {free text}</span>
248 </xsl:if>
249 <xsl:if test="xsd:annotation">
250 <span style="font-weight:normal; color:black;"><xsl:apply-templates select="xsd:annotation"/></span>
251 </xsl:if>
252 </p>
253 <xsl:apply-templates select="xsd:complexContent | xsd:simpleContent | xsd:sequence | xsd:choice | xsd:all | xsd:group ">
254 <xsl:with-param name="Main" select="$Main"/>
255 </xsl:apply-templates>
256 <xsl:if test="xsd:attributeGroup | xsd:anyAttribute | xsd:attribute">
257 <xsl:apply-templates select="xsd:attributeGroup | xsd:anyAttribute | xsd:attribute">
258 <xsl:with-param name="Main" select="$Main"/>
259 </xsl:apply-templates>
260 </xsl:if>
261 </li>
262 </ul>
263 </xsl:when>
264 <xsl:otherwise>
265 <xsl:apply-templates select="xsd:complexContent | xsd:simpleContent | xsd:sequence | xsd:choice | xsd:all | xsd:group | xsd:attributeGroup | xsd:anyAttribute">
266 <xsl:with-param name="Main" select="$Main"/>
267 </xsl:apply-templates>
268 <xsl:if test="xsd:attribute">
269 <xsl:apply-templates select="xsd:attribute">
270 <xsl:with-param name="Main" select="$Main"/>
271 </xsl:apply-templates>
272 </xsl:if>
273 </xsl:otherwise>
274 </xsl:choose>
275 </xsl:template>
276
277
278
279
280 <xsl:template match="xsd:simpleType">
281 <xsl:param name="Main" select="/"/>
282 <xsl:choose>
283 <xsl:when test="@name">
284 <ul>
285 <li>
286 <p>
287 <span style="font-weight:bold; color:darkblue;">
288 <a name="{generate-id()}"><xsl:value-of select="@name"/></a>
289 </span> :
290 <xsl:if test="xsd:annotation"><xsl:apply-templates select="xsd:annotation"/></xsl:if>
291 </p>
292 <xsl:if test="xsd:restriction | xsd:list | xsd:union">
293 <xsl:apply-templates select="xsd:restriction | xsd:list | xsd:union">
294 <xsl:with-param name="Main" select="$Main"/>
295 </xsl:apply-templates>
296 </xsl:if>
297 </li>
298 </ul>
299 </xsl:when>
300 <xsl:otherwise>
301 <xsl:apply-templates select="xsd:restriction | xsd:list | xsd:union">
302 <xsl:with-param name="Main" select="$Main"/>
303 </xsl:apply-templates>
304 </xsl:otherwise>
305 </xsl:choose>
306 </xsl:template>
307
308
309
310
311 <xsl:template match="xsd:list">
312 <xsl:param name="Main" select="/"/>
313 List of
314 <xsl:choose>
315 <xsl:when test="contains(@itemType,':')">
316 <span style="font-weight:bold; color:darkblue;">
317 {<xsl:value-of select="@itemType"/>}
318 </span>
319 </xsl:when>
320 <xsl:otherwise>
321 <xsl:call-template name="link2">
322 <xsl:with-param name="Main" select="$Main"/>
323 <xsl:with-param name="type" select="@itemType"/>
324 </xsl:call-template>
325 </xsl:otherwise>
326 </xsl:choose>
327 </xsl:template>
328
329
330
331
332 <xsl:template match="xsd:group">
333 <xsl:param name="Main" select="/"/>
334 <ul>
335 <li>
336 <xsl:choose>
337 <xsl:when test="@name">
338 <p style="font-weight:normal; color:darkblue;">
339 <a name="{generate-id()}"><xsl:value-of select="@name"/></a> :
340 </p>
341 <xsl:if test="xsd:all | xsd:choice | xsd:sequence">
342 <xsl:apply-templates select="xsd:all | xsd:choice | xsd:sequence">
343 <xsl:with-param name="Main" select="$Main"/>
344 </xsl:apply-templates>
345
346 </xsl:if>
347 </xsl:when>
348 <xsl:otherwise>
349 <xsl:choose>
350 <xsl:when test="contains(@ref,':')">
351 <span style="font-weight:bold; color:darkblue;">
352 {<xsl:value-of select="@ref"/>}
353 </span>
354 </xsl:when>
355 <xsl:otherwise>
356 <xsl:call-template name="link2">
357 <xsl:with-param name="Main" select="$Main"/>
358 <xsl:with-param name="type" select="@ref"/>
359 </xsl:call-template>
360 </xsl:otherwise>
361 </xsl:choose>
362 </xsl:otherwise>
363 </xsl:choose>
364 </li>
365 </ul>
366 </xsl:template>
367
368
369
370
371 <xsl:template match="xsd:attributeGroup">
372 <xsl:param name="Main" select="/"/>
373 <ul>
374 <li>
375 <xsl:choose>
376 <xsl:when test="@name">
377 <p style="font-weight:normal; color:darkblue;">
378 <a name="{generate-id()}"><xsl:value-of select="@name"/></a> :
379 </p>
380 </xsl:when>
381 <xsl:otherwise>
382 <xsl:call-template name="link2">
383 <xsl:with-param name="Main" select="$Main"/>
384 <xsl:with-param name="type" select="@ref"/>
385 </xsl:call-template>
386 </xsl:otherwise>
387 </xsl:choose>
388 <xsl:if test="xsd:attribute | xsd:attributeGroup | xsd:anyAttribute">
389 <xsl:apply-templates select="xsd:attribute | xsd:attributeGroup | xsd:anyAttribute">
390 <xsl:with-param name="Main" select="$Main"/>
391 </xsl:apply-templates>
392 </xsl:if>
393 </li>
394 </ul>
395 </xsl:template>
396
397
398
399
400 <xsl:template match="xsd:any">
401 <span style="font-weight:bold;">any</span>
402 </xsl:template>
403
404
405
406
407 <xsl:template match="xsd:sequence">
408 <xsl:param name="Main" select="/"/>
409 <ul>
410 <li>
411 <div style="font-weight:bold; color:darkblue">(<xsl:call-template name="howmany"/></div>
412 <xsl:apply-templates>
413 <xsl:with-param name="Main" select="$Main"/>
414 </xsl:apply-templates>
415 <div style="font-weight:bold; color:darkblue">)</div>
416 </li>
417 </ul>
418 </xsl:template>
419
420
421
422
423 <xsl:template match="xsd:choice">
424 <xsl:param name="Main" select="/"/>
425 <ul>
426 <li>
427 <div style="font-weight:bold; color:darkblue">[<xsl:call-template name="howmany"/></div>
428 <xsl:apply-templates>
429 <xsl:with-param name="Main" select="$Main"/>
430 </xsl:apply-templates>
431 <div style="font-weight:bold; color:darkblue">]</div>
432 </li>
433 </ul>
434 </xsl:template>
435
436
437
438
439 <xsl:template match="xsd:all">
440 <xsl:param name="Main" select="/"/>
441 <ul>
442 <li>
443 <div style="font-weight:bold; color:darkblue">([<xsl:call-template name="howmany"/></div>
444 <xsl:apply-templates>
445 <xsl:with-param name="Main" select="$Main"/>
446 </xsl:apply-templates>
447 <div style="font-weight:bold; color:darkblue">])</div>
448 </li>
449 </ul>
450 </xsl:template>
451
452
453
454
455 <xsl:template match="xsd:attribute">
456 <xsl:param name="Main" select="/"/>
457 <ul>
458 <li>
459 <xsl:if test="@name">
460 <span style="font-weight:normal; color:darkgreen;">
461 <xsl:value-of select="@name"/> :
462 </span>
463 </xsl:if>
464 <span style="font-weight:bold; color:darkblue">
465 <xsl:choose>
466 <xsl:when test="@type">
467 <xsl:choose>
468 <xsl:when test="contains(@type,':')">{<xsl:value-of select="@type"/>}</xsl:when>
469 <xsl:otherwise>
470 <xsl:call-template name="link2">
471 <xsl:with-param name="Main" select="$Main"/>
472 <xsl:with-param name="type" select="@type"/>
473 </xsl:call-template>
474 </xsl:otherwise>
475 </xsl:choose>
476 </xsl:when>
477 </xsl:choose>
478 </span>
479 <xsl:apply-templates select="xsd:annotation"/>
480 <xsl:apply-templates select="xsd:simpleType">
481 <xsl:with-param name="Main" select="$Main"/>
482 </xsl:apply-templates>
483 </li>
484 </ul>
485 </xsl:template>
486
487
488
489
490 <xsl:template match="xsd:extension">
491 <xsl:param name="Main" select="/"/>
492 <ul>
493 <li>
494 <span style="font-weight:bold; color:darkblue">&lt;&lt;
495 <xsl:choose>
496 <xsl:when test="contains(@base,':')">{<xsl:value-of select="@base"/>}</xsl:when>
497 <xsl:otherwise>
498 <xsl:call-template name="link2">
499 <xsl:with-param name="Main" select="$Main"/>
500 <xsl:with-param name="type" select="@base"/>
501 </xsl:call-template>
502 </xsl:otherwise>
503 </xsl:choose>
504 &gt;&gt;</span>
505 <xsl:apply-templates>
506 <xsl:with-param name="Main" select="$Main"/>
507 <xsl:sort select="@value" order="ascending"/>
508 </xsl:apply-templates>
509 </li>
510 </ul>
511 </xsl:template>
512
513
514
515
516 <xsl:template match="xsd:restriction">
517 <xsl:param name="Main" select="/"/>
518 <ul>
519 <li>
520 <span style="font-weight:bold; color:darkblue">&gt;&gt;
521 <xsl:choose>
522 <xsl:when test="contains(@base,':')">{<xsl:value-of select="@base"/>}</xsl:when>
523 <xsl:otherwise>
524 <xsl:call-template name="link2">
525 <xsl:with-param name="Main" select="$Main"/>
526 <xsl:with-param name="type" select="@base"/>
527 </xsl:call-template>
528 </xsl:otherwise>
529 </xsl:choose>&lt;&lt;</span>
530 <xsl:apply-templates>
531 <xsl:with-param name="Main" select="$Main"/>
532 <xsl:sort select="@value" order="ascending"/>
533 </xsl:apply-templates>
534 </li>
535 </ul>
536 </xsl:template>
537
538
539
540
541 <xsl:template match="xsd:pattern">
542 <div>
543 pattern:<span style="font-weight:normal; color:blue">&#9;
544 <xsl:value-of select="@value"/>
545 </span>
546 </div>
547 </xsl:template>
548
549
550
551
552 <xsl:template match="xsd:simpleContent">
553 <xsl:param name="Main" select="/"/>
554 <xsl:apply-templates>
555 <xsl:with-param name="Main" select="$Main"/>
556 </xsl:apply-templates>
557 </xsl:template>
558
559
560
561
562 <xsl:template match="xsd:complexContent">
563 <xsl:param name="Main" select="/"/>
564 <xsl:apply-templates>
565 <xsl:with-param name="Main" select="$Main"/>
566 </xsl:apply-templates>
567 </xsl:template>
568
569
570
571
572 <xsl:template match="xsd:enumeration">
573 <div style="font-weight:normal; color:blue">
574 <xsl:value-of select="@value"/>
575 <xsl:apply-templates/>
576 </div>
577 </xsl:template>
578
579
580
581
582 <xsl:template match="xsd:documentation">
583 <span style="font-weight:normal; color:black">
584 <xsl:text>&#9;</xsl:text><xsl:value-of select="text()"/>
585 </span>
586 </xsl:template>
587
588
589
590
591 <xsl:template name="howmany">
592 <xsl:choose>
593 <xsl:when test="@minOccurs='0' and @maxOccurs='unbounded'">*</xsl:when>
594 <xsl:when test="@minOccurs='0' and (not(@maxOccurs) or @maxOccurs='1')">?</xsl:when>
595 <xsl:when test="(not(@minOccurs) or @minOccurs='1') and @maxOccurs='unbounded'">+ </xsl:when>
596 <xsl:otherwise>
597 <xsl:if test="@minOccurs and @maxOccurs!='1'">
598 <xsl:value-of select="@minOccurs"/>
599 <xsl:if test="@maxOccurs='unbounded'">+</xsl:if>
600 <xsl:if test="@maxOccurs!='unbounded'">-<xsl:value-of select="@maxOccurs"/>
601 </xsl:if>
602 </xsl:if>
603 </xsl:otherwise>
604 </xsl:choose>
605 </xsl:template>
606
607
608
609
610 <xsl:template match="xsd:minExclusive">
611 &gt;<xsl:value-of select="@value"/>
612 </xsl:template>
613
614
615
616
617 <xsl:template match="xsd:maxExclusive">
618 &lt;<xsl:value-of select="@value"/>
619 </xsl:template>
620
621
622
623
624 <xsl:template match="xsd:minInclusive">
625 &gt;=<xsl:value-of select="@value"/>
626 </xsl:template>
627
628
629
630
631 <xsl:template match="xsd:maxInclusive">
632 &lt;=<xsl:value-of select="@value"/>
633 </xsl:template>
634
635
636
637
638 <xsl:template match="/">
639 <html>
640 <head>
641 <title>
642 <xsl:value-of select="xsd:schema/@id"/> Schema version <xsl:value-of select="xsd:schema/@version"/>
643 </title>
644 </head>
645 <body style="font:sans-serif;">
646 <h3><xsl:value-of select="xsd:schema/@id"/> Schema version <xsl:value-of select="xsd:schema/@version"/></h3>
647 <div style="font-weight:bold">Notation and color conventions of this schema representation:</div>
648 <div>a choice: [x y z] ; a sequence: (x y z) ; (* x,y) is the same as the dtd-like notation (x,y)*</div>
649 <div>Colours used:
650 <span style="font-weight:bold; color:darkblue">{type declarations}</span>; <span style="font-weight:normal; color:darkred"> element names </span>
651 <span style="font-weight:normal; color:darkgreen">attribute names </span>;
652 <span style="font-weight:normal; color:blue">restriction/extension facets</span>; <a style="font-weight:bold" href="#">{links to type definitions}</a>; <span style="font-weight:normal; color:black">comments</span>; </div>
653 <div>an extension of a type is {&lt;&lt;type&gt;&gt;} ; and a restriction to it : {&gt;&gt;type&lt;&lt;}</div>
654 <xsl:apply-templates/>
655 <p style="font-weight:normal;text-align:right">Schema viewer developed by <a href="http://romeo.roua.org">Romeo Anghelache</a>, copyleft <a href="http://www.gnu.org">GNU</a><xsl:text> </xsl:text><a href="http://www.gnu.org/licenses/gpl.html">GPL</a>, 2001, version 1.01</p>
656 </body>
657 </html>
658 </xsl:template>
659
660 </xsl:stylesheet>

msdemlei@ari.uni-heidelberg.de
ViewVC Help
Powered by ViewVC 1.1.26