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">
511TD {font-family: Verdana,Arial,Helvetica}
512BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
513H1 {font-family: Verdana,Arial,Helvetica}
514H2 {font-family: Verdana,Arial,Helvetica}
515H3 {font-family: Verdana,Arial,Helvetica}
516A: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>
742