1<?xml version="1.0"?> 2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" 3 xmlns:exsl="http://exslt.org/common" 4 xmlns:str="http://exslt.org/strings" 5 extension-element-prefixes="exsl str" 6 exclude-result-prefixes="exsl str"> 7 <!-- This is convoluted but needed to force the current document to 8 be the API one and not the result tree from the tokenize() result, 9 because the keys are only defined on the main document --> 10 <xsl:template mode="dumptoken" match='*'> 11 <xsl:param name="token"/> 12 <xsl:variable name="ref" select="key('symbols', $token)"/> 13 <xsl:choose> 14 <xsl:when test="$ref"> 15 <a href="libxml2-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a> 16 </xsl:when> 17 <!-- TODO: This hack only works for tokens followed by a period. --> 18 <xsl:when test="substring($token, string-length($token)) = '.'"> 19 <xsl:variable name="token2" select="substring($token, 1, string-length($token) - 1)"/> 20 <xsl:variable name="ref2" select="key('symbols', $token2)"/> 21 <xsl:choose> 22 <xsl:when test="$ref2"> 23 <a href="libxml2-{$ref2/@file}.html#{$ref2/@name}"><xsl:value-of select="$token2"/></a> 24 <xsl:text>.</xsl:text> 25 </xsl:when> 26 <xsl:otherwise> 27 <xsl:value-of select="$token"/> 28 </xsl:otherwise> 29 </xsl:choose> 30 </xsl:when> 31 <xsl:otherwise> 32 <xsl:value-of select="$token"/> 33 </xsl:otherwise> 34 </xsl:choose> 35 </xsl:template> 36 37 <!-- dumps a string, making cross-reference links --> 38 <xsl:template name="dumptext"> 39 <xsl:param name="text"/> 40 <xsl:variable name="ctxt" select='.'/> 41 <!-- <xsl:value-of select="$text"/> --> 42 <xsl:for-each select="str:tokenize($text, ' 	')"> 43 <xsl:apply-templates select="$ctxt" mode='dumptoken'> 44 <xsl:with-param name="token" select="string(.)"/> 45 </xsl:apply-templates> 46 <xsl:if test="position() != last()"> 47 <xsl:text> </xsl:text> 48 </xsl:if> 49 </xsl:for-each> 50 </xsl:template> 51 52<!-- 53 54 The following builds the Synopsis section 55 56--> 57 <xsl:template mode="synopsis" match="function"> 58 <xsl:variable name="name" select="string(@name)"/> 59 <xsl:variable name="nlen" select="string-length($name)"/> 60 <xsl:variable name="tlen" select="string-length(return/@type)"/> 61 <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/> 62 <xsl:call-template name="dumptext"> 63 <xsl:with-param name="text" select="return/@type"/> 64 </xsl:call-template> 65 <xsl:text>	</xsl:text> 66 <a href="#{@name}"><xsl:value-of select="@name"/></a> 67 <xsl:if test="$blen - 40 < -8"> 68 <xsl:text>	</xsl:text> 69 </xsl:if> 70 <xsl:if test="$blen - 40 < 0"> 71 <xsl:text>	</xsl:text> 72 </xsl:if> 73 <xsl:text>	(</xsl:text> 74 <xsl:if test="not(arg)"> 75 <xsl:text>void</xsl:text> 76 </xsl:if> 77 <xsl:for-each select="arg"> 78 <xsl:call-template name="dumptext"> 79 <xsl:with-param name="text" select="@type"/> 80 </xsl:call-template> 81 <xsl:text> </xsl:text> 82 <xsl:value-of select="@name"/> 83 <xsl:if test="position() != last()"> 84 <xsl:text>, </xsl:text><br/> 85 <xsl:if test="$blen - 40 > 8"> 86 <xsl:text>	</xsl:text> 87 </xsl:if> 88 <xsl:if test="$blen - 40 > 0"> 89 <xsl:text>	</xsl:text> 90 </xsl:if> 91 <xsl:text>					 </xsl:text> 92 </xsl:if> 93 </xsl:for-each> 94 <xsl:text>);</xsl:text> 95 <xsl:text> 96</xsl:text> 97 </xsl:template> 98 99 <xsl:template mode="synopsis" match="functype"> 100 <xsl:variable name="name" select="string(@name)"/> 101 <xsl:variable name="nlen" select="string-length($name)"/> 102 <xsl:variable name="tlen" select="string-length(return/@type)"/> 103 <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/> 104 <xsl:text>typedef </xsl:text> 105 <xsl:call-template name="dumptext"> 106 <xsl:with-param name="text" select="return/@type"/> 107 </xsl:call-template> 108 <xsl:text> </xsl:text> 109 <a href="#{@name}"><xsl:value-of select="@name"/></a> 110 <xsl:if test="$blen - 40 < -8"> 111 <xsl:text>	</xsl:text> 112 </xsl:if> 113 <xsl:if test="$blen - 40 < 0"> 114 <xsl:text>	</xsl:text> 115 </xsl:if> 116 <xsl:text>	(</xsl:text> 117 <xsl:if test="not(arg)"> 118 <xsl:text>void</xsl:text> 119 </xsl:if> 120 <xsl:for-each select="arg"> 121 <xsl:call-template name="dumptext"> 122 <xsl:with-param name="text" select="@type"/> 123 </xsl:call-template> 124 <xsl:text> </xsl:text> 125 <xsl:value-of select="@name"/> 126 <xsl:if test="position() != last()"> 127 <xsl:text>, </xsl:text><br/> 128 <xsl:if test="$blen - 40 > 8"> 129 <xsl:text>	</xsl:text> 130 </xsl:if> 131 <xsl:if test="$blen - 40 > 0"> 132 <xsl:text>	</xsl:text> 133 </xsl:if> 134 <xsl:text>					 </xsl:text> 135 </xsl:if> 136 </xsl:for-each> 137 <xsl:text>);</xsl:text> 138 <xsl:text> 139</xsl:text> 140 </xsl:template> 141 142 <xsl:template mode="synopsis" match="exports[@type='function']"> 143 <xsl:variable name="def" select="key('symbols',@symbol)"/> 144 <xsl:apply-templates mode="synopsis" select="$def"/> 145 </xsl:template> 146 147 <xsl:template mode="synopsis" match="exports[@type='typedef']"> 148 <xsl:text>typedef </xsl:text> 149 <xsl:call-template name="dumptext"> 150 <xsl:with-param name="text" select="string(key('symbols',@symbol)/@type)"/> 151 </xsl:call-template> 152 <xsl:text> </xsl:text> 153 <a href="#{@symbol}"><xsl:value-of select="@symbol"/></a> 154 <xsl:text>; 155</xsl:text> 156 </xsl:template> 157 158 <xsl:template mode="synopsis" match="exports[@type='macro']"> 159 <xsl:variable name="def" select="key('symbols',@symbol)"/> 160 <xsl:text>#define </xsl:text> 161 <a href="#{@symbol}"><xsl:value-of select="@symbol"/></a> 162 <xsl:if test="$def/arg"> 163 <xsl:text>(</xsl:text> 164 <xsl:for-each select="$def/arg"> 165 <xsl:value-of select="@name"/> 166 <xsl:if test="position() != last()"> 167 <xsl:text>, </xsl:text> 168 </xsl:if> 169 </xsl:for-each> 170 <xsl:text>)</xsl:text> 171 </xsl:if> 172 <xsl:text>; 173</xsl:text> 174 </xsl:template> 175 <xsl:template mode="synopsis" match="exports[@type='enum']"> 176 </xsl:template> 177 <xsl:template mode="synopsis" match="exports[@type='struct']"> 178 </xsl:template> 179 180<!-- 181 182 The following builds the Details section 183 184--> 185 <xsl:template mode="details" match="struct"> 186 <xsl:variable name="name" select="string(@name)"/> 187 <div class="refsect2" lang="en"> 188 <h3><a name="{$name}">Structure </a><xsl:value-of select="$name"/></h3> 189 <pre class="programlisting"> 190 <xsl:value-of select="@type"/><xsl:text> { 191</xsl:text> 192 <xsl:if test="not(field)"> 193 <xsl:text>The content of this structure is not made public by the API. 194</xsl:text> 195 </xsl:if> 196 <xsl:for-each select="field"> 197 <xsl:text> </xsl:text> 198 <xsl:call-template name="dumptext"> 199 <xsl:with-param name="text" select="@type"/> 200 </xsl:call-template> 201 <xsl:text>	</xsl:text> 202 <xsl:value-of select="@name"/> 203 <xsl:if test="@info != ''"> 204 <xsl:text>	: </xsl:text> 205 <xsl:call-template name="dumptext"> 206 <xsl:with-param name="text" select="substring(@info, 1, 70)"/> 207 </xsl:call-template> 208 </xsl:if> 209 <xsl:text> 210</xsl:text> 211 </xsl:for-each> 212 <xsl:text>} </xsl:text> 213 <xsl:value-of select="$name"/> 214 <xsl:text>; 215</xsl:text> 216 </pre> 217 <p> 218 <xsl:call-template name="dumptext"> 219 <xsl:with-param name="text" select="info"/> 220 </xsl:call-template> 221 </p><xsl:text> 222</xsl:text> 223 </div><hr/> 224 </xsl:template> 225 226 <xsl:template mode="details" match="typedef[@type != 'enum']"> 227 <xsl:variable name="name" select="string(@name)"/> 228 <div class="refsect2" lang="en"> 229 <h3><a name="{$name}">Typedef </a><xsl:value-of select="$name"/></h3> 230 <pre class="programlisting"> 231 <xsl:call-template name="dumptext"> 232 <xsl:with-param name="text" select="string(@type)"/> 233 </xsl:call-template> 234 <xsl:text> </xsl:text> 235 <xsl:value-of select="$name"/> 236 <xsl:text>; 237</xsl:text> 238 </pre> 239 <p> 240 <xsl:call-template name="dumptext"> 241 <xsl:with-param name="text" select="info"/> 242 </xsl:call-template> 243 </p><xsl:text> 244</xsl:text> 245 </div><hr/> 246 </xsl:template> 247 248 <xsl:template mode="details" match="variable"> 249 <xsl:variable name="name" select="string(@name)"/> 250 <div class="refsect2" lang="en"> 251 <h3><a name="{$name}">Variable </a><xsl:value-of select="$name"/></h3> 252 <pre class="programlisting"> 253 <xsl:call-template name="dumptext"> 254 <xsl:with-param name="text" select="string(@type)"/> 255 </xsl:call-template> 256 <xsl:text> </xsl:text> 257 <xsl:value-of select="$name"/> 258 <xsl:text>; 259</xsl:text> 260 </pre> 261 <p> 262 <xsl:call-template name="dumptext"> 263 <xsl:with-param name="text" select="info"/> 264 </xsl:call-template> 265 </p><xsl:text> 266</xsl:text> 267 </div><hr/> 268 </xsl:template> 269 270 <xsl:template mode="details" match="typedef[@type = 'enum']"> 271 <xsl:variable name="name" select="string(@name)"/> 272 <div class="refsect2" lang="en"> 273 <h3><a name="{$name}">Enum </a><xsl:value-of select="$name"/></h3> 274 <pre class="programlisting"> 275 <xsl:text>enum </xsl:text> 276 <a href="#{$name}"><xsl:value-of select="$name"/></a> 277 <xsl:text> { 278</xsl:text> 279 <xsl:for-each select="/api/symbols/enum[@type=$name]"> 280 <xsl:sort select="@value" data-type="number" order="ascending"/> 281 <xsl:text> </xsl:text> 282 <a name="{@name}"><xsl:value-of select="@name"/></a> 283 <xsl:if test="@value"> 284 <xsl:text> = </xsl:text> 285 <xsl:value-of select="@value"/> 286 </xsl:if> 287 <xsl:if test="@info"> 288 <xsl:text> /* </xsl:text> 289 <xsl:value-of select="@info"/> 290 <xsl:text> */</xsl:text> 291 </xsl:if> 292 <xsl:text> 293</xsl:text> 294 </xsl:for-each> 295 <xsl:text>}; 296</xsl:text> 297 </pre> 298 <p> 299 <xsl:call-template name="dumptext"> 300 <xsl:with-param name="text" select="info"/> 301 </xsl:call-template> 302 </p><xsl:text> 303</xsl:text> 304 </div><hr/> 305 </xsl:template> 306 307 <xsl:template mode="details" match="macro"> 308 <xsl:variable name="name" select="string(@name)"/> 309 <div class="refsect2" lang="en"> 310 <h3><a name="{$name}">Macro </a><xsl:value-of select="$name"/></h3> 311 <pre class="programlisting"> 312 <xsl:text>#define </xsl:text> 313 <a href="#{$name}"><xsl:value-of select="$name"/></a> 314 <xsl:if test="arg"> 315 <xsl:text>(</xsl:text> 316 <xsl:for-each select="arg"> 317 <xsl:value-of select="@name"/> 318 <xsl:if test="position() != last()"> 319 <xsl:text>, </xsl:text> 320 </xsl:if> 321 </xsl:for-each> 322 <xsl:text>)</xsl:text> 323 </xsl:if> 324 <xsl:text>; 325</xsl:text> 326 </pre> 327 <p> 328 <xsl:call-template name="dumptext"> 329 <xsl:with-param name="text" select="info"/> 330 </xsl:call-template> 331 </p> 332 <xsl:if test="arg"> 333 <div class="variablelist"><table border="0"><col align="left"/><tbody> 334 <xsl:for-each select="arg"> 335 <tr> 336 <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td> 337 <td> 338 <xsl:call-template name="dumptext"> 339 <xsl:with-param name="text" select="@info"/> 340 </xsl:call-template> 341 </td> 342 </tr> 343 </xsl:for-each> 344 </tbody></table></div> 345 </xsl:if> 346 <xsl:text> 347</xsl:text> 348 </div><hr/> 349 </xsl:template> 350 351 <xsl:template mode="details" match="function"> 352 <xsl:variable name="name" select="string(@name)"/> 353 <xsl:variable name="nlen" select="string-length($name)"/> 354 <xsl:variable name="tlen" select="string-length(return/@type)"/> 355 <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/> 356 <div class="refsect2" lang="en"> 357 <h3><a name="{$name}"></a><xsl:value-of select="$name"/> ()</h3> 358 <pre class="programlisting"> 359 <xsl:call-template name="dumptext"> 360 <xsl:with-param name="text" select="return/@type"/> 361 </xsl:call-template> 362 <xsl:text>	</xsl:text> 363 <xsl:value-of select="@name"/> 364 <xsl:if test="$blen - 40 < -8"> 365 <xsl:text>	</xsl:text> 366 </xsl:if> 367 <xsl:if test="$blen - 40 < 0"> 368 <xsl:text>	</xsl:text> 369 </xsl:if> 370 <xsl:text>	(</xsl:text> 371 <xsl:if test="not(arg)"> 372 <xsl:text>void</xsl:text> 373 </xsl:if> 374 <xsl:for-each select="arg"> 375 <xsl:call-template name="dumptext"> 376 <xsl:with-param name="text" select="@type"/> 377 </xsl:call-template> 378 <xsl:text> </xsl:text> 379 <xsl:value-of select="@name"/> 380 <xsl:if test="position() != last()"> 381 <xsl:text>, </xsl:text><br/> 382 <xsl:if test="$blen - 40 > 8"> 383 <xsl:text>	</xsl:text> 384 </xsl:if> 385 <xsl:if test="$blen - 40 > 0"> 386 <xsl:text>	</xsl:text> 387 </xsl:if> 388 <xsl:text>					 </xsl:text> 389 </xsl:if> 390 </xsl:for-each> 391 <xsl:text>)</xsl:text><br/> 392 <xsl:text> 393</xsl:text> 394 </pre> 395 <p> 396 <xsl:call-template name="dumptext"> 397 <xsl:with-param name="text" select="info"/> 398 </xsl:call-template> 399 </p><xsl:text> 400</xsl:text> 401 <xsl:if test="arg | return/@info"> 402 <div class="variablelist"><table border="0"><col align="left"/><tbody> 403 <xsl:for-each select="arg"> 404 <tr> 405 <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td> 406 <td> 407 <xsl:call-template name="dumptext"> 408 <xsl:with-param name="text" select="@info"/> 409 </xsl:call-template> 410 </td> 411 </tr> 412 </xsl:for-each> 413 <xsl:if test="return/@info"> 414 <tr> 415 <td><span class="term"><i><tt>Returns</tt></i>:</span></td> 416 <td> 417 <xsl:call-template name="dumptext"> 418 <xsl:with-param name="text" select="return/@info"/> 419 </xsl:call-template> 420 </td> 421 </tr> 422 </xsl:if> 423 </tbody></table></div> 424 </xsl:if> 425 </div><hr/> 426 </xsl:template> 427 428 <xsl:template mode="details" match="functype"> 429 <xsl:variable name="name" select="string(@name)"/> 430 <xsl:variable name="nlen" select="string-length($name)"/> 431 <xsl:variable name="tlen" select="string-length(return/@type)"/> 432 <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/> 433 <div class="refsect2" lang="en"> 434 <h3><a name="{$name}"></a>Function type <xsl:value-of select="$name"/> </h3> 435 <pre class="programlisting"> 436 <xsl:call-template name="dumptext"> 437 <xsl:with-param name="text" select="return/@type"/> 438 </xsl:call-template> 439 <xsl:text>	</xsl:text> 440 <xsl:value-of select="@name"/> 441 <xsl:if test="$blen - 40 < -8"> 442 <xsl:text>	</xsl:text> 443 </xsl:if> 444 <xsl:if test="$blen - 40 < 0"> 445 <xsl:text>	</xsl:text> 446 </xsl:if> 447 <xsl:text>	(</xsl:text> 448 <xsl:if test="not(arg)"> 449 <xsl:text>void</xsl:text> 450 </xsl:if> 451 <xsl:for-each select="arg"> 452 <xsl:call-template name="dumptext"> 453 <xsl:with-param name="text" select="@type"/> 454 </xsl:call-template> 455 <xsl:text> </xsl:text> 456 <xsl:value-of select="@name"/> 457 <xsl:if test="position() != last()"> 458 <xsl:text>, </xsl:text><br/> 459 <xsl:if test="$blen - 40 > 8"> 460 <xsl:text>	</xsl:text> 461 </xsl:if> 462 <xsl:if test="$blen - 40 > 0"> 463 <xsl:text>	</xsl:text> 464 </xsl:if> 465 <xsl:text>					 </xsl:text> 466 </xsl:if> 467 </xsl:for-each> 468 <xsl:text>)</xsl:text><br/> 469 <xsl:text> 470</xsl:text> 471 </pre> 472 <p> 473 <xsl:call-template name="dumptext"> 474 <xsl:with-param name="text" select="info"/> 475 </xsl:call-template> 476 </p><xsl:text> 477</xsl:text> 478 <xsl:if test="arg | return/@info"> 479 <div class="variablelist"><table border="0"><col align="left"/><tbody> 480 <xsl:for-each select="arg"> 481 <tr> 482 <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td> 483 <td> 484 <xsl:call-template name="dumptext"> 485 <xsl:with-param name="text" select="@info"/> 486 </xsl:call-template> 487 </td> 488 </tr> 489 </xsl:for-each> 490 <xsl:if test="return/@info"> 491 <tr> 492 <td><span class="term"><i><tt>Returns</tt></i>:</span></td> 493 <td> 494 <xsl:call-template name="dumptext"> 495 <xsl:with-param name="text" select="return/@info"/> 496 </xsl:call-template> 497 </td> 498 </tr> 499 </xsl:if> 500 </tbody></table></div> 501 </xsl:if> 502 </div><hr/> 503 </xsl:template> 504 505<!-- 506 507 The following builds the general.html page 508 509--> 510 <xsl:template name="generate_general"> 511 <xsl:variable name="next" select="string(/api/files/file[position()=1]/@name)"/> 512 <xsl:document xmlns="" href="general.html" method="html" indent="yes" encoding="UTF-8"> 513 <html> 514 <head> 515 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 516 <title><xsl:value-of select="concat(@name, ': ', summary)"/></title> 517 <meta name="generator" content="Libxml2 devhelp stylesheet"/> 518 <link rel="start" href="index.html" title="libxml2 Reference Manual"/> 519 <link rel="up" href="index.html" title="libxml2 Reference Manual"/> 520 <link rel="stylesheet" href="style.css" type="text/css"/> 521 <link rel="chapter" href="index.html" title="libxml2 Reference Manual"/> 522 </head> 523 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 524 525 <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> 526 <tr valign="middle"> 527 <td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up"/></a></td> 528 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"/></a></td> 529 <xsl:if test="$next != ''"> 530 <td><a accesskey="n" href="libxml2-{$next}.html"><img src="right.png" width="24" height="24" border="0" alt="Next"/></a></td> 531 </xsl:if> 532 <th width="100%" align="center">libxml2 Reference Manual</th> 533 </tr> 534 </table> 535 <h2><span class="refentrytitle">libxml2 API Modules</span></h2> 536 <p> 537 <xsl:for-each select="/api/files/file"> 538 <a href="libxml2-{@name}.html"><xsl:value-of select="@name"/></a> - <xsl:value-of select="summary"/><br/> 539 </xsl:for-each> 540 </p> 541 </body> 542 </html> 543 </xsl:document> 544 </xsl:template> 545 546<!-- 547 548 The following builds the index.html page 549 550--> 551 <xsl:template name="generate_index"> 552 <xsl:document xmlns="" href="index.html" method="html" indent="yes" encoding="UTF-8"> 553 <html> 554 <head> 555 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> 556 <title>libxml2 Reference Manual</title> 557 <meta name="generator" content="Libxml2 devhelp stylesheet"/> 558 <link rel="stylesheet" href="style.css" type="text/css"/> 559 </head> 560 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 561 562 <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"> 563 <tr valign="middle"> 564 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"/></a></td> 565 <td><a accesskey="n" href="general.html"><img src="right.png" width="24" height="24" border="0" alt="Next"/></a></td> 566 <th width="100%" align="center">libxml2 Reference Manual</th> 567 </tr> 568 </table> 569 <h2><span class="refentrytitle">libxml2 Reference Manual</span></h2> 570<p>Libxml2 is the XML C parser and toolkit developed for the Gnome project 571(but usable outside of the Gnome platform), it is free software available 572under the <a href="http://www.opensource.org/licenses/mit-license.html">MIT 573License</a>. XML itself is a metalanguage to design markup languages, i.e. 574text language where semantic and structure are added to the content using 575extra "markup" information enclosed between angle brackets. HTML is the most 576well-known markup language. Though the library is written in C, a variety of 577language bindings make it available in other environments.</p> 578<p>Libxml2 implements a number of existing standards related to markup 579languages:</p> 580<ul><li>the XML standard: <a href="http://www.w3.org/TR/REC-xml">http://www.w3.org/TR/REC-xml</a></li> 581<li>Namespaces in XML: <a href="http://www.w3.org/TR/REC-xml-names/">http://www.w3.org/TR/REC-xml-names/</a></li> 582<li>XML Base: <a href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a></li> 583<li><a href="http://www.cis.ohio-state.edu/rfc/rfc2396.txt">RFC 2396</a> : 584Uniform Resource Identifiers <a href="http://www.ietf.org/rfc/rfc2396.txt">http://www.ietf.org/rfc/rfc2396.txt</a></li> 585<li>XML Path Language (XPath) 1.0: <a href="http://www.w3.org/TR/xpath">http://www.w3.org/TR/xpath</a></li> 586<li>HTML4 parser: <a href="http://www.w3.org/TR/html401/">http://www.w3.org/TR/html401/</a></li> 587<li>XML Pointer Language (XPointer) Version 1.0: <a href="http://www.w3.org/TR/xptr">http://www.w3.org/TR/xptr</a></li> 588<li>XML Inclusions (XInclude) Version 1.0: <a href="http://www.w3.org/TR/xinclude/">http://www.w3.org/TR/xinclude/</a></li> 589<li>ISO-8859-x encodings, as well as <a href="http://www.cis.ohio-state.edu/rfc/rfc2044.txt">rfc2044</a> [UTF-8] 590and <a href="http://www.cis.ohio-state.edu/rfc/rfc2781.txt">rfc2781</a> 591[UTF-16] Unicode encodings, and more if using iconv support</li> 592<li>part of SGML Open Technical Resolution TR9401:1997</li> 593<li>XML Catalogs Working Draft 06 August 2001: <a href="http://www.oasis-open.org/committees/entity/spec-2001-08-06.html">http://www.oasis-open.org/committees/entity/spec-2001-08-06.html</a></li> 594<li>Canonical XML Version 1.0: <a href="http://www.w3.org/TR/xml-c14n">http://www.w3.org/TR/xml-c14n</a> 595and the Exclusive XML Canonicalization CR draft <a href="http://www.w3.org/TR/xml-exc-c14n">http://www.w3.org/TR/xml-exc-c14n</a></li> 596<li>Relax NG, ISO/IEC 19757-2:2003, <a href="http://www.oasis-open.org/committees/relax-ng/spec-20011203.html">http://www.oasis-open.org/committees/relax-ng/spec-20011203.html</a></li> 597<li>W3C XML Schemas Part 2: Datatypes <a href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/">REC 02 May 5982001</a></li> 599<li>W3C <a href="http://www.w3.org/TR/xml-id/">xml:id</a> Working Draft 7 600April 2004</li> 601</ul> 602 </body> 603 </html> 604 </xsl:document> 605 </xsl:template> 606 607</xsl:stylesheet> 608 609 610