Imported Upstream version 2.8.0
[platform/upstream/libxml2.git] / doc / site.xsl
1 <?xml version="1.0"?>
2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3   <xsl:output method="xml" encoding="UTF-8" indent="yes"
4       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
5       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
6
7   <xsl:variable name="href_base" select="''"/>
8   <xsl:variable name="menu_name">Main Menu</xsl:variable>
9 <!--
10  - returns the filename associated to an ID in the original file
11  -->
12   <xsl:template name="tocfilename">
13     <xsl:param name="name" select="string(@href)"/>
14     <xsl:choose>
15       <xsl:when test="$name = '#Introducti'">
16         <xsl:text>intro.html</xsl:text>
17       </xsl:when>
18       <xsl:when test="$name = '#Documentat'">
19         <xsl:text>docs.html</xsl:text>
20       </xsl:when>
21       <xsl:when test="$name = '#Reporting'">
22         <xsl:text>bugs.html</xsl:text>
23       </xsl:when>
24       <xsl:when test="$name = '#help'">
25         <xsl:text>help.html</xsl:text>
26       </xsl:when>
27       <xsl:when test="$name = '#Help'">
28         <xsl:text>help.html</xsl:text>
29       </xsl:when>
30       <xsl:when test="$name = '#Downloads'">
31         <xsl:text>downloads.html</xsl:text>
32       </xsl:when>
33       <xsl:when test="$name = '#News'">
34         <xsl:text>news.html</xsl:text>
35       </xsl:when>
36       <xsl:when test="$name = '#Contributi'">
37         <xsl:text>contribs.html</xsl:text>
38       </xsl:when>
39       <xsl:when test="$name = '#xsltproc'">
40         <xsl:text>xsltproc2.html</xsl:text>
41       </xsl:when>
42       <xsl:when test="$name = '#API'">
43         <xsl:text></xsl:text>
44       </xsl:when>
45       <xsl:when test="$name = '#XSLT'">
46         <xsl:text>XSLT.html</xsl:text>
47       </xsl:when>
48       <xsl:when test="$name = '#XML'">
49         <xsl:text>XMLinfo.html</xsl:text>
50       </xsl:when>
51       <xsl:when test="$name = '#Validation'">
52         <xsl:text>xmldtd.html</xsl:text>
53       </xsl:when>
54       <xsl:when test="$name = '#tree'">
55         <xsl:text></xsl:text>
56       </xsl:when>
57       <xsl:when test="$name = '#library'">
58         <xsl:text></xsl:text>
59       </xsl:when>
60       <xsl:when test="$name = '#interface'">
61         <xsl:text></xsl:text>
62       </xsl:when>
63       <xsl:when test="$name = '#Example'">
64         <xsl:text></xsl:text>
65       </xsl:when>
66       <xsl:when test="$name = '#Entities'">
67         <xsl:text></xsl:text>
68       </xsl:when>
69       <xsl:when test="$name = '#architecture'">
70         <xsl:text></xsl:text>
71       </xsl:when>
72       <xsl:when test="$name = '#Namespaces'">
73         <xsl:text>namespaces.html</xsl:text>
74       </xsl:when>
75       <xsl:when test="$name = '#DOM'">
76         <xsl:text></xsl:text>
77       </xsl:when>
78       <xsl:when test="$name = '#Catalog'">
79         <xsl:text>catalog.html</xsl:text>
80       </xsl:when>
81       <xsl:when test="$name = '#Upgrading'">
82         <xsl:text></xsl:text>
83       </xsl:when>
84       <xsl:when test="$name = '#Encodings'">
85         <xsl:text>encoding.html</xsl:text>
86       </xsl:when>
87       <xsl:when test="$name = '#IO'">
88         <xsl:text></xsl:text>
89       </xsl:when>
90       <xsl:when test="$name = '#Memory'">
91         <xsl:text></xsl:text>
92       </xsl:when>
93       <xsl:when test="$name = '#Thread'">
94         <xsl:text></xsl:text>
95       </xsl:when>
96       <xsl:when test="$name = '#FAQ'">
97         <xsl:text>FAQ.html</xsl:text>
98       </xsl:when>
99       <xsl:when test="$name = '#Python'">
100         <xsl:text></xsl:text>
101       </xsl:when>
102       <xsl:when test="$name = ''">
103         <xsl:text>unknown.html</xsl:text>
104       </xsl:when>
105       <xsl:otherwise>
106         <xsl:value-of select="$name"/>
107       </xsl:otherwise>
108     </xsl:choose>
109   </xsl:template>
110   <xsl:template name="docfilename">
111     <xsl:param name="name" select="string(@href)"/>
112     <xsl:choose>
113       <xsl:when test="$name = '#Introducti'">
114         <xsl:text></xsl:text>
115       </xsl:when>
116       <xsl:when test="$name = '#Documentat'">
117         <xsl:text></xsl:text>
118       </xsl:when>
119       <xsl:when test="$name = '#Reporting'">
120         <xsl:text></xsl:text>
121       </xsl:when>
122       <xsl:when test="$name = '#help'">
123         <xsl:text></xsl:text>
124       </xsl:when>
125       <xsl:when test="$name = '#Help'">
126         <xsl:text></xsl:text>
127       </xsl:when>
128       <xsl:when test="$name = '#Downloads'">
129         <xsl:text></xsl:text>
130       </xsl:when>
131       <xsl:when test="$name = '#News'">
132         <xsl:text></xsl:text>
133       </xsl:when>
134       <xsl:when test="$name = '#Contributi'">
135         <xsl:text></xsl:text>
136       </xsl:when>
137       <xsl:when test="$name = '#xsltproc'">
138         <xsl:text>xsltproc2.html</xsl:text>
139       </xsl:when>
140       <xsl:when test="$name = '#API'">
141         <xsl:text>API.html</xsl:text>
142       </xsl:when>
143       <xsl:when test="$name = '#XSLT'">
144         <xsl:text>XSLT.html</xsl:text>
145       </xsl:when>
146       <xsl:when test="$name = '#XML'">
147         <xsl:text></xsl:text>
148       </xsl:when>
149       <xsl:when test="$name = '#Validation'">
150         <xsl:text></xsl:text>
151       </xsl:when>
152       <xsl:when test="$name = '#tree'">
153         <xsl:text>tree.html</xsl:text>
154       </xsl:when>
155       <xsl:when test="$name = '#library'">
156         <xsl:text>library.html</xsl:text>
157       </xsl:when>
158       <xsl:when test="$name = '#interface'">
159         <xsl:text>interface.html</xsl:text>
160       </xsl:when>
161       <xsl:when test="$name = '#Example'">
162         <xsl:text>example.html</xsl:text>
163       </xsl:when>
164       <xsl:when test="$name = '#Entities'">
165         <xsl:text>entities.html</xsl:text>
166       </xsl:when>
167       <xsl:when test="$name = '#architecture'">
168         <xsl:text>architecture.html</xsl:text>
169       </xsl:when>
170       <xsl:when test="$name = '#Namespaces'">
171         <xsl:text>namespaces.html</xsl:text>
172       </xsl:when>
173       <xsl:when test="$name = '#DOM'">
174         <xsl:text>DOM.html</xsl:text>
175       </xsl:when>
176       <xsl:when test="$name = '#Catalog'">
177         <xsl:text></xsl:text>
178       </xsl:when>
179       <xsl:when test="$name = '#Upgrading'">
180         <xsl:text>upgrade.html</xsl:text>
181       </xsl:when>
182       <xsl:when test="$name = '#Encodings'">
183         <xsl:text></xsl:text>
184       </xsl:when>
185       <xsl:when test="$name = '#IO'">
186         <xsl:text>xmlio.html</xsl:text>
187       </xsl:when>
188       <xsl:when test="$name = '#Memory'">
189         <xsl:text>xmlmem.html</xsl:text>
190       </xsl:when>
191       <xsl:when test="$name = '#Thread'">
192         <xsl:text>threads.html</xsl:text>
193       </xsl:when>
194       <xsl:when test="$name = '#FAQ'">
195         <xsl:text></xsl:text>
196       </xsl:when>
197       <xsl:when test="$name = '#Python'">
198         <xsl:text>python.html</xsl:text>
199       </xsl:when>
200       <xsl:when test="$name = ''">
201         <xsl:text>unknown.html</xsl:text>
202       </xsl:when>
203       <xsl:otherwise>
204         <xsl:value-of select="$name"/>
205       </xsl:otherwise>
206     </xsl:choose>
207   </xsl:template>
208   <xsl:template name="filename">
209     <xsl:param name="name" select="string(@href)"/>
210     <xsl:choose>
211       <xsl:when test="$name = '#Introducti'">
212         <xsl:text>intro.html</xsl:text>
213       </xsl:when>
214       <xsl:when test="$name = '#Documentat'">
215         <xsl:text>docs.html</xsl:text>
216       </xsl:when>
217       <xsl:when test="$name = '#Reporting'">
218         <xsl:text>bugs.html</xsl:text>
219       </xsl:when>
220       <xsl:when test="$name = '#help'">
221         <xsl:text>help.html</xsl:text>
222       </xsl:when>
223       <xsl:when test="$name = '#Help'">
224         <xsl:text>help.html</xsl:text>
225       </xsl:when>
226       <xsl:when test="$name = '#Downloads'">
227         <xsl:text>downloads.html</xsl:text>
228       </xsl:when>
229       <xsl:when test="$name = '#News'">
230         <xsl:text>news.html</xsl:text>
231       </xsl:when>
232       <xsl:when test="$name = '#Contributi'">
233         <xsl:text>contribs.html</xsl:text>
234       </xsl:when>
235       <xsl:when test="$name = '#xsltproc'">
236         <xsl:text>xsltproc2.html</xsl:text>
237       </xsl:when>
238       <xsl:when test="$name = '#API'">
239         <xsl:text>API.html</xsl:text>
240       </xsl:when>
241       <xsl:when test="$name = '#XSLT'">
242         <xsl:text>XSLT.html</xsl:text>
243       </xsl:when>
244       <xsl:when test="$name = '#XML'">
245         <xsl:text>XMLinfo.html</xsl:text>
246       </xsl:when>
247       <xsl:when test="$name = '#Validation'">
248         <xsl:text>xmldtd.html</xsl:text>
249       </xsl:when>
250       <xsl:when test="$name = '#tree'">
251         <xsl:text>tree.html</xsl:text>
252       </xsl:when>
253       <xsl:when test="$name = '#library'">
254         <xsl:text>library.html</xsl:text>
255       </xsl:when>
256       <xsl:when test="$name = '#interface'">
257         <xsl:text>interface.html</xsl:text>
258       </xsl:when>
259       <xsl:when test="$name = '#Example'">
260         <xsl:text>example.html</xsl:text>
261       </xsl:when>
262       <xsl:when test="$name = '#Entities'">
263         <xsl:text>entities.html</xsl:text>
264       </xsl:when>
265       <xsl:when test="$name = '#architecture'">
266         <xsl:text>architecture.html</xsl:text>
267       </xsl:when>
268       <xsl:when test="$name = '#Namespaces'">
269         <xsl:text>namespaces.html</xsl:text>
270       </xsl:when>
271       <xsl:when test="$name = '#DOM'">
272         <xsl:text>DOM.html</xsl:text>
273       </xsl:when>
274       <xsl:when test="$name = '#Catalog'">
275         <xsl:text>catalog.html</xsl:text>
276       </xsl:when>
277       <xsl:when test="$name = '#Upgrading'">
278         <xsl:text>upgrade.html</xsl:text>
279       </xsl:when>
280       <xsl:when test="$name = '#Encodings'">
281         <xsl:text>encoding.html</xsl:text>
282       </xsl:when>
283       <xsl:when test="$name = '#IO'">
284         <xsl:text>xmlio.html</xsl:text>
285       </xsl:when>
286       <xsl:when test="$name = '#Memory'">
287         <xsl:text>xmlmem.html</xsl:text>
288       </xsl:when>
289       <xsl:when test="$name = '#Thread'">
290         <xsl:text>threads.html</xsl:text>
291       </xsl:when>
292       <xsl:when test="$name = '#FAQ'">
293         <xsl:text>FAQ.html</xsl:text>
294       </xsl:when>
295       <xsl:when test="$name = '#Python'">
296         <xsl:text>python.html</xsl:text>
297       </xsl:when>
298       <xsl:when test="$name = ''">
299         <xsl:text>unknown.html</xsl:text>
300       </xsl:when>
301       <xsl:otherwise>
302         <xsl:value-of select="$name"/>
303       </xsl:otherwise>
304     </xsl:choose>
305   </xsl:template>
306 <!--
307  - The global title
308  -->
309   <xsl:variable name="globaltitle" select="string(/html/body/h1[1])"/>
310 <!--
311  - The table of content
312  -->
313   <xsl:variable name="toc">
314     <form action="search.php"
315           enctype="application/x-www-form-urlencoded" method="get">
316       <input name="query" type="text" size="20" value=""/>
317       <input name="submit" type="submit" value="Search ..."/>
318     </form>
319     <ul><!-- style="margin-left: -1em" -->
320       <li><a href="index.html">Home</a></li>
321       <!--<li><a href="http://xmlsoft.org/wiki">Wiki</a></li> -->
322       <li><a href="html/index.html">Reference Manual</a></li>
323       <xsl:for-each select="/html/body/h2">
324         <xsl:variable name="filename">
325           <xsl:call-template name="tocfilename">
326             <xsl:with-param name="name" select="concat('#', string(a[1]/@name))"/>
327           </xsl:call-template>
328         </xsl:variable>
329         <xsl:if test="$filename != ''">
330           <li>
331             <xsl:element name="a">
332               <xsl:attribute name="href">
333                 <xsl:value-of select="$filename"/>
334               </xsl:attribute>
335               <xsl:if test="$filename = 'docs.html'">
336                   <xsl:attribute name="style">font-weight:bold</xsl:attribute>
337               </xsl:if>
338               <xsl:value-of select="."/>
339             </xsl:element>
340           </li>
341         </xsl:if>
342       </xsl:for-each>
343       <li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li>
344       <li><a href="html/index.html" style="font-weight:bold">API Menu</a></li>
345       <li><a href="guidelines.html">XML Guidelines</a></li>
346       <li><a href="ChangeLog.html">Recent Changes</a></li>
347     </ul>
348   </xsl:variable>
349   <xsl:variable name="develtoc">
350     <form action="search.php"
351           enctype="application/x-www-form-urlencoded" method="get">
352       <input name="query" type="text" size="20" value=""/>
353       <input name="submit" type="submit" value="Search ..."/>
354     </form>
355     <ul><!-- style="margin-left: -1em" -->
356       <li><a href="index.html" style="font-weight:bold">Main Menu</a></li>
357       <li><a href="html/index.html" style="font-weight:bold">Reference Manual</a></li>
358       <li><a href="examples/index.html" style="font-weight:bold">Code Examples</a></li>
359       <li><a href="guidelines.html">XML Guidelines</a></li>
360       <li><a href="tutorial/index.html">Tutorial</a></li>
361       <li><a href="xmlreader.html">The Reader Interface</a></li>
362       <li><a href="ChangeLog.html">ChangeLog</a></li>
363       <xsl:for-each select="/html/body/h2">
364         <xsl:variable name="filename">
365           <xsl:call-template name="docfilename">
366             <xsl:with-param name="name" select="concat('#', string(a[1]/@name))"/>
367           </xsl:call-template>
368         </xsl:variable>
369         <xsl:if test="$filename != ''">
370           <li>
371             <xsl:element name="a">
372               <xsl:attribute name="href">
373                 <xsl:value-of select="$filename"/>
374               </xsl:attribute>
375               <xsl:value-of select="."/>
376             </xsl:element>
377           </li>
378         </xsl:if>
379       </xsl:for-each>
380       <li><a href="xml.html">flat page</a>, <a href="site.xsl">stylesheet</a></li>
381     </ul>
382   </xsl:variable>
383   <xsl:variable name="api">
384     <ul><!-- style="margin-left: -1em" -->
385       <li><a href="{$href_base}APIchunk0.html">Alphabetic</a></li>
386       <li><a href="{$href_base}APIconstructors.html">Constructors</a></li>
387       <li><a href="{$href_base}APIfunctions.html">Functions/Types</a></li>
388       <li><a href="{$href_base}APIfiles.html">Modules</a></li>
389       <li><a href="{$href_base}APIsymbols.html">Symbols</a></li>
390     </ul>
391   </xsl:variable>
392   <xsl:variable name="related">
393     <ul><!-- style="margin-left: -1em" -->
394       <li><a href="http://mail.gnome.org/archives/xml/">Mail archive</a></li>
395       <li><a href="http://xmlsoft.org/XSLT/">XSLT libxslt</a></li>
396       <li><a href="http://phd.cs.unibo.it/gdome2/">DOM gdome2</a></li>
397       <li><a href="http://www.aleksey.com/xmlsec/">XML-DSig xmlsec</a></li>
398       <li><a href="ftp://xmlsoft.org/">FTP</a></li>
399       <li><a href="http://www.zlatkovic.com/projects/libxml/">Windows binaries</a></li>
400       <li><a href="http://opencsw.org/packages/libxml2">Solaris binaries</a></li>
401       <li><a href="http://www.explain.com.au/oss/libxml2xslt.html">MacOsX binaries</a></li>
402       <li><a href="http://lxml.de/">lxml Python bindings</a></li>
403       <li><a href="http://cpan.uwinnipeg.ca/dist/XML-LibXML">Perl bindings</a></li>
404       <li><a href="http://libxmlplusplus.sourceforge.net/">C++ bindings</a></li>
405       <li><a href="http://www.zend.com/php5/articles/php5-xmlphp.php#Heading4">PHP bindings</a></li>
406       <li><a href="http://sourceforge.net/projects/libxml2-pas/">Pascal bindings</a></li>
407       <li><a href="http://libxml.rubyforge.org/">Ruby bindings</a></li>
408       <li><a href="http://tclxml.sourceforge.net/">Tcl bindings</a></li>
409       <li><a href="http://bugzilla.gnome.org/buglist.cgi?product=libxml2">Bug Tracker</a></li>
410     </ul>
411   </xsl:variable>
412   <xsl:template name="toc">
413     <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
414       <tr>
415         <td>
416           <table width="100%" border="0" cellspacing="1" cellpadding="3">
417             <tr>
418               <td colspan="1" bgcolor="#eecfa1" align="center">
419                 <center>
420                   <b><xsl:value-of select="$menu_name"/></b>
421                 </center>
422               </td>
423             </tr>
424             <tr>
425               <td bgcolor="#fffacd">
426                 <xsl:copy-of select="$toc"/>
427               </td>
428             </tr>
429           </table>
430           <table width="100%" border="0" cellspacing="1" cellpadding="3">
431             <tr>
432               <td colspan="1" bgcolor="#eecfa1" align="center">
433                 <center>
434                   <b>Related links</b>
435                 </center>
436               </td>
437             </tr>
438             <tr>
439               <td bgcolor="#fffacd">
440                 <xsl:copy-of select="$related"/>
441               </td>
442             </tr>
443           </table>
444         </td>
445       </tr>
446     </table>
447   </xsl:template>
448   <xsl:template name="develtoc">
449     <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
450       <tr>
451         <td>
452           <table width="100%" border="0" cellspacing="1" cellpadding="3">
453             <tr>
454               <td colspan="1" bgcolor="#eecfa1" align="center">
455                 <center>
456                   <b>Developer Menu</b>
457                 </center>
458               </td>
459             </tr>
460             <tr>
461               <td bgcolor="#fffacd">
462                 <xsl:copy-of select="$develtoc"/>
463               </td>
464             </tr>
465           </table>
466           <table width="100%" border="0" cellspacing="1" cellpadding="3">
467             <tr>
468               <td colspan="1" bgcolor="#eecfa1" align="center">
469                 <center>
470                   <b>API Indexes</b>
471                 </center>
472               </td>
473             </tr>
474             <tr>
475               <td bgcolor="#fffacd">
476                 <xsl:copy-of select="$api"/>
477               </td>
478             </tr>
479           </table>
480           <table width="100%" border="0" cellspacing="1" cellpadding="3">
481             <tr>
482               <td colspan="1" bgcolor="#eecfa1" align="center">
483                 <center>
484                   <b>Related links</b>
485                 </center>
486               </td>
487             </tr>
488             <tr>
489               <td bgcolor="#fffacd">
490                 <xsl:copy-of select="$related"/>
491               </td>
492             </tr>
493           </table>
494         </td>
495       </tr>
496     </table>
497   </xsl:template>
498   <xsl:template mode="head" match="title">
499     <title>
500       <xsl:apply-templates/>
501     </title>
502   </xsl:template>
503   <xsl:template mode="head" match="meta">
504 </xsl:template>
505 <!--
506  - Write the styles in the head
507  -->
508   <xsl:template name="style">
509     <link rel="SHORTCUT ICON" href="/favicon.ico"/> 
510     <style type="text/css">
511 TD {font-family: Verdana,Arial,Helvetica}
512 BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
513 H1 {font-family: Verdana,Arial,Helvetica}
514 H2 {font-family: Verdana,Arial,Helvetica}
515 H3 {font-family: Verdana,Arial,Helvetica}
516 A:link, A:visited, A:active { text-decoration: underline }
517 </style>
518   </xsl:template>
519 <!--
520  - Write the title box on top
521  -->
522   <xsl:template name="titlebox">
523     <xsl:param name="title" select="'Main Page'"/>
524     <table border="0" width="100%" cellpadding="5" cellspacing="0" align="center">
525     <tr>
526     <td width="120">
527     <a href="http://swpat.ffii.org/"><img src="{$href_base}epatents.png" alt="Action against software patents"/></a>
528     </td>
529     <td width="180">
530     <a href="http://www.gnome.org/"><img src="{$href_base}gnome2.png" alt="Gnome2 Logo"/></a>
531     <a href="http://www.w3.org/Status"><img src="{$href_base}w3c.png" alt="W3C Logo"/></a>
532     <a href="http://www.redhat.com/"><img src="{$href_base}redhat.gif" alt="Red Hat Logo"/></a>
533     <div align="left">
534     <a href="http://xmlsoft.org/"><img src="{$href_base}Libxml2-Logo-180x168.gif" alt="Made with Libxml2 Logo"/></a>
535     </div>
536     </td>
537     <td>
538     <table border="0" width="90%" cellpadding="2" cellspacing="0" align="center" bgcolor="#000000">
539       <tr>
540         <td>
541           <table width="100%" border="0" cellspacing="1" cellpadding="3" bgcolor="#fffacd">
542             <tr>
543               <td align="center">
544                 <xsl:element name="h1">
545                   <xsl:value-of select="$globaltitle"/>
546                 </xsl:element>
547                 <xsl:element name="h2">
548                   <xsl:value-of select="$title"/>
549                 </xsl:element>
550               </td>
551             </tr>
552           </table>
553         </td>
554       </tr>
555     </table>
556     </td>
557     </tr>
558     </table>
559   </xsl:template>
560 <!--
561  - Handling of nodes in the body before the first H2, table of content
562  - Everything is just copied over, except href which may get rewritten
563  - and h1/h2/a at the top level
564  -->
565   <xsl:template priority="2" mode="subcontent" match="a">
566     <xsl:variable name="filename">
567       <xsl:call-template name="filename">
568         <xsl:with-param name="name" select="string(@href)"/>
569       </xsl:call-template>
570     </xsl:variable>
571     <xsl:copy>
572       <xsl:attribute name="href">
573         <xsl:value-of select="$filename"/>
574       </xsl:attribute>
575       <xsl:apply-templates mode="subcontent" select="node()"/>
576     </xsl:copy>
577   </xsl:template>
578   <xsl:template mode="subcontent" match="@*|node()">
579     <xsl:copy>
580       <xsl:apply-templates mode="subcontent" select="@*|node()"/>
581     </xsl:copy>
582   </xsl:template>
583   <xsl:template mode="content" match="@*|node()">
584     <xsl:if test="name() != 'h1' and name() != 'h2'">
585       <xsl:copy>
586         <xsl:apply-templates mode="subcontent" select="@*|node()"/>
587       </xsl:copy>
588     </xsl:if>
589   </xsl:template>
590 <!--
591  - Handling of nodes in the body after an H2
592  - Open a new file and dump all the siblings up to the next H2
593  -->
594   <xsl:template name="subfile">
595     <xsl:param name="header" select="following-sibling::h2[1]"/>
596     <xsl:variable name="filename">
597       <xsl:call-template name="filename">
598         <xsl:with-param name="name" select="concat('#', string($header/a[1]/@name))"/>
599       </xsl:call-template>
600     </xsl:variable>
601     <xsl:variable name="tocfilename">
602       <xsl:call-template name="tocfilename">
603         <xsl:with-param name="name" select="concat('#', string($header/a[1]/@name))"/>
604       </xsl:call-template>
605     </xsl:variable>
606     <xsl:variable name="title">
607       <xsl:value-of select="$header"/>
608     </xsl:variable>
609     <xsl:document href="{$filename}" method="xml" encoding="UTF-8"
610       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
611       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
612       <html>
613         <head>
614           <xsl:call-template name="style"/>
615           <xsl:element name="title">
616             <xsl:value-of select="$title"/>
617           </xsl:element>
618         </head>
619         <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
620           <xsl:call-template name="titlebox">
621             <xsl:with-param name="title" select="$title"/>
622           </xsl:call-template>
623           <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
624             <tr>
625               <td bgcolor="#8b7765">
626                 <table border="0" cellspacing="0" cellpadding="2" width="100%">
627                   <tr>
628                     <td valign="top" width="200" bgcolor="#8b7765">
629                       <xsl:choose>
630                         <xsl:when test="$filename = 'docs.html'">
631                           <xsl:call-template name="develtoc"/>
632                         </xsl:when>
633                         <xsl:when test="$tocfilename = ''">
634                           <xsl:call-template name="develtoc"/>
635                         </xsl:when>
636                         <xsl:otherwise>
637                           <xsl:call-template name="toc"/>
638                         </xsl:otherwise>
639                       </xsl:choose>
640                     </td>
641                     <td valign="top" bgcolor="#8b7765">
642                       <table border="0" cellspacing="0" cellpadding="1" width="100%">
643                         <tr>
644                           <td>
645                             <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
646                               <tr>
647                                 <td>
648                                   <table border="0" cellpadding="3" cellspacing="1" width="100%">
649                                     <tr>
650                                       <td bgcolor="#fffacd">
651                                         <xsl:apply-templates mode="subfile" select="$header/following-sibling::*[preceding-sibling::h2[1] = $header         and name() != 'h2' ]"/>
652                                         <p><a href="bugs.html">Daniel Veillard</a></p>
653                                       </td>
654                                     </tr>
655                                   </table>
656                                 </td>
657                               </tr>
658                             </table>
659                           </td>
660                         </tr>
661                       </table>
662                     </td>
663                   </tr>
664                 </table>
665               </td>
666             </tr>
667           </table>
668         </body>
669       </html>
670     </xsl:document>
671   </xsl:template>
672   <xsl:template mode="subfile" match="@*|node()">
673     <xsl:copy>
674       <xsl:apply-templates mode="content" select="@*|node()"/>
675     </xsl:copy>
676   </xsl:template>
677 <!--
678  - Handling of the initial body and head HTML document
679  -->
680   <xsl:template match="body">
681     <xsl:variable name="firsth2" select="./h2[1]"/>
682     <xsl:variable name="rest2" select="./h2[position()&gt;1]"/>
683     <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
684       <xsl:call-template name="titlebox">
685         <xsl:with-param name="title" select="'libxml'"/>
686       </xsl:call-template>
687       <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
688         <tr>
689           <td bgcolor="#8b7765">
690             <table border="0" cellspacing="0" cellpadding="2" width="100%">
691               <tr>
692                 <td valign="top" width="200" bgcolor="#8b7765">
693                   <xsl:call-template name="toc"/>
694                 </td>
695                 <td valign="top" bgcolor="#8b7765">
696                   <table border="0" cellspacing="0" cellpadding="1" width="100%">
697                     <tr>
698                       <td>
699                         <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
700                           <tr>
701                             <td>
702                               <table border="0" cellpadding="3" cellspacing="1" width="100%">
703                                 <tr>
704                                   <td bgcolor="#fffacd">
705                                     <xsl:apply-templates mode="content" select="($firsth2/preceding-sibling::*)"/>
706                                     <xsl:for-each select="./h2">
707                                       <xsl:call-template name="subfile">
708                                         <xsl:with-param name="header" select="."/>
709                                       </xsl:call-template>
710                                     </xsl:for-each>
711                                     <p><a href="bugs.html">Daniel Veillard</a></p>
712                                   </td>
713                                 </tr>
714                               </table>
715                             </td>
716                           </tr>
717                         </table>
718                       </td>
719                     </tr>
720                   </table>
721                 </td>
722               </tr>
723             </table>
724           </td>
725         </tr>
726       </table>
727     </body>
728   </xsl:template>
729   <xsl:template match="head">
730     <head>
731       <xsl:call-template name="style"/>
732       <xsl:apply-templates mode="head"/>
733     </head>
734   </xsl:template>
735   <xsl:template match="html">
736     <xsl:message>Generating the Web pages</xsl:message>
737     <html>
738       <xsl:apply-templates/>
739     </html>
740   </xsl:template>
741 </xsl:stylesheet>