1<?xml version="1.0"?> 2<!-- this stylesheet builds the API*.html , it works based on libxml2-refs.xml 3 --> 4<xsl:stylesheet version="1.0" 5 xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 6 xmlns:exsl="http://exslt.org/common" 7 extension-element-prefixes="exsl" 8 exclude-result-prefixes="exsl"> 9 10 <!-- Import the rest of the site stylesheets --> 11 <xsl:import href="site.xsl"/> 12 13 <!-- Generate XHTML-1.0 transitional --> 14 <xsl:output method="xml" encoding="UTF-8" indent="yes" 15 doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" 16 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/> 17 18 <xsl:variable name="href_base" select="''"/> 19 <xsl:variable name="apirefs" select="document('libxml2-refs.xml')"/> 20 <xsl:variable name="module" select="$apirefs/apirefs/@name"/> 21 <xsl:key name="refhref" match="reference" use="@name"/> 22 23 <xsl:template match="ref" mode="anchor"> 24 <xsl:variable name="name" select="@name"/> 25 <xsl:for-each select="document('libxml2-refs.xml')"> 26 <a href="{key('refhref', $name)/@href}"><xsl:value-of select="$name"/></a><br/> 27 </xsl:for-each> 28 </xsl:template> 29 <xsl:template match="type" mode="reflist"> 30 <h2>Type <xsl:value-of select="@name"/>:</h2> 31 <p> 32 <xsl:for-each select="ref"> 33 <xsl:apply-templates mode="anchor" select="."/> 34 <xsl:text> 35</xsl:text> 36 </xsl:for-each> 37 </p> 38 </xsl:template> 39 <xsl:template match="letter" mode="reflist"> 40 <h2>Letter <xsl:value-of select="@name"/>:</h2> 41 <p> 42 <xsl:for-each select="ref"> 43 <xsl:apply-templates mode="anchor" select="."/> 44 <xsl:text> 45</xsl:text> 46 </xsl:for-each> 47 </p> 48 </xsl:template> 49 <xsl:template match="file" mode="reflist"> 50 <h2><a name="{@name}">Module <xsl:value-of select="@name"/></a>:</h2> 51 <p> 52 <xsl:for-each select="ref"> 53 <xsl:apply-templates mode="anchor" select="."/> 54 <xsl:text> 55</xsl:text> 56 </xsl:for-each> 57 </p> 58 </xsl:template> 59 <xsl:template match="letter" mode="wordlist"> 60 <h2>Letter <xsl:value-of select="@name"/>:</h2> 61 <dl> 62 <xsl:for-each select="word"> 63 <dt><xsl:value-of select="@name"/></dt> 64 <dd> 65 <xsl:for-each select="ref"> 66 <xsl:apply-templates mode="anchor" select="."/> 67 <xsl:text> 68</xsl:text> 69 </xsl:for-each> 70 </dd> 71 </xsl:for-each> 72 </dl> 73 </xsl:template> 74 75 <xsl:template match="constructors"> 76 <xsl:message>Generating API Constructors</xsl:message> 77 <xsl:variable name="title">List of constructors for <xsl:value-of select="$module"/></xsl:variable> 78 <xsl:document href="APIconstructors.html" method="xml" encoding="UTF-8" 79 doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" 80 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 81 <html> 82 <head> 83 <xsl:call-template name="style"/> 84 <xsl:element name="title"> 85 <xsl:value-of select="$title"/> 86 </xsl:element> 87 </head> 88 <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"> 89 <xsl:call-template name="titlebox"> 90 <xsl:with-param name="title" select="$title"/> 91 </xsl:call-template> 92 <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"> 93 <tr> 94 <td bgcolor="#8b7765"> 95 <table border="0" cellspacing="0" cellpadding="2" width="100%"> 96 <tr> 97 <td valign="top" width="200" bgcolor="#8b7765"> 98 <xsl:call-template name="develtoc"/> 99 </td> 100 <td valign="top" bgcolor="#8b7765"> 101 <table border="0" cellspacing="0" cellpadding="1" width="100%"> 102 <tr> 103 <td> 104 <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"> 105 <tr> 106 <td> 107 <table border="0" cellpadding="3" cellspacing="1" width="100%"> 108 <tr> 109 <td bgcolor="#fffacd"> 110 <xsl:apply-templates mode="reflist" select="type"/> 111 <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p> 112 </td> 113 </tr> 114 </table> 115 </td> 116 </tr> 117 </table> 118 </td> 119 </tr> 120 </table> 121 </td> 122 </tr> 123 </table> 124 </td> 125 </tr> 126 </table> 127 </body> 128 </html> 129 </xsl:document> 130 </xsl:template> 131 <xsl:template match="files"> 132 <xsl:message>Generating API List of synbols per file</xsl:message> 133 <xsl:variable name="title">List of Symbols per Module for <xsl:value-of select="$module"/></xsl:variable> 134 <xsl:document href="APIfiles.html" method="xml" encoding="UTF-8" 135 doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" 136 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 137 <html> 138 <head> 139 <xsl:call-template name="style"/> 140 <xsl:element name="title"> 141 <xsl:value-of select="$title"/> 142 </xsl:element> 143 </head> 144 <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"> 145 <xsl:call-template name="titlebox"> 146 <xsl:with-param name="title" select="$title"/> 147 </xsl:call-template> 148 <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"> 149 <tr> 150 <td bgcolor="#8b7765"> 151 <table border="0" cellspacing="0" cellpadding="2" width="100%"> 152 <tr> 153 <td valign="top" width="200" bgcolor="#8b7765"> 154 <xsl:call-template name="develtoc"/> 155 </td> 156 <td valign="top" bgcolor="#8b7765"> 157 <table border="0" cellspacing="0" cellpadding="1" width="100%"> 158 <tr> 159 <td> 160 <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"> 161 <tr> 162 <td> 163 <table border="0" cellpadding="3" cellspacing="1" width="100%"> 164 <tr> 165 <td bgcolor="#fffacd"> 166 <xsl:apply-templates mode="reflist" select="file"/> 167 <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p> 168 </td> 169 </tr> 170 </table> 171 </td> 172 </tr> 173 </table> 174 </td> 175 </tr> 176 </table> 177 </td> 178 </tr> 179 </table> 180 </td> 181 </tr> 182 </table> 183 </body> 184 </html> 185 </xsl:document> 186 </xsl:template> 187 <xsl:template match="functions"> 188 <xsl:message>Generating API Functions by Type</xsl:message> 189 <xsl:variable name="title">List of function manipulating types in <xsl:value-of select="$module"/></xsl:variable> 190 <xsl:document href="APIfunctions.html" method="xml" encoding="UTF-8" 191 doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" 192 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 193 <html> 194 <head> 195 <xsl:call-template name="style"/> 196 <xsl:element name="title"> 197 <xsl:value-of select="$title"/> 198 </xsl:element> 199 </head> 200 <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"> 201 <xsl:call-template name="titlebox"> 202 <xsl:with-param name="title" select="$title"/> 203 </xsl:call-template> 204 <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"> 205 <tr> 206 <td bgcolor="#8b7765"> 207 <table border="0" cellspacing="0" cellpadding="2" width="100%"> 208 <tr> 209 <td valign="top" width="200" bgcolor="#8b7765"> 210 <xsl:call-template name="develtoc"/> 211 </td> 212 <td valign="top" bgcolor="#8b7765"> 213 <table border="0" cellspacing="0" cellpadding="1" width="100%"> 214 <tr> 215 <td> 216 <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"> 217 <tr> 218 <td> 219 <table border="0" cellpadding="3" cellspacing="1" width="100%"> 220 <tr> 221 <td bgcolor="#fffacd"> 222 <xsl:apply-templates mode="reflist" select="type"/> 223 <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p> 224 </td> 225 </tr> 226 </table> 227 </td> 228 </tr> 229 </table> 230 </td> 231 </tr> 232 </table> 233 </td> 234 </tr> 235 </table> 236 </td> 237 </tr> 238 </table> 239 </body> 240 </html> 241 </xsl:document> 242 </xsl:template> 243 <xsl:template match="alpha"> 244 <xsl:message>Generating API Alphabetic list</xsl:message> 245 <xsl:variable name="title">Alphabetic List of Symbols in <xsl:value-of select="$module"/></xsl:variable> 246 <xsl:document href="APIsymbols.html" method="xml" encoding="UTF-8" 247 doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" 248 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 249 <html> 250 <head> 251 <xsl:call-template name="style"/> 252 <xsl:element name="title"> 253 <xsl:value-of select="$title"/> 254 </xsl:element> 255 </head> 256 <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"> 257 <xsl:call-template name="titlebox"> 258 <xsl:with-param name="title" select="$title"/> 259 </xsl:call-template> 260 <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"> 261 <tr> 262 <td bgcolor="#8b7765"> 263 <table border="0" cellspacing="0" cellpadding="2" width="100%"> 264 <tr> 265 <td valign="top" width="200" bgcolor="#8b7765"> 266 <xsl:call-template name="develtoc"/> 267 </td> 268 <td valign="top" bgcolor="#8b7765"> 269 <table border="0" cellspacing="0" cellpadding="1" width="100%"> 270 <tr> 271 <td> 272 <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"> 273 <tr> 274 <td> 275 <table border="0" cellpadding="3" cellspacing="1" width="100%"> 276 <tr> 277 <td bgcolor="#fffacd"> 278 <xsl:apply-templates mode="reflist" select="letter"/> 279 <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p> 280 </td> 281 </tr> 282 </table> 283 </td> 284 </tr> 285 </table> 286 </td> 287 </tr> 288 </table> 289 </td> 290 </tr> 291 </table> 292 </td> 293 </tr> 294 </table> 295 </body> 296 </html> 297 </xsl:document> 298 </xsl:template> 299 <xsl:template name="apichunks"> 300 <h2 align="center"> 301 <xsl:for-each select="/apirefs/index/chunks/chunk"> 302 <xsl:variable name="name" select="@name"/> 303 <xsl:variable name="start" select="@start"/> 304 <xsl:variable name="end" select="@end"/> 305 <xsl:variable name="block" select="concat($start, '-', $end)"/> 306 <a href="API{$name}.html"><xsl:value-of select="$block"/></a> 307 <xsl:text> 308</xsl:text> 309 </xsl:for-each> 310 </h2> 311 </xsl:template> 312 <xsl:template match="chunk"> 313 <xsl:variable name="name" select="@name"/> 314 <xsl:variable name="start" select="@start"/> 315 <xsl:variable name="end" select="@end"/> 316 <xsl:variable name="block" select="concat($start, '-', $end)"/> 317 <xsl:variable name="target" select="/apirefs/index/chunk[@name = $name]"/> 318 <xsl:variable name="title">API Alphabetic Index <xsl:value-of select="$block"/> for <xsl:value-of select="$module"/></xsl:variable> 319 <xsl:document href="API{$name}.html" method="xml" encoding="UTF-8" 320 doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" 321 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 322 <html> 323 <head> 324 <xsl:call-template name="style"/> 325 <xsl:element name="title"> 326 <xsl:value-of select="$title"/> 327 </xsl:element> 328 </head> 329 <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000"> 330 <xsl:call-template name="titlebox"> 331 <xsl:with-param name="title" select="$title"/> 332 </xsl:call-template> 333 <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center"> 334 <tr> 335 <td bgcolor="#8b7765"> 336 <table border="0" cellspacing="0" cellpadding="2" width="100%"> 337 <tr> 338 <td valign="top" width="200" bgcolor="#8b7765"> 339 <xsl:call-template name="develtoc"/> 340 </td> 341 <td valign="top" bgcolor="#8b7765"> 342 <table border="0" cellspacing="0" cellpadding="1" width="100%"> 343 <tr> 344 <td> 345 <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000"> 346 <tr> 347 <td> 348 <table border="0" cellpadding="3" cellspacing="1" width="100%"> 349 <tr> 350 <td bgcolor="#fffacd"> 351 <xsl:call-template name="apichunks"/> 352 <xsl:apply-templates mode="wordlist" 353 select="$target/letter"/> 354 <xsl:call-template name="apichunks"/> 355 <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p> 356 </td> 357 </tr> 358 </table> 359 </td> 360 </tr> 361 </table> 362 </td> 363 </tr> 364 </table> 365 </td> 366 </tr> 367 </table> 368 </td> 369 </tr> 370 </table> 371 </body> 372 </html> 373 </xsl:document> 374 </xsl:template> 375 376 <xsl:template match="index"> 377 <xsl:message>Generating API Index</xsl:message> 378 <xsl:apply-templates select="chunks/chunk"/> 379 </xsl:template> 380 381 <xsl:template match="apirefs"> 382 <xsl:message>Generating API Cross References</xsl:message> 383 <xsl:apply-templates select="constructors"/> 384 <xsl:apply-templates select="functions"/> 385 <xsl:apply-templates select="alpha"/> 386 <xsl:apply-templates select="files"/> 387 <xsl:apply-templates select="index"/> 388 </xsl:template> 389 390 <xsl:template match="/"> 391 <xsl:apply-templates select="$apirefs/apirefs"/> 392 </xsl:template> 393 394</xsl:stylesheet> 395