Home | History | Annotate | Download | only in doc
      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>
    742