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()>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