html.xsl 22 KB

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