[libxslt] Add documentation in devhelp format



commit f2cd40ff3927692975c0f2e1c3b0d2d56a7c0787
Author: Nick Wellnhofer <wellnhofer aevum de>
Date:   Sat Feb 12 23:00:33 2022 +0100

    Add documentation in devhelp format

 configure.ac                                 |    2 +
 doc/EXSLT/devhelp/Makefile.am                |   38 +
 doc/EXSLT/devhelp/devhelp2.xsl               |  127 +++
 doc/EXSLT/devhelp/general.html               |   38 +
 doc/EXSLT/devhelp/home.png                   |  Bin 0 -> 654 bytes
 doc/EXSLT/devhelp/html.xsl                   |  569 ++++++++++
 doc/EXSLT/devhelp/index.html                 |   33 +
 doc/EXSLT/devhelp/left.png                   |  Bin 0 -> 459 bytes
 doc/EXSLT/devhelp/libexslt-exslt.html        |  183 ++++
 doc/EXSLT/devhelp/libexslt-exsltexports.html |   77 ++
 doc/EXSLT/devhelp/libexslt.devhelp2          |   43 +
 doc/EXSLT/devhelp/right.png                  |  Bin 0 -> 472 bytes
 doc/EXSLT/devhelp/style.css                  |   66 ++
 doc/EXSLT/devhelp/up.png                     |  Bin 0 -> 406 bytes
 doc/Makefile.am                              |    2 +
 doc/devhelp/Makefile.am                      |   56 +
 doc/devhelp/devhelp2.xsl                     |  127 +++
 doc/devhelp/general.html                     |   38 +
 doc/devhelp/home.png                         |  Bin 0 -> 654 bytes
 doc/devhelp/html.xsl                         |  572 +++++++++++
 doc/devhelp/index.html                       |   34 +
 doc/devhelp/left.png                         |  Bin 0 -> 459 bytes
 doc/devhelp/libxslt-attributes.html          |   72 ++
 doc/devhelp/libxslt-documents.html           |  115 +++
 doc/devhelp/libxslt-extensions.html          |  262 +++++
 doc/devhelp/libxslt-extra.html               |   97 ++
 doc/devhelp/libxslt-functions.html           |  112 ++
 doc/devhelp/libxslt-imports.html             |   97 ++
 doc/devhelp/libxslt-keys.html                |   87 ++
 doc/devhelp/libxslt-namespaces.html          |   97 ++
 doc/devhelp/libxslt-numbersInternals.html    |  101 ++
 doc/devhelp/libxslt-pattern.html             |  119 +++
 doc/devhelp/libxslt-preproc.html             |   76 ++
 doc/devhelp/libxslt-security.html            |  140 +++
 doc/devhelp/libxslt-templates.html           |  112 ++
 doc/devhelp/libxslt-transform.html           |  227 ++++
 doc/devhelp/libxslt-variables.html           |  147 +++
 doc/devhelp/libxslt-xslt.html                |  112 ++
 doc/devhelp/libxslt-xsltInternals.html       | 1426 ++++++++++++++++++++++++++
 doc/devhelp/libxslt-xsltexports.html         |   82 ++
 doc/devhelp/libxslt-xsltlocale.html          |  107 ++
 doc/devhelp/libxslt-xsltutils.html           |  348 +++++++
 doc/devhelp/libxslt.devhelp2                 |  558 ++++++++++
 doc/devhelp/right.png                        |  Bin 0 -> 472 bytes
 doc/devhelp/style.css                        |   66 ++
 doc/devhelp/up.png                           |  Bin 0 -> 406 bytes
 46 files changed, 6565 insertions(+)
---
diff --git a/configure.ac b/configure.ac
index 24861345..21d2d8ee 100644
--- a/configure.ac
+++ b/configure.ac
@@ -753,6 +753,8 @@ tests/exslt/crypto/Makefile
 tests/plugins/Makefile
 tests/fuzz/Makefile
 doc/Makefile
+doc/devhelp/Makefile
+doc/EXSLT/devhelp/Makefile
 xslt-config
 libxslt.spec
 ])
diff --git a/doc/EXSLT/devhelp/Makefile.am b/doc/EXSLT/devhelp/Makefile.am
new file mode 100644
index 00000000..b55fba5f
--- /dev/null
+++ b/doc/EXSLT/devhelp/Makefile.am
@@ -0,0 +1,38 @@
+devhelpdir = $(datadir)/gtk-doc/html/libexslt
+
+dist_devhelp_DATA =                    \
+       libexslt.devhelp2               \
+       $(HTML_FILES)                   \
+       $(EXTRA_FORMAT)
+
+HTML_FILES =                           \
+       general.html                    \
+       index.html                      \
+       $(HTML_MODULES)
+
+HTML_MODULES=                          \
+       libexslt-exsltexports.html      \
+       libexslt-exslt.html
+
+EXTRA_FORMAT=                          \
+       home.png                        \
+       left.png                        \
+       right.png                       \
+       up.png                          \
+       style.css
+
+EXTRA_DIST = devhelp2.xsl html.xsl
+
+if REBUILD_DOCS
+
+rebuild: libexslt.devhelp2
+.PHONY: rebuild
+
+$(HTML_FILES): libexslt.devhelp2
+
+libexslt.devhelp2: devhelp2.xsl html.xsl $(top_srcdir)/doc/EXSLT/libexslt-api.xml
+       -@(if [ -x $(XSLTPROC) ] ; then \
+         echo Rebuilding devhelp2 files ; \
+         $(XSLTPROC) --nonet -o $(srcdir)/libexslt.devhelp2 $(srcdir)/devhelp2.xsl 
$(top_srcdir)/doc/EXSLT/libexslt-api.xml ; fi );
+
+endif
diff --git a/doc/EXSLT/devhelp/devhelp2.xsl b/doc/EXSLT/devhelp/devhelp2.xsl
new file mode 100644
index 00000000..a18f7c0b
--- /dev/null
+++ b/doc/EXSLT/devhelp/devhelp2.xsl
@@ -0,0 +1,127 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0"
+               xmlns="http://www.devhelp.net/book";
+               xmlns:exsl="http://exslt.org/common";
+               xmlns:str="http://exslt.org/strings";
+               extension-element-prefixes="exsl str"
+               exclude-result-prefixes="exsl str">
+  <!-- The stylesheet for the html pages -->
+  <xsl:import href="html.xsl"/>
+
+  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
+
+  <!-- Build keys for all symbols -->
+  <xsl:key name="symbols" match="/api/symbols/*" use="@name"/>
+
+  <xsl:template match="/api">
+    <book title="{@name} Reference Manual" link="index.html" author="" name="{@name}">
+      <xsl:apply-templates select="files"/>
+      <xsl:apply-templates select="symbols"/>
+    </book>
+    <xsl:call-template name="generate_index"/>
+    <xsl:call-template name="generate_general"/>
+  </xsl:template>
+  <xsl:template match="/api/files">
+    <chapters>
+      <sub name="API" link="general.html">
+        <xsl:apply-templates select="file"/>
+      </sub>
+    </chapters>
+  </xsl:template>
+  <xsl:template match="/api/files/file">
+    <xsl:variable name="module" select="@name"/>
+    <xsl:variable name="prev" select="string(preceding-sibling::file[position()=1]/@name)"/>
+    <xsl:variable name="next" select="string(following-sibling::file[position()=1]/@name)"/>
+    <sub name="{@name}" link="libexslt-{@name}.html"/>
+    <xsl:document xmlns="" href="libexslt-{@name}.html" method="xml" indent="yes" encoding="UTF-8">
+      <html>
+        <head>
+         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+         <title><xsl:value-of select="concat(@name, ': ', summary)"/></title>
+         <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+         <link rel="start" href="index.html" title="libexslt Reference Manual"/>
+         <link rel="up" href="general.html" title="API"/>
+         <link rel="stylesheet" href="style.css" type="text/css"/>
+         <link rel="chapter" href="general.html" title="API"/>
+        </head>
+       <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+
+          <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+           <tr valign="middle">
+             <xsl:if test="$prev != ''">
+               <td><a accesskey="p" href="libexslt-{$prev}.html"><img src="left.png" width="24" height="24" 
border="0" alt="Prev"/></a></td>
+             </xsl:if>
+              <td><a accesskey="u" href="general.html"><img src="up.png" width="24" height="24" border="0" 
alt="Up"/></a></td>
+              <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" 
alt="Home"/></a></td>
+             <xsl:if test="$next != ''">
+               <td><a accesskey="n" href="libexslt-{$next}.html"><img src="right.png" width="24" height="24" 
border="0" alt="Next"/></a></td>
+             </xsl:if>
+              <th width="100%" align="center">libexslt Reference Manual</th>
+            </tr>
+         </table>
+         <h2><span class="refentrytitle"><xsl:value-of select="@name"/></span></h2>
+         <p><xsl:value-of select="@name"/> - <xsl:value-of select="summary"/></p>
+         <p><xsl:value-of select="description"/></p>
+         <xsl:if test="deprecated">
+           <p> WARNING: this module is deprecated !</p>
+         </xsl:if>
+         <p>Author(s): <xsl:value-of select="author"/></p>
+         <div class="refsynopsisdiv">
+         <h2>Synopsis</h2>
+         <pre class="synopsis">
+           <xsl:apply-templates mode="synopsis" select="exports"/>
+         </pre>
+         </div>
+         <div class="refsect1" lang="en">
+         <h2>Description</h2>
+         </div>
+         <div class="refsect1" lang="en">
+         <h2>Details</h2>
+         <div class="refsect2" lang="en">
+           <xsl:apply-templates mode="details" select="/api/symbols/macro[@file=$module]"/>
+           <xsl:apply-templates mode="details" select="/api/symbols/typedef[@file=$module] | 
/api/symbols/struct[@file=$module]"/>
+           <xsl:apply-templates mode="details" select="/api/symbols/functype[@file=$module]"/>
+           <xsl:apply-templates mode="details" select="/api/symbols/variable[@file=$module]"/>
+           <xsl:apply-templates mode="details" select="/api/symbols/function[@file=$module]"/>
+         </div>
+         </div>
+       </body>
+      </html>
+    </xsl:document>
+  </xsl:template>
+  <xsl:template match="/api/symbols">
+    <functions>
+      <xsl:apply-templates select="macro"/>
+      <xsl:apply-templates select="enum"/>
+      <xsl:apply-templates select="typedef"/>
+      <xsl:apply-templates select="struct"/>
+      <xsl:apply-templates select="functype"/>
+      <xsl:apply-templates select="variable"/>
+      <xsl:apply-templates select="function"/>
+    </functions>
+  </xsl:template>
+  <xsl:template match="/api/symbols/functype">
+    <keyword type="function" name="{@name}" link="libexslt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/function">
+    <keyword type="function" name="{@name} ()" link="libexslt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/typedef">
+    <keyword type="typedef" name="{@name}" link="libexslt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/enum">
+    <keyword type="enum" name="{@name}" link="libexslt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/struct">
+    <keyword type="struct" name="{@name}" link="libexslt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/macro">
+    <keyword type="macro" name="{@name}" link="libexslt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/variable">
+    <keyword type="macro" name="{@name}" link="libexslt-{@file}.html#{@name}"/>
+  </xsl:template>
+
+</xsl:stylesheet>
+
+
diff --git a/doc/EXSLT/devhelp/general.html b/doc/EXSLT/devhelp/general.html
new file mode 100644
index 00000000..4c0ef291
--- /dev/null
+++ b/doc/EXSLT/devhelp/general.html
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>libexslt: </title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libexslt Reference Manual"/>
+    <link rel="up" href="index.html" title="libexslt Reference Manual"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="index.html" title="libexslt Reference Manual"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="u" href="index.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libexslt-exslt.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libexslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">libexslt API Modules</span>
+    </h2>
+    <p><a href="libexslt-exslt.html">exslt</a> - main header file <br/><a 
href="libexslt-exsltexports.html">exsltexports</a> - macros for marking symbols as exportable/importable. 
<br/></p>
+  </body>
+</html>
diff --git a/doc/EXSLT/devhelp/home.png b/doc/EXSLT/devhelp/home.png
new file mode 100644
index 00000000..17003611
Binary files /dev/null and b/doc/EXSLT/devhelp/home.png differ
diff --git a/doc/EXSLT/devhelp/html.xsl b/doc/EXSLT/devhelp/html.xsl
new file mode 100644
index 00000000..32dc44fc
--- /dev/null
+++ b/doc/EXSLT/devhelp/html.xsl
@@ -0,0 +1,569 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0"
+               xmlns:exsl="http://exslt.org/common";
+               xmlns:str="http://exslt.org/strings";
+               extension-element-prefixes="exsl str"
+               exclude-result-prefixes="exsl str">
+  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
+
+  <!-- This is convoluted but needed to force the current document to
+       be the API one and not the result tree from the tokenize() result,
+       because the keys are only defined on the main document -->
+  <xsl:template mode="dumptoken" match='*'>
+    <xsl:param name="token"/>
+    <xsl:variable name="ref" select="key('symbols', $token)"/>
+    <xsl:choose>
+      <xsl:when test="$ref">
+        <a href="libexslt-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$token"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- dumps a string, making cross-reference links -->
+  <xsl:template name="dumptext">
+    <xsl:param name="text"/>
+    <xsl:variable name="ctxt" select='.'/>
+    <!-- <xsl:value-of select="$text"/> -->
+    <xsl:for-each select="str:tokenize($text, ' &#9;')">
+      <xsl:apply-templates select="$ctxt" mode='dumptoken'>
+        <xsl:with-param name="token" select="string(.)"/>
+      </xsl:apply-templates>
+      <xsl:if test="position() != last()">
+        <xsl:text> </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+  </xsl:template>
+
+<!--
+
+             The following builds the Synopsis section
+
+-->
+  <xsl:template mode="synopsis" match="function">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 
8))"/>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text>&#9;</xsl:text>
+    <a href="#{@name}"><xsl:value-of select="@name"/></a>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+       <xsl:if test="$blen - 40 &gt; 8">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:if test="$blen - 40 &gt; 0">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>);</xsl:text>
+    <xsl:text>
+</xsl:text>
+  </xsl:template>
+
+  <xsl:template mode="synopsis" match="functype">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 
8))"/>
+    <xsl:text>typedef </xsl:text>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <a href="#{@name}"><xsl:value-of select="@name"/></a>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+       <xsl:if test="$blen - 40 &gt; 8">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:if test="$blen - 40 &gt; 0">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>);</xsl:text>
+    <xsl:text>
+</xsl:text>
+  </xsl:template>
+
+  <xsl:template mode="synopsis" match="exports[@type='function']">
+    <xsl:variable name="def" select="key('symbols',@symbol)"/>
+    <xsl:apply-templates mode="synopsis" select="$def"/>
+  </xsl:template>
+
+  <xsl:template mode="synopsis" match="exports[@type='typedef']">
+    <xsl:text>typedef </xsl:text>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="string(key('symbols',@symbol)/@type)"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <a href="#{@symbol}"><xsl:value-of select="@symbol"/></a>
+    <xsl:text>;
+</xsl:text>
+  </xsl:template>
+
+  <xsl:template mode="synopsis" match="exports[@type='macro']">
+    <xsl:variable name="def" select="key('symbols',@symbol)"/>
+    <xsl:text>#define </xsl:text>
+    <a href="#{@symbol}"><xsl:value-of select="@symbol"/></a>
+    <xsl:if test="$def/arg">
+      <xsl:text>(</xsl:text>
+      <xsl:for-each select="$def/arg">
+        <xsl:value-of select="@name"/>
+       <xsl:if test="position() != last()">
+         <xsl:text>, </xsl:text>
+       </xsl:if>
+      </xsl:for-each>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+    <xsl:text>;
+</xsl:text>
+  </xsl:template>
+  <xsl:template mode="synopsis" match="exports[@type='enum']">
+  </xsl:template>
+  <xsl:template mode="synopsis" match="exports[@type='struct']">
+  </xsl:template>
+
+<!--
+
+             The following builds the Details section
+
+-->
+  <xsl:template mode="details" match="struct">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Structure </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:value-of select="@type"/><xsl:text> {
+</xsl:text>
+    <xsl:if test="not(field)">
+      <xsl:text>The content of this structure is not made public by the API.
+</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="field">
+        <xsl:text>    </xsl:text>
+       <xsl:call-template name="dumptext">
+         <xsl:with-param name="text" select="@type"/>
+       </xsl:call-template>
+       <xsl:text>&#9;</xsl:text>
+       <xsl:value-of select="@name"/>
+       <xsl:if test="@info != ''">
+         <xsl:text>&#9;: </xsl:text>
+         <xsl:call-template name="dumptext">
+           <xsl:with-param name="text" select="substring(@info, 1, 70)"/>
+         </xsl:call-template>
+       </xsl:if>
+       <xsl:text>
+</xsl:text>
+    </xsl:for-each>
+    <xsl:text>} </xsl:text>
+    <xsl:value-of select="$name"/>
+    <xsl:text>;
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="typedef[@type != 'enum']">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Typedef </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="string(@type)"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$name"/>
+    <xsl:text>;
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="variable">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Variable </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="string(@type)"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$name"/>
+    <xsl:text>;
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="typedef[@type = 'enum']">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Enum </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:text>enum </xsl:text>
+    <a href="#{$name}"><xsl:value-of select="$name"/></a>
+    <xsl:text> {
+</xsl:text>
+    <xsl:for-each select="/api/symbols/enum[@type=$name]">
+      <xsl:sort select="@value" data-type="number" order="ascending"/>
+      <xsl:text>    </xsl:text>
+      <a name="{@name}"><xsl:value-of select="@name"/></a>
+      <xsl:if test="@value">
+        <xsl:text> = </xsl:text>
+       <xsl:value-of select="@value"/>
+      </xsl:if>
+      <xsl:if test="@info">
+        <xsl:text> /* </xsl:text>
+       <xsl:value-of select="@info"/>
+        <xsl:text> */</xsl:text>
+      </xsl:if>
+      <xsl:text>
+</xsl:text>
+    </xsl:for-each>
+    <xsl:text>};
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="macro">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Macro </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:text>#define </xsl:text>
+    <a href="#{$name}"><xsl:value-of select="$name"/></a>
+    <xsl:if test="arg">
+      <xsl:text>(</xsl:text>
+      <xsl:for-each select="arg">
+        <xsl:value-of select="@name"/>
+       <xsl:if test="position() != last()">
+         <xsl:text>, </xsl:text>
+       </xsl:if>
+      </xsl:for-each>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+    <xsl:text>;
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p>
+    <xsl:if test="arg">
+      <div class="variablelist"><table border="0"><col align="left"/><tbody>
+      <xsl:for-each select="arg">
+        <tr>
+          <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:for-each>
+      </tbody></table></div>
+    </xsl:if>
+    <xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="function">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 
8))"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}"></a><xsl:value-of select="$name"/> ()</h3>
+    <pre class="programlisting">
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text>&#9;</xsl:text>
+    <xsl:value-of select="@name"/>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+       <xsl:if test="$blen - 40 &gt; 8">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:if test="$blen - 40 &gt; 0">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>)</xsl:text><br/>
+    <xsl:text>
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    <xsl:if test="arg | return/@info">
+      <div class="variablelist"><table border="0"><col align="left"/><tbody>
+      <xsl:for-each select="arg">
+        <tr>
+          <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:for-each>
+      <xsl:if test="return/@info">
+        <tr>
+          <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="return/@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:if>
+      </tbody></table></div>
+    </xsl:if>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="functype">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 
8))"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}"></a>Function type <xsl:value-of select="$name"/> </h3>
+    <pre class="programlisting">
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text>&#9;</xsl:text>
+    <xsl:value-of select="@name"/>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+       <xsl:if test="$blen - 40 &gt; 8">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:if test="$blen - 40 &gt; 0">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>)</xsl:text><br/>
+    <xsl:text>
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    <xsl:if test="arg | return/@info">
+      <div class="variablelist"><table border="0"><col align="left"/><tbody>
+      <xsl:for-each select="arg">
+        <tr>
+          <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:for-each>
+      <xsl:if test="return/@info">
+        <tr>
+          <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="return/@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:if>
+      </tbody></table></div>
+    </xsl:if>
+    </div><hr/>
+  </xsl:template>
+
+<!--
+
+             The following builds the general.html page
+
+-->
+  <xsl:template name="generate_general">
+    <xsl:variable name="next" select="string(/api/files/file[position()=1]/@name)"/>
+    <xsl:document xmlns="" href="general.html" method="xml" indent="yes" encoding="UTF-8">
+      <html>
+        <head>
+         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+         <title><xsl:value-of select="concat(@name, ': ', summary)"/></title>
+         <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+         <link rel="start" href="index.html" title="libexslt Reference Manual"/>
+         <link rel="up" href="index.html" title="libexslt Reference Manual"/>
+         <link rel="stylesheet" href="style.css" type="text/css"/>
+         <link rel="chapter" href="index.html" title="libexslt Reference Manual"/>
+        </head>
+       <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+
+          <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+           <tr valign="middle">
+              <td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" 
alt="Up"/></a></td>
+              <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" 
alt="Home"/></a></td>
+             <xsl:if test="$next != ''">
+               <td><a accesskey="n" href="libexslt-{$next}.html"><img src="right.png" width="24" height="24" 
border="0" alt="Next"/></a></td>
+             </xsl:if>
+              <th width="100%" align="center">libexslt Reference Manual</th>
+            </tr>
+         </table>
+         <h2><span class="refentrytitle">libexslt API Modules</span></h2>
+         <p>
+         <xsl:for-each select="/api/files/file">
+           <a href="libexslt-{@name}.html"><xsl:value-of select="@name"/></a> - <xsl:value-of 
select="summary"/><br/>
+         </xsl:for-each>
+         </p>
+       </body>
+      </html>
+    </xsl:document>
+  </xsl:template>
+
+<!--
+
+             The following builds the index.html page
+
+-->
+  <xsl:template name="generate_index">
+    <xsl:document xmlns="" href="index.html" method="xml" indent="yes" encoding="UTF-8">
+      <html>
+        <head>
+         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+         <title>libexslt Reference Manual</title>
+         <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+         <link rel="stylesheet" href="style.css" type="text/css"/>
+        </head>
+       <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+
+          <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+           <tr valign="middle">
+              <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" 
alt="Home"/></a></td>
+             <td><a accesskey="n" href="general.html"><img src="right.png" width="24" height="24" border="0" 
alt="Next"/></a></td>
+              <th width="100%" align="center">libexslt Reference Manual</th>
+            </tr>
+         </table>
+         <h2><span class="refentrytitle">libexslt Reference Manual</span></h2>
+<p>Libexslt is the <a href="http://www.exslt.org";>EXSLT</a> C library
+   developed for libexslt (a part of the Gnome project). Much of the
+   initial work on the library was done by Thomas Broyer.  EXSLT itself
+   is a community initiative to provide extensions to XSLT.</p>
+       </body>
+      </html>
+    </xsl:document>
+  </xsl:template>
+
+</xsl:stylesheet>
+
+
diff --git a/doc/EXSLT/devhelp/index.html b/doc/EXSLT/devhelp/index.html
new file mode 100644
index 00000000..cb0c8a32
--- /dev/null
+++ b/doc/EXSLT/devhelp/index.html
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>libexslt Reference Manual</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="general.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libexslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">libexslt Reference Manual</span>
+    </h2>
+    <p>Libexslt is the <a href="http://www.exslt.org";>EXSLT</a> C library
+   developed for libexslt (a part of the Gnome project). Much of the
+   initial work on the library was done by Thomas Broyer.  EXSLT itself
+   is a community initiative to provide extensions to XSLT.</p>
+  </body>
+</html>
diff --git a/doc/EXSLT/devhelp/left.png b/doc/EXSLT/devhelp/left.png
new file mode 100644
index 00000000..2d05b3d5
Binary files /dev/null and b/doc/EXSLT/devhelp/left.png differ
diff --git a/doc/EXSLT/devhelp/libexslt-exslt.html b/doc/EXSLT/devhelp/libexslt-exslt.html
new file mode 100644
index 00000000..6c156545
--- /dev/null
+++ b/doc/EXSLT/devhelp/libexslt-exslt.html
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>exslt: main header file </title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libexslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libexslt-exsltexports.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libexslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">exslt</span>
+    </h2>
+    <p>exslt - main header file </p>
+    <p/>
+    <p>Author(s): </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">#define <a href="#EXSLT_DATE_NAMESPACE">EXSLT_DATE_NAMESPACE</a>;
+#define <a href="#EXSLT_STRINGS_NAMESPACE">EXSLT_STRINGS_NAMESPACE</a>;
+#define <a href="#SAXON_NAMESPACE">SAXON_NAMESPACE</a>;
+#define <a href="#EXSLT_COMMON_NAMESPACE">EXSLT_COMMON_NAMESPACE</a>;
+#define <a href="#EXSLT_FUNCTIONS_NAMESPACE">EXSLT_FUNCTIONS_NAMESPACE</a>;
+#define <a href="#EXSLT_SETS_NAMESPACE">EXSLT_SETS_NAMESPACE</a>;
+#define <a href="#EXSLT_DYNAMIC_NAMESPACE">EXSLT_DYNAMIC_NAMESPACE</a>;
+#define <a href="#EXSLT_CRYPTO_NAMESPACE">EXSLT_CRYPTO_NAMESPACE</a>;
+#define <a href="#EXSLT_MATH_NAMESPACE">EXSLT_MATH_NAMESPACE</a>;
+void   <a href="#exsltDynRegister">exsltDynRegister</a>                (void);
+void   <a href="#exsltCommonRegister">exsltCommonRegister</a>          (void);
+void   <a href="#exsltRegisterAll">exsltRegisterAll</a>                (void);
+int    <a href="#exsltStrXpathCtxtRegister">exsltStrXpathCtxtRegister</a>      (xmlXPathContextPtr ctxt, 
<br/>                                  const xmlChar * prefix);
+int    <a href="#exsltSetsXpathCtxtRegister">exsltSetsXpathCtxtRegister</a>    (xmlXPathContextPtr ctxt, 
<br/>                                  const xmlChar * prefix);
+void   <a href="#exsltFuncRegister">exsltFuncRegister</a>              (void);
+void   <a href="#exsltStrRegister">exsltStrRegister</a>                (void);
+void   <a href="#exsltSetsRegister">exsltSetsRegister</a>              (void);
+void   <a href="#exsltDateRegister">exsltDateRegister</a>              (void);
+void   <a href="#exsltCryptoRegister">exsltCryptoRegister</a>          (void);
+void   <a href="#exsltMathRegister">exsltMathRegister</a>              (void);
+int    <a href="#exsltMathXpathCtxtRegister">exsltMathXpathCtxtRegister</a>    (xmlXPathContextPtr ctxt, 
<br/>                                  const xmlChar * prefix);
+void   <a href="#exsltSaxonRegister">exsltSaxonRegister</a>            (void);
+int    <a href="#exsltDateXpathCtxtRegister">exsltDateXpathCtxtRegister</a>    (xmlXPathContextPtr ctxt, 
<br/>                                  const xmlChar * prefix);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="EXSLT_COMMON_NAMESPACE">Macro 
</a>EXSLT_COMMON_NAMESPACE</h3><pre class="programlisting">#define <a 
href="#EXSLT_COMMON_NAMESPACE">EXSLT_COMMON_NAMESPACE</a>;
+</pre><p>Namespace for EXSLT common functions</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="EXSLT_CRYPTO_NAMESPACE">Macro 
</a>EXSLT_CRYPTO_NAMESPACE</h3><pre class="programlisting">#define <a 
href="#EXSLT_CRYPTO_NAMESPACE">EXSLT_CRYPTO_NAMESPACE</a>;
+</pre><p>Namespace for EXSLT crypto functions</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="EXSLT_DATE_NAMESPACE">Macro 
</a>EXSLT_DATE_NAMESPACE</h3><pre class="programlisting">#define <a 
href="#EXSLT_DATE_NAMESPACE">EXSLT_DATE_NAMESPACE</a>;
+</pre><p>Namespace for EXSLT date functions</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="EXSLT_DYNAMIC_NAMESPACE">Macro 
</a>EXSLT_DYNAMIC_NAMESPACE</h3><pre class="programlisting">#define <a 
href="#EXSLT_DYNAMIC_NAMESPACE">EXSLT_DYNAMIC_NAMESPACE</a>;
+</pre><p>Namespace for EXSLT dynamic functions</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="EXSLT_FUNCTIONS_NAMESPACE">Macro 
</a>EXSLT_FUNCTIONS_NAMESPACE</h3><pre class="programlisting">#define <a 
href="#EXSLT_FUNCTIONS_NAMESPACE">EXSLT_FUNCTIONS_NAMESPACE</a>;
+</pre><p>Namespace for EXSLT functions extension functions</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="EXSLT_MATH_NAMESPACE">Macro 
</a>EXSLT_MATH_NAMESPACE</h3><pre class="programlisting">#define <a 
href="#EXSLT_MATH_NAMESPACE">EXSLT_MATH_NAMESPACE</a>;
+</pre><p>Namespace for EXSLT math functions</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="EXSLT_SETS_NAMESPACE">Macro 
</a>EXSLT_SETS_NAMESPACE</h3><pre class="programlisting">#define <a 
href="#EXSLT_SETS_NAMESPACE">EXSLT_SETS_NAMESPACE</a>;
+</pre><p>Namespace for EXSLT set functions</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="EXSLT_STRINGS_NAMESPACE">Macro 
</a>EXSLT_STRINGS_NAMESPACE</h3><pre class="programlisting">#define <a 
href="#EXSLT_STRINGS_NAMESPACE">EXSLT_STRINGS_NAMESPACE</a>;
+</pre><p>Namespace for EXSLT strings functions</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="SAXON_NAMESPACE">Macro </a>SAXON_NAMESPACE</h3><pre 
class="programlisting">#define <a href="#SAXON_NAMESPACE">SAXON_NAMESPACE</a>;
+</pre><p>Namespace for SAXON extensions functions</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltLibexsltVersion">Variable 
</a>exsltLibexsltVersion</h3><pre class="programlisting">const int exsltLibexsltVersion;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltLibraryVersion">Variable 
</a>exsltLibraryVersion</h3><pre class="programlisting">const char * exsltLibraryVersion;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltLibxmlVersion">Variable 
</a>exsltLibxmlVersion</h3><pre class="programlisting">const int exsltLibxmlVersion;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltLibxsltVersion">Variable 
</a>exsltLibxsltVersion</h3><pre class="programlisting">const int exsltLibxsltVersion;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltCommonRegister"/>exsltCommonRegister ()</h3><pre 
class="programlisting">void exsltCommonRegister             (void)<br/>
+</pre><p>Registers the EXSLT - Common module</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltCryptoRegister"/>exsltCryptoRegister ()</h3><pre 
class="programlisting">void exsltCryptoRegister             (void)<br/>
+</pre><p>Registers the EXSLT - Crypto module</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltDateRegister"/>exsltDateRegister ()</h3><pre 
class="programlisting">void     exsltDateRegister               (void)<br/>
+</pre><p>Registers the EXSLT - Dates and Times module</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltDateXpathCtxtRegister"/>exsltDateXpathCtxtRegister 
()</h3><pre class="programlisting">int    exsltDateXpathCtxtRegister      (xmlXPathContextPtr ctxt, <br/>     
                             const xmlChar * prefix)<br/>
+</pre><p>Registers the EXSLT - Dates and Times module for use outside XSLT</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>prefix</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltDynRegister"/>exsltDynRegister ()</h3><pre 
class="programlisting">void       exsltDynRegister                (void)<br/>
+</pre><p>Registers the EXSLT - Dynamic module</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltFuncRegister"/>exsltFuncRegister ()</h3><pre 
class="programlisting">void     exsltFuncRegister               (void)<br/>
+</pre><p>Registers the EXSLT - Functions module</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltMathRegister"/>exsltMathRegister ()</h3><pre 
class="programlisting">void     exsltMathRegister               (void)<br/>
+</pre><p>Registers the EXSLT - Math module</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltMathXpathCtxtRegister"/>exsltMathXpathCtxtRegister 
()</h3><pre class="programlisting">int    exsltMathXpathCtxtRegister      (xmlXPathContextPtr ctxt, <br/>     
                             const xmlChar * prefix)<br/>
+</pre><p>Registers the EXSLT - Math module for use outside XSLT</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>prefix</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltRegisterAll"/>exsltRegisterAll ()</h3><pre 
class="programlisting">void       exsltRegisterAll                (void)<br/>
+</pre><p>Registers all available EXSLT extensions</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltSaxonRegister"/>exsltSaxonRegister ()</h3><pre 
class="programlisting">void   exsltSaxonRegister              (void)<br/>
+</pre><p>Registers the SAXON extension module</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltSetsRegister"/>exsltSetsRegister ()</h3><pre 
class="programlisting">void     exsltSetsRegister               (void)<br/>
+</pre><p>Registers the EXSLT - Sets module</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltSetsXpathCtxtRegister"/>exsltSetsXpathCtxtRegister 
()</h3><pre class="programlisting">int    exsltSetsXpathCtxtRegister      (xmlXPathContextPtr ctxt, <br/>     
                             const xmlChar * prefix)<br/>
+</pre><p>Registers the EXSLT - Sets module for use outside XSLT</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>prefix</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltStrRegister"/>exsltStrRegister ()</h3><pre 
class="programlisting">void       exsltStrRegister                (void)<br/>
+</pre><p>Registers the EXSLT - Strings module</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="exsltStrXpathCtxtRegister"/>exsltStrXpathCtxtRegister 
()</h3><pre class="programlisting">int      exsltStrXpathCtxtRegister       (xmlXPathContextPtr ctxt, <br/>   
                               const xmlChar * prefix)<br/>
+</pre><p>Registers the EXSLT - Strings module for use outside XSLT</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>prefix</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/EXSLT/devhelp/libexslt-exsltexports.html b/doc/EXSLT/devhelp/libexslt-exsltexports.html
new file mode 100644
index 00000000..b04b4c02
--- /dev/null
+++ b/doc/EXSLT/devhelp/libexslt-exsltexports.html
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>exsltexports: macros for marking symbols as exportable/importable. </title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libexslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libexslt-exslt.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libexslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">exsltexports</span>
+    </h2>
+    <p>exsltexports - macros for marking symbols as exportable/importable. </p>
+    <p/>
+    <p>Author(s): Igor Zlatkovic &lt;igor zlatkovic com&gt; </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">#define <a href="#LIBEXSLT_PUBLIC">LIBEXSLT_PUBLIC</a>;
+#define <a href="#_REENTRANT">_REENTRANT</a>;
+#define <a href="#EXSLTCALL">EXSLTCALL</a>;
+#define <a href="#EXSLTPUBFUN">EXSLTPUBFUN</a>;
+#define <a href="#EXSLTPUBVAR">EXSLTPUBVAR</a>;
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="EXSLTCALL">Macro </a>EXSLTCALL</h3><pre 
class="programlisting">#define <a href="#EXSLTCALL">EXSLTCALL</a>;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="EXSLTPUBFUN">Macro </a>EXSLTPUBFUN</h3><pre 
class="programlisting">#define <a href="#EXSLTPUBFUN">EXSLTPUBFUN</a>;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="EXSLTPUBVAR">Macro </a>EXSLTPUBVAR</h3><pre 
class="programlisting">#define <a href="#EXSLTPUBVAR">EXSLTPUBVAR</a>;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="LIBEXSLT_PUBLIC">Macro </a>LIBEXSLT_PUBLIC</h3><pre 
class="programlisting">#define <a href="#LIBEXSLT_PUBLIC">LIBEXSLT_PUBLIC</a>;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="_REENTRANT">Macro </a>_REENTRANT</h3><pre 
class="programlisting">#define <a href="#_REENTRANT">_REENTRANT</a>;
+</pre><p/>
+</div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/EXSLT/devhelp/libexslt.devhelp2 b/doc/EXSLT/devhelp/libexslt.devhelp2
new file mode 100644
index 00000000..12020f8f
--- /dev/null
+++ b/doc/EXSLT/devhelp/libexslt.devhelp2
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<book xmlns="http://www.devhelp.net/book"; title="libexslt Reference Manual" link="index.html" author="" 
name="libexslt">
+  <chapters>
+    <sub name="API" link="general.html">
+      <sub name="exslt" link="libexslt-exslt.html"/>
+      <sub name="exsltexports" link="libexslt-exsltexports.html"/>
+    </sub>
+  </chapters>
+  <functions>
+    <keyword type="macro" name="EXSLTCALL" link="libexslt-exsltexports.html#EXSLTCALL"/>
+    <keyword type="macro" name="EXSLTPUBFUN" link="libexslt-exsltexports.html#EXSLTPUBFUN"/>
+    <keyword type="macro" name="EXSLTPUBVAR" link="libexslt-exsltexports.html#EXSLTPUBVAR"/>
+    <keyword type="macro" name="EXSLT_COMMON_NAMESPACE" link="libexslt-exslt.html#EXSLT_COMMON_NAMESPACE"/>
+    <keyword type="macro" name="EXSLT_CRYPTO_NAMESPACE" link="libexslt-exslt.html#EXSLT_CRYPTO_NAMESPACE"/>
+    <keyword type="macro" name="EXSLT_DATE_NAMESPACE" link="libexslt-exslt.html#EXSLT_DATE_NAMESPACE"/>
+    <keyword type="macro" name="EXSLT_DYNAMIC_NAMESPACE" link="libexslt-exslt.html#EXSLT_DYNAMIC_NAMESPACE"/>
+    <keyword type="macro" name="EXSLT_FUNCTIONS_NAMESPACE" 
link="libexslt-exslt.html#EXSLT_FUNCTIONS_NAMESPACE"/>
+    <keyword type="macro" name="EXSLT_MATH_NAMESPACE" link="libexslt-exslt.html#EXSLT_MATH_NAMESPACE"/>
+    <keyword type="macro" name="EXSLT_SETS_NAMESPACE" link="libexslt-exslt.html#EXSLT_SETS_NAMESPACE"/>
+    <keyword type="macro" name="EXSLT_STRINGS_NAMESPACE" link="libexslt-exslt.html#EXSLT_STRINGS_NAMESPACE"/>
+    <keyword type="macro" name="LIBEXSLT_PUBLIC" link="libexslt-exsltexports.html#LIBEXSLT_PUBLIC"/>
+    <keyword type="macro" name="SAXON_NAMESPACE" link="libexslt-exslt.html#SAXON_NAMESPACE"/>
+    <keyword type="macro" name="_REENTRANT" link="libexslt-exsltexports.html#_REENTRANT"/>
+    <keyword type="macro" name="exsltLibexsltVersion" link="libexslt-exslt.html#exsltLibexsltVersion"/>
+    <keyword type="macro" name="exsltLibraryVersion" link="libexslt-exslt.html#exsltLibraryVersion"/>
+    <keyword type="macro" name="exsltLibxmlVersion" link="libexslt-exslt.html#exsltLibxmlVersion"/>
+    <keyword type="macro" name="exsltLibxsltVersion" link="libexslt-exslt.html#exsltLibxsltVersion"/>
+    <keyword type="function" name="exsltCommonRegister ()" link="libexslt-exslt.html#exsltCommonRegister"/>
+    <keyword type="function" name="exsltCryptoRegister ()" link="libexslt-exslt.html#exsltCryptoRegister"/>
+    <keyword type="function" name="exsltDateRegister ()" link="libexslt-exslt.html#exsltDateRegister"/>
+    <keyword type="function" name="exsltDateXpathCtxtRegister ()" 
link="libexslt-exslt.html#exsltDateXpathCtxtRegister"/>
+    <keyword type="function" name="exsltDynRegister ()" link="libexslt-exslt.html#exsltDynRegister"/>
+    <keyword type="function" name="exsltFuncRegister ()" link="libexslt-exslt.html#exsltFuncRegister"/>
+    <keyword type="function" name="exsltMathRegister ()" link="libexslt-exslt.html#exsltMathRegister"/>
+    <keyword type="function" name="exsltMathXpathCtxtRegister ()" 
link="libexslt-exslt.html#exsltMathXpathCtxtRegister"/>
+    <keyword type="function" name="exsltRegisterAll ()" link="libexslt-exslt.html#exsltRegisterAll"/>
+    <keyword type="function" name="exsltSaxonRegister ()" link="libexslt-exslt.html#exsltSaxonRegister"/>
+    <keyword type="function" name="exsltSetsRegister ()" link="libexslt-exslt.html#exsltSetsRegister"/>
+    <keyword type="function" name="exsltSetsXpathCtxtRegister ()" 
link="libexslt-exslt.html#exsltSetsXpathCtxtRegister"/>
+    <keyword type="function" name="exsltStrRegister ()" link="libexslt-exslt.html#exsltStrRegister"/>
+    <keyword type="function" name="exsltStrXpathCtxtRegister ()" 
link="libexslt-exslt.html#exsltStrXpathCtxtRegister"/>
+  </functions>
+</book>
diff --git a/doc/EXSLT/devhelp/right.png b/doc/EXSLT/devhelp/right.png
new file mode 100644
index 00000000..92832e3a
Binary files /dev/null and b/doc/EXSLT/devhelp/right.png differ
diff --git a/doc/EXSLT/devhelp/style.css b/doc/EXSLT/devhelp/style.css
new file mode 100644
index 00000000..c9cabe78
--- /dev/null
+++ b/doc/EXSLT/devhelp/style.css
@@ -0,0 +1,66 @@
+.synopsis, .classsynopsis 
+{
+  background: #eeeeee;
+  border: solid 1px #aaaaaa;
+  padding: 0.5em;
+}
+.programlisting 
+{
+  background: #eeeeff;
+  border: solid 1px #aaaaff;
+  padding: 0.5em;
+}
+.variablelist 
+{
+  padding: 4px;
+  margin-left: 3em;
+}
+.variablelist td:first-child
+{
+  vertical-align: top;
+}
+table.navigation 
+{
+  background: #ffeeee;
+  border: solid 1px #ffaaaa;
+  margin-top: 0.5em;
+  margin-bottom: 0.5em;
+}
+.navigation a 
+{
+  color: #770000;
+}
+.navigation a:visited 
+{
+  color: #550000;
+}
+.navigation .title 
+{
+  font-size: 200%;
+}
+div.refnamediv 
+{
+  margin-top: 2em;
+}
+div.gallery-float 
+{
+  float: left;
+  padding: 10px;
+}
+div.gallery-float img 
+{
+  border-style: none;
+}
+div.gallery-spacer 
+{
+  clear: both;
+}
+a
+{
+  text-decoration: none;
+}
+a:hover
+{
+  text-decoration: underline;
+  color: #FF0000;
+}
diff --git a/doc/EXSLT/devhelp/up.png b/doc/EXSLT/devhelp/up.png
new file mode 100644
index 00000000..85b3e2a2
Binary files /dev/null and b/doc/EXSLT/devhelp/up.png differ
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 13d8c3c7..b99bf382 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -1,5 +1,7 @@
 ## Process this file with automake to produce Makefile.in
 
+SUBDIRS = devhelp EXSLT/devhelp
+
 # The top-level SGML file.
 DOC_MAIN_XML_FILE=libxslt.xml
 
diff --git a/doc/devhelp/Makefile.am b/doc/devhelp/Makefile.am
new file mode 100644
index 00000000..66bc761b
--- /dev/null
+++ b/doc/devhelp/Makefile.am
@@ -0,0 +1,56 @@
+devhelpdir = $(datadir)/gtk-doc/html/libxslt
+
+dist_devhelp_DATA =                    \
+       libxslt.devhelp2                \
+       $(HTML_FILES)                   \
+       $(EXTRA_FORMAT)
+
+HTML_FILES =                           \
+       general.html                    \
+       index.html                      \
+       $(HTML_MODULES)
+
+HTML_MODULES=                          \
+       libxslt-attributes.html         \
+       libxslt-documents.html          \
+       libxslt-extensions.html         \
+       libxslt-extra.html              \
+       libxslt-functions.html          \
+       libxslt-imports.html            \
+       libxslt-keys.html               \
+       libxslt-namespaces.html         \
+       libxslt-numbersInternals.html   \
+       libxslt-pattern.html            \
+       libxslt-preproc.html            \
+       libxslt-security.html           \
+       libxslt-templates.html          \
+       libxslt-transform.html          \
+       libxslt-variables.html          \
+       libxslt-xsltexports.html        \
+       libxslt-xslt.html               \
+       libxslt-xsltInternals.html      \
+       libxslt-xsltlocale.html         \
+       libxslt-xsltutils.html
+
+EXTRA_FORMAT=                          \
+       home.png                        \
+       left.png                        \
+       right.png                       \
+       up.png                          \
+       style.css
+
+EXTRA_DIST = devhelp2.xsl html.xsl
+
+if REBUILD_DOCS
+
+rebuild: libxslt.devhelp2
+.PHONY: rebuild
+
+$(HTML_FILES): libxslt.devhelp2
+
+libxslt.devhelp2: devhelp2.xsl html.xsl $(top_srcdir)/doc/libxslt-api.xml
+       -@(if [ -x $(XSLTPROC) ] ; then \
+         echo Rebuilding devhelp2 files ; \
+         $(XSLTPROC) --nonet -o $(srcdir)/libxslt.devhelp2 $(srcdir)/devhelp2.xsl 
$(top_srcdir)/doc/libxslt-api.xml ; fi );
+
+endif
diff --git a/doc/devhelp/devhelp2.xsl b/doc/devhelp/devhelp2.xsl
new file mode 100644
index 00000000..1848bfd1
--- /dev/null
+++ b/doc/devhelp/devhelp2.xsl
@@ -0,0 +1,127 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0"
+               xmlns="http://www.devhelp.net/book";
+               xmlns:exsl="http://exslt.org/common";
+               xmlns:str="http://exslt.org/strings";
+               extension-element-prefixes="exsl str"
+               exclude-result-prefixes="exsl str">
+  <!-- The stylesheet for the html pages -->
+  <xsl:import href="html.xsl"/>
+
+  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
+
+  <!-- Build keys for all symbols -->
+  <xsl:key name="symbols" match="/api/symbols/*" use="@name"/>
+
+  <xsl:template match="/api">
+    <book title="{@name} Reference Manual" link="index.html" author="" name="{@name}">
+      <xsl:apply-templates select="files"/>
+      <xsl:apply-templates select="symbols"/>
+    </book>
+    <xsl:call-template name="generate_index"/>
+    <xsl:call-template name="generate_general"/>
+  </xsl:template>
+  <xsl:template match="/api/files">
+    <chapters>
+      <sub name="API" link="general.html">
+        <xsl:apply-templates select="file"/>
+      </sub>
+    </chapters>
+  </xsl:template>
+  <xsl:template match="/api/files/file">
+    <xsl:variable name="module" select="@name"/>
+    <xsl:variable name="prev" select="string(preceding-sibling::file[position()=1]/@name)"/>
+    <xsl:variable name="next" select="string(following-sibling::file[position()=1]/@name)"/>
+    <sub name="{@name}" link="libxslt-{@name}.html"/>
+    <xsl:document xmlns="" href="libxslt-{@name}.html" method="xml" indent="yes" encoding="UTF-8">
+      <html>
+        <head>
+         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+         <title><xsl:value-of select="concat(@name, ': ', summary)"/></title>
+         <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+         <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+         <link rel="up" href="general.html" title="API"/>
+         <link rel="stylesheet" href="style.css" type="text/css"/>
+         <link rel="chapter" href="general.html" title="API"/>
+        </head>
+       <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+
+          <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+           <tr valign="middle">
+             <xsl:if test="$prev != ''">
+               <td><a accesskey="p" href="libxslt-{$prev}.html"><img src="left.png" width="24" height="24" 
border="0" alt="Prev"/></a></td>
+             </xsl:if>
+              <td><a accesskey="u" href="general.html"><img src="up.png" width="24" height="24" border="0" 
alt="Up"/></a></td>
+              <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" 
alt="Home"/></a></td>
+             <xsl:if test="$next != ''">
+               <td><a accesskey="n" href="libxslt-{$next}.html"><img src="right.png" width="24" height="24" 
border="0" alt="Next"/></a></td>
+             </xsl:if>
+              <th width="100%" align="center">libxslt Reference Manual</th>
+            </tr>
+         </table>
+         <h2><span class="refentrytitle"><xsl:value-of select="@name"/></span></h2>
+         <p><xsl:value-of select="@name"/> - <xsl:value-of select="summary"/></p>
+         <p><xsl:value-of select="description"/></p>
+         <xsl:if test="deprecated">
+           <p> WARNING: this module is deprecated !</p>
+         </xsl:if>
+         <p>Author(s): <xsl:value-of select="author"/></p>
+         <div class="refsynopsisdiv">
+         <h2>Synopsis</h2>
+         <pre class="synopsis">
+           <xsl:apply-templates mode="synopsis" select="exports"/>
+         </pre>
+         </div>
+         <div class="refsect1" lang="en">
+         <h2>Description</h2>
+         </div>
+         <div class="refsect1" lang="en">
+         <h2>Details</h2>
+         <div class="refsect2" lang="en">
+           <xsl:apply-templates mode="details" select="/api/symbols/macro[@file=$module]"/>
+           <xsl:apply-templates mode="details" select="/api/symbols/typedef[@file=$module] | 
/api/symbols/struct[@file=$module]"/>
+           <xsl:apply-templates mode="details" select="/api/symbols/functype[@file=$module]"/>
+           <xsl:apply-templates mode="details" select="/api/symbols/variable[@file=$module]"/>
+           <xsl:apply-templates mode="details" select="/api/symbols/function[@file=$module]"/>
+         </div>
+         </div>
+       </body>
+      </html>
+    </xsl:document>
+  </xsl:template>
+  <xsl:template match="/api/symbols">
+    <functions>
+      <xsl:apply-templates select="macro"/>
+      <xsl:apply-templates select="enum"/>
+      <xsl:apply-templates select="typedef"/>
+      <xsl:apply-templates select="struct"/>
+      <xsl:apply-templates select="functype"/>
+      <xsl:apply-templates select="variable"/>
+      <xsl:apply-templates select="function"/>
+    </functions>
+  </xsl:template>
+  <xsl:template match="/api/symbols/functype">
+    <keyword type="function" name="{@name}" link="libxslt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/function">
+    <keyword type="function" name="{@name} ()" link="libxslt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/typedef">
+    <keyword type="typedef" name="{@name}" link="libxslt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/enum">
+    <keyword type="enum" name="{@name}" link="libxslt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/struct">
+    <keyword type="struct" name="{@name}" link="libxslt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/macro">
+    <keyword type="macro" name="{@name}" link="libxslt-{@file}.html#{@name}"/>
+  </xsl:template>
+  <xsl:template match="/api/symbols/variable">
+    <keyword type="macro" name="{@name}" link="libxslt-{@file}.html#{@name}"/>
+  </xsl:template>
+
+</xsl:stylesheet>
+
+
diff --git a/doc/devhelp/general.html b/doc/devhelp/general.html
new file mode 100644
index 00000000..6352d055
--- /dev/null
+++ b/doc/devhelp/general.html
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>libxslt: </title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="index.html" title="libxslt Reference Manual"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="u" href="index.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-attributes.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">libxslt API Modules</span>
+    </h2>
+    <p><a href="libxslt-attributes.html">attributes</a> - interface for the XSLT attribute handling<br/><a 
href="libxslt-documents.html">documents</a> - interface for the document handling<br/><a 
href="libxslt-extensions.html">extensions</a> - interface for the extension support<br/><a 
href="libxslt-extra.html">extra</a> - interface for the non-standard features<br/><a 
href="libxslt-functions.html">functions</a> - interface for the XSLT functions not from XPath<br/><a 
href="libxslt-imports.html">imports</a> - interface for the XSLT import support<br/><a 
href="libxslt-keys.html">keys</a> - interface for the key matching used in key() and template matches.<br/><a 
href="libxslt-namespaces.html">namespaces</a> - interface for the XSLT namespace handling<br/><a 
href="libxslt-numbersInternals.html">numbersInternals</a> - Implementation of the XSLT number 
functions<br/><a href="libxslt-pattern.html">pattern</a> - interface for the pattern matching used in 
template matches.<br/><a href="lib
 xslt-preproc.html">preproc</a> - precomputing stylesheets<br/><a href="libxslt-security.html">security</a> - 
interface for the libxslt security framework<br/><a href="libxslt-templates.html">templates</a> - interface 
for the template processing<br/><a href="libxslt-transform.html">transform</a> - the XSLT engine 
transformation part.<br/><a href="libxslt-variables.html">variables</a> - interface for the variable matching 
and lookup.<br/><a href="libxslt-xslt.html">xslt</a> - Interfaces, constants and types related to the XSLT 
engine<br/><a href="libxslt-xsltInternals.html">xsltInternals</a> - internal data structures, constants and 
functions<br/><a href="libxslt-xsltexports.html">xsltexports</a> - macros for marking symbols as 
exportable/importable.<br/><a href="libxslt-xsltlocale.html">xsltlocale</a> - Locale handling<br/><a 
href="libxslt-xsltutils.html">xsltutils</a> - set of utilities for the XSLT engine<br/></p>
+  </body>
+</html>
diff --git a/doc/devhelp/home.png b/doc/devhelp/home.png
new file mode 100644
index 00000000..17003611
Binary files /dev/null and b/doc/devhelp/home.png differ
diff --git a/doc/devhelp/html.xsl b/doc/devhelp/html.xsl
new file mode 100644
index 00000000..f0004696
--- /dev/null
+++ b/doc/devhelp/html.xsl
@@ -0,0 +1,572 @@
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; version="1.0"
+               xmlns:exsl="http://exslt.org/common";
+               xmlns:str="http://exslt.org/strings";
+               extension-element-prefixes="exsl str"
+               exclude-result-prefixes="exsl str">
+  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
+
+  <!-- This is convoluted but needed to force the current document to
+       be the API one and not the result tree from the tokenize() result,
+       because the keys are only defined on the main document -->
+  <xsl:template mode="dumptoken" match='*'>
+    <xsl:param name="token"/>
+    <xsl:variable name="ref" select="key('symbols', $token)"/>
+    <xsl:choose>
+      <xsl:when test="$ref">
+        <a href="libxslt-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:value-of select="$token"/>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:template>
+
+  <!-- dumps a string, making cross-reference links -->
+  <xsl:template name="dumptext">
+    <xsl:param name="text"/>
+    <xsl:variable name="ctxt" select='.'/>
+    <!-- <xsl:value-of select="$text"/> -->
+    <xsl:for-each select="str:tokenize($text, ' &#9;')">
+      <xsl:apply-templates select="$ctxt" mode='dumptoken'>
+        <xsl:with-param name="token" select="string(.)"/>
+      </xsl:apply-templates>
+      <xsl:if test="position() != last()">
+        <xsl:text> </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+  </xsl:template>
+
+<!--
+
+             The following builds the Synopsis section
+
+-->
+  <xsl:template mode="synopsis" match="function">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 
8))"/>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text>&#9;</xsl:text>
+    <a href="#{@name}"><xsl:value-of select="@name"/></a>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+       <xsl:if test="$blen - 40 &gt; 8">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:if test="$blen - 40 &gt; 0">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>);</xsl:text>
+    <xsl:text>
+</xsl:text>
+  </xsl:template>
+
+  <xsl:template mode="synopsis" match="functype">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 
8))"/>
+    <xsl:text>typedef </xsl:text>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <a href="#{@name}"><xsl:value-of select="@name"/></a>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+       <xsl:if test="$blen - 40 &gt; 8">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:if test="$blen - 40 &gt; 0">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>);</xsl:text>
+    <xsl:text>
+</xsl:text>
+  </xsl:template>
+
+  <xsl:template mode="synopsis" match="exports[@type='function']">
+    <xsl:variable name="def" select="key('symbols',@symbol)"/>
+    <xsl:apply-templates mode="synopsis" select="$def"/>
+  </xsl:template>
+
+  <xsl:template mode="synopsis" match="exports[@type='typedef']">
+    <xsl:text>typedef </xsl:text>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="string(key('symbols',@symbol)/@type)"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <a href="#{@symbol}"><xsl:value-of select="@symbol"/></a>
+    <xsl:text>;
+</xsl:text>
+  </xsl:template>
+
+  <xsl:template mode="synopsis" match="exports[@type='macro']">
+    <xsl:variable name="def" select="key('symbols',@symbol)"/>
+    <xsl:text>#define </xsl:text>
+    <a href="#{@symbol}"><xsl:value-of select="@symbol"/></a>
+    <xsl:if test="$def/arg">
+      <xsl:text>(</xsl:text>
+      <xsl:for-each select="$def/arg">
+        <xsl:value-of select="@name"/>
+       <xsl:if test="position() != last()">
+         <xsl:text>, </xsl:text>
+       </xsl:if>
+      </xsl:for-each>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+    <xsl:text>;
+</xsl:text>
+  </xsl:template>
+  <xsl:template mode="synopsis" match="exports[@type='enum']">
+  </xsl:template>
+  <xsl:template mode="synopsis" match="exports[@type='struct']">
+  </xsl:template>
+
+<!--
+
+             The following builds the Details section
+
+-->
+  <xsl:template mode="details" match="struct">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Structure </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:value-of select="@type"/><xsl:text> {
+</xsl:text>
+    <xsl:if test="not(field)">
+      <xsl:text>The content of this structure is not made public by the API.
+</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="field">
+        <xsl:text>    </xsl:text>
+       <xsl:call-template name="dumptext">
+         <xsl:with-param name="text" select="@type"/>
+       </xsl:call-template>
+       <xsl:text>&#9;</xsl:text>
+       <xsl:value-of select="@name"/>
+       <xsl:if test="@info != ''">
+         <xsl:text>&#9;: </xsl:text>
+         <xsl:call-template name="dumptext">
+           <xsl:with-param name="text" select="substring(@info, 1, 70)"/>
+         </xsl:call-template>
+       </xsl:if>
+       <xsl:text>
+</xsl:text>
+    </xsl:for-each>
+    <xsl:text>} </xsl:text>
+    <xsl:value-of select="$name"/>
+    <xsl:text>;
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="typedef[@type != 'enum']">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Typedef </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="string(@type)"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$name"/>
+    <xsl:text>;
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="variable">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Variable </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="string(@type)"/>
+    </xsl:call-template>
+    <xsl:text> </xsl:text>
+    <xsl:value-of select="$name"/>
+    <xsl:text>;
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="typedef[@type = 'enum']">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Enum </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:text>enum </xsl:text>
+    <a href="#{$name}"><xsl:value-of select="$name"/></a>
+    <xsl:text> {
+</xsl:text>
+    <xsl:for-each select="/api/symbols/enum[@type=$name]">
+      <xsl:sort select="@value" data-type="number" order="ascending"/>
+      <xsl:text>    </xsl:text>
+      <a name="{@name}"><xsl:value-of select="@name"/></a>
+      <xsl:if test="@value">
+        <xsl:text> = </xsl:text>
+       <xsl:value-of select="@value"/>
+      </xsl:if>
+      <xsl:if test="@info">
+        <xsl:text> /* </xsl:text>
+       <xsl:value-of select="@info"/>
+        <xsl:text> */</xsl:text>
+      </xsl:if>
+      <xsl:text>
+</xsl:text>
+    </xsl:for-each>
+    <xsl:text>};
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="macro">
+    <xsl:variable name="name" select="string(@name)"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}">Macro </a><xsl:value-of select="$name"/></h3>
+    <pre class="programlisting">
+    <xsl:text>#define </xsl:text>
+    <a href="#{$name}"><xsl:value-of select="$name"/></a>
+    <xsl:if test="arg">
+      <xsl:text>(</xsl:text>
+      <xsl:for-each select="arg">
+        <xsl:value-of select="@name"/>
+       <xsl:if test="position() != last()">
+         <xsl:text>, </xsl:text>
+       </xsl:if>
+      </xsl:for-each>
+      <xsl:text>)</xsl:text>
+    </xsl:if>
+    <xsl:text>;
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p>
+    <xsl:if test="arg">
+      <div class="variablelist"><table border="0"><col align="left"/><tbody>
+      <xsl:for-each select="arg">
+        <tr>
+          <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:for-each>
+      </tbody></table></div>
+    </xsl:if>
+    <xsl:text>
+</xsl:text>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="function">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 
8))"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}"></a><xsl:value-of select="$name"/> ()</h3>
+    <pre class="programlisting">
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text>&#9;</xsl:text>
+    <xsl:value-of select="@name"/>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+       <xsl:if test="$blen - 40 &gt; 8">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:if test="$blen - 40 &gt; 0">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>)</xsl:text><br/>
+    <xsl:text>
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    <xsl:if test="arg | return/@info">
+      <div class="variablelist"><table border="0"><col align="left"/><tbody>
+      <xsl:for-each select="arg">
+        <tr>
+          <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:for-each>
+      <xsl:if test="return/@info">
+        <tr>
+          <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="return/@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:if>
+      </tbody></table></div>
+    </xsl:if>
+    </div><hr/>
+  </xsl:template>
+
+  <xsl:template mode="details" match="functype">
+    <xsl:variable name="name" select="string(@name)"/>
+    <xsl:variable name="nlen" select="string-length($name)"/>
+    <xsl:variable name="tlen" select="string-length(return/@type)"/>
+    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 
8))"/>
+    <div class="refsect2" lang="en">
+    <h3><a name="{$name}"></a>Function type <xsl:value-of select="$name"/> </h3>
+    <pre class="programlisting">
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="return/@type"/>
+    </xsl:call-template>
+    <xsl:text>&#9;</xsl:text>
+    <xsl:value-of select="@name"/>
+    <xsl:if test="$blen - 40 &lt; -8">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:if test="$blen - 40 &lt; 0">
+      <xsl:text>&#9;</xsl:text>
+    </xsl:if>
+    <xsl:text>&#9;(</xsl:text>
+    <xsl:if test="not(arg)">
+      <xsl:text>void</xsl:text>
+    </xsl:if>
+    <xsl:for-each select="arg">
+      <xsl:call-template name="dumptext">
+        <xsl:with-param name="text" select="@type"/>
+      </xsl:call-template>
+      <xsl:text> </xsl:text>
+      <xsl:value-of select="@name"/>
+      <xsl:if test="position() != last()">
+        <xsl:text>, </xsl:text><br/>
+       <xsl:if test="$blen - 40 &gt; 8">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:if test="$blen - 40 &gt; 0">
+         <xsl:text>&#9;</xsl:text>
+       </xsl:if>
+       <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:text>)</xsl:text><br/>
+    <xsl:text>
+</xsl:text>
+    </pre>
+    <p>
+    <xsl:call-template name="dumptext">
+      <xsl:with-param name="text" select="info"/>
+    </xsl:call-template>
+    </p><xsl:text>
+</xsl:text>
+    <xsl:if test="arg | return/@info">
+      <div class="variablelist"><table border="0"><col align="left"/><tbody>
+      <xsl:for-each select="arg">
+        <tr>
+          <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:for-each>
+      <xsl:if test="return/@info">
+        <tr>
+          <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
+         <td>
+           <xsl:call-template name="dumptext">
+             <xsl:with-param name="text" select="return/@info"/>
+           </xsl:call-template>
+         </td>
+        </tr>
+      </xsl:if>
+      </tbody></table></div>
+    </xsl:if>
+    </div><hr/>
+  </xsl:template>
+
+<!--
+
+             The following builds the general.html page
+
+-->
+  <xsl:template name="generate_general">
+    <xsl:variable name="next" select="string(/api/files/file[position()=1]/@name)"/>
+    <xsl:document xmlns="" href="general.html" method="xml" indent="yes" encoding="UTF-8">
+      <html>
+        <head>
+         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+         <title><xsl:value-of select="concat(@name, ': ', summary)"/></title>
+         <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+         <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+         <link rel="up" href="index.html" title="libxslt Reference Manual"/>
+         <link rel="stylesheet" href="style.css" type="text/css"/>
+         <link rel="chapter" href="index.html" title="libxslt Reference Manual"/>
+        </head>
+       <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+
+          <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+           <tr valign="middle">
+              <td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" 
alt="Up"/></a></td>
+              <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" 
alt="Home"/></a></td>
+             <xsl:if test="$next != ''">
+               <td><a accesskey="n" href="libxslt-{$next}.html"><img src="right.png" width="24" height="24" 
border="0" alt="Next"/></a></td>
+             </xsl:if>
+              <th width="100%" align="center">libxslt Reference Manual</th>
+            </tr>
+         </table>
+         <h2><span class="refentrytitle">libxslt API Modules</span></h2>
+         <p>
+         <xsl:for-each select="/api/files/file">
+           <a href="libxslt-{@name}.html"><xsl:value-of select="@name"/></a> - <xsl:value-of 
select="summary"/><br/>
+         </xsl:for-each>
+         </p>
+       </body>
+      </html>
+    </xsl:document>
+  </xsl:template>
+
+<!--
+
+             The following builds the index.html page
+
+-->
+  <xsl:template name="generate_index">
+    <xsl:document xmlns="" href="index.html" method="xml" indent="yes" encoding="UTF-8">
+      <html>
+        <head>
+         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+         <title>libxslt Reference Manual</title>
+         <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+         <link rel="stylesheet" href="style.css" type="text/css"/>
+        </head>
+       <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+
+          <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+           <tr valign="middle">
+              <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" 
alt="Home"/></a></td>
+             <td><a accesskey="n" href="general.html"><img src="right.png" width="24" height="24" border="0" 
alt="Next"/></a></td>
+              <th width="100%" align="center">libxslt Reference Manual</th>
+            </tr>
+         </table>
+         <h2><span class="refentrytitle">libxslt Reference Manual</span></h2>
+<p>libxslt is the <a href="http://www.w3.org/TR/xslt";>XSLT</a> C library
+developed for the GNOME project. XSLT itself is a an XML language to define
+transformation for XML. Libxslt is based on <a
+href="https://gitlab.gnome.org/GNOME/libxml2/";>libxml2</a> the XML C library developed for the
+GNOME project. It also implements most of the <a
+href="http://www.exslt.org/";>EXSLT</a> set of processor-portable extensions
+functions and some of Saxon's evaluate and expressions extensions.</p>
+       </body>
+      </html>
+    </xsl:document>
+  </xsl:template>
+
+</xsl:stylesheet>
+
+
diff --git a/doc/devhelp/index.html b/doc/devhelp/index.html
new file mode 100644
index 00000000..f29841ec
--- /dev/null
+++ b/doc/devhelp/index.html
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>libxslt Reference Manual</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="general.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">libxslt Reference Manual</span>
+    </h2>
+    <p>libxslt is the <a href="http://www.w3.org/TR/xslt";>XSLT</a> C library
+developed for the GNOME project. XSLT itself is a an XML language to define
+transformation for XML. Libxslt is based on <a href="https://gitlab.gnome.org/GNOME/libxml2/";>libxml2</a> 
the XML C library developed for the
+GNOME project. It also implements most of the <a href="http://www.exslt.org/";>EXSLT</a> set of 
processor-portable extensions
+functions and some of Saxon's evaluate and expressions extensions.</p>
+  </body>
+</html>
diff --git a/doc/devhelp/left.png b/doc/devhelp/left.png
new file mode 100644
index 00000000..2d05b3d5
Binary files /dev/null and b/doc/devhelp/left.png differ
diff --git a/doc/devhelp/libxslt-attributes.html b/doc/devhelp/libxslt-attributes.html
new file mode 100644
index 00000000..8f5dc3da
--- /dev/null
+++ b/doc/devhelp/libxslt-attributes.html
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>attributes: interface for the XSLT attribute handling</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-documents.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">attributes</span>
+    </h2>
+    <p>attributes - interface for the XSLT attribute handling</p>
+    <p>this module handles the specificities of attribute and attribute groups processing. </p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">void       <a 
href="#xsltResolveStylesheetAttributeSet">xsltResolveStylesheetAttributeSet</a>      (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+void   <a href="#xsltParseStylesheetAttributeSet">xsltParseStylesheetAttributeSet</a>  (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr cur);
+void   <a href="#xsltApplyAttributeSet">xsltApplyAttributeSet</a>              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         const xmlChar * attrSets);
+void   <a href="#xsltFreeAttributeSetsHashes">xsltFreeAttributeSetsHashes</a>  (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="xsltApplyAttributeSet"/>xsltApplyAttributeSet 
()</h3><pre class="programlisting">void     xsltApplyAttributeSet           (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         const xmlChar * attrSets)<br/>
+</pre><p>Apply the xsl:use-attribute-sets. If @attrSets is NULL, then @inst will be used to exctract this 
value. If both, @attrSets and @inst, are NULL, then this will do nothing.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the attribute node 
"xsl:use-attribute-sets"</td></tr><tr><td><span class="term"><i><tt>attrSets</tt></i>:</span></td><td>the 
list of QNames of the attribute-sets to be applied</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltFreeAttributeSetsHashes"/>xsltFreeAttributeSetsHashes ()</h3><pre class="programlisting">void 
xsltFreeAttributeSetsHashes     (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> 
style)<br/>
+</pre><p>Free up the memory used by attribute sets</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltParseStylesheetAttributeSet"/>xsltParseStylesheetAttributeSet ()</h3><pre 
class="programlisting">void xsltParseStylesheetAttributeSet (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr cur)<br/>
+</pre><p>parse an XSLT stylesheet attribute-set element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td>the "attribute-set" 
element</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltResolveStylesheetAttributeSet"/>xsltResolveStylesheetAttributeSet ()</h3><pre 
class="programlisting">void     xsltResolveStylesheetAttributeSet       (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>resolve the references between attribute sets.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-documents.html b/doc/devhelp/libxslt-documents.html
new file mode 100644
index 00000000..df15fcb0
--- /dev/null
+++ b/doc/devhelp/libxslt-documents.html
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>documents: interface for the document handling</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-attributes.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-extensions.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">documents</span>
+    </h2>
+    <p>documents - interface for the document handling</p>
+    <p>implements document loading and cache (multiple document() reference for the same resources must be 
equal. </p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">typedef enum <a href="#xsltLoadType">xsltLoadType</a>;
+void   <a href="#xsltFreeStyleDocuments">xsltFreeStyleDocuments</a>            (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+typedef xmlDocPtr <a href="#xsltDocLoaderFunc">xsltDocLoaderFunc</a>   (const xmlChar * URI, <br/>           
                           xmlDictPtr dict, <br/>                                  int options, <br/>         
                             void * ctxt, <br/>                                      <a 
href="libxslt-documents.html#xsltLoadType">xsltLoadType</a> type);
+<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>       <a 
href="#xsltLoadDocument">xsltLoadDocument</a>        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * URI);
+<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>       <a 
href="#xsltNewStyleDocument">xsltNewStyleDocument</a>        (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlDocPtr doc);
+void   <a href="#xsltSetLoaderFunc">xsltSetLoaderFunc</a>              (<a 
href="libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a> f);
+void   <a href="#xsltFreeDocuments">xsltFreeDocuments</a>              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>       <a 
href="#xsltNewDocument">xsltNewDocument</a>          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlDocPtr doc);
+<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>       <a 
href="#xsltLoadStyleDocument">xsltLoadStyleDocument</a>      (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * URI);
+<a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>       <a 
href="#xsltFindDocument">xsltFindDocument</a>        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlDocPtr doc);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="xsltLoadType">Enum </a>xsltLoadType</h3><pre 
class="programlisting">enum <a href="#xsltLoadType">xsltLoadType</a> {
+    <a name="XSLT_LOAD_START">XSLT_LOAD_START</a> = 0 /* loading for a top stylesheet */
+    <a name="XSLT_LOAD_STYLESHEET">XSLT_LOAD_STYLESHEET</a> = 1 /* loading for a stylesheet include/import */
+    <a name="XSLT_LOAD_DOCUMENT">XSLT_LOAD_DOCUMENT</a> = 2 /*  loading document at transformation time */
+};
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDocLoaderFunc"/>Function type 
xsltDocLoaderFunc</h3><pre class="programlisting">xmlDocPtr     xsltDocLoaderFunc       (const xmlChar * URI, 
<br/>                                      xmlDictPtr dict, <br/>                                  int 
options, <br/>                                      void * ctxt, <br/>                                      
<a href="libxslt-documents.html#xsltLoadType">xsltLoadType</a> type)<br/>
+</pre><p>An <a href="libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a> is a signature for a 
function which can be registered to load document not provided by the compilation or transformation API 
themselve, for example when an xsl:import, xsl:include is found at compilation time or when a document() call 
is made at runtime.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the URI of the document to load</td></tr><tr><td><span 
class="term"><i><tt>dict</tt></i>:</span></td><td>the dictionary to use when parsing that 
document</td></tr><tr><td><span class="term"><i><tt>options</tt></i>:</span></td><td>parsing options, a set 
of xmlParserOption</td></tr><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the context, 
either a stylesheet or a transformation context</td></tr><tr><td><span 
class="term"><i><tt>type</tt></i>:</span></td><td>the <a 
href="libxslt-documents.html#xsltLoadType">xsltLoadType</a> indicating the kind of loading 
required</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer to the 
document (which will be modified and freed by the engine later), or NULL in case of 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDocDefaultLoader">Variable 
</a>xsltDocDefaultLoader</h3><pre class="programlisting"><a 
href="libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a> xsltDocDefaultLoader;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFindDocument"/>xsltFindDocument ()</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>   
xsltFindDocument        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlDocPtr doc)<br/>
+</pre><p>Try to find a document within the XSLT transformation context. This will not find document infos 
for temporary Result Tree Fragments.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the desired <a 
href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> or NULL in case of 
error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeDocuments"/>xsltFreeDocuments ()</h3><pre 
class="programlisting">void     xsltFreeDocuments               (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>Free up all the space used by the loaded documents</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation 
context</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeStyleDocuments"/>xsltFreeStyleDocuments 
()</h3><pre class="programlisting">void   xsltFreeStyleDocuments          (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Frees the node-trees (and <a href="libxslt-xsltInternals.html#xsltDocument">xsltDocument</a> 
structures) of all stylesheet-modules of the stylesheet-level represented by the given @style.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet (representing a 
stylesheet-level)</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltLoadDocument"/>xsltLoadDocument ()</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>   
xsltLoadDocument        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * URI)<br/>
+</pre><p>Try to load a document (not a stylesheet) within the XSLT transformation context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the computed URI of the document</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a 
href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> or NULL in case of 
error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltLoadStyleDocument"/>xsltLoadStyleDocument 
()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> 
xsltLoadStyleDocument   (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, 
<br/>                                       const xmlChar * URI)<br/>
+</pre><p>Try to load a stylesheet document within the XSLT transformation context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT style sheet</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the computed URI of the document</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a 
href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> or NULL in case of 
error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNewDocument"/>xsltNewDocument ()</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>     
xsltNewDocument         (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlDocPtr doc)<br/>
+</pre><p>Register a new document, apply key computations</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context (or 
NULL)</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML 
document</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a handler to the 
document</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNewStyleDocument"/>xsltNewStyleDocument ()</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>   
xsltNewStyleDocument    (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, 
<br/>                                       xmlDocPtr doc)<br/>
+</pre><p>Register a new document, apply key computations</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT style sheet</td></tr><tr><td><span 
class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a handler to the 
document</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSetLoaderFunc"/>xsltSetLoaderFunc ()</h3><pre 
class="programlisting">void     xsltSetLoaderFunc               (<a 
href="libxslt-documents.html#xsltDocLoaderFunc">xsltDocLoaderFunc</a> f)<br/>
+</pre><p>Set the new function to load document, if NULL it resets it to the default function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>f</tt></i>:</span></td><td>the new function to handle document 
loading.</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-extensions.html b/doc/devhelp/libxslt-extensions.html
new file mode 100644
index 00000000..a3ff1241
--- /dev/null
+++ b/doc/devhelp/libxslt-extensions.html
@@ -0,0 +1,262 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>extensions: interface for the extension support</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-documents.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-extra.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">extensions</span>
+    </h2>
+    <p>extensions - interface for the extension support</p>
+    <p>This provide the API needed for simple and module extension support. </p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">int        <a href="#xsltRegisterExtFunction">xsltRegisterExtFunction</a>        
  (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>       
                             const xmlChar * name, <br/>                                     const xmlChar * 
URI, <br/>                                      xmlXPathFunction function);
+int    <a href="#xsltRegisterExtModuleElement">xsltRegisterExtModuleElement</a>        (const xmlChar * 
name, <br/>                                     const xmlChar * URI, <br/>                                    
  <a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a> precomp, <br/>          
                            <a 
href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> transform);
+int    <a href="#xsltInitCtxtExts">xsltInitCtxtExts</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+void * <a href="#xsltGetExtData">xsltGetExtData</a>                    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * URI);
+void * <a href="#xsltStyleGetExtData">xsltStyleGetExtData</a>          (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * URI);
+typedef void * <a href="#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a>        (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * URI);
+void   <a href="#xsltInitGlobals">xsltInitGlobals</a>                  (void);
+void   <a href="#xsltShutdownExts">xsltShutdownExts</a>                (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+<a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a>    <a 
href="#xsltExtModuleElementPreComputeLookup">xsltExtModuleElementPreComputeLookup</a>        (const xmlChar * 
name, <br/>                                                     const xmlChar * URI);
+void   <a href="#xsltRegisterTestModule">xsltRegisterTestModule</a>            (void);
+void * <a href="#xsltStyleStylesheetLevelGetExtData">xsltStyleStylesheetLevelGetExtData</a>    (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                       const xmlChar * URI);
+<a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>   <a 
href="#xsltExtModuleElementLookup">xsltExtModuleElementLookup</a>    (const xmlChar * name, <br/>             
                                        const xmlChar * URI);
+typedef void <a href="#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a>  (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * URI, <br/>                                      void * data);
+void   <a href="#xsltInitElemPreComp">xsltInitElemPreComp</a>          (<a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp, <br/>                       
               <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>      
                                 xmlNodePtr inst, <br/>                                  <a 
href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function, <br/>             
                       <a 
href="libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a> freeFunc);
+void   <a href="#xsltDebugDumpExtensions">xsltDebugDumpExtensions</a>          (FILE * output);
+xmlHashTablePtr        <a href="#xsltGetExtInfo">xsltGetExtInfo</a>            (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * URI);
+<a href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a>        <a 
href="#xsltExtModuleTopLevelLookup">xsltExtModuleTopLevelLookup</a>  (const xmlChar * name, <br/>             
                                        const xmlChar * URI);
+void   <a href="#xsltFreeExts">xsltFreeExts</a>                        (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+int    <a href="#xsltCheckExtURI">xsltCheckExtURI</a>                  (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * URI);
+xmlXPathFunction       <a href="#xsltExtModuleFunctionLookup">xsltExtModuleFunctionLookup</a>  (const 
xmlChar * name, <br/>                                                     const xmlChar * URI);
+<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> <a 
href="#xsltPreComputeExtModuleElement">xsltPreComputeExtModuleElement</a>    (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                               xmlNodePtr inst);
+int    <a href="#xsltRegisterExtModuleTopLevel">xsltRegisterExtModuleTopLevel</a>      (const xmlChar * 
name, <br/>                                     const xmlChar * URI, <br/>                                    
  <a href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a> function);
+typedef <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> <a 
href="#xsltPreComputeFunction">xsltPreComputeFunction</a>    (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                       xmlNodePtr inst, <br/>                                          <a 
href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function);
+typedef void <a href="#xsltTopLevelFunction">xsltTopLevelFunction</a>          (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr inst);
+void   <a href="#xsltShutdownCtxtExts">xsltShutdownCtxtExts</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a>       <a 
href="#xsltXPathGetTransformContext">xsltXPathGetTransformContext</a>        (xmlXPathParserContextPtr ctxt);
+int    <a href="#xsltRegisterExtElement">xsltRegisterExtElement</a>            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * name, <br/>                                     const xmlChar * URI, 
<br/>                                      <a 
href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function);
+typedef void * <a href="#xsltExtInitFunction">xsltExtInitFunction</a>          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * URI);
+void   <a href="#xsltFreeCtxtExts">xsltFreeCtxtExts</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+int    <a href="#xsltUnregisterExtModule">xsltUnregisterExtModule</a>          (const xmlChar * URI);
+int    <a href="#xsltRegisterExtModuleFull">xsltRegisterExtModuleFull</a>      (const xmlChar * URI, <br/>   
                                   <a 
href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> initFunc, <br/>                    
               <a href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> 
shutdownFunc, <br/>                                       <a 
href="libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a> styleInitFunc, <br/>     
                               <a 
href="libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a> 
styleShutdownFunc);
+int    <a href="#xsltUnregisterExtModuleTopLevel">xsltUnregisterExtModuleTopLevel</a>  (const xmlChar * 
name, <br/>                                     const xmlChar * URI);
+<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> <a 
href="#xsltNewElemPreComp">xsltNewElemPreComp</a>    (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                       xmlNodePtr inst, <br/>                                          <a 
href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function);
+int    <a href="#xsltUnregisterExtModuleElement">xsltUnregisterExtModuleElement</a>    (const xmlChar * 
name, <br/>                                     const xmlChar * URI);
+int    <a href="#xsltUnregisterExtModuleFunction">xsltUnregisterExtModuleFunction</a>  (const xmlChar * 
name, <br/>                                     const xmlChar * URI);
+int    <a href="#xsltCheckExtPrefix">xsltCheckExtPrefix</a>            (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * URI);
+int    <a href="#xsltRegisterExtModule">xsltRegisterExtModule</a>              (const xmlChar * URI, <br/>   
                                   <a 
href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> initFunc, <br/>                    
               <a href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> 
shutdownFunc);
+<a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>   <a 
href="#xsltExtElementLookup">xsltExtElementLookup</a>        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                               const xmlChar * name, <br/>                                             const 
xmlChar * URI);
+int    <a href="#xsltRegisterExtModuleFunction">xsltRegisterExtModuleFunction</a>      (const xmlChar * 
name, <br/>                                     const xmlChar * URI, <br/>                                    
  xmlXPathFunction function);
+int    <a href="#xsltRegisterExtPrefix">xsltRegisterExtPrefix</a>              (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * prefix, <br/>                                   const xmlChar * URI);
+typedef void <a href="#xsltExtShutdownFunction">xsltExtShutdownFunction</a>            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * URI, <br/>                                      void * data);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="xsltExtInitFunction"/>Function type 
xsltExtInitFunction</h3><pre class="programlisting">void *    xsltExtInitFunction             (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * URI)<br/>
+</pre><p>A function called at initialization time of an XSLT extension module.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI for the extension</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the module specific data for this 
transformation.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltExtShutdownFunction"/>Function type 
xsltExtShutdownFunction</h3><pre class="programlisting">void      xsltExtShutdownFunction         (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * URI, <br/>                                      void * data)<br/>
+</pre><p>A function called at shutdown time of an XSLT extension module.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI for the extension</td></tr><tr><td><span 
class="term"><i><tt>data</tt></i>:</span></td><td>the data associated to this 
module</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltPreComputeFunction"/>Function type 
xsltPreComputeFunction</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>      xsltPreComputeFunction  (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                       xmlNodePtr inst, <br/>                                          <a 
href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>function</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleExtInitFunction"/>Function type 
xsltStyleExtInitFunction</h3><pre class="programlisting">void *  xsltStyleExtInitFunction        (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * URI)<br/>
+</pre><p>A function called at initialization time of an XSLT extension module.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI for the extension</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the module specific data for this 
transformation.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleExtShutdownFunction"/>Function type 
xsltStyleExtShutdownFunction</h3><pre class="programlisting">void    xsltStyleExtShutdownFunction    (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * URI, <br/>                                      void * data)<br/>
+</pre><p>A function called at shutdown time of an XSLT extension module.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI for the extension</td></tr><tr><td><span 
class="term"><i><tt>data</tt></i>:</span></td><td>the data associated to this 
module</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltTopLevelFunction"/>Function type 
xsltTopLevelFunction</h3><pre class="programlisting">void    xsltTopLevelFunction            (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr inst)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCheckExtPrefix"/>xsltCheckExtPrefix ()</h3><pre 
class="programlisting">int    xsltCheckExtPrefix              (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * URI)<br/>
+</pre><p>Check if the given prefix is one of the declared extensions. This is intended to be called only at 
compile-time. Called by: xsltGetInheritedNsList() (xslt.c) <a 
href="libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a> (xslt.c)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace prefix (possibly NULL)</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if this is an extension, 0 
otherwise</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCheckExtURI"/>xsltCheckExtURI ()</h3><pre 
class="programlisting">int  xsltCheckExtURI                 (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * URI)<br/>
+</pre><p>Check if the given prefix is one of the declared extensions. This is intended to be called only at 
compile-time. Called by: xsltPrecomputeStylesheet() (xslt.c) <a 
href="libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a> (xslt.c)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI (possibly NULL)</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if this is an extension, 0 
otherwise</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDebugDumpExtensions"/>xsltDebugDumpExtensions 
()</h3><pre class="programlisting">void xsltDebugDumpExtensions         (FILE * output)<br/>
+</pre><p>Dumps a list of the registered XSLT extension functions and elements</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>output</tt></i>:</span></td><td>the FILE * for the output, if NULL stdout is 
used</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltExtElementLookup"/>xsltExtElementLookup ()</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>   
    xsltExtElementLookup    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                               const xmlChar * name, <br/>                                             const 
xmlChar * URI)<br/>
+</pre><p>Looks up an extension element. @ctxt can be NULL to search only in module elements.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the element callback or NULL if not 
found</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltExtModuleElementLookup"/>xsltExtModuleElementLookup 
()</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>   
xsltExtModuleElementLookup      (const xmlChar * name, <br/>                                                  
   const xmlChar * URI)<br/>
+</pre><p>Looks up an extension module element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the callback function if found, NULL 
otherwise.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltExtModuleElementPreComputeLookup"/>xsltExtModuleElementPreComputeLookup ()</h3><pre 
class="programlisting"><a href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a>    
    xsltExtModuleElementPreComputeLookup    (const xmlChar * name, <br/>                                      
               const xmlChar * URI)<br/>
+</pre><p>Looks up an extension module element pre-computation function</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the callback function if found, NULL 
otherwise.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltExtModuleFunctionLookup"/>xsltExtModuleFunctionLookup ()</h3><pre 
class="programlisting">xmlXPathFunction     xsltExtModuleFunctionLookup     (const xmlChar * name, <br/>      
                                               const xmlChar * URI)<br/>
+</pre><p>Looks up an extension module function</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the function namespace URI</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the function if found, NULL 
otherwise.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltExtModuleTopLevelLookup"/>xsltExtModuleTopLevelLookup ()</h3><pre class="programlisting"><a 
href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a>      xsltExtModuleTopLevelLookup 
    (const xmlChar * name, <br/>                                                     const xmlChar * URI)<br/>
+</pre><p>Looks up an extension module top-level element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the top-level element name</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the top-level element namespace URI</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the callback function if found, NULL 
otherwise.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeCtxtExts"/>xsltFreeCtxtExts ()</h3><pre 
class="programlisting">void       xsltFreeCtxtExts                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>Free the XSLT extension data</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation 
context</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeExts"/>xsltFreeExts ()</h3><pre 
class="programlisting">void       xsltFreeExts                    (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Free up the memory used by XSLT extensions in a stylesheet</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetExtData"/>xsltGetExtData ()</h3><pre 
class="programlisting">void * xsltGetExtData                  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * URI)<br/>
+</pre><p>Retrieve the data associated to the extension module in this given transformation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the exension 
module</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer or NULL if not 
present</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetExtInfo"/>xsltGetExtInfo ()</h3><pre 
class="programlisting">xmlHashTablePtr        xsltGetExtInfo          (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * URI)<br/>
+</pre><p>looks up URI in extInfos of the stylesheet</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>pointer to a stylesheet</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the namespace URI desired</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the hash table if found, else 
NULL</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltInitCtxtExts"/>xsltInitCtxtExts ()</h3><pre 
class="programlisting">int        xsltInitCtxtExts                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>Initialize the set of modules with registered stylesheet data</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of modules initialized or -1 in case of 
error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltInitElemPreComp"/>xsltInitElemPreComp ()</h3><pre 
class="programlisting">void xsltInitElemPreComp             (<a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp, <br/>                       
               <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>      
                                 xmlNodePtr inst, <br/>                                  <a 
href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function, <br/>             
                       <a 
href="libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a> freeFunc)<br/>
+</pre><p>Initializes an existing #xsltElemPreComp structure. This is usefull when extending an 
#xsltElemPreComp to store precomputed data. This function MUST be called on any extension element precomputed 
data struct.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>comp</tt></i>:</span></td><td>an #xsltElemPreComp (or generally a derived 
structure)</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT 
stylesheet</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the element 
node</td></tr><tr><td><span class="term"><i><tt>function</tt></i>:</span></td><td>the transform 
function</td></tr><tr><td><span class="term"><i><tt>freeFunc</tt></i>:</span></td><td>the @comp 
deallocator</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltInitGlobals"/>xsltInitGlobals ()</h3><pre 
class="programlisting">void xsltInitGlobals                 (void)<br/>
+</pre><p>Initialize the global variables for extensions</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNewElemPreComp"/>xsltNewElemPreComp ()</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
xsltNewElemPreComp      (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, 
<br/>                                               xmlNodePtr inst, <br/>                                    
      <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)<br/>
+</pre><p>Creates and initializes an #xsltElemPreComp</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the element node</td></tr><tr><td><span 
class="term"><i><tt>function</tt></i>:</span></td><td>the transform function</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the new and initialized 
#xsltElemPreComp</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltPreComputeExtModuleElement"/>xsltPreComputeExtModuleElement ()</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> xsltPreComputeExtModuleElement  
(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                    
                                   xmlNodePtr inst)<br/>
+</pre><p>Precomputes an extension module element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the element node</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the precomputed 
data</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRegisterExtElement"/>xsltRegisterExtElement 
()</h3><pre class="programlisting">int    xsltRegisterExtElement          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * name, <br/>                                     const xmlChar * URI, 
<br/>                                      <a 
href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)<br/>
+</pre><p>Registers an extension element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the name of the element</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the element</td></tr><tr><td><span 
class="term"><i><tt>function</tt></i>:</span></td><td>the actual implementation which should be 
called</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 
in case of failure</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRegisterExtFunction"/>xsltRegisterExtFunction 
()</h3><pre class="programlisting">int  xsltRegisterExtFunction         (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * name, <br/>                                     const xmlChar * URI, 
<br/>                                      xmlXPathFunction function)<br/>
+</pre><p>Registers an extension function</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the name of the element</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the element</td></tr><tr><td><span 
class="term"><i><tt>function</tt></i>:</span></td><td>the actual implementation which should be 
called</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 
in case of failure</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRegisterExtModule"/>xsltRegisterExtModule 
()</h3><pre class="programlisting">int      xsltRegisterExtModule           (const xmlChar * URI, <br/>       
                               <a href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> 
initFunc, <br/>                                   <a 
href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> shutdownFunc)<br/>
+</pre><p>Register an XSLT extension module to the library.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>URI associated to this module</td></tr><tr><td><span 
class="term"><i><tt>initFunc</tt></i>:</span></td><td>the module initialization 
function</td></tr><tr><td><span class="term"><i><tt>shutdownFunc</tt></i>:</span></td><td>the module shutdown 
function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if sucessful, -1 in 
case of error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltRegisterExtModuleElement"/>xsltRegisterExtModuleElement ()</h3><pre class="programlisting">int      
  xsltRegisterExtModuleElement    (const xmlChar * name, <br/>                                     const 
xmlChar * URI, <br/>                                      <a 
href="libxslt-extensions.html#xsltPreComputeFunction">xsltPreComputeFunction</a> precomp, <br/>               
                       <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> 
transform)<br/>
+</pre><p>Registers an extension module element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span 
class="term"><i><tt>precomp</tt></i>:</span></td><td>the pre-computation callback</td></tr><tr><td><span 
class="term"><i><tt>transform</tt></i>:</span></td><td>the transformation callback</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRegisterExtModuleFull"/>xsltRegisterExtModuleFull 
()</h3><pre class="programlisting">int      xsltRegisterExtModuleFull       (const xmlChar * URI, <br/>       
                               <a href="libxslt-extensions.html#xsltExtInitFunction">xsltExtInitFunction</a> 
initFunc, <br/>                                   <a 
href="libxslt-extensions.html#xsltExtShutdownFunction">xsltExtShutdownFunction</a> shutdownFunc, <br/>        
                               <a 
href="libxslt-extensions.html#xsltStyleExtInitFunction">xsltStyleExtInitFunction</a> styleInitFunc, <br/>     
                               <a 
href="libxslt-extensions.html#xsltStyleExtShutdownFunction">xsltStyleExtShutdownFunction</a> 
styleShutdownFunc)<br/>
+</pre><p>Register an XSLT extension module to the library.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>URI associated to this module</td></tr><tr><td><span 
class="term"><i><tt>initFunc</tt></i>:</span></td><td>the module initialization 
function</td></tr><tr><td><span class="term"><i><tt>shutdownFunc</tt></i>:</span></td><td>the module shutdown 
function</td></tr><tr><td><span class="term"><i><tt>styleInitFunc</tt></i>:</span></td><td>the module 
initialization function</td></tr><tr><td><span 
class="term"><i><tt>styleShutdownFunc</tt></i>:</span></td><td>the module shutdown 
function</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if sucessful, -1 in 
case of error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltRegisterExtModuleFunction"/>xsltRegisterExtModuleFunction ()</h3><pre class="programlisting">int    
  xsltRegisterExtModuleFunction   (const xmlChar * name, <br/>                                     const 
xmlChar * URI, <br/>                                      xmlXPathFunction function)<br/>
+</pre><p>Registers an extension module function.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the function namespace URI</td></tr><tr><td><span 
class="term"><i><tt>function</tt></i>:</span></td><td>the function callback</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltRegisterExtModuleTopLevel"/>xsltRegisterExtModuleTopLevel ()</h3><pre class="programlisting">int    
  xsltRegisterExtModuleTopLevel   (const xmlChar * name, <br/>                                     const 
xmlChar * URI, <br/>                                      <a 
href="libxslt-extensions.html#xsltTopLevelFunction">xsltTopLevelFunction</a> function)<br/>
+</pre><p>Registers an extension module top-level element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the top-level element name</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the top-level element namespace URI</td></tr><tr><td><span 
class="term"><i><tt>function</tt></i>:</span></td><td>the top-level element callback</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRegisterExtPrefix"/>xsltRegisterExtPrefix 
()</h3><pre class="programlisting">int      xsltRegisterExtPrefix           (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * prefix, <br/>                                   const xmlChar * URI)<br/>
+</pre><p>Registers an extension namespace This is called from xslt.c during compile-time. The given prefix 
is not needed. Called by: xsltParseExtElemPrefixes() (new function) xsltRegisterExtPrefix() (old function)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>prefix</tt></i>:</span></td><td>the prefix used (optional)</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the extension</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, 1 if the @URI was already 
registered as an extension namespace and -1 in case of failure</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRegisterTestModule"/>xsltRegisterTestModule 
()</h3><pre class="programlisting">void   xsltRegisterTestModule          (void)<br/>
+</pre><p>Registers the test module</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltShutdownCtxtExts"/>xsltShutdownCtxtExts ()</h3><pre 
class="programlisting">void       xsltShutdownCtxtExts            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>Shutdown the set of modules loaded</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation 
context</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltShutdownExts"/>xsltShutdownExts ()</h3><pre 
class="programlisting">void       xsltShutdownExts                (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Shutdown the set of modules loaded</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleGetExtData"/>xsltStyleGetExtData ()</h3><pre 
class="programlisting">void *       xsltStyleGetExtData             (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * URI)<br/>
+</pre><p>Retrieve the data associated to the extension module in this given stylesheet. Called by: 
xsltRegisterExtPrefix(), ( xsltExtElementPreCompTest(), xsltExtInitTest )</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the exension 
module</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer or NULL if not 
present</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltStyleStylesheetLevelGetExtData"/>xsltStyleStylesheetLevelGetExtData ()</h3><pre 
class="programlisting">void * xsltStyleStylesheetLevelGetExtData      (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                       const xmlChar * URI)<br/>
+</pre><p>Retrieve the data associated to the extension module in this given stylesheet.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the URI associated to the exension 
module</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the pointer or NULL if not 
present</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltUnregisterExtModule"/>xsltUnregisterExtModule 
()</h3><pre class="programlisting">int  xsltUnregisterExtModule         (const xmlChar * URI)<br/>
+</pre><p>Unregister an XSLT extension module from the library.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>URI associated to this module</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if sucessful, -1 in case of 
error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltUnregisterExtModuleElement"/>xsltUnregisterExtModuleElement ()</h3><pre class="programlisting">int  
  xsltUnregisterExtModuleElement  (const xmlChar * name, <br/>                                     const 
xmlChar * URI)<br/>
+</pre><p>Unregisters an extension module element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the element name</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the element namespace URI</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltUnregisterExtModuleFunction"/>xsltUnregisterExtModuleFunction ()</h3><pre 
class="programlisting">int  xsltUnregisterExtModuleFunction (const xmlChar * name, <br/>                      
               const xmlChar * URI)<br/>
+</pre><p>Unregisters an extension module function</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the function name</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the function namespace URI</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltUnregisterExtModuleTopLevel"/>xsltUnregisterExtModuleTopLevel ()</h3><pre 
class="programlisting">int  xsltUnregisterExtModuleTopLevel (const xmlChar * name, <br/>                      
               const xmlChar * URI)<br/>
+</pre><p>Unregisters an extension module top-level element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the top-level element name</td></tr><tr><td><span 
class="term"><i><tt>URI</tt></i>:</span></td><td>the top-level element namespace URI</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltXPathGetTransformContext"/>xsltXPathGetTransformContext ()</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a>   
xsltXPathGetTransformContext    (xmlXPathParserContextPtr ctxt)<br/>
+</pre><p>Provides the XSLT transformation context from the XPath transformation context. This is useful when 
an XPath function in the extension module is called by the XPath interpreter and that the XSLT context is 
needed for example to retrieve the associated data pertaining to this XSLT transformation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XPath transformation context</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the XSLT transformation context or NULL in case of 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-extra.html b/doc/devhelp/libxslt-extra.html
new file mode 100644
index 00000000..72afc80a
--- /dev/null
+++ b/doc/devhelp/libxslt-extra.html
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>extra: interface for the non-standard features</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-extensions.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-functions.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">extra</span>
+    </h2>
+    <p>extra - interface for the non-standard features</p>
+    <p>implement some extension outside the XSLT namespace but not EXSLT with is in a different library. </p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">#define <a href="#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a>;
+#define <a href="#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a>;
+#define <a href="#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a>;
+#define <a href="#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a>;
+void   <a href="#xsltFunctionNodeSet">xsltFunctionNodeSet</a>          (xmlXPathParserContextPtr ctxt, <br/> 
                                   int nargs);
+void   <a href="#xsltRegisterExtras">xsltRegisterExtras</a>            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+void   <a href="#xsltDebug">xsltDebug</a>                      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+void   <a href="#xsltRegisterAllExtras">xsltRegisterAllExtras</a>              (void);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="XSLT_LIBXSLT_NAMESPACE">Macro 
</a>XSLT_LIBXSLT_NAMESPACE</h3><pre class="programlisting">#define <a 
href="#XSLT_LIBXSLT_NAMESPACE">XSLT_LIBXSLT_NAMESPACE</a>;
+</pre><p>This is the libxslt namespace for specific extensions.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_SAXON_NAMESPACE">Macro 
</a>XSLT_SAXON_NAMESPACE</h3><pre class="programlisting">#define <a 
href="#XSLT_SAXON_NAMESPACE">XSLT_SAXON_NAMESPACE</a>;
+</pre><p>This is Michael Kay's Saxon processor namespace for extensions.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_XALAN_NAMESPACE">Macro 
</a>XSLT_XALAN_NAMESPACE</h3><pre class="programlisting">#define <a 
href="#XSLT_XALAN_NAMESPACE">XSLT_XALAN_NAMESPACE</a>;
+</pre><p>This is the Apache project XALAN processor namespace for extensions.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_XT_NAMESPACE">Macro </a>XSLT_XT_NAMESPACE</h3><pre 
class="programlisting">#define <a href="#XSLT_XT_NAMESPACE">XSLT_XT_NAMESPACE</a>;
+</pre><p>This is James Clark's XT processor namespace for extensions.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDebug"/>xsltDebug ()</h3><pre 
class="programlisting">void     xsltDebug                       (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
comp)<br/>
+</pre><p>Process an debug node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT processing context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>The current node</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the instruction in the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed 
information</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFunctionNodeSet"/>xsltFunctionNodeSet ()</h3><pre 
class="programlisting">void xsltFunctionNodeSet             (xmlXPathParserContextPtr ctxt, <br/>             
                       int nargs)<br/>
+</pre><p>Implement the node-set() XSLT function node-set node-set(result-tree) This function is available in 
libxslt, saxon or xt namespace.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span 
class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of 
arguments</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRegisterAllExtras"/>xsltRegisterAllExtras 
()</h3><pre class="programlisting">void     xsltRegisterAllExtras           (void)<br/>
+</pre><p>Registers the built-in extensions</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRegisterExtras"/>xsltRegisterExtras ()</h3><pre 
class="programlisting">void   xsltRegisterExtras              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>Registers the built-in extensions. This function is deprecated, use <a 
href="libxslt-extra.html#xsltRegisterAllExtras">xsltRegisterAllExtras</a> instead.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-functions.html b/doc/devhelp/libxslt-functions.html
new file mode 100644
index 00000000..767fbb2a
--- /dev/null
+++ b/doc/devhelp/libxslt-functions.html
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>functions: interface for the XSLT functions not from XPath</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-extra.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-imports.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">functions</span>
+    </h2>
+    <p>functions - interface for the XSLT functions not from XPath</p>
+    <p>a set of extra functions coming from XSLT but not in XPath </p>
+    <p>Author(s): Daniel Veillard and Bjorn Reese &lt;breese users sourceforge net&gt; </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">#define <a 
href="#XSLT_REGISTER_FUNCTION_LOOKUP">XSLT_REGISTER_FUNCTION_LOOKUP</a>;
+xmlXPathFunction       <a href="#xsltXPathFunctionLookup">xsltXPathFunctionLookup</a>  (void * vctxt, <br/>  
                                           const xmlChar * name, <br/>                                        
     const xmlChar * ns_uri);
+void   <a href="#xsltFunctionAvailableFunction">xsltFunctionAvailableFunction</a>      
(xmlXPathParserContextPtr ctxt, <br/>                                    int nargs);
+void   <a href="#xsltFormatNumberFunction">xsltFormatNumberFunction</a>        (xmlXPathParserContextPtr 
ctxt, <br/>                                    int nargs);
+void   <a href="#xsltRegisterAllFunctions">xsltRegisterAllFunctions</a>        (xmlXPathContextPtr ctxt);
+void   <a href="#xsltKeyFunction">xsltKeyFunction</a>                  (xmlXPathParserContextPtr ctxt, <br/> 
                                   int nargs);
+void   <a href="#xsltUnparsedEntityURIFunction">xsltUnparsedEntityURIFunction</a>      
(xmlXPathParserContextPtr ctxt, <br/>                                    int nargs);
+void   <a href="#xsltDocumentFunction">xsltDocumentFunction</a>                (xmlXPathParserContextPtr 
ctxt, <br/>                                    int nargs);
+void   <a href="#xsltSystemPropertyFunction">xsltSystemPropertyFunction</a>    (xmlXPathParserContextPtr 
ctxt, <br/>                                    int nargs);
+void   <a href="#xsltElementAvailableFunction">xsltElementAvailableFunction</a>        
(xmlXPathParserContextPtr ctxt, <br/>                                    int nargs);
+void   <a href="#xsltGenerateIdFunction">xsltGenerateIdFunction</a>            (xmlXPathParserContextPtr 
ctxt, <br/>                                    int nargs);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="XSLT_REGISTER_FUNCTION_LOOKUP">Macro 
</a>XSLT_REGISTER_FUNCTION_LOOKUP</h3><pre class="programlisting">#define <a 
href="#XSLT_REGISTER_FUNCTION_LOOKUP">XSLT_REGISTER_FUNCTION_LOOKUP</a>;
+</pre><p>Registering macro, not general purpose at all but used in different modules.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDocumentFunction"/>xsltDocumentFunction ()</h3><pre 
class="programlisting">void       xsltDocumentFunction            (xmlXPathParserContextPtr ctxt, <br/>       
                             int nargs)<br/>
+</pre><p>Implement the document() XSLT function node-set document(object, node-set?)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span 
class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of 
arguments</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltElementAvailableFunction"/>xsltElementAvailableFunction ()</h3><pre class="programlisting">void     
  xsltElementAvailableFunction    (xmlXPathParserContextPtr ctxt, <br/>                                    
int nargs)<br/>
+</pre><p>Implement the element-available() XSLT function boolean element-available(string)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span 
class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of 
arguments</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFormatNumberFunction"/>xsltFormatNumberFunction 
()</h3><pre class="programlisting">void       xsltFormatNumberFunction        (xmlXPathParserContextPtr ctxt, 
<br/>                                    int nargs)<br/>
+</pre><p>Implement the format-number() XSLT function string format-number(number, string, string?)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span 
class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of 
arguments</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltFunctionAvailableFunction"/>xsltFunctionAvailableFunction ()</h3><pre class="programlisting">void   
  xsltFunctionAvailableFunction   (xmlXPathParserContextPtr ctxt, <br/>                                    
int nargs)<br/>
+</pre><p>Implement the function-available() XSLT function boolean function-available(string)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span 
class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of 
arguments</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGenerateIdFunction"/>xsltGenerateIdFunction 
()</h3><pre class="programlisting">void   xsltGenerateIdFunction          (xmlXPathParserContextPtr ctxt, 
<br/>                                    int nargs)<br/>
+</pre><p>Implement the generate-id() XSLT function string generate-id(node-set?)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span 
class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of 
arguments</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltKeyFunction"/>xsltKeyFunction ()</h3><pre 
class="programlisting">void xsltKeyFunction                 (xmlXPathParserContextPtr ctxt, <br/>             
                       int nargs)<br/>
+</pre><p>Implement the key() XSLT function node-set key(string, object)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span 
class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of 
arguments</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRegisterAllFunctions"/>xsltRegisterAllFunctions 
()</h3><pre class="programlisting">void       xsltRegisterAllFunctions        (xmlXPathContextPtr ctxt)<br/>
+</pre><p>Registers all default XSLT functions in this context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSystemPropertyFunction"/>xsltSystemPropertyFunction 
()</h3><pre class="programlisting">void   xsltSystemPropertyFunction      (xmlXPathParserContextPtr ctxt, 
<br/>                                    int nargs)<br/>
+</pre><p>Implement the system-property() XSLT function object system-property(string)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span 
class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of 
arguments</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltUnparsedEntityURIFunction"/>xsltUnparsedEntityURIFunction ()</h3><pre class="programlisting">void   
  xsltUnparsedEntityURIFunction   (xmlXPathParserContextPtr ctxt, <br/>                                    
int nargs)<br/>
+</pre><p>Implement the unparsed-entity-uri() XSLT function string unparsed-entity-uri(string)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath Parser context</td></tr><tr><td><span 
class="term"><i><tt>nargs</tt></i>:</span></td><td>the number of 
arguments</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltXPathFunctionLookup"/>xsltXPathFunctionLookup 
()</h3><pre class="programlisting">xmlXPathFunction     xsltXPathFunctionLookup (void * vctxt, <br/>          
                                   const xmlChar * name, <br/>                                             
const xmlChar * ns_uri)<br/>
+</pre><p>This is the entry point when a function is needed by the XPath interpretor.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>vctxt</tt></i>:</span></td><td>a void * but the XSLT transformation context 
actually</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the function 
name</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the function namespace 
URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the callback function or NULL 
if not found</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-imports.html b/doc/devhelp/libxslt-imports.html
new file mode 100644
index 00000000..6f37be63
--- /dev/null
+++ b/doc/devhelp/libxslt-imports.html
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>imports: interface for the XSLT import support</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-functions.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-keys.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">imports</span>
+    </h2>
+    <p>imports - interface for the XSLT import support</p>
+    <p>macros and fuctions needed to implement and access the import tree </p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">#define <a href="#XSLT_GET_IMPORT_PTR">XSLT_GET_IMPORT_PTR</a>;
+#define <a href="#XSLT_GET_IMPORT_INT">XSLT_GET_IMPORT_INT</a>;
+<a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>       <a 
href="#xsltFindTemplate">xsltFindTemplate</a>        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * name, <br/>                                     const xmlChar * 
nameURI);
+<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>   <a 
href="#xsltNextImport">xsltNextImport</a>    (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> cur);
+int    <a href="#xsltParseStylesheetInclude">xsltParseStylesheetInclude</a>    (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr cur);
+int    <a href="#xsltNeedElemSpaceHandling">xsltNeedElemSpaceHandling</a>      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+int    <a href="#xsltFindElemSpaceHandling">xsltFindElemSpaceHandling</a>      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node);
+int    <a href="#xsltParseStylesheetImport">xsltParseStylesheetImport</a>      (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr cur);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="XSLT_GET_IMPORT_INT">Macro 
</a>XSLT_GET_IMPORT_INT</h3><pre class="programlisting">#define <a 
href="#XSLT_GET_IMPORT_INT">XSLT_GET_IMPORT_INT</a>;
+</pre><p>A macro to import intergers from the stylesheet cascading order.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_GET_IMPORT_PTR">Macro 
</a>XSLT_GET_IMPORT_PTR</h3><pre class="programlisting">#define <a 
href="#XSLT_GET_IMPORT_PTR">XSLT_GET_IMPORT_PTR</a>;
+</pre><p>A macro to import pointers from the stylesheet cascading order.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFindElemSpaceHandling"/>xsltFindElemSpaceHandling 
()</h3><pre class="programlisting">int      xsltFindElemSpaceHandling       (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node)<br/>
+</pre><p>Find strip-space or preserve-space information for an element respect the import precedence or the 
wildcards</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>an XML node</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if space should be stripped, 0 if not, and 2 if 
everything should be CDTATA wrapped.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFindTemplate"/>xsltFindTemplate ()</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>   
xsltFindTemplate        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * name, <br/>                                     const xmlChar * 
nameURI)<br/>
+</pre><p>Finds the named template, apply import precedence rule. REVISIT TODO: We'll change the nameURI 
fields of templates to be in the string dict, so if the specified @nameURI is in the same dict, then use 
pointer comparison. Check if this can be done in a sane way. Maybe this function is not needed internally at 
transformation-time if we hard-wire the called templates to the caller.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the template name</td></tr><tr><td><span 
class="term"><i><tt>nameURI</tt></i>:</span></td><td>the template name URI</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a 
href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> or NULL if not 
found</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNeedElemSpaceHandling"/>xsltNeedElemSpaceHandling 
()</h3><pre class="programlisting">int      xsltNeedElemSpaceHandling       (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>Checks whether that stylesheet requires white-space stripping</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if space should be stripped, 0 if 
not</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNextImport"/>xsltNextImport ()</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>   
xsltNextImport  (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> cur)<br/>
+</pre><p>Find the next stylesheet in import precedence.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td>the current XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the next stylesheet or NULL if it was the last 
one</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetImport"/>xsltParseStylesheetImport 
()</h3><pre class="programlisting">int      xsltParseStylesheetImport       (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr cur)<br/>
+</pre><p>parse an XSLT stylesheet import element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td>the import element</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success -1 in case of 
failure.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetInclude"/>xsltParseStylesheetInclude 
()</h3><pre class="programlisting">int    xsltParseStylesheetInclude      (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr cur)<br/>
+</pre><p>parse an XSLT stylesheet include element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td>the include node</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success -1 in case of 
failure</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-keys.html b/doc/devhelp/libxslt-keys.html
new file mode 100644
index 00000000..59d50ba1
--- /dev/null
+++ b/doc/devhelp/libxslt-keys.html
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>keys: interface for the key matching used in key() and template matches.</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-imports.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-namespaces.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">keys</span>
+    </h2>
+    <p>keys - interface for the key matching used in key() and template matches.</p>
+    <p>implementation of the key mechanims. </p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">#define <a href="#NODE_IS_KEYED">NODE_IS_KEYED</a>;
+void   <a href="#xsltInitCtxtKeys">xsltInitCtxtKeys</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> idoc);
+void   <a href="#xsltFreeKeys">xsltFreeKeys</a>                        (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+xmlNodeSetPtr  <a href="#xsltGetKey">xsltGetKey</a>            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * name, <br/>                                     const xmlChar * 
nameURI, <br/>                                  const xmlChar * value);
+void   <a href="#xsltFreeDocumentKeys">xsltFreeDocumentKeys</a>                (<a 
href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> idoc);
+int    <a href="#xsltAddKey">xsltAddKey</a>                    (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * name, <br/>                                     const xmlChar * nameURI, <br/> 
                                 const xmlChar * match, <br/>                                    const 
xmlChar * use, <br/>                                      xmlNodePtr inst);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="NODE_IS_KEYED">Macro </a>NODE_IS_KEYED</h3><pre 
class="programlisting">#define <a href="#NODE_IS_KEYED">NODE_IS_KEYED</a>;
+</pre><p>check for bit 15 set</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltAddKey"/>xsltAddKey ()</h3><pre 
class="programlisting">int    xsltAddKey                      (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               const xmlChar * name, <br/>                                     const xmlChar * nameURI, <br/> 
                                 const xmlChar * match, <br/>                                    const 
xmlChar * use, <br/>                                      xmlNodePtr inst)<br/>
+</pre><p>add a key definition to a stylesheet</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the key name or NULL</td></tr><tr><td><span 
class="term"><i><tt>nameURI</tt></i>:</span></td><td>the name URI or NULL</td></tr><tr><td><span 
class="term"><i><tt>match</tt></i>:</span></td><td>the match value</td></tr><tr><td><span 
class="term"><i><tt>use</tt></i>:</span></td><td>the use value</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the key instruction</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, and -1 in case of 
failure.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeDocumentKeys"/>xsltFreeDocumentKeys ()</h3><pre 
class="programlisting">void       xsltFreeDocumentKeys            (<a 
href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> idoc)<br/>
+</pre><p>Free the keys associated to a document</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>idoc</tt></i>:</span></td><td>a XSLT document</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeKeys"/>xsltFreeKeys ()</h3><pre 
class="programlisting">void       xsltFreeKeys                    (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Free up the memory used by XSLT keys in a stylesheet</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetKey"/>xsltGetKey ()</h3><pre 
class="programlisting">xmlNodeSetPtr  xsltGetKey              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * name, <br/>                                     const xmlChar * 
nameURI, <br/>                                  const xmlChar * value)<br/>
+</pre><p>Looks up a key of the in current source doc (the document info on @ctxt-&gt;document). Computes the 
key if not already done for the current source doc.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the key name or NULL</td></tr><tr><td><span 
class="term"><i><tt>nameURI</tt></i>:</span></td><td>the name URI or NULL</td></tr><tr><td><span 
class="term"><i><tt>value</tt></i>:</span></td><td>the key value to look for</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the nodeset resulting from the query or 
NULL</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltInitCtxtKeys"/>xsltInitCtxtKeys ()</h3><pre 
class="programlisting">void       xsltInitCtxtKeys                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> idoc)<br/>
+</pre><p>Computes all the keys tables for the current input document. Should be done before global varibales 
are initialized. NOTE: Not used anymore in the refactored code.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>idoc</tt></i>:</span></td><td>a document info</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-namespaces.html b/doc/devhelp/libxslt-namespaces.html
new file mode 100644
index 00000000..201ff74f
--- /dev/null
+++ b/doc/devhelp/libxslt-namespaces.html
@@ -0,0 +1,97 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>namespaces: interface for the XSLT namespace handling</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-keys.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-numbersInternals.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">namespaces</span>
+    </h2>
+    <p>namespaces - interface for the XSLT namespace handling</p>
+    <p>set of function easing the processing and generation of namespace nodes in XSLT. </p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">#define <a href="#UNDEFINED_DEFAULT_NS">UNDEFINED_DEFAULT_NS</a>;
+void   <a href="#xsltFreeNamespaceAliasHashes">xsltFreeNamespaceAliasHashes</a>        (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+xmlNsPtr       <a href="#xsltCopyNamespace">xsltCopyNamespace</a>      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr elem, <br/>                                  xmlNsPtr ns);
+xmlNsPtr       <a href="#xsltCopyNamespaceList">xsltCopyNamespaceList</a>      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNsPtr cur);
+xmlNsPtr       <a href="#xsltGetNamespace">xsltGetNamespace</a>        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr cur, <br/>                                   xmlNsPtr ns, <br/>             
                         xmlNodePtr out);
+xmlNsPtr       <a href="#xsltGetPlainNamespace">xsltGetPlainNamespace</a>      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr cur, <br/>                                   xmlNsPtr ns, <br/>             
                         xmlNodePtr out);
+xmlNsPtr       <a href="#xsltGetSpecialNamespace">xsltGetSpecialNamespace</a>  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr invocNode, <br/>                                     const xmlChar * 
nsName, <br/>                                   const xmlChar * nsPrefix, <br/>                               
          xmlNodePtr target);
+void   <a href="#xsltNamespaceAlias">xsltNamespaceAlias</a>            (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr node);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="UNDEFINED_DEFAULT_NS">Macro 
</a>UNDEFINED_DEFAULT_NS</h3><pre class="programlisting">#define <a 
href="#UNDEFINED_DEFAULT_NS">UNDEFINED_DEFAULT_NS</a>;
+</pre><p>Special value for undefined namespace, internal</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCopyNamespace"/>xsltCopyNamespace ()</h3><pre 
class="programlisting">xmlNsPtr xsltCopyNamespace       (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr elem, <br/>                                  xmlNsPtr ns)<br/>
+</pre><p>Copies a namespace node (declaration). If @elem is not NULL, then the new namespace will be 
declared on @elem.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a transformation context</td></tr><tr><td><span 
class="term"><i><tt>elem</tt></i>:</span></td><td>the target element node</td></tr><tr><td><span 
class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace node</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a new xmlNsPtr, or NULL in case of an 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCopyNamespaceList"/>xsltCopyNamespaceList 
()</h3><pre class="programlisting">xmlNsPtr xsltCopyNamespaceList   (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNsPtr cur)<br/>
+</pre><p>Do a copy of an namespace list. If @node is non-NULL the new namespaces are added automatically. 
This handles namespaces aliases. This function is intended only for *internal* use at transformation-time for 
copying ns-declarations of Literal Result Elements. Called by: xsltCopyTreeInternal() (transform.c) 
xsltShallowCopyElem() (transform.c) REVISIT: This function won't be used in the refactored code.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a transformation context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the target node</td></tr><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td>the first namespace</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a new xmlNsPtr, or NULL in case of 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltFreeNamespaceAliasHashes"/>xsltFreeNamespaceAliasHashes ()</h3><pre class="programlisting">void     
  xsltFreeNamespaceAliasHashes    (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Free up the memory used by namespaces aliases</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetNamespace"/>xsltGetNamespace ()</h3><pre 
class="programlisting">xmlNsPtr   xsltGetNamespace        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr cur, <br/>                                   xmlNsPtr ns, <br/>             
                         xmlNodePtr out)<br/>
+</pre><p>Find a matching (prefix and ns-name) ns-declaration for the requested @ns-&gt;prefix and 
@ns-&gt;href in the result tree. If none is found then a new ns-declaration will be added to @resultElem. If, 
in this case, the given prefix is already in use, then a ns-declaration with a modified ns-prefix be we 
created. Called by: - xsltCopyPropList() (*not* anymore) - xsltShallowCopyElement() - xsltCopyTreeInternal() 
(*not* anymore) - xsltApplySequenceConstructor() (*not* in the refactored code), - xsltElement() (*not* 
anymore)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a transformation context</td></tr><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td>the input node</td></tr><tr><td><span 
class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace</td></tr><tr><td><span 
class="term"><i><tt>out</tt></i>:</span></td><td>the output node (or its parent)</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a namespace declaration or NULL in case of namespace 
fixup failures or API or internal errors.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetPlainNamespace"/>xsltGetPlainNamespace 
()</h3><pre class="programlisting">xmlNsPtr xsltGetPlainNamespace   (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr cur, <br/>                                   xmlNsPtr ns, <br/>             
                         xmlNodePtr out)<br/>
+</pre><p>Obsolete. *Not* called by any Libxslt/Libexslt function. Exaclty the same as xsltGetNamespace().</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a transformation context</td></tr><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td>the input node</td></tr><tr><td><span 
class="term"><i><tt>ns</tt></i>:</span></td><td>the namespace</td></tr><tr><td><span 
class="term"><i><tt>out</tt></i>:</span></td><td>the result element</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a namespace declaration or NULL in case of namespace 
fixup failures or API or internal errors.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetSpecialNamespace"/>xsltGetSpecialNamespace 
()</h3><pre class="programlisting">xmlNsPtr     xsltGetSpecialNamespace (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr invocNode, <br/>                                     const xmlChar * 
nsName, <br/>                                   const xmlChar * nsPrefix, <br/>                               
          xmlNodePtr target)<br/>
+</pre><p>Find a matching (prefix and ns-name) ns-declaration for the requested @nsName and @nsPrefix in the 
result tree. If none is found then a new ns-declaration will be added to @resultElem. If, in this case, the 
given prefix is already in use, then a ns-declaration with a modified ns-prefix be we created. Note that this 
function's priority is to preserve ns-prefixes; it will only change a prefix if there's a namespace clash. If 
both @nsName and @nsPrefix are NULL, then this will try to "undeclare" a default namespace by declaring an 
xmlns="".</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the transformation context</td></tr><tr><td><span 
class="term"><i><tt>invocNode</tt></i>:</span></td><td>the invoking node; e.g. a literal result element/attr; 
only used for error reports</td></tr><tr><td><span class="term"><i><tt>nsName</tt></i>:</span></td><td>the 
namespace name (or NULL)</td></tr><tr><td><span class="term"><i><tt>nsPrefix</tt></i>:</span></td><td>the 
suggested namespace prefix (or NULL)</td></tr><tr><td><span 
class="term"><i><tt>target</tt></i>:</span></td><td>the result element on which to anchor a 
namespace</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a namespace declaration 
or NULL.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNamespaceAlias"/>xsltNamespaceAlias ()</h3><pre 
class="programlisting">void   xsltNamespaceAlias              (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr node)<br/>
+</pre><p>Read the stylesheet-prefix and result-prefix attributes, register them as well as the corresponding 
namespace.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the xsl:namespace-alias 
node</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-numbersInternals.html b/doc/devhelp/libxslt-numbersInternals.html
new file mode 100644
index 00000000..ff892f5a
--- /dev/null
+++ b/doc/devhelp/libxslt-numbersInternals.html
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>numbersInternals: Implementation of the XSLT number functions</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-namespaces.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-pattern.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">numbersInternals</span>
+    </h2>
+    <p>numbersInternals - Implementation of the XSLT number functions</p>
+    <p>Implementation of the XSLT number functions </p>
+    <p>Author(s): Bjorn Reese &lt;breese users sourceforge net&gt; and Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">typedef struct _xsltFormatNumberInfo <a 
href="#xsltFormatNumberInfo">xsltFormatNumberInfo</a>;
+typedef struct _xsltNumberData <a href="#xsltNumberData">xsltNumberData</a>;
+typedef <a href="libxslt-numbersInternals.html#xsltNumberData">xsltNumberData</a> * <a 
href="#xsltNumberDataPtr">xsltNumberDataPtr</a>;
+typedef <a href="libxslt-numbersInternals.html#xsltFormatNumberInfo">xsltFormatNumberInfo</a> * <a 
href="#xsltFormatNumberInfoPtr">xsltFormatNumberInfoPtr</a>;
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="xsltFormatNumberInfo">Structure 
</a>xsltFormatNumberInfo</h3><pre class="programlisting">struct _xsltFormatNumberInfo {
+    int        integer_hash    : Number of '#' in integer part
+    int        integer_digits  : Number of '0' in integer part
+    int        frac_digits     : Number of '0' in fractional part
+    int        frac_hash       : Number of '#' in fractional part
+    int        group   : Number of chars per display 'group'
+    int        multiplier      : Scaling for percent or permille
+    char       add_decimal     : Flag for whether decimal point appears in pattern
+    char       is_multiplier_set       : Flag to catch multiple occurences of percent/permille
+    char       is_negative_pattern     : Flag for processing -ve prefix/suffix
+} xsltFormatNumberInfo;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFormatNumberInfoPtr">Typedef 
</a>xsltFormatNumberInfoPtr</h3><pre class="programlisting"><a 
href="libxslt-numbersInternals.html#xsltFormatNumberInfo">xsltFormatNumberInfo</a> * xsltFormatNumberInfoPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNumberData">Structure </a>xsltNumberData</h3><pre 
class="programlisting">struct _xsltNumberData {
+    const xmlChar *    level
+    const xmlChar *    count
+    const xmlChar *    from
+    const xmlChar *    value
+    const xmlChar *    format
+    int        has_format
+    int        digitsPerGroup
+    int        groupingCharacter
+    int        groupingCharacterLen
+    xmlDocPtr  doc
+    xmlNodePtr node
+    struct _xsltCompMatch *    countPat
+    struct _xsltCompMatch *    fromPat : * accelerators *
+} xsltNumberData;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNumberDataPtr">Typedef 
</a>xsltNumberDataPtr</h3><pre class="programlisting"><a 
href="libxslt-numbersInternals.html#xsltNumberData">xsltNumberData</a> * xsltNumberDataPtr;
+</pre><p/>
+</div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-pattern.html b/doc/devhelp/libxslt-pattern.html
new file mode 100644
index 00000000..5c7187e3
--- /dev/null
+++ b/doc/devhelp/libxslt-pattern.html
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>pattern: interface for the pattern matching used in template matches.</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-numbersInternals.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-preproc.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">pattern</span>
+    </h2>
+    <p>pattern - interface for the pattern matching used in template matches.</p>
+    <p>the implementation of the lookup of the right template for a given node must be really fast in order 
to keep decent performances. </p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">typedef struct _xsltCompMatch <a href="#xsltCompMatch">xsltCompMatch</a>;
+typedef <a href="libxslt-pattern.html#xsltCompMatch">xsltCompMatch</a> * <a 
href="#xsltCompMatchPtr">xsltCompMatchPtr</a>;
+void   <a href="#xsltNormalizeCompSteps">xsltNormalizeCompSteps</a>            (void * payload, <br/>        
                           void * data, <br/>                                      const xmlChar * name);
+int    <a href="#xsltAddTemplate">xsltAddTemplate</a>                  (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> cur, <br/>            
                         const xmlChar * mode, <br/>                                     const xmlChar * 
modeURI);
+<a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a>   <a 
href="#xsltCompilePattern">xsltCompilePattern</a>    (const xmlChar * pattern, <br/>                          
                xmlDocPtr doc, <br/>                                            xmlNodePtr node, <br/>        
                                  <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                       <a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> runtime);
+int    <a href="#xsltMatchPattern">xsltMatchPattern</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  const xmlChar * pattern, <br/> 
                                 xmlDocPtr ctxtdoc, <br/>                                        xmlNodePtr 
ctxtnode);
+<a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>       <a 
href="#xsltGetTemplate">xsltGetTemplate</a>          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+void   <a href="#xsltCompMatchClearCache">xsltCompMatchClearCache</a>          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> comp);
+int    <a href="#xsltTestCompMatchList">xsltTestCompMatchList</a>              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  <a 
href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> comp);
+void   <a href="#xsltFreeCompMatchList">xsltFreeCompMatchList</a>              (<a 
href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> comp);
+void   <a href="#xsltFreeTemplateHashes">xsltFreeTemplateHashes</a>            (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+void   <a href="#xsltCleanupTemplates">xsltCleanupTemplates</a>                (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="xsltCompMatch">Structure </a>xsltCompMatch</h3><pre 
class="programlisting">struct _xsltCompMatch {
+The content of this structure is not made public by the API.
+} xsltCompMatch;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCompMatchPtr">Typedef </a>xsltCompMatchPtr</h3><pre 
class="programlisting"><a href="libxslt-pattern.html#xsltCompMatch">xsltCompMatch</a> * xsltCompMatchPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltAddTemplate"/>xsltAddTemplate ()</h3><pre 
class="programlisting">int  xsltAddTemplate                 (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> cur, <br/>            
                         const xmlChar * mode, <br/>                                     const xmlChar * 
modeURI)<br/>
+</pre><p>Register the XSLT pattern associated to @cur</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td>an XSLT template</td></tr><tr><td><span 
class="term"><i><tt>mode</tt></i>:</span></td><td>the mode name or NULL</td></tr><tr><td><span 
class="term"><i><tt>modeURI</tt></i>:</span></td><td>the mode URI or NULL</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 
otherwise</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCleanupTemplates"/>xsltCleanupTemplates ()</h3><pre 
class="programlisting">void       xsltCleanupTemplates            (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Cleanup the state of the templates used by the stylesheet and the ones it imports.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCompMatchClearCache"/>xsltCompMatchClearCache 
()</h3><pre class="programlisting">void xsltCompMatchClearCache         (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> comp)<br/>
+</pre><p>Clear pattern match cache.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern 
list</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCompilePattern"/>xsltCompilePattern ()</h3><pre 
class="programlisting"><a href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a>   
xsltCompilePattern      (const xmlChar * pattern, <br/>                                          xmlDocPtr 
doc, <br/>                                            xmlNodePtr node, <br/>                                  
        <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>             
                                  <a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> runtime)<br/>
+</pre><p>Compile the XSLT pattern and generates a list of precompiled form suitable for fast matching. [1] 
Pattern ::= LocationPathPattern | Pattern '|' LocationPathPattern</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>pattern</tt></i>:</span></td><td>an XSLT pattern</td></tr><tr><td><span 
class="term"><i><tt>doc</tt></i>:</span></td><td>the containing document</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the containing element</td></tr><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>runtime</tt></i>:</span></td><td>the transformation context, if done at 
run-time</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the generated pattern 
list or NULL in case of failure</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeCompMatchList"/>xsltFreeCompMatchList 
()</h3><pre class="programlisting">void     xsltFreeCompMatchList           (<a 
href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> comp)<br/>
+</pre><p>Free up the memory allocated by all the elements of @comp</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>comp</tt></i>:</span></td><td>an XSLT comp list</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeTemplateHashes"/>xsltFreeTemplateHashes 
()</h3><pre class="programlisting">void   xsltFreeTemplateHashes          (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Free up the memory used by xsltAddTemplate/xsltGetTemplate mechanism</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetTemplate"/>xsltGetTemplate ()</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>     
xsltGetTemplate         (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Finds the template applying to this node, if @style is non-NULL it means one needs to look for the 
next imported template in scope.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the node being processed</td></tr><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the current style</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a 
href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> or NULL if not 
found</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltMatchPattern"/>xsltMatchPattern ()</h3><pre 
class="programlisting">int        xsltMatchPattern                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  const xmlChar * pattern, <br/> 
                                 xmlDocPtr ctxtdoc, <br/>                                        xmlNodePtr 
ctxtnode)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>pattern</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>ctxtdoc</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>ctxtnode</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNormalizeCompSteps"/>xsltNormalizeCompSteps 
()</h3><pre class="programlisting">void   xsltNormalizeCompSteps          (void * payload, <br/>              
                     void * data, <br/>                                      const xmlChar * name)<br/>
+</pre><p>This is a hashtable scanner function to normalize the compiled steps of an imported stylesheet.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>payload</tt></i>:</span></td><td>pointer to template hash table 
entry</td></tr><tr><td><span class="term"><i><tt>data</tt></i>:</span></td><td>pointer to the 
stylesheet</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>template match 
name</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltTestCompMatchList"/>xsltTestCompMatchList 
()</h3><pre class="programlisting">int      xsltTestCompMatchList           (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  <a 
href="libxslt-pattern.html#xsltCompMatchPtr">xsltCompMatchPtr</a> comp)<br/>
+</pre><p>Test whether the node matches one of the patterns in the list</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>a node</td></tr><tr><td><span 
class="term"><i><tt>comp</tt></i>:</span></td><td>the precompiled pattern list</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if it matches, 0 if it doesn't and -1 in case of 
failure</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-preproc.html b/doc/devhelp/libxslt-preproc.html
new file mode 100644
index 00000000..93dd848b
--- /dev/null
+++ b/doc/devhelp/libxslt-preproc.html
@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>preproc: precomputing stylesheets</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-pattern.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-security.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">preproc</span>
+    </h2>
+    <p>preproc - precomputing stylesheets</p>
+    <p>this is the compilation phase, where most of the stylesheet is "compiled" into faster to use data. 
</p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">void       <a href="#xsltFreeStylePreComps">xsltFreeStylePreComps</a>            
  (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> <a 
href="#xsltDocumentComp">xsltDocumentComp</a>        (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                       xmlNodePtr inst, <br/>                                          <a 
href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function);
+void   <a href="#xsltStylePreCompute">xsltStylePreCompute</a>          (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr inst);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="xsltExtMarker">Variable </a>xsltExtMarker</h3><pre 
class="programlisting">const xmlChar * xsltExtMarker;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDocumentComp"/>xsltDocumentComp ()</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>     
xsltDocumentComp        (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, 
<br/>                                               xmlNodePtr inst, <br/>                                    
      <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a> function)<br/>
+</pre><p>Pre process an XSLT-1.1 document element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the instruction in the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>function</tt></i>:</span></td><td>unused</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a precompiled data structure for the 
element</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeStylePreComps"/>xsltFreeStylePreComps 
()</h3><pre class="programlisting">void     xsltFreeStylePreComps           (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Free up the memory allocated by all precomputed blocks</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT transformation 
context</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStylePreCompute"/>xsltStylePreCompute ()</h3><pre 
class="programlisting">void xsltStylePreCompute             (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr inst)<br/>
+</pre><p>Precompute an XSLT stylesheet element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the instruction in the 
stylesheet</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-security.html b/doc/devhelp/libxslt-security.html
new file mode 100644
index 00000000..87e73a83
--- /dev/null
+++ b/doc/devhelp/libxslt-security.html
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>security: interface for the libxslt security framework</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-preproc.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-templates.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">security</span>
+    </h2>
+    <p>security - interface for the libxslt security framework</p>
+    <p>the libxslt security framework allow to restrict the access to new resources (file or URL) from the 
stylesheet at runtime. </p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">typedef struct _xsltSecurityPrefs <a 
href="#xsltSecurityPrefs">xsltSecurityPrefs</a>;
+typedef <a href="libxslt-security.html#xsltSecurityPrefs">xsltSecurityPrefs</a> * <a 
href="#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a>;
+typedef enum <a href="#xsltSecurityOption">xsltSecurityOption</a>;
+<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a>  <a 
href="#xsltNewSecurityPrefs">xsltNewSecurityPrefs</a>        (void);
+typedef int <a href="#xsltSecurityCheck">xsltSecurityCheck</a>         (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
               <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, 
<br/>                                    const char * value);
+int    <a href="#xsltSetSecurityPrefs">xsltSetSecurityPrefs</a>                (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
               <a href="libxslt-security.html#xsltSecurityOption">xsltSecurityOption</a> option, <br/>        
                                 <a href="libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a> 
func);
+<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a>  <a 
href="#xsltGetDefaultSecurityPrefs">xsltGetDefaultSecurityPrefs</a>  (void);
+void   <a href="#xsltFreeSecurityPrefs">xsltFreeSecurityPrefs</a>              (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec);
+void   <a href="#xsltSetDefaultSecurityPrefs">xsltSetDefaultSecurityPrefs</a>  (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec);
+int    <a href="#xsltSetCtxtSecurityPrefs">xsltSetCtxtSecurityPrefs</a>        (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
               <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+<a href="libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a>        <a 
href="#xsltGetSecurityPrefs">xsltGetSecurityPrefs</a>        (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
                       <a href="libxslt-security.html#xsltSecurityOption">xsltSecurityOption</a> option);
+int    <a href="#xsltSecurityAllow">xsltSecurityAllow</a>              (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
               <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, 
<br/>                                    const char * value);
+int    <a href="#xsltCheckWrite">xsltCheckWrite</a>                    (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
               <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, 
<br/>                                    const xmlChar * URL);
+int    <a href="#xsltCheckRead">xsltCheckRead</a>                      (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
               <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, 
<br/>                                    const xmlChar * URL);
+int    <a href="#xsltSecurityForbid">xsltSecurityForbid</a>            (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
               <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, 
<br/>                                    const char * value);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="xsltSecurityOption">Enum 
</a>xsltSecurityOption</h3><pre class="programlisting">enum <a 
href="#xsltSecurityOption">xsltSecurityOption</a> {
+    <a name="XSLT_SECPREF_READ_FILE">XSLT_SECPREF_READ_FILE</a> = 1
+    <a name="XSLT_SECPREF_WRITE_FILE">XSLT_SECPREF_WRITE_FILE</a> = 2
+    <a name="XSLT_SECPREF_CREATE_DIRECTORY">XSLT_SECPREF_CREATE_DIRECTORY</a> = 3
+    <a name="XSLT_SECPREF_READ_NETWORK">XSLT_SECPREF_READ_NETWORK</a> = 4
+    <a name="XSLT_SECPREF_WRITE_NETWORK">XSLT_SECPREF_WRITE_NETWORK</a> = 5
+};
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSecurityPrefs">Structure 
</a>xsltSecurityPrefs</h3><pre class="programlisting">struct _xsltSecurityPrefs {
+The content of this structure is not made public by the API.
+} xsltSecurityPrefs;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSecurityPrefsPtr">Typedef 
</a>xsltSecurityPrefsPtr</h3><pre class="programlisting"><a 
href="libxslt-security.html#xsltSecurityPrefs">xsltSecurityPrefs</a> * xsltSecurityPrefsPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSecurityCheck"/>Function type 
xsltSecurityCheck</h3><pre class="programlisting">int   xsltSecurityCheck               (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
               <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, 
<br/>                                    const char * value)<br/>
+</pre><p>User provided function to check the value of a string like a file path or an URL ...</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>sec</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>value</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCheckRead"/>xsltCheckRead ()</h3><pre 
class="programlisting">int      xsltCheckRead                   (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
               <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, 
<br/>                                    const xmlChar * URL)<br/>
+</pre><p>Check if the resource is allowed to be read</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>sec</tt></i>:</span></td><td>the security options</td></tr><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>URL</tt></i>:</span></td><td>the resource to be read</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if read is allowed, 0 if not and -1 in case or 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCheckWrite"/>xsltCheckWrite ()</h3><pre 
class="programlisting">int    xsltCheckWrite                  (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
               <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, 
<br/>                                    const xmlChar * URL)<br/>
+</pre><p>Check if the resource is allowed to be written, if necessary makes some preliminary work like 
creating directories</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>sec</tt></i>:</span></td><td>the security options</td></tr><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>URL</tt></i>:</span></td><td>the resource to be written</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if write is allowed, 0 if not and -1 in case or 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeSecurityPrefs"/>xsltFreeSecurityPrefs 
()</h3><pre class="programlisting">void     xsltFreeSecurityPrefs           (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec)<br/>
+</pre><p>Free up a security preference block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>sec</tt></i>:</span></td><td>the security block to 
free</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltGetDefaultSecurityPrefs"/>xsltGetDefaultSecurityPrefs ()</h3><pre class="programlisting"><a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a>        xsltGetDefaultSecurityPrefs 
    (void)<br/>
+</pre><p>Get the default security preference application-wide</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the current <a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> in use or NULL if 
none</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetSecurityPrefs"/>xsltGetSecurityPrefs ()</h3><pre 
class="programlisting"><a href="libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a>    
xsltGetSecurityPrefs    (<a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, 
<br/>                                                <a 
href="libxslt-security.html#xsltSecurityOption">xsltSecurityOption</a> option)<br/>
+</pre><p>Lookup the security option to get the callback checking function</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>sec</tt></i>:</span></td><td>the security block to update</td></tr><tr><td><span 
class="term"><i><tt>option</tt></i>:</span></td><td>the option to lookup</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL if not found, the function 
otherwise</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNewSecurityPrefs"/>xsltNewSecurityPrefs ()</h3><pre 
class="programlisting"><a href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a>      
xsltNewSecurityPrefs    (void)<br/>
+</pre><p>Create a new security preference block</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the new block or NULL in case of 
error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSecurityAllow"/>xsltSecurityAllow ()</h3><pre 
class="programlisting">int      xsltSecurityAllow               (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
               <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, 
<br/>                                    const char * value)<br/>
+</pre><p>Function used to always allow an operation</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>sec</tt></i>:</span></td><td>the security block to use</td></tr><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>value</tt></i>:</span></td><td>unused</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>1 always</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSecurityForbid"/>xsltSecurityForbid ()</h3><pre 
class="programlisting">int    xsltSecurityForbid              (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
               <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, 
<br/>                                    const char * value)<br/>
+</pre><p>Function used to always forbid an operation</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>sec</tt></i>:</span></td><td>the security block to use</td></tr><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>value</tt></i>:</span></td><td>unused</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 always</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSetCtxtSecurityPrefs"/>xsltSetCtxtSecurityPrefs 
()</h3><pre class="programlisting">int        xsltSetCtxtSecurityPrefs        (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
               <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> 
ctxt)<br/>
+</pre><p>Set the security preference for a specific transformation</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>sec</tt></i>:</span></td><td>the security block to use</td></tr><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 
otherwise</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltSetDefaultSecurityPrefs"/>xsltSetDefaultSecurityPrefs ()</h3><pre class="programlisting">void 
xsltSetDefaultSecurityPrefs     (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec)<br/>
+</pre><p>Set the default security preference application-wide</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>sec</tt></i>:</span></td><td>the security block to 
use</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSetSecurityPrefs"/>xsltSetSecurityPrefs ()</h3><pre 
class="programlisting">int        xsltSetSecurityPrefs            (<a 
href="libxslt-security.html#xsltSecurityPrefsPtr">xsltSecurityPrefsPtr</a> sec, <br/>                         
               <a href="libxslt-security.html#xsltSecurityOption">xsltSecurityOption</a> option, <br/>        
                                 <a href="libxslt-security.html#xsltSecurityCheck">xsltSecurityCheck</a> 
func)<br/>
+</pre><p>Update the security option to use the new callback checking function</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>sec</tt></i>:</span></td><td>the security block to update</td></tr><tr><td><span 
class="term"><i><tt>option</tt></i>:</span></td><td>the option to update</td></tr><tr><td><span 
class="term"><i><tt>func</tt></i>:</span></td><td>the user callback to use for this 
option</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>-1 in case of error, 0 
otherwise</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-templates.html b/doc/devhelp/libxslt-templates.html
new file mode 100644
index 00000000..ec89ded2
--- /dev/null
+++ b/doc/devhelp/libxslt-templates.html
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>templates: interface for the template processing</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-security.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-transform.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">templates</span>
+    </h2>
+    <p>templates - interface for the template processing</p>
+    <p>This set of routine encapsulates XPath calls and Attribute Value Templates evaluation. </p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">const xmlChar *    <a 
href="#xsltEvalStaticAttrValueTemplate">xsltEvalStaticAttrValueTemplate</a>  (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                       xmlNodePtr inst, <br/>                                          const xmlChar * name, 
<br/>                                             const xmlChar * ns, <br/>                                   
            int * found);
+xmlAttrPtr     <a href="#xsltAttrListTemplateProcess">xsltAttrListTemplateProcess</a>  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                               xmlNodePtr target, <br/>                                                
xmlAttrPtr attrs);
+xmlChar *      <a href="#xsltEvalTemplateString">xsltEvalTemplateString</a>    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   xmlNodePtr inst);
+xmlChar *      <a href="#xsltAttrTemplateValueProcess">xsltAttrTemplateValueProcess</a>        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                               const xmlChar * str);
+xmlAttrPtr     <a href="#xsltAttrTemplateProcess">xsltAttrTemplateProcess</a>  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr target, <br/>                                        xmlAttrPtr attr);
+xmlChar *      <a href="#xsltEvalAttrValueTemplate">xsltEvalAttrValueTemplate</a>      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                               xmlNodePtr inst, <br/>                                          const xmlChar 
* name, <br/>                                             const xmlChar * ns);
+int    <a href="#xsltEvalXPathPredicate">xsltEvalXPathPredicate</a>            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlXPathCompExprPtr comp, <br/>                                         xmlNsPtr * 
nsList, <br/>                                        int nsNr);
+xmlChar *      <a href="#xsltAttrTemplateValueProcessNode">xsltAttrTemplateValueProcessNode</a>        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                                       const xmlChar * str, <br/>                                             
         xmlNodePtr inst);
+xmlNodePtr *   <a href="#xsltTemplateProcess">xsltTemplateProcess</a>  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node);
+xmlChar *      <a href="#xsltEvalXPathStringNs">xsltEvalXPathStringNs</a>      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlXPathCompExprPtr comp, <br/>                                         int nsNr, 
<br/>                                         xmlNsPtr * nsList);
+xmlChar *      <a href="#xsltEvalXPathString">xsltEvalXPathString</a>  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlXPathCompExprPtr comp);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a 
name="xsltAttrListTemplateProcess"/>xsltAttrListTemplateProcess ()</h3><pre class="programlisting">xmlAttrPtr 
  xsltAttrListTemplateProcess     (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                               xmlNodePtr target, <br/>                                                
xmlAttrPtr attrs)<br/>
+</pre><p>Processes all attributes of a Literal Result Element. Attribute references are applied via 
xsl:use-attribute-set attributes. Copies all non XSLT-attributes over to the @target element and evaluates 
Attribute Value Templates. Called by xsltApplySequenceConstructor() (transform.c).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>target</tt></i>:</span></td><td>the element where the attributes will be 
grafted</td></tr><tr><td><span class="term"><i><tt>attrs</tt></i>:</span></td><td>the first 
attribute</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new list of attribute 
nodes, or NULL in case of error. (Don't assign the result to @target-&gt;properties; if the result is NULL, 
you'll get memory leaks, since the attributes will be disattached.)</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltAttrTemplateProcess"/>xsltAttrTemplateProcess 
()</h3><pre class="programlisting">xmlAttrPtr   xsltAttrTemplateProcess (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr target, <br/>                                        xmlAttrPtr attr)<br/>
+</pre><p>Process one attribute of a Literal Result Element (in the stylesheet). Evaluates Attribute Value 
Templates and copies the attribute over to the result element. This does *not* process attribute sets 
(xsl:use-attribute-set).</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>target</tt></i>:</span></td><td>the element where the attribute will be 
grafted</td></tr><tr><td><span class="term"><i><tt>attr</tt></i>:</span></td><td>the attribute node of a 
literal result element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the 
generated attribute node.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltAttrTemplateValueProcess"/>xsltAttrTemplateValueProcess ()</h3><pre class="programlisting">xmlChar 
*  xsltAttrTemplateValueProcess    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                               const xmlChar * str)<br/>
+</pre><p>Process the given node and return the new string value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>str</tt></i>:</span></td><td>the attribute template node value</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed string value or NULL, must be deallocated 
by the caller.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltAttrTemplateValueProcessNode"/>xsltAttrTemplateValueProcessNode ()</h3><pre 
class="programlisting">xmlChar *  xsltAttrTemplateValueProcessNode        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                                       const xmlChar * str, <br/>                                             
         xmlNodePtr inst)<br/>
+</pre><p>Process the given string, allowing to pass a namespace mapping context and return the new string 
value. Called by: - xsltAttrTemplateValueProcess() (templates.c) - xsltEvalAttrValueTemplate() (templates.c) 
QUESTION: Why is this function public? It is not used outside of templates.c.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>str</tt></i>:</span></td><td>the attribute template node value</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the instruction (or LRE) in the stylesheet holding the 
attribute with an AVT</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the 
computed string value or NULL, must be deallocated by the caller.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltEvalAttrValueTemplate"/>xsltEvalAttrValueTemplate 
()</h3><pre class="programlisting">xmlChar *        xsltEvalAttrValueTemplate       (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                               xmlNodePtr inst, <br/>                                          const xmlChar 
* name, <br/>                                             const xmlChar * ns)<br/>
+</pre><p>Evaluate a attribute value template, i.e. the attribute value can contain expressions contained in 
curly braces ({}) and those are substituted by they computed value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the instruction (or LRE) in the stylesheet holding the 
attribute with an AVT</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the attribute 
QName</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the attribute namespace 
URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed string value or 
NULL, must be deallocated by the caller.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltEvalStaticAttrValueTemplate"/>xsltEvalStaticAttrValueTemplate ()</h3><pre 
class="programlisting">const xmlChar *      xsltEvalStaticAttrValueTemplate (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                       xmlNodePtr inst, <br/>                                          const xmlChar * name, 
<br/>                                             const xmlChar * ns, <br/>                                   
            int * found)<br/>
+</pre><p>Check if an attribute value template has a static value, i.e. the attribute value does not contain 
expressions contained in curly braces ({})</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the instruction (or LRE) in the stylesheet holding the 
attribute with an AVT</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the attribute 
Name</td></tr><tr><td><span class="term"><i><tt>ns</tt></i>:</span></td><td>the attribute namespace 
URI</td></tr><tr><td><span class="term"><i><tt>found</tt></i>:</span></td><td>indicator whether the attribute 
is present</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the static string 
value or NULL, must be deallocated by the caller.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltEvalTemplateString"/>xsltEvalTemplateString 
()</h3><pre class="programlisting">xmlChar *      xsltEvalTemplateString  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   xmlNodePtr inst)<br/>
+</pre><p>Processes the sequence constructor of the given instruction on @contextNode and converts the 
resulting tree to a string. This is needed by e.g. xsl:comment and xsl:processing-instruction.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>contextNode</tt></i>:</span></td><td>the current node in the source 
tree</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the XSLT instruction 
(xsl:comment, xsl:processing-instruction)</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed string value or NULL; it's up to the caller 
to free the result.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltEvalXPathPredicate"/>xsltEvalXPathPredicate 
()</h3><pre class="programlisting">int    xsltEvalXPathPredicate          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlXPathCompExprPtr comp, <br/>                                         xmlNsPtr * 
nsList, <br/>                                        int nsNr)<br/>
+</pre><p>Process the expression using XPath and evaluate the result as an XPath predicate</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>comp</tt></i>:</span></td><td>the XPath compiled expression</td></tr><tr><td><span 
class="term"><i><tt>nsList</tt></i>:</span></td><td>the namespaces in scope</td></tr><tr><td><span 
class="term"><i><tt>nsNr</tt></i>:</span></td><td>the number of namespaces in scope</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>1 is the predicate was true, 0 
otherwise</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltEvalXPathString"/>xsltEvalXPathString ()</h3><pre 
class="programlisting">xmlChar *    xsltEvalXPathString     (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlXPathCompExprPtr comp)<br/>
+</pre><p>Process the expression using XPath and get a string</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>comp</tt></i>:</span></td><td>the compiled XPath expression</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed string value or NULL, must be deallocated 
by the caller.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltEvalXPathStringNs"/>xsltEvalXPathStringNs 
()</h3><pre class="programlisting">xmlChar *        xsltEvalXPathStringNs   (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlXPathCompExprPtr comp, <br/>                                         int nsNr, 
<br/>                                         xmlNsPtr * nsList)<br/>
+</pre><p>Process the expression using XPath, allowing to pass a namespace mapping context and get a 
string</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>comp</tt></i>:</span></td><td>the compiled XPath expression</td></tr><tr><td><span 
class="term"><i><tt>nsNr</tt></i>:</span></td><td>the number of namespaces in the list</td></tr><tr><td><span 
class="term"><i><tt>nsList</tt></i>:</span></td><td>the list of in-scope namespaces to 
use</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed string value or 
NULL, must be deallocated by the caller.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltTemplateProcess"/>xsltTemplateProcess ()</h3><pre 
class="programlisting">xmlNodePtr * xsltTemplateProcess     (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node)<br/>
+</pre><p>Obsolete. Don't use it.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the attribute template node</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>NULL.</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-transform.html b/doc/devhelp/libxslt-transform.html
new file mode 100644
index 00000000..d6ecef6e
--- /dev/null
+++ b/doc/devhelp/libxslt-transform.html
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>transform: the XSLT engine transformation part.</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-templates.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-variables.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">transform</span>
+    </h2>
+    <p>transform - the XSLT engine transformation part.</p>
+    <p>This module implements the bulk of the actual</p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">void       <a href="#xsltValueOf">xsltValueOf</a>                  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp);
+void   <a href="#xsltRegisterAllElement">xsltRegisterAllElement</a>            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+void   <a href="#xsltSort">xsltSort</a>                        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+void   <a href="#xsltSetXIncludeDefault">xsltSetXIncludeDefault</a>            (int xinclude);
+void   <a href="#xsltCopyOf">xsltCopyOf</a>                    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp);
+void   <a href="#xsltApplyTemplates">xsltApplyTemplates</a>            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp);
+void   <a href="#xsltIf">xsltIf</a>                    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   xmlNodePtr inst, <br/> 
                                 <a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
+void   <a href="#xsltCallTemplate">xsltCallTemplate</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp);
+xmlDocPtr      <a href="#xsltApplyStylesheet">xsltApplyStylesheet</a>  (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlDocPtr doc, <br/>                                    const char ** params);
+void   <a href="#xsltApplyStripSpaces">xsltApplyStripSpaces</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node);
+int    <a href="#xsltLocalVariablePush">xsltLocalVariablePush</a>              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> variable, 
<br/>                                      int level);
+void   <a href="#xsltFreeTransformContext">xsltFreeTransformContext</a>        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+int    <a href="#xsltRunStylesheet">xsltRunStylesheet</a>              (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlDocPtr doc, <br/>                                    const char ** params, <br/>            
                         const char * output, <br/>                                      xmlSAXHandlerPtr 
SAX, <br/>                                     xmlOutputBufferPtr IObuf);
+void   <a href="#xsltChoose">xsltChoose</a>                    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   xmlNodePtr inst, <br/> 
                                 <a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+xmlNodePtr     <a href="#xsltCopyTextString">xsltCopyTextString</a>    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr target, <br/>                                        const xmlChar * 
string, <br/>                                   int noescape);
+void   <a href="#xsltText">xsltText</a>                        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+void   <a href="#xsltProcessOneNode">xsltProcessOneNode</a>            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   <a 
href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> withParams);
+void   <a href="#xsltLocalVariablePop">xsltLocalVariablePop</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       int limitNr, <br/>                                      int level);
+void   <a href="#xsltNumber">xsltNumber</a>                    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp);
+int    <a href="#xsltRunStylesheetUser">xsltRunStylesheetUser</a>              (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlDocPtr doc, <br/>                                    const char ** params, <br/>            
                         const char * output, <br/>                                      xmlSAXHandlerPtr 
SAX, <br/>                                     xmlOutputBufferPtr IObuf, <br/>                                
         FILE * profile, <br/>                                   <a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> userCtxt);
+<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a>       <a 
href="#xsltNewTransformContext">xsltNewTransformContext</a>  (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                       xmlDocPtr doc);
+int    <a href="#xsltGetXIncludeDefault">xsltGetXIncludeDefault</a>            (void);
+void   <a href="#xsltApplyOneTemplate">xsltApplyOneTemplate</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   xmlNodePtr list, <br/> 
                                 <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> 
templ, <br/>                                   <a 
href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> params);
+void   <a href="#xslHandleDebugger">xslHandleDebugger</a>              (xmlNodePtr cur, <br/>                
                   xmlNodePtr node, <br/>                                  <a 
href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/>                            
       <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+void   <a href="#xsltCopy">xsltCopy</a>                        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp);
+void   <a href="#xsltDocumentElem">xsltDocumentElem</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp);
+void   <a href="#xsltAttribute">xsltAttribute</a>                      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   xmlNodePtr inst, <br/> 
                                 <a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
+void   <a href="#xsltApplyImports">xsltApplyImports</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   xmlNodePtr inst, <br/> 
                                 <a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+void   <a href="#xsltElement">xsltElement</a>                  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp);
+xmlDocPtr      <a href="#xsltProfileStylesheet">xsltProfileStylesheet</a>      (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlDocPtr doc, <br/>                                    const char ** params, <br/>            
                         FILE * output);
+void   <a href="#xsltForEach">xsltForEach</a>                  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   xmlNodePtr inst, <br/> 
                                 <a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp);
+xmlDocPtr      <a href="#xsltApplyStylesheetUser">xsltApplyStylesheetUser</a>  (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlDocPtr doc, <br/>                                    const char ** params, <br/>            
                         const char * output, <br/>                                      FILE * profile, 
<br/>                                   <a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> userCtxt);
+void   <a href="#xsltProcessingInstruction">xsltProcessingInstruction</a>      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp);
+void   <a href="#xsltComment">xsltComment</a>                  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="xslHandleDebugger"/>xslHandleDebugger ()</h3><pre 
class="programlisting">void     xslHandleDebugger               (xmlNodePtr cur, <br/>                        
           xmlNodePtr node, <br/>                                  <a 
href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/>                            
       <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>If either cur or node are a breakpoint, or <a 
href="libxslt-xsltutils.html#xslDebugStatus">xslDebugStatus</a> in state where debugging must occcur at this 
time then transfer control to the xslDebugBreak function</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td>source node being executed</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>data node being processed</td></tr><tr><td><span 
class="term"><i><tt>templ</tt></i>:</span></td><td>temlate that applies to node</td></tr><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the xslt transform 
context</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltApplyImports"/>xsltApplyImports ()</h3><pre 
class="programlisting">void       xsltApplyImports                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   xmlNodePtr inst, <br/> 
                                 <a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp)<br/>
+</pre><p>Process the XSLT apply-imports element.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>contextNode</tt></i>:</span></td><td>the current node in the source 
tree.</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the element node of the XSLT 
'apply-imports' instruction</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>the 
compiled instruction</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltApplyOneTemplate"/>xsltApplyOneTemplate ()</h3><pre 
class="programlisting">void       xsltApplyOneTemplate            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   xmlNodePtr list, <br/> 
                                 <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> 
templ, <br/>                                   <a 
href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> params)<br/>
+</pre><p>Processes a sequence constructor on the current node in the source tree. @params are the already 
computed variable stack items; this function pushes them on the variable stack, and pops them before exiting; 
it's left to the caller to free or reuse @params afterwards. The initial states of the variable stack will 
always be restored before this function exits. NOTE that this does *not* initiate a new distinct variable 
scope; i.e. variables already on the stack are visible to the process. The caller's side needs to start a new 
variable scope if needed (e.g. in exsl:function). @templ is obsolete and not used anymore (e.g. 
&lt;exslt:function&gt; does not provide a @templ); a non-NULL @templ might raise an error in the future. BIG 
NOTE: This function is not intended to process the content of an xsl:template; it does not expect xsl:param 
instructions in @list and will report errors if found. Called by: - xsltEvalVariable() (variables.c) - 
exsltFuncFunctionFunction() (libexsl/funct
 ions.c)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>contextNode</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span 
class="term"><i><tt>list</tt></i>:</span></td><td>the nodes of a sequence constructor</td></tr><tr><td><span 
class="term"><i><tt>templ</tt></i>:</span></td><td>not used</td></tr><tr><td><span 
class="term"><i><tt>params</tt></i>:</span></td><td>a set of parameters (xsl:param) or 
NULL</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltApplyStripSpaces"/>xsltApplyStripSpaces ()</h3><pre 
class="programlisting">void       xsltApplyStripSpaces            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node)<br/>
+</pre><p>Strip the unwanted ignorable spaces from the input tree</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the root of the XML 
tree</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltApplyStylesheet"/>xsltApplyStylesheet ()</h3><pre 
class="programlisting">xmlDocPtr    xsltApplyStylesheet     (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlDocPtr doc, <br/>                                    const char ** params)<br/>
+</pre><p>Apply the stylesheet to the document NOTE: This may lead to a non-wellformed output XML wise !</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>a parsed XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span 
class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated arry of parameters names/values 
tuples</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the result document or 
NULL in case of error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltApplyStylesheetUser"/>xsltApplyStylesheetUser 
()</h3><pre class="programlisting">xmlDocPtr    xsltApplyStylesheetUser (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlDocPtr doc, <br/>                                    const char ** params, <br/>            
                         const char * output, <br/>                                      FILE * profile, 
<br/>                                   <a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> userCtxt)<br/>
+</pre><p>Apply the stylesheet to the document and allow the user to provide its own transformation 
context.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>a parsed XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span 
class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated array of parameters names/values 
tuples</td></tr><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the targetted 
output</td></tr><tr><td><span class="term"><i><tt>profile</tt></i>:</span></td><td>profile FILE * output or 
NULL</td></tr><tr><td><span class="term"><i><tt>userCtxt</tt></i>:</span></td><td>user provided transform 
context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the result document or 
NULL in case of error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltApplyTemplates"/>xsltApplyTemplates ()</h3><pre 
class="programlisting">void   xsltApplyTemplates              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp)<br/>
+</pre><p>Processes the XSLT 'apply-templates' instruction on the current node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the 'current node' in the source 
tree</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the element node of an XSLT 
'apply-templates' instruction</td></tr><tr><td><span 
class="term"><i><tt>castedComp</tt></i>:</span></td><td>the compiled 
instruction</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltAttribute"/>xsltAttribute ()</h3><pre 
class="programlisting">void     xsltAttribute                   (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   xmlNodePtr inst, <br/> 
                                 <a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp)<br/>
+</pre><p>Process the xslt attribute node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>contextNode</tt></i>:</span></td><td>the current node in the source 
tree</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xsl:attribute 
element</td></tr><tr><td><span class="term"><i><tt>castedComp</tt></i>:</span></td><td>precomputed 
information</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCallTemplate"/>xsltCallTemplate ()</h3><pre 
class="programlisting">void       xsltCallTemplate                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp)<br/>
+</pre><p>Processes the XSLT call-template instruction on the source node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the "current node" in the source 
tree</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the XSLT 'call-template' 
instruction</td></tr><tr><td><span class="term"><i><tt>castedComp</tt></i>:</span></td><td>the compiled 
information of the instruction</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltChoose"/>xsltChoose ()</h3><pre 
class="programlisting">void   xsltChoose                      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   xmlNodePtr inst, <br/> 
                                 <a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp)<br/>
+</pre><p>Processes the xsl:choose instruction on the source node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>contextNode</tt></i>:</span></td><td>the current node in the source 
tree</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xsl:choose 
instruction</td></tr><tr><td><span class="term"><i><tt>comp</tt></i>:</span></td><td>compiled information of 
the instruction</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltComment"/>xsltComment ()</h3><pre 
class="programlisting">void xsltComment                     (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
comp)<br/>
+</pre><p>Process the xslt comment node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt comment node</td></tr><tr><td><span 
class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed 
information</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCopy"/>xsltCopy ()</h3><pre 
class="programlisting">void       xsltCopy                        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp)<br/>
+</pre><p>Execute the XSLT-copy instruction on the source node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the element node of the XSLT-copy 
instruction</td></tr><tr><td><span class="term"><i><tt>castedComp</tt></i>:</span></td><td>computed 
information of the XSLT-copy instruction</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCopyOf"/>xsltCopyOf ()</h3><pre 
class="programlisting">void   xsltCopyOf                      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp)<br/>
+</pre><p>Process the XSLT copy-of instruction.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the current node in the source tree</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the element node of the XSLT copy-of 
instruction</td></tr><tr><td><span class="term"><i><tt>castedComp</tt></i>:</span></td><td>precomputed 
information of the XSLT copy-of instruction</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCopyTextString"/>xsltCopyTextString ()</h3><pre 
class="programlisting">xmlNodePtr     xsltCopyTextString      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr target, <br/>                                        const xmlChar * 
string, <br/>                                   int noescape)<br/>
+</pre><p>Adds @string to a newly created or an existent text node child of @target.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>target</tt></i>:</span></td><td>the element where the text will be 
attached</td></tr><tr><td><span class="term"><i><tt>string</tt></i>:</span></td><td>the text 
string</td></tr><tr><td><span class="term"><i><tt>noescape</tt></i>:</span></td><td>should disable-escaping 
be activated for this text node.</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the text node, where the text content of @cur is copied 
to. NULL in case of API or internal errors.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDocumentElem"/>xsltDocumentElem ()</h3><pre 
class="programlisting">void       xsltDocumentElem                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp)<br/>
+</pre><p>Process an EXSLT/XSLT-1.1 document element</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT processing context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>The current node</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the instruction in the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>castedComp</tt></i>:</span></td><td>precomputed 
information</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltElement"/>xsltElement ()</h3><pre 
class="programlisting">void xsltElement                     (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp)<br/>
+</pre><p>Process the xslt element node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt element node</td></tr><tr><td><span 
class="term"><i><tt>castedComp</tt></i>:</span></td><td>precomputed 
information</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltForEach"/>xsltForEach ()</h3><pre 
class="programlisting">void xsltForEach                     (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   xmlNodePtr inst, <br/> 
                                 <a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp)<br/>
+</pre><p>Process the xslt for-each node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>contextNode</tt></i>:</span></td><td>the "current node" in the source 
tree</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the element node of the 
xsl:for-each instruction</td></tr><tr><td><span class="term"><i><tt>castedComp</tt></i>:</span></td><td>the 
compiled information of the instruction</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeTransformContext"/>xsltFreeTransformContext 
()</h3><pre class="programlisting">void       xsltFreeTransformContext        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>Free up the memory allocated by @ctxt</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT parser context</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetXIncludeDefault"/>xsltGetXIncludeDefault 
()</h3><pre class="programlisting">int    xsltGetXIncludeDefault          (void)<br/>
+</pre><p>Provides the default state for XInclude processing</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if there is no processing 1 
otherwise</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltIf"/>xsltIf ()</h3><pre class="programlisting">void 
  xsltIf                  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   xmlNodePtr inst, <br/> 
                                 <a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> castedComp)<br/>
+</pre><p>Processes the xsl:if instruction on the source node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>contextNode</tt></i>:</span></td><td>the current node in the source 
tree</td></tr><tr><td><span class="term"><i><tt>inst</tt></i>:</span></td><td>the xsl:if 
instruction</td></tr><tr><td><span class="term"><i><tt>castedComp</tt></i>:</span></td><td>compiled 
information of the instruction</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltLocalVariablePop"/>xsltLocalVariablePop ()</h3><pre 
class="programlisting">void       xsltLocalVariablePop            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       int limitNr, <br/>                                      int level)<br/>
+</pre><p>Pops all variable values at the given @depth from the stack.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the transformation context</td></tr><tr><td><span 
class="term"><i><tt>limitNr</tt></i>:</span></td><td>number of variables which should 
remain</td></tr><tr><td><span class="term"><i><tt>level</tt></i>:</span></td><td>the depth in the 
xsl:template's tree</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltLocalVariablePush"/>xsltLocalVariablePush 
()</h3><pre class="programlisting">int      xsltLocalVariablePush           (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> variable, 
<br/>                                      int level)<br/>
+</pre><p>Places the variable onto the local variable stack</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the transformation context</td></tr><tr><td><span 
class="term"><i><tt>variable</tt></i>:</span></td><td>variable to be pushed to the variable 
stack</td></tr><tr><td><span class="term"><i><tt>level</tt></i>:</span></td><td>new value for variable's 
level</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 for success, -1 for any 
error **NOTE:** This is an internal routine and should not be called by 
users!</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNewTransformContext"/>xsltNewTransformContext 
()</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a>     
xsltNewTransformContext (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, 
<br/>                                               xmlDocPtr doc)<br/>
+</pre><p>Create a new XSLT TransformContext</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>a parsed XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>doc</tt></i>:</span></td><td>the input document</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly allocated <a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> or NULL in case of 
error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNumber"/>xsltNumber ()</h3><pre 
class="programlisting">void   xsltNumber                      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp)<br/>
+</pre><p>Process the xslt number node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt number node</td></tr><tr><td><span 
class="term"><i><tt>castedComp</tt></i>:</span></td><td>precomputed 
information</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltProcessOneNode"/>xsltProcessOneNode ()</h3><pre 
class="programlisting">void   xsltProcessOneNode              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr contextNode, <br/>                                   <a 
href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> withParams)<br/>
+</pre><p>Process the source node.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>contextNode</tt></i>:</span></td><td>the "current node" in the source 
tree</td></tr><tr><td><span class="term"><i><tt>withParams</tt></i>:</span></td><td>extra parameters (e.g. 
xsl:with-param) passed to the template if any</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltProcessingInstruction"/>xsltProcessingInstruction 
()</h3><pre class="programlisting">void     xsltProcessingInstruction       (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp)<br/>
+</pre><p>Process the xslt processing-instruction node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt processing-instruction node</td></tr><tr><td><span 
class="term"><i><tt>castedComp</tt></i>:</span></td><td>precomputed 
information</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltProfileStylesheet"/>xsltProfileStylesheet 
()</h3><pre class="programlisting">xmlDocPtr        xsltProfileStylesheet   (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlDocPtr doc, <br/>                                    const char ** params, <br/>            
                         FILE * output)<br/>
+</pre><p>Apply the stylesheet to the document and dump the profiling to the given output.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>a parsed XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span 
class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated arry of parameters names/values 
tuples</td></tr><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>a FILE * for the profiling 
output</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the result document or 
NULL in case of error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRegisterAllElement"/>xsltRegisterAllElement 
()</h3><pre class="programlisting">void   xsltRegisterAllElement          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>Registers all default XSLT elements in this context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XPath context</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRunStylesheet"/>xsltRunStylesheet ()</h3><pre 
class="programlisting">int      xsltRunStylesheet               (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlDocPtr doc, <br/>                                    const char ** params, <br/>            
                         const char * output, <br/>                                      xmlSAXHandlerPtr 
SAX, <br/>                                     xmlOutputBufferPtr IObuf)<br/>
+</pre><p>Apply the stylesheet to the document and generate the output according to @output @SAX and @IObuf. 
It's an error to specify both @SAX and @IObuf. NOTE: This may lead to a non-wellformed output XML wise ! 
NOTE: This may also result in multiple files being generated NOTE: using IObuf, the result encoding used will 
be the one used for creating the output buffer, use the following macro to read it from the stylesheet 
XSLT_GET_IMPORT_PTR(encoding, style, encoding) NOTE: using SAX, any encoding specified in the stylesheet will 
be lost since the interface uses only UTF8</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>a parsed XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span 
class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated array of parameters names/values 
tuples</td></tr><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the URL/filename ot the 
generated resource if available</td></tr><tr><td><span class="term"><i><tt>SAX</tt></i>:</span></td><td>a SAX 
handler for progressive callback output (not implemented yet)</td></tr><tr><td><span 
class="term"><i><tt>IObuf</tt></i>:</span></td><td>an output buffer for progressive output (not implemented 
yet)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written 
to the main resource or -1 in case of error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRunStylesheetUser"/>xsltRunStylesheetUser 
()</h3><pre class="programlisting">int      xsltRunStylesheetUser           (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlDocPtr doc, <br/>                                    const char ** params, <br/>            
                         const char * output, <br/>                                      xmlSAXHandlerPtr 
SAX, <br/>                                     xmlOutputBufferPtr IObuf, <br/>                                
         FILE * profile, <br/>                                   <a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> userCtxt)<br/>
+</pre><p>Apply the stylesheet to the document and generate the output according to @output @SAX and @IObuf. 
It's an error to specify both @SAX and @IObuf. NOTE: This may lead to a non-wellformed output XML wise ! 
NOTE: This may also result in multiple files being generated NOTE: using IObuf, the result encoding used will 
be the one used for creating the output buffer, use the following macro to read it from the stylesheet 
XSLT_GET_IMPORT_PTR(encoding, style, encoding) NOTE: using SAX, any encoding specified in the stylesheet will 
be lost since the interface uses only UTF8</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>a parsed XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>doc</tt></i>:</span></td><td>a parsed XML document</td></tr><tr><td><span 
class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated array of parameters names/values 
tuples</td></tr><tr><td><span class="term"><i><tt>output</tt></i>:</span></td><td>the URL/filename ot the 
generated resource if available</td></tr><tr><td><span class="term"><i><tt>SAX</tt></i>:</span></td><td>a SAX 
handler for progressive callback output (not implemented yet)</td></tr><tr><td><span 
class="term"><i><tt>IObuf</tt></i>:</span></td><td>an output buffer for progressive output (not implemented 
yet)</td></tr><tr><td><span class="term"><i><tt>profile</tt></i>:</span></td><td>profile FILE * output or 
NULL</td></tr><tr><td><span class="term"><i><tt>userCtxt</tt></i>:</span></td><td>user provided transf
 orm context</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of by 
written to the main resource or -1 in case of error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSetXIncludeDefault"/>xsltSetXIncludeDefault 
()</h3><pre class="programlisting">void   xsltSetXIncludeDefault          (int xinclude)<br/>
+</pre><p>Set whether XInclude should be processed on document being loaded by default</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>xinclude</tt></i>:</span></td><td>whether to do XInclude 
processing</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSort"/>xsltSort ()</h3><pre 
class="programlisting">void       xsltSort                        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
comp)<br/>
+</pre><p>function attached to xsl:sort nodes, but this should not be called directly</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt sort node</td></tr><tr><td><span 
class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed 
information</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltText"/>xsltText ()</h3><pre 
class="programlisting">void       xsltText                        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
comp)<br/>
+</pre><p>Process the xslt text node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt text node</td></tr><tr><td><span 
class="term"><i><tt>comp</tt></i>:</span></td><td>precomputed 
information</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltValueOf"/>xsltValueOf ()</h3><pre 
class="programlisting">void xsltValueOf                     (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
castedComp)<br/>
+</pre><p>Process the xslt value-of node on the source node</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the node in the source tree.</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the xslt value-of node</td></tr><tr><td><span 
class="term"><i><tt>castedComp</tt></i>:</span></td><td>precomputed 
information</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-variables.html b/doc/devhelp/libxslt-variables.html
new file mode 100644
index 00000000..628ab55d
--- /dev/null
+++ b/doc/devhelp/libxslt-variables.html
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>variables: interface for the variable matching and lookup.</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-transform.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-xslt.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">variables</span>
+    </h2>
+    <p>variables - interface for the variable matching and lookup.</p>
+    <p>interface for the variable matching and lookup. </p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">#define <a 
href="#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a>;
+#define <a href="#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a>;
+#define <a href="#XSLT_RVT_GLOBAL">XSLT_RVT_GLOBAL</a>;
+#define <a href="#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a>;
+void   <a href="#xsltFreeGlobalVariables">xsltFreeGlobalVariables</a>          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+int    <a href="#xsltQuoteUserParams">xsltQuoteUserParams</a>          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const char ** params);
+xmlXPathObjectPtr      <a href="#xsltXPathVariableLookup">xsltXPathVariableLookup</a>  (void * ctxt, <br/>   
                                           const xmlChar * name, <br/>                                        
     const xmlChar * ns_uri);
+int    <a href="#xsltEvalUserParams">xsltEvalUserParams</a>            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const char ** params);
+<a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a>     <a 
href="#xsltParseStylesheetCallerParam">xsltParseStylesheetCallerParam</a>    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                                       xmlNodePtr inst);
+int    <a href="#xsltAddStackElemList">xsltAddStackElemList</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elems);
+void   <a href="#xsltParseGlobalVariable">xsltParseGlobalVariable</a>          (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr cur);
+int    <a href="#xsltQuoteOneUserParam">xsltQuoteOneUserParam</a>              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * name, <br/>                                     const xmlChar * value);
+void   <a href="#xsltParseGlobalParam">xsltParseGlobalParam</a>                (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr cur);
+void   <a href="#xsltParseStylesheetVariable">xsltParseStylesheetVariable</a>  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr inst);
+int    <a href="#xsltEvalGlobalVariables">xsltEvalGlobalVariables</a>          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+int    <a href="#xsltEvalOneUserParam">xsltEvalOneUserParam</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * name, <br/>                                     const xmlChar * value);
+void   <a href="#xsltParseStylesheetParam">xsltParseStylesheetParam</a>        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr cur);
+xmlXPathObjectPtr      <a href="#xsltVariableLookup">xsltVariableLookup</a>    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                               const xmlChar * name, <br/>                                             const 
xmlChar * ns_uri);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="XSLT_REGISTER_VARIABLE_LOOKUP">Macro 
</a>XSLT_REGISTER_VARIABLE_LOOKUP</h3><pre class="programlisting">#define <a 
href="#XSLT_REGISTER_VARIABLE_LOOKUP">XSLT_REGISTER_VARIABLE_LOOKUP</a>;
+</pre><p>Registering macro, not general purpose at all but used in different modules.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_RVT_FUNC_RESULT">Macro 
</a>XSLT_RVT_FUNC_RESULT</h3><pre class="programlisting">#define <a 
href="#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a>;
+</pre><p>RVT is part of results returned with func:result. The RVT won't be destroyed after exiting a 
template and will be reset to <a href="libxslt-variables.html#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a> or 
XSLT_RVT_VARIABLE in the template that receives the return value.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_RVT_GLOBAL">Macro </a>XSLT_RVT_GLOBAL</h3><pre 
class="programlisting">#define <a href="#XSLT_RVT_GLOBAL">XSLT_RVT_GLOBAL</a>;
+</pre><p>RVT is part of a global variable.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_RVT_LOCAL">Macro </a>XSLT_RVT_LOCAL</h3><pre 
class="programlisting">#define <a href="#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a>;
+</pre><p>RVT is destroyed after the current instructions ends.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltAddStackElemList"/>xsltAddStackElemList ()</h3><pre 
class="programlisting">int        xsltAddStackElemList            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elems)<br/>
+</pre><p>Push an element list onto the stack.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>xn XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>elems</tt></i>:</span></td><td>a stack element list</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of 
failure.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltEvalGlobalVariables"/>xsltEvalGlobalVariables 
()</h3><pre class="programlisting">int  xsltEvalGlobalVariables         (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>Evaluates all global variables and parameters of a stylesheet. For internal use only. This is 
called at start of a transformation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of 
error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltEvalOneUserParam"/>xsltEvalOneUserParam ()</h3><pre 
class="programlisting">int        xsltEvalOneUserParam            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * name, <br/>                                     const xmlChar * 
value)<br/>
+</pre><p>This is normally called from <a 
href="libxslt-variables.html#xsltEvalUserParams">xsltEvalUserParams</a> to process a single parameter from a 
list of parameters. The @value is evaluated as an XPath expression and the result is stored in the context's 
global variable/parameter hash table. To have a parameter treated literally (not as an XPath expression) use 
<a href="libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a> (or xsltQuoteOneUserParam). For 
more details see description of xsltProcessOneUserParamInternal.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>a null terminated string giving the name of the 
parameter</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>a null terminated string 
giving the XPath expression to be evaluated</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltEvalUserParams"/>xsltEvalUserParams ()</h3><pre 
class="programlisting">int    xsltEvalUserParams              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const char ** params)<br/>
+</pre><p>Evaluate the global variables of a stylesheet. This needs to be done on parsed stylesheets before 
starting to apply transformations. Each of the parameters is evaluated as an XPath expression and stored in 
the global variables/parameter hash table. If you want your parameter used literally, use 
xsltQuoteUserParams.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated array of parameters name/value 
tuples</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 
in case of error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeGlobalVariables"/>xsltFreeGlobalVariables 
()</h3><pre class="programlisting">void xsltFreeGlobalVariables         (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>Free up the data associated to the global variables its value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation 
context</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltParseGlobalParam"/>xsltParseGlobalParam ()</h3><pre 
class="programlisting">void       xsltParseGlobalParam            (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr cur)<br/>
+</pre><p>parse an XSLT transformation param declaration and record its value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td>the "param" element</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltParseGlobalVariable"/>xsltParseGlobalVariable 
()</h3><pre class="programlisting">void xsltParseGlobalVariable         (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr cur)<br/>
+</pre><p>Parses a global XSLT 'variable' declaration at compilation time and registers it</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td>the "variable" element</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltParseStylesheetCallerParam"/>xsltParseStylesheetCallerParam ()</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a>     xsltParseStylesheetCallerParam  
(<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>         
                                           xmlNodePtr inst)<br/>
+</pre><p>Processes an xsl:with-param instruction at transformation time. The value is computed, but not 
recorded. NOTE that this is also called with an *xsl:param* element from exsltFuncFunctionFunction().</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the xsl:with-param instruction 
element</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the new <a 
href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> or 
NULL</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetParam"/>xsltParseStylesheetParam 
()</h3><pre class="programlisting">void       xsltParseStylesheetParam        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr cur)<br/>
+</pre><p>Registers a local XSLT 'param' declaration at transformation time and evaluates its value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td>the XSLT 'param' 
element</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltParseStylesheetVariable"/>xsltParseStylesheetVariable ()</h3><pre class="programlisting">void 
xsltParseStylesheetVariable     (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr inst)<br/>
+</pre><p>Registers a local XSLT 'variable' instruction at transformation time and evaluates its value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the xsl:variable instruction 
element</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltQuoteOneUserParam"/>xsltQuoteOneUserParam 
()</h3><pre class="programlisting">int      xsltQuoteOneUserParam           (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const xmlChar * name, <br/>                                     const xmlChar * 
value)<br/>
+</pre><p>This is normally called from <a 
href="libxslt-variables.html#xsltQuoteUserParams">xsltQuoteUserParams</a> to process a single parameter from 
a list of parameters. The @value is stored in the context's global variable/parameter hash table.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>a null terminated string giving the name of the 
parameter</td></tr><tr><td><span class="term"><i><tt>value</tt></i>:</span></td><td>a null terminated string 
giving the parameter value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in 
case of success, -1 in case of error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltQuoteUserParams"/>xsltQuoteUserParams ()</h3><pre 
class="programlisting">int  xsltQuoteUserParams             (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       const char ** params)<br/>
+</pre><p>Similar to xsltEvalUserParams, but the values are treated literally and are * *not* evaluated as 
XPath expressions. This should be done on parsed stylesheets before starting to apply transformations.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>params</tt></i>:</span></td><td>a NULL terminated arry of parameters names/values 
tuples</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 
in case of error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltVariableLookup"/>xsltVariableLookup ()</h3><pre 
class="programlisting">xmlXPathObjectPtr      xsltVariableLookup      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                               const xmlChar * name, <br/>                                             const 
xmlChar * ns_uri)<br/>
+</pre><p>Search in the Variable array of the context for the given variable value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the variable name</td></tr><tr><td><span 
class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the variable namespace URI</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the value or NULL if not 
found</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltXPathVariableLookup"/>xsltXPathVariableLookup 
()</h3><pre class="programlisting">xmlXPathObjectPtr    xsltXPathVariableLookup (void * ctxt, <br/>           
                                   const xmlChar * name, <br/>                                             
const xmlChar * ns_uri)<br/>
+</pre><p>This is the entry point when a varibale is needed by the XPath interpretor.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a void * but the the XSLT transformation context 
actually</td></tr><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>the variable 
name</td></tr><tr><td><span class="term"><i><tt>ns_uri</tt></i>:</span></td><td>the variable namespace 
URI</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value or NULL if not 
found</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-xslt.html b/doc/devhelp/libxslt-xslt.html
new file mode 100644
index 00000000..aed8eb06
--- /dev/null
+++ b/doc/devhelp/libxslt-xslt.html
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>xslt: Interfaces, constants and types related to the XSLT engine</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-variables.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-xsltInternals.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">xslt</span>
+    </h2>
+    <p>xslt - Interfaces, constants and types related to the XSLT engine</p>
+    <p>Interfaces, constants and types related to the XSLT engine </p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">#define <a href="#XSLT_DEFAULT_VERSION">XSLT_DEFAULT_VERSION</a>;
+#define <a href="#XSLT_DEFAULT_VENDOR">XSLT_DEFAULT_VENDOR</a>;
+#define <a href="#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a>;
+#define <a href="#XSLT_DEFAULT_URL">XSLT_DEFAULT_URL</a>;
+#define <a href="#XSLT_NAMESPACE">XSLT_NAMESPACE</a>;
+void   <a href="#xsltCleanupGlobals">xsltCleanupGlobals</a>            (void);
+void   <a href="#xsltInit">xsltInit</a>                        (void);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="XSLT_DEFAULT_URL">Macro </a>XSLT_DEFAULT_URL</h3><pre 
class="programlisting">#define <a href="#XSLT_DEFAULT_URL">XSLT_DEFAULT_URL</a>;
+</pre><p>The XSLT "vendor" URL for this processor.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_DEFAULT_VENDOR">Macro 
</a>XSLT_DEFAULT_VENDOR</h3><pre class="programlisting">#define <a 
href="#XSLT_DEFAULT_VENDOR">XSLT_DEFAULT_VENDOR</a>;
+</pre><p>The XSLT "vendor" string for this processor.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_DEFAULT_VERSION">Macro 
</a>XSLT_DEFAULT_VERSION</h3><pre class="programlisting">#define <a 
href="#XSLT_DEFAULT_VERSION">XSLT_DEFAULT_VERSION</a>;
+</pre><p>The default version of XSLT supported.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_NAMESPACE">Macro </a>XSLT_NAMESPACE</h3><pre 
class="programlisting">#define <a href="#XSLT_NAMESPACE">XSLT_NAMESPACE</a>;
+</pre><p>The XSLT specification namespace.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_PARSE_OPTIONS">Macro 
</a>XSLT_PARSE_OPTIONS</h3><pre class="programlisting">#define <a 
href="#XSLT_PARSE_OPTIONS">XSLT_PARSE_OPTIONS</a>;
+</pre><p>The set of options to pass to an xmlReadxxx when loading files for XSLT consumption.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltEngineVersion">Variable 
</a>xsltEngineVersion</h3><pre class="programlisting">const char * xsltEngineVersion;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltLibxmlVersion">Variable 
</a>xsltLibxmlVersion</h3><pre class="programlisting">const int xsltLibxmlVersion;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltLibxsltVersion">Variable 
</a>xsltLibxsltVersion</h3><pre class="programlisting">const int xsltLibxsltVersion;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltMaxDepth">Variable </a>xsltMaxDepth</h3><pre 
class="programlisting">int xsltMaxDepth;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltMaxVars">Variable </a>xsltMaxVars</h3><pre 
class="programlisting">int xsltMaxVars;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCleanupGlobals"/>xsltCleanupGlobals ()</h3><pre 
class="programlisting">void   xsltCleanupGlobals              (void)<br/>
+</pre><p>Unregister all global variables set up by the XSLT library</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltInit"/>xsltInit ()</h3><pre 
class="programlisting">void       xsltInit                        (void)<br/>
+</pre><p>Initializes the processor (e.g. registers built-in extensions, etc.)</p>
+</div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-xsltInternals.html b/doc/devhelp/libxslt-xsltInternals.html
new file mode 100644
index 00000000..504198c5
--- /dev/null
+++ b/doc/devhelp/libxslt-xsltInternals.html
@@ -0,0 +1,1426 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>xsltInternals: internal data structures, constants and functions</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-xslt.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-xsltexports.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">xsltInternals</span>
+    </h2>
+    <p>xsltInternals - internal data structures, constants and functions</p>
+    <p>Internal data structures, constants and functions used by the XSLT engine. They are not part of the 
API or ABI, i.e. they can change without prior notice, use carefully. </p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">#define <a href="#CHECK_STOPPED0">CHECK_STOPPED0</a>;
+#define <a href="#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a>;
+#define <a href="#XSLT_ITEM_NSINSCOPE_FIELDS">XSLT_ITEM_NSINSCOPE_FIELDS</a>;
+#define <a href="#XSLT_IS_TEXT_NODE">XSLT_IS_TEXT_NODE</a>;
+#define <a href="#IS_XSLT_ELEM_FAST">IS_XSLT_ELEM_FAST</a>;
+#define <a href="#XSLT_REFACTORED_VARS">XSLT_REFACTORED_VARS</a>;
+#define <a href="#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a>(ctxt, nr);
+#define <a href="#XSLT_ITEM_COMPATIBILITY_FIELDS">XSLT_ITEM_COMPATIBILITY_FIELDS</a>;
+#define <a href="#IS_XSLT_ATTR_FAST">IS_XSLT_ATTR_FAST</a>;
+#define <a href="#XSLT_HAS_INTERNAL_NSMAP">XSLT_HAS_INTERNAL_NSMAP</a>;
+#define <a href="#XSLT_FAST_IF">XSLT_FAST_IF</a>;
+#define <a href="#XSLT_MARK_RES_TREE_FRAG">XSLT_MARK_RES_TREE_FRAG</a>;
+#define <a href="#XSLT_GET_INTERNAL_NSMAP">XSLT_GET_INTERNAL_NSMAP</a>;
+#define <a href="#XSLT_REFACTORED_KEYCOMP">XSLT_REFACTORED_KEYCOMP</a>;
+#define <a href="#XSLT_ITEM_NAVIGATION_FIELDS">XSLT_ITEM_NAVIGATION_FIELDS</a>;
+#define <a href="#XSLT_MAX_SORT">XSLT_MAX_SORT</a>;
+#define <a href="#XSLT_RUNTIME_EXTRA">XSLT_RUNTIME_EXTRA</a>(ctxt, nr);
+#define <a href="#XSLT_IS_RES_TREE_FRAG">XSLT_IS_RES_TREE_FRAG</a>;
+#define <a href="#XML_CAST_FPTR">XML_CAST_FPTR</a>(fptr);
+#define <a href="#XSLT_ITEM_COMMON_FIELDS">XSLT_ITEM_COMMON_FIELDS</a>;
+#define <a href="#CHECK_STOPPED">CHECK_STOPPED</a>;
+#define <a href="#XSLT_RUNTIME_EXTRA_FREE">XSLT_RUNTIME_EXTRA_FREE</a>(ctxt, nr);
+#define <a href="#XSLT_CCTXT">XSLT_CCTXT</a>;
+#define <a href="#CHECK_STOPPEDE">CHECK_STOPPEDE</a>;
+typedef struct _xsltElemPreComp <a href="#xsltElemPreComp">xsltElemPreComp</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemPI">xsltStyleItemPI</a> * <a 
href="#xsltStyleItemPIPtr">xsltStyleItemPIPtr</a>;
+typedef struct _xsltDocument <a href="#xsltDocument">xsltDocument</a>;
+typedef struct _xsltStyleItemDocument <a href="#xsltStyleItemDocument">xsltStyleItemDocument</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemMessage">xsltStyleItemMessage</a> * <a 
href="#xsltStyleItemMessagePtr">xsltStyleItemMessagePtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemNumber">xsltStyleItemNumber</a> * <a 
href="#xsltStyleItemNumberPtr">xsltStyleItemNumberPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a> * <a 
href="#xsltStyleBasicItemVariablePtr">xsltStyleBasicItemVariablePtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemForEach">xsltStyleItemForEach</a> * <a 
href="#xsltStyleItemForEachPtr">xsltStyleItemForEachPtr</a>;
+typedef enum <a href="#xsltTransformState">xsltTransformState</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltCompilerNodeInfo">xsltCompilerNodeInfo</a> * <a 
href="#xsltCompilerNodeInfoPtr">xsltCompilerNodeInfoPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemLRElementInfo">xsltStyleItemLRElementInfo</a> * <a 
href="#xsltStyleItemLRElementInfoPtr">xsltStyleItemLRElementInfoPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltRuntimeExtra">xsltRuntimeExtra</a> * <a 
href="#xsltRuntimeExtraPtr">xsltRuntimeExtraPtr</a>;
+typedef struct _xsltStyleItemLRElementInfo <a 
href="#xsltStyleItemLRElementInfo">xsltStyleItemLRElementInfo</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemWithParam">xsltStyleItemWithParam</a> * <a 
href="#xsltStyleItemWithParamPtr">xsltStyleItemWithParamPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemComment">xsltStyleItemComment</a> * <a 
href="#xsltStyleItemCommentPtr">xsltStyleItemCommentPtr</a>;
+typedef struct _xsltStyleItemMessage <a href="#xsltStyleItemMessage">xsltStyleItemMessage</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemParam">xsltStyleItemParam</a> * <a 
href="#xsltStyleItemParamPtr">xsltStyleItemParamPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a> 
<a href="#xsltStyleItemCopyOf">xsltStyleItemCopyOf</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemCallTemplate">xsltStyleItemCallTemplate</a> * <a 
href="#xsltStyleItemCallTemplatePtr">xsltStyleItemCallTemplatePtr</a>;
+typedef struct _xsltTransformCache <a href="#xsltTransformCache">xsltTransformCache</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemCopyOf">xsltStyleItemCopyOf</a> * <a 
href="#xsltStyleItemCopyOfPtr">xsltStyleItemCopyOfPtr</a>;
+typedef struct _xsltNsMap <a href="#xsltNsMap">xsltNsMap</a>;
+typedef struct _xsltEffectiveNs <a href="#xsltEffectiveNs">xsltEffectiveNs</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemApplyImports">xsltStyleItemApplyImports</a> * <a 
href="#xsltStyleItemApplyImportsPtr">xsltStyleItemApplyImportsPtr</a>;
+typedef struct _xsltStylesheet <a href="#xsltStylesheet">xsltStylesheet</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStylePreComp">xsltStylePreComp</a> * <a 
href="#xsltStylePreCompPtr">xsltStylePreCompPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltNsMap">xsltNsMap</a> * <a 
href="#xsltNsMapPtr">xsltNsMapPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltDecimalFormat">xsltDecimalFormat</a> * <a 
href="#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemInclude">xsltStyleItemInclude</a> * <a 
href="#xsltStyleItemIncludePtr">xsltStyleItemIncludePtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltKeyTable">xsltKeyTable</a> * <a 
href="#xsltKeyTablePtr">xsltKeyTablePtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemText">xsltStyleItemText</a> * <a 
href="#xsltStyleItemTextPtr">xsltStyleItemTextPtr</a>;
+typedef struct _xsltCompilerNodeInfo <a href="#xsltCompilerNodeInfo">xsltCompilerNodeInfo</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStylesheet">xsltStylesheet</a> * <a 
href="#xsltStylesheetPtr">xsltStylesheetPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltTemplate">xsltTemplate</a> * <a 
href="#xsltTemplatePtr">xsltTemplatePtr</a>;
+typedef struct _xsltStyleBasicEmptyItem <a href="#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a>;
+typedef struct _xsltStackElem <a href="#xsltStackElem">xsltStackElem</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemIf">xsltStyleItemIf</a> * <a 
href="#xsltStyleItemIfPtr">xsltStyleItemIfPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemWhen">xsltStyleItemWhen</a> * <a 
href="#xsltStyleItemWhenPtr">xsltStyleItemWhenPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemElement">xsltStyleItemElement</a> * <a 
href="#xsltStyleItemElementPtr">xsltStyleItemElementPtr</a>;
+typedef struct _xsltStyleItemOtherwise <a href="#xsltStyleItemOtherwise">xsltStyleItemOtherwise</a>;
+typedef struct _xsltStyleItemCopy <a href="#xsltStyleItemCopy">xsltStyleItemCopy</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltKeyDef">xsltKeyDef</a> * <a 
href="#xsltKeyDefPtr">xsltKeyDefPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltVarInfo">xsltVarInfo</a> * <a 
href="#xsltVarInfoPtr">xsltVarInfoPtr</a>;
+typedef struct _xsltStyleItemSort <a href="#xsltStyleItemSort">xsltStyleItemSort</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltTransformCache">xsltTransformCache</a> * <a 
href="#xsltTransformCachePtr">xsltTransformCachePtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemExtElement">xsltStyleItemExtElement</a> * <a 
href="#xsltStyleItemExtElementPtr">xsltStyleItemExtElementPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltNsAlias">xsltNsAlias</a> * <a 
href="#xsltNsAliasPtr">xsltNsAliasPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemValueOf">xsltStyleItemValueOf</a> * <a 
href="#xsltStyleItemValueOfPtr">xsltStyleItemValueOfPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltDocument">xsltDocument</a> * <a 
href="#xsltDocumentPtr">xsltDocumentPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltPointerList">xsltPointerList</a> * <a 
href="#xsltPointerListPtr">xsltPointerListPtr</a>;
+typedef struct _xsltTemplate <a href="#xsltTemplate">xsltTemplate</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a> * 
<a href="#xsltStyleBasicExpressionItemPtr">xsltStyleBasicExpressionItemPtr</a>;
+typedef struct _xsltRuntimeExtra <a href="#xsltRuntimeExtra">xsltRuntimeExtra</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemAttribute">xsltStyleItemAttribute</a> * <a 
href="#xsltStyleItemAttributePtr">xsltStyleItemAttributePtr</a>;
+typedef struct _xsltTransformContext <a href="#xsltTransformContext">xsltTransformContext</a>;
+typedef struct _xsltPointerList <a href="#xsltPointerList">xsltPointerList</a>;
+typedef struct _xsltStyleItemUknown <a href="#xsltStyleItemUknown">xsltStyleItemUknown</a>;
+typedef enum <a href="#xsltErrorSeverityType">xsltErrorSeverityType</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltElemPreComp">xsltElemPreComp</a> * <a 
href="#xsltElemPreCompPtr">xsltElemPreCompPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> <a 
href="#xsltStyleItemFallback">xsltStyleItemFallback</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemOtherwise">xsltStyleItemOtherwise</a> * <a 
href="#xsltStyleItemOtherwisePtr">xsltStyleItemOtherwisePtr</a>;
+typedef struct _xsltStyleItemWhen <a href="#xsltStyleItemWhen">xsltStyleItemWhen</a>;
+typedef struct _xsltStyleItemIf <a href="#xsltStyleItemIf">xsltStyleItemIf</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltTransformContext">xsltTransformContext</a> * <a 
href="#xsltTransformContextPtr">xsltTransformContextPtr</a>;
+typedef struct _xsltNsList <a href="#xsltNsList">xsltNsList</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a> 
<a href="#xsltStyleItemForEach">xsltStyleItemForEach</a>;
+typedef struct _xsltStyleItemExtElement <a href="#xsltStyleItemExtElement">xsltStyleItemExtElement</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltNsListContainer">xsltNsListContainer</a> * <a 
href="#xsltNsListContainerPtr">xsltNsListContainerPtr</a>;
+typedef struct _xsltStyleBasicExpressionItem <a 
href="#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a> <a 
href="#xsltStyleItemWithParam">xsltStyleItemWithParam</a>;
+typedef struct _xsltStyleItemElement <a href="#xsltStyleItemElement">xsltStyleItemElement</a>;
+typedef struct _xsltCompilerCtxt <a href="#xsltCompilerCtxt">xsltCompilerCtxt</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> <a 
href="#xsltStyleItemComment">xsltStyleItemComment</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltEffectiveNs">xsltEffectiveNs</a> * <a 
href="#xsltEffectiveNsPtr">xsltEffectiveNsPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a> <a 
href="#xsltStyleItemVariable">xsltStyleItemVariable</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemVariable">xsltStyleItemVariable</a> * <a 
href="#xsltStyleItemVariablePtr">xsltStyleItemVariablePtr</a>;
+typedef struct _xsltStyleItemParam <a href="#xsltStyleItemParam">xsltStyleItemParam</a>;
+typedef struct _xsltNsListContainer <a href="#xsltNsListContainer">xsltNsListContainer</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStackElem">xsltStackElem</a> * <a 
href="#xsltStackElemPtr">xsltStackElemPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> * <a 
href="#xsltStyleBasicEmptyItemPtr">xsltStyleBasicEmptyItemPtr</a>;
+typedef struct _xsltStyleItemText <a href="#xsltStyleItemText">xsltStyleItemText</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemCopy">xsltStyleItemCopy</a> * <a 
href="#xsltStyleItemCopyPtr">xsltStyleItemCopyPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemSort">xsltStyleItemSort</a> * <a 
href="#xsltStyleItemSortPtr">xsltStyleItemSortPtr</a>;
+typedef struct _xsltPrincipalStylesheetData <a 
href="#xsltPrincipalStylesheetData">xsltPrincipalStylesheetData</a>;
+typedef enum <a href="#xsltOutputType">xsltOutputType</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltPrincipalStylesheetData">xsltPrincipalStylesheetData</a> * 
<a href="#xsltPrincipalStylesheetDataPtr">xsltPrincipalStylesheetDataPtr</a>;
+typedef struct _xsltStyleBasicItemVariable <a 
href="#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemChoose">xsltStyleItemChoose</a> * <a 
href="#xsltStyleItemChoosePtr">xsltStyleItemChoosePtr</a>;
+typedef struct _xsltNsAlias <a href="#xsltNsAlias">xsltNsAlias</a>;
+typedef struct _xsltVarInfo <a href="#xsltVarInfo">xsltVarInfo</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> <a 
href="#xsltStyleItemApplyImports">xsltStyleItemApplyImports</a>;
+typedef struct _xsltKeyTable <a href="#xsltKeyTable">xsltKeyTable</a>;
+typedef struct _xsltStylePreComp <a href="#xsltStylePreComp">xsltStylePreComp</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltNsList">xsltNsList</a> * <a 
href="#xsltNsListPtr">xsltNsListPtr</a>;
+typedef struct _xsltKeyDef <a href="#xsltKeyDef">xsltKeyDef</a>;
+typedef struct _xsltDecimalFormat <a href="#xsltDecimalFormat">xsltDecimalFormat</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemApplyTemplates">xsltStyleItemApplyTemplates</a> * 
<a href="#xsltStyleItemApplyTemplatesPtr">xsltStyleItemApplyTemplatesPtr</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemUknown">xsltStyleItemUknown</a> * <a 
href="#xsltStyleItemUknownPtr">xsltStyleItemUknownPtr</a>;
+typedef struct _xsltStyleItemValueOf <a href="#xsltStyleItemValueOf">xsltStyleItemValueOf</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltCompilerCtxt">xsltCompilerCtxt</a> * <a 
href="#xsltCompilerCtxtPtr">xsltCompilerCtxtPtr</a>;
+typedef struct _xsltStyleItemAttribute <a href="#xsltStyleItemAttribute">xsltStyleItemAttribute</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemDocument">xsltStyleItemDocument</a> * <a 
href="#xsltStyleItemDocumentPtr">xsltStyleItemDocumentPtr</a>;
+typedef struct _xsltStyleItemCallTemplate <a href="#xsltStyleItemCallTemplate">xsltStyleItemCallTemplate</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleItemFallback">xsltStyleItemFallback</a> * <a 
href="#xsltStyleItemFallbackPtr">xsltStyleItemFallbackPtr</a>;
+typedef struct _xsltStyleItemNumber <a href="#xsltStyleItemNumber">xsltStyleItemNumber</a>;
+typedef struct _xsltStyleItemApplyTemplates <a 
href="#xsltStyleItemApplyTemplates">xsltStyleItemApplyTemplates</a>;
+typedef <a href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> <a 
href="#xsltStyleItemChoose">xsltStyleItemChoose</a>;
+typedef enum <a href="#xsltStyleType">xsltStyleType</a>;
+typedef struct _xsltStyleItemPI <a href="#xsltStyleItemPI">xsltStyleItemPI</a>;
+typedef struct _xsltStyleItemInclude <a href="#xsltStyleItemInclude">xsltStyleItemInclude</a>;
+typedef void <a href="#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a>      (<a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+int    <a href="#xsltRegisterPersistRVT">xsltRegisterPersistRVT</a>            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlDocPtr RVT);
+<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>   <a 
href="#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a>    (xmlDocPtr doc, <br/>            
                                        <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> parentStyle);
+void   <a href="#xsltFreeStackElemList">xsltFreeStackElemList</a>              (<a 
href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elem);
+int    <a href="#xsltAllocateExtra">xsltAllocateExtra</a>              (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+int    <a href="#xsltFlagRVTs">xsltFlagRVTs</a>                        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlXPathObjectPtr obj, <br/>                                    void * val);
+void   <a href="#xsltParseSequenceConstructor">xsltParseSequenceConstructor</a>        (<a 
href="libxslt-xsltInternals.html#xsltCompilerCtxtPtr">xsltCompilerCtxtPtr</a> cctxt, <br/>                    
               xmlNodePtr cur);
+int    <a href="#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a>            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlDocPtr RVT);
+int    <a href="#xsltInitAllDocKeys">xsltInitAllDocKeys</a>            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+<a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a>     <a 
href="#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a>    (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                               xmlChar * name);
+int    <a href="#xsltExtensionInstructionResultFinalize">xsltExtensionInstructionResultFinalize</a>    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+int    <a href="#xsltParseStylesheetUser">xsltParseStylesheetUser</a>          (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlDocPtr doc);
+void   <a href="#xsltPointerListFree">xsltPointerListFree</a>          (<a 
href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a> list);
+int    <a href="#xsltIsBlank">xsltIsBlank</a>                  (xmlChar * str);
+xmlXPathError  <a href="#xsltFormatNumberConversion">xsltFormatNumberConversion</a>    (<a 
href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> self, <br/>                   
                       xmlChar * format, <br/>                                                 double number, 
<br/>                                            xmlChar ** result);
+int    <a href="#xsltPointerListAddSize">xsltPointerListAddSize</a>            (<a 
href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a> list, <br/>                       
               void * item, <br/>                                      int initialSize);
+typedef void <a href="#xsltSortFunc">xsltSortFunc</a>                  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr * sorts, <br/>                                       int nbsorts);
+void   <a href="#xsltUninit">xsltUninit</a>                    (void);
+void   <a href="#xsltFreeStylesheet">xsltFreeStylesheet</a>            (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+xmlDocPtr      <a href="#xsltCreateRVT">xsltCreateRVT</a>              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>   <a 
href="#xsltParseStylesheetFile">xsltParseStylesheetFile</a>  (const xmlChar * filename);
+void   <a href="#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a>      (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr cur);
+int    <a href="#xsltParseAnyXSLTElem">xsltParseAnyXSLTElem</a>                (<a 
href="libxslt-xsltInternals.html#xsltCompilerCtxtPtr">xsltCompilerCtxtPtr</a> cctxt, <br/>                    
               xmlNodePtr elem);
+void   <a href="#xsltCompileAttr">xsltCompileAttr</a>                  (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlAttrPtr attr);
+int    <a href="#xsltRestoreDocumentNamespaces">xsltRestoreDocumentNamespaces</a>      (<a 
href="libxslt-xsltInternals.html#xsltNsMapPtr">xsltNsMapPtr</a> ns, <br/>                                    
xmlDocPtr doc);
+void   <a href="#xsltNumberFormat">xsltNumberFormat</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-numbersInternals.html#xsltNumberDataPtr">xsltNumberDataPtr</a> data, 
<br/>                                     xmlNodePtr node);
+void   <a href="#xsltReleaseRVT">xsltReleaseRVT</a>                    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlDocPtr RVT);
+void   <a href="#xsltFreeRVTs">xsltFreeRVTs</a>                        (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+int    <a href="#xsltExtensionInstructionResultRegister">xsltExtensionInstructionResultRegister</a>    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                               xmlXPathObjectPtr obj);
+<a href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a> <a 
href="#xsltPointerListCreate">xsltPointerListCreate</a>      (int initialSize);
+void   <a href="#xsltFreeAVTList">xsltFreeAVTList</a>                  (void * avt);
+int    <a href="#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a>              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+void   <a href="#xsltParseTemplateContent">xsltParseTemplateContent</a>        (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr templ);
+<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>   <a 
href="#xsltNewStylesheet">xsltNewStylesheet</a>      (void);
+<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>   <a 
href="#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a>    (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> ret, <br/>                          
                               xmlDocPtr doc);
+<a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a>     <a 
href="#xsltDecimalFormatGetByQName">xsltDecimalFormatGetByQName</a>  (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                               const xmlChar * nsUri, <br/>                                                   
 const xmlChar * name);
+typedef void <a href="#xsltTransformFunction">xsltTransformFunction</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
+int    <a href="#xsltRegisterLocalRVT">xsltRegisterLocalRVT</a>                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlDocPtr RVT);
+<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>   <a 
href="#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a>    (xmlDocPtr doc);
+int    <a href="#xsltInitCtxtKey">xsltInitCtxtKey</a>                  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> idoc, <br/>   
                                 <a href="libxslt-xsltInternals.html#xsltKeyDefPtr">xsltKeyDefPtr</a> keyDef);
+xmlChar *      <a href="#xsltEvalAVT">xsltEvalAVT</a>          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       void * avt, <br/>                                       xmlNodePtr node);
+void   <a href="#xsltPointerListClear">xsltPointerListClear</a>                (<a 
href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a> list);
+<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>   <a 
href="#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a>        (xmlDocPtr doc);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="CHECK_STOPPED">Macro </a>CHECK_STOPPED</h3><pre 
class="programlisting">#define <a href="#CHECK_STOPPED">CHECK_STOPPED</a>;
+</pre><p>Macro to check if the XSLT processing should be stopped. Will return from the function.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="CHECK_STOPPED0">Macro </a>CHECK_STOPPED0</h3><pre 
class="programlisting">#define <a href="#CHECK_STOPPED0">CHECK_STOPPED0</a>;
+</pre><p>Macro to check if the XSLT processing should be stopped. Will return from the function with a 0 
value.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="CHECK_STOPPEDE">Macro </a>CHECK_STOPPEDE</h3><pre 
class="programlisting">#define <a href="#CHECK_STOPPEDE">CHECK_STOPPEDE</a>;
+</pre><p>Macro to check if the XSLT processing should be stopped. Will goto the error: label.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="IS_XSLT_ATTR_FAST">Macro </a>IS_XSLT_ATTR_FAST</h3><pre 
class="programlisting">#define <a href="#IS_XSLT_ATTR_FAST">IS_XSLT_ATTR_FAST</a>;
+</pre><p>quick check for xslt namespace attribute</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="IS_XSLT_ELEM_FAST">Macro </a>IS_XSLT_ELEM_FAST</h3><pre 
class="programlisting">#define <a href="#IS_XSLT_ELEM_FAST">IS_XSLT_ELEM_FAST</a>;
+</pre><p>quick check whether this is an xslt element</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XML_CAST_FPTR">Macro </a>XML_CAST_FPTR</h3><pre 
class="programlisting">#define <a href="#XML_CAST_FPTR">XML_CAST_FPTR</a>(fptr);
+</pre><p>Macro to do a casting from an object pointer to a function pointer without encountering a warning 
from gcc #define XML_CAST_FPTR(fptr) (*(void **)(&amp;fptr)) This macro violated ISO C aliasing rules (gcc4 
on s390 broke) so it is disabled now</p><div class="variablelist"><table border="0"><col 
align="left"/><tbody><tr><td><span class="term"><i><tt>fptr</tt></i>:</span></td><td>pointer to a 
function</td></tr></tbody></table></div>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_CCTXT">Macro </a>XSLT_CCTXT</h3><pre 
class="programlisting">#define <a href="#XSLT_CCTXT">XSLT_CCTXT</a>;
+</pre><p>get pointer to compiler context</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_FAST_IF">Macro </a>XSLT_FAST_IF</h3><pre 
class="programlisting">#define <a href="#XSLT_FAST_IF">XSLT_FAST_IF</a>;
+</pre><p>Internal define to enable usage of xmlXPathCompiledEvalToBoolean() for XSLT "tests"; e.g. in 
&lt;xsl:if test="/foo/bar"&gt;</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_GET_INTERNAL_NSMAP">Macro 
</a>XSLT_GET_INTERNAL_NSMAP</h3><pre class="programlisting">#define <a 
href="#XSLT_GET_INTERNAL_NSMAP">XSLT_GET_INTERNAL_NSMAP</a>;
+</pre><p>get pointer to namespace map</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_HAS_INTERNAL_NSMAP">Macro 
</a>XSLT_HAS_INTERNAL_NSMAP</h3><pre class="programlisting">#define <a 
href="#XSLT_HAS_INTERNAL_NSMAP">XSLT_HAS_INTERNAL_NSMAP</a>;
+</pre><p>check for namespace mapping</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_IS_RES_TREE_FRAG">Macro 
</a>XSLT_IS_RES_TREE_FRAG</h3><pre class="programlisting">#define <a 
href="#XSLT_IS_RES_TREE_FRAG">XSLT_IS_RES_TREE_FRAG</a>;
+</pre><p>internal macro to test tree fragments</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_IS_TEXT_NODE">Macro </a>XSLT_IS_TEXT_NODE</h3><pre 
class="programlisting">#define <a href="#XSLT_IS_TEXT_NODE">XSLT_IS_TEXT_NODE</a>;
+</pre><p>check if the argument is a text node</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_ITEM_COMMON_FIELDS">Macro 
</a>XSLT_ITEM_COMMON_FIELDS</h3><pre class="programlisting">#define <a 
href="#XSLT_ITEM_COMMON_FIELDS">XSLT_ITEM_COMMON_FIELDS</a>;
+</pre><p>Common fields used for all items.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_ITEM_COMPATIBILITY_FIELDS">Macro 
</a>XSLT_ITEM_COMPATIBILITY_FIELDS</h3><pre class="programlisting">#define <a 
href="#XSLT_ITEM_COMPATIBILITY_FIELDS">XSLT_ITEM_COMPATIBILITY_FIELDS</a>;
+</pre><p>Fields for API compatibility to the structure _xsltElemPreComp which is used for extension 
functions. Note that @next is used for storage; it does not reflect a next sibling in the tree. TODO: 
Evaluate if we really need such a compatibility.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_ITEM_NAVIGATION_FIELDS">Macro 
</a>XSLT_ITEM_NAVIGATION_FIELDS</h3><pre class="programlisting">#define <a 
href="#XSLT_ITEM_NAVIGATION_FIELDS">XSLT_ITEM_NAVIGATION_FIELDS</a>;
+</pre><p>Currently empty. TODO: It is intended to hold navigational fields in the future.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_ITEM_NSINSCOPE_FIELDS">Macro 
</a>XSLT_ITEM_NSINSCOPE_FIELDS</h3><pre class="programlisting">#define <a 
href="#XSLT_ITEM_NSINSCOPE_FIELDS">XSLT_ITEM_NSINSCOPE_FIELDS</a>;
+</pre><p>The in-scope namespaces.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_MARK_RES_TREE_FRAG">Macro 
</a>XSLT_MARK_RES_TREE_FRAG</h3><pre class="programlisting">#define <a 
href="#XSLT_MARK_RES_TREE_FRAG">XSLT_MARK_RES_TREE_FRAG</a>;
+</pre><p>internal macro to set up tree fragments</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_MAX_SORT">Macro </a>XSLT_MAX_SORT</h3><pre 
class="programlisting">#define <a href="#XSLT_MAX_SORT">XSLT_MAX_SORT</a>;
+</pre><p>Max number of specified xsl:sort on an element.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_PAT_NO_PRIORITY">Macro 
</a>XSLT_PAT_NO_PRIORITY</h3><pre class="programlisting">#define <a 
href="#XSLT_PAT_NO_PRIORITY">XSLT_PAT_NO_PRIORITY</a>;
+</pre><p>Specific value for pattern without priority expressed.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_REFACTORED_KEYCOMP">Macro 
</a>XSLT_REFACTORED_KEYCOMP</h3><pre class="programlisting">#define <a 
href="#XSLT_REFACTORED_KEYCOMP">XSLT_REFACTORED_KEYCOMP</a>;
+</pre><p>Internal define to enable on-demand xsl:key computation. That's the only mode now but the define is 
kept for compatibility</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_REFACTORED_VARS">Macro 
</a>XSLT_REFACTORED_VARS</h3><pre class="programlisting">#define <a 
href="#XSLT_REFACTORED_VARS">XSLT_REFACTORED_VARS</a>;
+</pre><p>Internal define to enable the refactored variable part of libxslt</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_RUNTIME_EXTRA">Macro 
</a>XSLT_RUNTIME_EXTRA</h3><pre class="programlisting">#define <a 
href="#XSLT_RUNTIME_EXTRA">XSLT_RUNTIME_EXTRA</a>(ctxt, nr);
+</pre><p>Macro used to define extra information stored in the context</p><div class="variablelist"><table 
border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the 
transformation context</td></tr><tr><td><span class="term"><i><tt>nr</tt></i>:</span></td><td>the 
index</td></tr></tbody></table></div>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_RUNTIME_EXTRA_FREE">Macro 
</a>XSLT_RUNTIME_EXTRA_FREE</h3><pre class="programlisting">#define <a 
href="#XSLT_RUNTIME_EXTRA_FREE">XSLT_RUNTIME_EXTRA_FREE</a>(ctxt, nr);
+</pre><p>Macro used to free extra information stored in the context</p><div class="variablelist"><table 
border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the 
transformation context</td></tr><tr><td><span class="term"><i><tt>nr</tt></i>:</span></td><td>the 
index</td></tr></tbody></table></div>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_RUNTIME_EXTRA_LST">Macro 
</a>XSLT_RUNTIME_EXTRA_LST</h3><pre class="programlisting">#define <a 
href="#XSLT_RUNTIME_EXTRA_LST">XSLT_RUNTIME_EXTRA_LST</a>(ctxt, nr);
+</pre><p>Macro used to access extra information stored in the context</p><div class="variablelist"><table 
border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i>:</span></td><td>the 
transformation context</td></tr><tr><td><span class="term"><i><tt>nr</tt></i>:</span></td><td>the 
index</td></tr></tbody></table></div>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCompilerCtxt">Structure 
</a>xsltCompilerCtxt</h3><pre class="programlisting">struct _xsltCompilerCtxt {
+    void *     errorCtxt       : * used for error/warning reports; e.g. <a 
href="libxslt-xsltInternals.html#XSLT_ERROR_SEVERITY_WARNING">XSLT_ERROR_SEVERITY_WARNING</a>
+    <a href="libxslt-xsltInternals.html#xsltErrorSeverityType">xsltErrorSeverityType</a>       errSeverity
+    int        warnings        : TODO: number of warnings found at compilation
+    int        errors  : TODO: number of errors found at compilation
+    xmlDictPtr dict
+    <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>       style
+    int        simplified      : whether this is a simplified stylesheet TODO: structured/unstructured
+    int        depth   : Current depth of processing
+    <a href="libxslt-xsltInternals.html#xsltCompilerNodeInfoPtr">xsltCompilerNodeInfoPtr</a>   inode
+    <a href="libxslt-xsltInternals.html#xsltCompilerNodeInfoPtr">xsltCompilerNodeInfoPtr</a>   inodeList
+    <a href="libxslt-xsltInternals.html#xsltCompilerNodeInfoPtr">xsltCompilerNodeInfoPtr</a>   inodeLast
+    <a href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a>     tmpList : * The XSLT 
version as specified by the stylesheet's root element. *
+    int        isInclude
+    int        hasForwardsCompat       : whether forwards-compatible mode was used in a parsing episode
+    int        maxNodeInfos    : TEMP TODO: just for the interest
+    int        maxLREs : * In order to keep the old behaviour, applying strict rules of * the s
+    int        strict
+    <a href="libxslt-xsltInternals.html#xsltPrincipalStylesheetDataPtr">xsltPrincipalStylesheetDataPtr</a>   
  psData
+    <a href="libxslt-xsltInternals.html#xsltStyleItemUknownPtr">xsltStyleItemUknownPtr</a>     unknownItem
+    int        hasNsAliases    : Indicator if there was an xsl:namespace-alias.
+    <a href="libxslt-xsltInternals.html#xsltNsAliasPtr">xsltNsAliasPtr</a>     nsAliases
+    <a href="libxslt-xsltInternals.html#xsltVarInfoPtr">xsltVarInfoPtr</a>     ivars   : Storage of local 
in-scope variables/params.
+    <a href="libxslt-xsltInternals.html#xsltVarInfoPtr">xsltVarInfoPtr</a>     ivar    : topmost local 
variable/param.
+} xsltCompilerCtxt;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCompilerCtxtPtr">Typedef 
</a>xsltCompilerCtxtPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltCompilerCtxt">xsltCompilerCtxt</a> * xsltCompilerCtxtPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCompilerNodeInfo">Structure 
</a>xsltCompilerNodeInfo</h3><pre class="programlisting">struct _xsltCompilerNodeInfo {
+    <a href="libxslt-xsltInternals.html#xsltCompilerNodeInfoPtr">xsltCompilerNodeInfoPtr</a>   next
+    <a href="libxslt-xsltInternals.html#xsltCompilerNodeInfoPtr">xsltCompilerNodeInfoPtr</a>   prev
+    xmlNodePtr node
+    int        depth
+    <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>   templ   : The owning template
+    int        category        : XSLT element, LR-element or extension element
+    <a href="libxslt-xsltInternals.html#xsltStyleType">xsltStyleType</a>       type
+    <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>     item    : The 
compiled information The current in-scope namespaces
+    <a href="libxslt-xsltInternals.html#xsltNsListContainerPtr">xsltNsListContainerPtr</a>     inScopeNs     
  : The current excluded result namespaces
+    <a href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a>     exclResultNs    : The 
current extension instruction namespaces
+    <a href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a>     extElemNs       : The 
current info for literal result elements.
+    <a href="libxslt-xsltInternals.html#xsltStyleItemLRElementInfoPtr">xsltStyleItemLRElementInfoPtr</a>     
  litResElemInfo  : * Set to 1 if in-scope namespaces changed, * or excluded result names
+    int        nsChanged
+    int        preserveWhitespace
+    int        stripWhitespace
+    int        isRoot  : whether this is the stylesheet's root node
+    int        forwardsCompat  : whether forwards-compatible mode is enabled whether the content of an
+    int        extContentHandled       : the type of the current child
+    <a href="libxslt-xsltInternals.html#xsltStyleType">xsltStyleType</a>       curChildType
+} xsltCompilerNodeInfo;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCompilerNodeInfoPtr">Typedef 
</a>xsltCompilerNodeInfoPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltCompilerNodeInfo">xsltCompilerNodeInfo</a> * xsltCompilerNodeInfoPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDecimalFormat">Structure 
</a>xsltDecimalFormat</h3><pre class="programlisting">struct _xsltDecimalFormat {
+    struct _xsltDecimalFormat *        next    : chained list
+    xmlChar *  name    : Used for interpretation of pattern
+    xmlChar *  digit
+    xmlChar *  patternSeparator        : May appear in result
+    xmlChar *  minusSign
+    xmlChar *  infinity
+    xmlChar *  noNumber        : Not-a-number Used for interpretation of pattern and may appear in res
+    xmlChar *  decimalPoint
+    xmlChar *  grouping
+    xmlChar *  percent
+    xmlChar *  permille
+    xmlChar *  zeroDigit
+    const xmlChar *    nsUri
+} xsltDecimalFormat;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDecimalFormatPtr">Typedef 
</a>xsltDecimalFormatPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltDecimalFormat">xsltDecimalFormat</a> * xsltDecimalFormatPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDocument">Structure </a>xsltDocument</h3><pre 
class="programlisting">struct _xsltDocument {
+    struct _xsltDocument *     next    : documents are kept in a chained list
+    int        main    : is this the main document
+    xmlDocPtr  doc     : the parsed document
+    void *     keys    : key tables storage
+    struct _xsltDocument *     includes        : subsidiary includes
+    int        preproc : pre-processing already done
+    int        nbKeysComputed
+} xsltDocument;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDocumentPtr">Typedef </a>xsltDocumentPtr</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltDocument">xsltDocument</a> * xsltDocumentPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltEffectiveNs">Structure </a>xsltEffectiveNs</h3><pre 
class="programlisting">struct _xsltEffectiveNs {
+    <a href="libxslt-xsltInternals.html#xsltEffectiveNsPtr">xsltEffectiveNsPtr</a>     nextInStore     : 
storage next
+    <a href="libxslt-xsltInternals.html#xsltEffectiveNsPtr">xsltEffectiveNsPtr</a>     next    : next item 
in the list
+    const xmlChar *    prefix
+    const xmlChar *    nsName  : * Indicates if eclared on the literal result element; dunno if really
+    int        holdByElem
+} xsltEffectiveNs;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltEffectiveNsPtr">Typedef 
</a>xsltEffectiveNsPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltEffectiveNs">xsltEffectiveNs</a> * xsltEffectiveNsPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltElemPreComp">Structure </a>xsltElemPreComp</h3><pre 
class="programlisting">struct _xsltElemPreComp {
+    <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>     next    : next item 
in the global chained list held by xsltStylesheet.
+    <a href="libxslt-xsltInternals.html#xsltStyleType">xsltStyleType</a>       type    : type of the element
+    <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>       func    : 
handling function
+    xmlNodePtr inst    : the node in the stylesheet's tree corresponding to this item end of c
+    <a href="libxslt-xsltInternals.html#xsltElemPreCompDeallocator">xsltElemPreCompDeallocator</a>     free  
  : the deallocator
+} xsltElemPreComp;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltElemPreCompPtr">Typedef 
</a>xsltElemPreCompPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltElemPreComp">xsltElemPreComp</a> * xsltElemPreCompPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltErrorSeverityType">Enum 
</a>xsltErrorSeverityType</h3><pre class="programlisting">enum <a 
href="#xsltErrorSeverityType">xsltErrorSeverityType</a> {
+    <a name="XSLT_ERROR_SEVERITY_ERROR">XSLT_ERROR_SEVERITY_ERROR</a> = 0
+    <a name="XSLT_ERROR_SEVERITY_WARNING">XSLT_ERROR_SEVERITY_WARNING</a> = 1
+};
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltKeyDef">Structure </a>xsltKeyDef</h3><pre 
class="programlisting">struct _xsltKeyDef {
+    struct _xsltKeyDef *       next
+    xmlNodePtr inst
+    xmlChar *  name
+    xmlChar *  nameURI
+    xmlChar *  match
+    xmlChar *  use
+    xmlXPathCompExprPtr        comp
+    xmlXPathCompExprPtr        usecomp
+    xmlNsPtr * nsList  : the namespaces in scope
+    int        nsNr    : the number of namespaces in scope
+} xsltKeyDef;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltKeyDefPtr">Typedef </a>xsltKeyDefPtr</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltKeyDef">xsltKeyDef</a> * xsltKeyDefPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltKeyTable">Structure </a>xsltKeyTable</h3><pre 
class="programlisting">struct _xsltKeyTable {
+    struct _xsltKeyTable *     next
+    xmlChar *  name
+    xmlChar *  nameURI
+    xmlHashTablePtr    keys
+} xsltKeyTable;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltKeyTablePtr">Typedef </a>xsltKeyTablePtr</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltKeyTable">xsltKeyTable</a> * xsltKeyTablePtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNsAlias">Structure </a>xsltNsAlias</h3><pre 
class="programlisting">struct _xsltNsAlias {
+    <a href="libxslt-xsltInternals.html#xsltNsAliasPtr">xsltNsAliasPtr</a>     next    : next in the list
+    xmlNsPtr   literalNs
+    xmlNsPtr   targetNs
+    xmlDocPtr  docOfTargetNs
+} xsltNsAlias;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNsAliasPtr">Typedef </a>xsltNsAliasPtr</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltNsAlias">xsltNsAlias</a> * xsltNsAliasPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNsList">Structure </a>xsltNsList</h3><pre 
class="programlisting">struct _xsltNsList {
+    <a href="libxslt-xsltInternals.html#xsltNsListPtr">xsltNsListPtr</a>       next    : next in the list
+    xmlNsPtr   ns
+} xsltNsList;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNsListContainer">Structure 
</a>xsltNsListContainer</h3><pre class="programlisting">struct _xsltNsListContainer {
+    xmlNsPtr * list
+    int        totalNumber
+    int        xpathNumber
+} xsltNsListContainer;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNsListContainerPtr">Typedef 
</a>xsltNsListContainerPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltNsListContainer">xsltNsListContainer</a> * xsltNsListContainerPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNsListPtr">Typedef </a>xsltNsListPtr</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltNsList">xsltNsList</a> * xsltNsListPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNsMap">Structure </a>xsltNsMap</h3><pre 
class="programlisting">struct _xsltNsMap {
+    <a href="libxslt-xsltInternals.html#xsltNsMapPtr">xsltNsMapPtr</a> next    : next in the list
+    xmlDocPtr  doc
+    xmlNodePtr elem    : the element holding the ns-decl
+    xmlNsPtr   ns      : the xmlNs structure holding the XML namespace name
+    const xmlChar *    origNsName      : the original XML namespace name
+    const xmlChar *    newNsName       : the mapped XML namespace name
+} xsltNsMap;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNsMapPtr">Typedef </a>xsltNsMapPtr</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltNsMap">xsltNsMap</a> * xsltNsMapPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltOutputType">Enum </a>xsltOutputType</h3><pre 
class="programlisting">enum <a href="#xsltOutputType">xsltOutputType</a> {
+    <a name="XSLT_OUTPUT_XML">XSLT_OUTPUT_XML</a> = 0
+    <a name="XSLT_OUTPUT_HTML">XSLT_OUTPUT_HTML</a> = 1
+    <a name="XSLT_OUTPUT_TEXT">XSLT_OUTPUT_TEXT</a> = 2
+};
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltPointerList">Structure </a>xsltPointerList</h3><pre 
class="programlisting">struct _xsltPointerList {
+    void **    items
+    int        number
+    int        size
+} xsltPointerList;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltPointerListPtr">Typedef 
</a>xsltPointerListPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltPointerList">xsltPointerList</a> * xsltPointerListPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltPrincipalStylesheetData">Structure 
</a>xsltPrincipalStylesheetData</h3><pre class="programlisting">struct _xsltPrincipalStylesheetData {
+    xmlDictPtr namespaceDict   : * Global list of in-scope namespaces. *
+    <a href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a>     inScopeNamespaces     
  : * Global list of information for [xsl:]excluded-result-prefixes. *
+    <a href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a>     exclResultNamespaces  
  : * Global list of information for [xsl:]extension-element-prefixes. *
+    <a href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a>     extElemNamespaces
+    <a href="libxslt-xsltInternals.html#xsltEffectiveNsPtr">xsltEffectiveNsPtr</a>     effectiveNs     : * 
Namespace name map to get rid of string comparison of namespace name
+    <a href="libxslt-xsltInternals.html#xsltNsMapPtr">xsltNsMapPtr</a> nsMap
+} xsltPrincipalStylesheetData;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltPrincipalStylesheetDataPtr">Typedef 
</a>xsltPrincipalStylesheetDataPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltPrincipalStylesheetData">xsltPrincipalStylesheetData</a> * 
xsltPrincipalStylesheetDataPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRuntimeExtra">Structure 
</a>xsltRuntimeExtra</h3><pre class="programlisting">struct _xsltRuntimeExtra {
+    void *     info    : pointer to the extra data
+    xmlFreeFunc        deallocate      : pointer to the deallocation routine
+} xsltRuntimeExtra;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRuntimeExtraPtr">Typedef 
</a>xsltRuntimeExtraPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltRuntimeExtra">xsltRuntimeExtra</a> * xsltRuntimeExtraPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStackElem">Structure </a>xsltStackElem</h3><pre 
class="programlisting">struct _xsltStackElem {
+    struct _xsltStackElem *    next    : chained list
+    <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a>   comp    : the 
compiled form
+    int        computed        : was the evaluation done
+    const xmlChar *    name    : the local part of the name QName
+    const xmlChar *    nameURI : the URI part of the name QName
+    const xmlChar *    select  : the eval string
+    xmlNodePtr tree    : the sequence constructor if no eval string or the location
+    xmlXPathObjectPtr  value   : The value if computed
+    xmlDocPtr  fragment        : The Result Tree Fragments (needed for XSLT 1.0) which are bound to th
+    int        level   : the depth in the tree; -1 if persistent (e.g. a given xsl:with-param)
+    <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a>   context : The 
transformation context; needed to cache the variables
+    int        flags
+} xsltStackElem;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStackElemPtr">Typedef </a>xsltStackElemPtr</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltStackElem">xsltStackElem</a> * 
xsltStackElemPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleBasicEmptyItem">Structure 
</a>xsltStyleBasicEmptyItem</h3><pre class="programlisting">struct _xsltStyleBasicEmptyItem {
+The content of this structure is not made public by the API.
+} xsltStyleBasicEmptyItem;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleBasicEmptyItemPtr">Typedef 
</a>xsltStyleBasicEmptyItemPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> * 
xsltStyleBasicEmptyItemPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleBasicExpressionItem">Structure 
</a>xsltStyleBasicExpressionItem</h3><pre class="programlisting">struct _xsltStyleBasicExpressionItem {
+    const xmlChar *    select  : TODO: Change this to "expression".
+    xmlXPathCompExprPtr        comp    : TODO: Change this to compExpr.
+} xsltStyleBasicExpressionItem;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleBasicExpressionItemPtr">Typedef 
</a>xsltStyleBasicExpressionItemPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a> * 
xsltStyleBasicExpressionItemPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleBasicItemVariable">Structure 
</a>xsltStyleBasicItemVariable</h3><pre class="programlisting">struct _xsltStyleBasicItemVariable {
+    const xmlChar *    select
+    xmlXPathCompExprPtr        comp
+    const xmlChar *    name
+    int        has_name
+    const xmlChar *    ns
+    int        has_ns
+} xsltStyleBasicItemVariable;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleBasicItemVariablePtr">Typedef 
</a>xsltStyleBasicItemVariablePtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a> * 
xsltStyleBasicItemVariablePtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemApplyImports">Typedef 
</a>xsltStyleItemApplyImports</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> 
xsltStyleItemApplyImports;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemApplyImportsPtr">Typedef 
</a>xsltStyleItemApplyImportsPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemApplyImports">xsltStyleItemApplyImports</a> * 
xsltStyleItemApplyImportsPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemApplyTemplates">Structure 
</a>xsltStyleItemApplyTemplates</h3><pre class="programlisting">struct _xsltStyleItemApplyTemplates {
+    const xmlChar *    mode    : apply-templates
+    const xmlChar *    modeURI : apply-templates
+    const xmlChar *    select  : sort, copy-of, value-of, apply-templates
+    xmlXPathCompExprPtr        comp    : a precompiled XPath expression TODO: with-params
+} xsltStyleItemApplyTemplates;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemApplyTemplatesPtr">Typedef 
</a>xsltStyleItemApplyTemplatesPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemApplyTemplates">xsltStyleItemApplyTemplates</a> * 
xsltStyleItemApplyTemplatesPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemAttribute">Structure 
</a>xsltStyleItemAttribute</h3><pre class="programlisting">struct _xsltStyleItemAttribute {
+    const xmlChar *    name
+    int        has_name
+    const xmlChar *    ns
+    const xmlChar *    nsPrefix
+    int        has_ns
+} xsltStyleItemAttribute;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemAttributePtr">Typedef 
</a>xsltStyleItemAttributePtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemAttribute">xsltStyleItemAttribute</a> * 
xsltStyleItemAttributePtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemCallTemplate">Structure 
</a>xsltStyleItemCallTemplate</h3><pre class="programlisting">struct _xsltStyleItemCallTemplate {
+    <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>   templ   : call-template
+    const xmlChar *    name    : element, attribute, pi
+    int        has_name        : element, attribute, pi
+    const xmlChar *    ns      : element
+    int        has_ns  : element TODO: with-params
+} xsltStyleItemCallTemplate;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemCallTemplatePtr">Typedef 
</a>xsltStyleItemCallTemplatePtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemCallTemplate">xsltStyleItemCallTemplate</a> * 
xsltStyleItemCallTemplatePtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemChoose">Typedef 
</a>xsltStyleItemChoose</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> xsltStyleItemChoose;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemChoosePtr">Typedef 
</a>xsltStyleItemChoosePtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemChoose">xsltStyleItemChoose</a> * xsltStyleItemChoosePtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemComment">Typedef 
</a>xsltStyleItemComment</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> xsltStyleItemComment;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemCommentPtr">Typedef 
</a>xsltStyleItemCommentPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemComment">xsltStyleItemComment</a> * xsltStyleItemCommentPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemCopy">Structure 
</a>xsltStyleItemCopy</h3><pre class="programlisting">struct _xsltStyleItemCopy {
+    const xmlChar *    use     : copy, element
+    int        has_use : copy, element
+} xsltStyleItemCopy;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemCopyOf">Typedef 
</a>xsltStyleItemCopyOf</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a> 
xsltStyleItemCopyOf;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemCopyOfPtr">Typedef 
</a>xsltStyleItemCopyOfPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemCopyOf">xsltStyleItemCopyOf</a> * xsltStyleItemCopyOfPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemCopyPtr">Typedef 
</a>xsltStyleItemCopyPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemCopy">xsltStyleItemCopy</a> * xsltStyleItemCopyPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemDocument">Structure 
</a>xsltStyleItemDocument</h3><pre class="programlisting">struct _xsltStyleItemDocument {
+    int        ver11   : assigned: in xsltDocumentComp; read: nowhere; TODO: Check if we need.
+    const xmlChar *    filename        : document URL
+    int        has_filename
+} xsltStyleItemDocument;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemDocumentPtr">Typedef 
</a>xsltStyleItemDocumentPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemDocument">xsltStyleItemDocument</a> * xsltStyleItemDocumentPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemElement">Structure 
</a>xsltStyleItemElement</h3><pre class="programlisting">struct _xsltStyleItemElement {
+    const xmlChar *    use
+    int        has_use
+    const xmlChar *    name
+    int        has_name
+    const xmlChar *    ns
+    const xmlChar *    nsPrefix
+    int        has_ns
+} xsltStyleItemElement;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemElementPtr">Typedef 
</a>xsltStyleItemElementPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemElement">xsltStyleItemElement</a> * xsltStyleItemElementPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemExtElement">Structure 
</a>xsltStyleItemExtElement</h3><pre class="programlisting">struct _xsltStyleItemExtElement {
+    <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>     item
+} xsltStyleItemExtElement;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemExtElementPtr">Typedef 
</a>xsltStyleItemExtElementPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemExtElement">xsltStyleItemExtElement</a> * 
xsltStyleItemExtElementPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemFallback">Typedef 
</a>xsltStyleItemFallback</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem">xsltStyleBasicEmptyItem</a> xsltStyleItemFallback;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemFallbackPtr">Typedef 
</a>xsltStyleItemFallbackPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemFallback">xsltStyleItemFallback</a> * xsltStyleItemFallbackPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemForEach">Typedef 
</a>xsltStyleItemForEach</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem">xsltStyleBasicExpressionItem</a> 
xsltStyleItemForEach;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemForEachPtr">Typedef 
</a>xsltStyleItemForEachPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemForEach">xsltStyleItemForEach</a> * xsltStyleItemForEachPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemIf">Structure </a>xsltStyleItemIf</h3><pre 
class="programlisting">struct _xsltStyleItemIf {
+    const xmlChar *    test    : if
+    xmlXPathCompExprPtr        comp    : a precompiled XPath expression
+} xsltStyleItemIf;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemIfPtr">Typedef 
</a>xsltStyleItemIfPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemIf">xsltStyleItemIf</a> * xsltStyleItemIfPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemInclude">Structure 
</a>xsltStyleItemInclude</h3><pre class="programlisting">struct _xsltStyleItemInclude {
+    <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>   include
+} xsltStyleItemInclude;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemIncludePtr">Typedef 
</a>xsltStyleItemIncludePtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemInclude">xsltStyleItemInclude</a> * xsltStyleItemIncludePtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemLRElementInfo">Structure 
</a>xsltStyleItemLRElementInfo</h3><pre class="programlisting">struct _xsltStyleItemLRElementInfo {
+    <a href="libxslt-xsltInternals.html#xsltEffectiveNsPtr">xsltEffectiveNsPtr</a>     effectiveNs
+} xsltStyleItemLRElementInfo;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemLRElementInfoPtr">Typedef 
</a>xsltStyleItemLRElementInfoPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemLRElementInfo">xsltStyleItemLRElementInfo</a> * 
xsltStyleItemLRElementInfoPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemMessage">Structure 
</a>xsltStyleItemMessage</h3><pre class="programlisting">struct _xsltStyleItemMessage {
+    int        terminate
+} xsltStyleItemMessage;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemMessagePtr">Typedef 
</a>xsltStyleItemMessagePtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemMessage">xsltStyleItemMessage</a> * xsltStyleItemMessagePtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemNumber">Structure 
</a>xsltStyleItemNumber</h3><pre class="programlisting">struct _xsltStyleItemNumber {
+    <a href="libxslt-numbersInternals.html#xsltNumberData">xsltNumberData</a>  numdata : number
+} xsltStyleItemNumber;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemNumberPtr">Typedef 
</a>xsltStyleItemNumberPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemNumber">xsltStyleItemNumber</a> * xsltStyleItemNumberPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemOtherwise">Structure 
</a>xsltStyleItemOtherwise</h3><pre class="programlisting">struct _xsltStyleItemOtherwise {
+The content of this structure is not made public by the API.
+} xsltStyleItemOtherwise;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemOtherwisePtr">Typedef 
</a>xsltStyleItemOtherwisePtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemOtherwise">xsltStyleItemOtherwise</a> * 
xsltStyleItemOtherwisePtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemPI">Structure </a>xsltStyleItemPI</h3><pre 
class="programlisting">struct _xsltStyleItemPI {
+    const xmlChar *    name
+    int        has_name
+} xsltStyleItemPI;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemPIPtr">Typedef 
</a>xsltStyleItemPIPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemPI">xsltStyleItemPI</a> * xsltStyleItemPIPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemParam">Structure 
</a>xsltStyleItemParam</h3><pre class="programlisting">struct _xsltStyleItemParam {
+    const xmlChar *    select
+    xmlXPathCompExprPtr        comp
+    const xmlChar *    name
+    int        has_name
+    const xmlChar *    ns
+    int        has_ns
+} xsltStyleItemParam;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemParamPtr">Typedef 
</a>xsltStyleItemParamPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemParam">xsltStyleItemParam</a> * xsltStyleItemParamPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemSort">Structure 
</a>xsltStyleItemSort</h3><pre class="programlisting">struct _xsltStyleItemSort {
+    const xmlChar *    stype   : sort
+    int        has_stype       : sort
+    int        number  : sort
+    const xmlChar *    order   : sort
+    int        has_order       : sort
+    int        descending      : sort
+    const xmlChar *    lang    : sort
+    int        has_lang        : sort
+    <a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a>        locale  : sort
+    const xmlChar *    case_order      : sort
+    int        lower_first     : sort
+    const xmlChar *    use
+    int        has_use
+    const xmlChar *    select  : sort, copy-of, value-of, apply-templates
+    xmlXPathCompExprPtr        comp    : a precompiled XPath expression
+} xsltStyleItemSort;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemSortPtr">Typedef 
</a>xsltStyleItemSortPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemSort">xsltStyleItemSort</a> * xsltStyleItemSortPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemText">Structure 
</a>xsltStyleItemText</h3><pre class="programlisting">struct _xsltStyleItemText {
+    int        noescape        : text
+} xsltStyleItemText;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemTextPtr">Typedef 
</a>xsltStyleItemTextPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemText">xsltStyleItemText</a> * xsltStyleItemTextPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemUknown">Structure 
</a>xsltStyleItemUknown</h3><pre class="programlisting">struct _xsltStyleItemUknown {
+The content of this structure is not made public by the API.
+} xsltStyleItemUknown;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemUknownPtr">Typedef 
</a>xsltStyleItemUknownPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemUknown">xsltStyleItemUknown</a> * xsltStyleItemUknownPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemValueOf">Structure 
</a>xsltStyleItemValueOf</h3><pre class="programlisting">struct _xsltStyleItemValueOf {
+    const xmlChar *    select
+    xmlXPathCompExprPtr        comp    : a precompiled XPath expression
+    int        noescape
+} xsltStyleItemValueOf;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemValueOfPtr">Typedef 
</a>xsltStyleItemValueOfPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemValueOf">xsltStyleItemValueOf</a> * xsltStyleItemValueOfPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemVariable">Typedef 
</a>xsltStyleItemVariable</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a> 
xsltStyleItemVariable;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemVariablePtr">Typedef 
</a>xsltStyleItemVariablePtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemVariable">xsltStyleItemVariable</a> * xsltStyleItemVariablePtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemWhen">Structure 
</a>xsltStyleItemWhen</h3><pre class="programlisting">struct _xsltStyleItemWhen {
+    const xmlChar *    test
+    xmlXPathCompExprPtr        comp
+} xsltStyleItemWhen;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemWhenPtr">Typedef 
</a>xsltStyleItemWhenPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemWhen">xsltStyleItemWhen</a> * xsltStyleItemWhenPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemWithParam">Typedef 
</a>xsltStyleItemWithParam</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleBasicItemVariable">xsltStyleBasicItemVariable</a> 
xsltStyleItemWithParam;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleItemWithParamPtr">Typedef 
</a>xsltStyleItemWithParamPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStyleItemWithParam">xsltStyleItemWithParam</a> * 
xsltStyleItemWithParamPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStylePreComp">Structure 
</a>xsltStylePreComp</h3><pre class="programlisting">struct _xsltStylePreComp {
+    <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>     next    : chained list
+    <a href="libxslt-xsltInternals.html#xsltStyleType">xsltStyleType</a>       type    : type of the element
+    <a href="libxslt-xsltInternals.html#xsltTransformFunction">xsltTransformFunction</a>       func    : 
handling function
+    xmlNodePtr inst    : * Pre computed values. *
+    const xmlChar *    stype   : sort
+    int        has_stype       : sort
+    int        number  : sort
+    const xmlChar *    order   : sort
+    int        has_order       : sort
+    int        descending      : sort
+    const xmlChar *    lang    : sort
+    int        has_lang        : sort
+    <a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a>        locale  : sort
+    const xmlChar *    case_order      : sort
+    int        lower_first     : sort
+    const xmlChar *    use     : copy, element
+    int        has_use : copy, element
+    int        noescape        : text
+    const xmlChar *    name    : element, attribute, pi
+    int        has_name        : element, attribute, pi
+    const xmlChar *    ns      : element
+    int        has_ns  : element
+    const xmlChar *    mode    : apply-templates
+    const xmlChar *    modeURI : apply-templates
+    const xmlChar *    test    : if
+    <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>   templ   : call-template
+    const xmlChar *    select  : sort, copy-of, value-of, apply-templates
+    int        ver11   : document
+    const xmlChar *    filename        : document URL
+    int        has_filename    : document
+    <a href="libxslt-numbersInternals.html#xsltNumberData">xsltNumberData</a>  numdata : number
+    xmlXPathCompExprPtr        comp    : a precompiled XPath expression
+    xmlNsPtr * nsList  : the namespaces in scope
+    int        nsNr    : the number of namespaces in scope
+} xsltStylePreComp;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStylePreCompPtr">Typedef 
</a>xsltStylePreCompPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStylePreComp">xsltStylePreComp</a> * xsltStylePreCompPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStyleType">Enum </a>xsltStyleType</h3><pre 
class="programlisting">enum <a href="#xsltStyleType">xsltStyleType</a> {
+    <a name="XSLT_FUNC_COPY">XSLT_FUNC_COPY</a> = 1
+    <a name="XSLT_FUNC_SORT">XSLT_FUNC_SORT</a> = 2
+    <a name="XSLT_FUNC_TEXT">XSLT_FUNC_TEXT</a> = 3
+    <a name="XSLT_FUNC_ELEMENT">XSLT_FUNC_ELEMENT</a> = 4
+    <a name="XSLT_FUNC_ATTRIBUTE">XSLT_FUNC_ATTRIBUTE</a> = 5
+    <a name="XSLT_FUNC_COMMENT">XSLT_FUNC_COMMENT</a> = 6
+    <a name="XSLT_FUNC_PI">XSLT_FUNC_PI</a> = 7
+    <a name="XSLT_FUNC_COPYOF">XSLT_FUNC_COPYOF</a> = 8
+    <a name="XSLT_FUNC_VALUEOF">XSLT_FUNC_VALUEOF</a> = 9
+    <a name="XSLT_FUNC_NUMBER">XSLT_FUNC_NUMBER</a> = 10
+    <a name="XSLT_FUNC_APPLYIMPORTS">XSLT_FUNC_APPLYIMPORTS</a> = 11
+    <a name="XSLT_FUNC_CALLTEMPLATE">XSLT_FUNC_CALLTEMPLATE</a> = 12
+    <a name="XSLT_FUNC_APPLYTEMPLATES">XSLT_FUNC_APPLYTEMPLATES</a> = 13
+    <a name="XSLT_FUNC_CHOOSE">XSLT_FUNC_CHOOSE</a> = 14
+    <a name="XSLT_FUNC_IF">XSLT_FUNC_IF</a> = 15
+    <a name="XSLT_FUNC_FOREACH">XSLT_FUNC_FOREACH</a> = 16
+    <a name="XSLT_FUNC_DOCUMENT">XSLT_FUNC_DOCUMENT</a> = 17
+    <a name="XSLT_FUNC_WITHPARAM">XSLT_FUNC_WITHPARAM</a> = 18
+    <a name="XSLT_FUNC_PARAM">XSLT_FUNC_PARAM</a> = 19
+    <a name="XSLT_FUNC_VARIABLE">XSLT_FUNC_VARIABLE</a> = 20
+    <a name="XSLT_FUNC_WHEN">XSLT_FUNC_WHEN</a> = 21
+    <a name="XSLT_FUNC_EXTENSION">XSLT_FUNC_EXTENSION</a> = 22
+    <a name="XSLT_FUNC_OTHERWISE">XSLT_FUNC_OTHERWISE</a> = 23
+    <a name="XSLT_FUNC_FALLBACK">XSLT_FUNC_FALLBACK</a> = 24
+    <a name="XSLT_FUNC_MESSAGE">XSLT_FUNC_MESSAGE</a> = 25
+    <a name="XSLT_FUNC_INCLUDE">XSLT_FUNC_INCLUDE</a> = 26
+    <a name="XSLT_FUNC_ATTRSET">XSLT_FUNC_ATTRSET</a> = 27
+    <a name="XSLT_FUNC_LITERAL_RESULT_ELEMENT">XSLT_FUNC_LITERAL_RESULT_ELEMENT</a> = 28
+    <a name="XSLT_FUNC_UNKOWN_FORWARDS_COMPAT">XSLT_FUNC_UNKOWN_FORWARDS_COMPAT</a> = 29
+};
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStylesheet">Structure </a>xsltStylesheet</h3><pre 
class="programlisting">struct _xsltStylesheet {
+    struct _xsltStylesheet *   parent
+    struct _xsltStylesheet *   next
+    struct _xsltStylesheet *   imports
+    <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>   docList : * General data on 
the style sheet document. *
+    xmlDocPtr  doc     : the parsed XML stylesheet
+    xmlHashTablePtr    stripSpaces     : the hash table of the strip-space and preserve space elements
+    int        stripAll        : strip-space * (1) preserve-space * (-1)
+    xmlHashTablePtr    cdataSection    : * Global variable or parameters. *
+    <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> variables       : * Template 
descriptions. *
+    <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>   templates       : the ordered 
list of templates
+    void *     templatesHash   : hash table or wherever compiled templates information is stored
+    void *     rootMatch       : template based on /
+    void *     keyMatch        : template based on key()
+    void *     elemMatch       : template based on *
+    void *     attrMatch       : template based on @*
+    void *     parentMatch     : template based on ..
+    void *     textMatch       : template based on text()
+    void *     piMatch : template based on processing-instruction()
+    void *     commentMatch    : * Namespace aliases. * NOTE: Not used in the refactored code. *
+    xmlHashTablePtr    nsAliases       : * Attribute sets. *
+    xmlHashTablePtr    attributeSets   : * Namespaces. * TODO: Eliminate this. *
+    xmlHashTablePtr    nsHash  : the set of namespaces in use: ATTENTION: This is used for execution o
+    void *     nsDefs  : * Key definitions. *
+    void *     keys    : * Output related stuff. *
+    xmlChar *  method  : the output method
+    xmlChar *  methodURI       : associated namespace if any
+    xmlChar *  version : version string
+    xmlChar *  encoding        : encoding string
+    int        omitXmlDeclaration      : * Number formatting. *
+    <a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> decimalFormat
+    int        standalone      : standalone = "yes" | "no"
+    xmlChar *  doctypePublic   : doctype-public string
+    xmlChar *  doctypeSystem   : doctype-system string
+    int        indent  : should output being indented
+    xmlChar *  mediaType       : * Precomputed blocks. *
+    <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>     preComps        : 
list of precomputed blocks
+    int        warnings        : number of warnings found at compilation
+    int        errors  : number of errors found at compilation
+    xmlChar *  exclPrefix      : last excluded prefixes
+    xmlChar ** exclPrefixTab   : array of excluded prefixes
+    int        exclPrefixNr    : number of excluded prefixes in scope
+    int        exclPrefixMax   : size of the array
+    void *     _private        : * Extensions. *
+    xmlHashTablePtr    extInfos        : the extension data
+    int        extrasNr        : * For keeping track of nested includes *
+    <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>   includes        : * 
dictionary: shared between stylesheet, context and documents. *
+    xmlDictPtr dict    : * precompiled attribute value templates. *
+    void *     attVTs  : * if namespace-alias has an alias for the default stylesheet prefix *
+    const xmlChar *    defaultAlias    : * bypass pre-processing (already done) (used in imports) *
+    int        nopreproc       : * all document text strings were internalized *
+    int        internalized    : * Literal Result Element as Stylesheet c.f. section 2.3 *
+    int        literal_result  : * The principal stylesheet *
+    <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>       principal       : * 
Compilation context used during compile-time. *
+    <a href="libxslt-xsltInternals.html#xsltCompilerCtxtPtr">xsltCompilerCtxtPtr</a>   compCtxt        : 
TODO: Change this to (void *).
+    <a href="libxslt-xsltInternals.html#xsltPrincipalStylesheetDataPtr">xsltPrincipalStylesheetDataPtr</a>   
  principalData   : * Forwards-compatible processing *
+    int        forwards_compatible
+    xmlHashTablePtr    namedTemplates  : hash table of named templates
+    xmlXPathContextPtr xpathCtxt
+} xsltStylesheet;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStylesheetPtr">Typedef 
</a>xsltStylesheetPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStylesheet">xsltStylesheet</a> * xsltStylesheetPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltTemplate">Structure </a>xsltTemplate</h3><pre 
class="programlisting">struct _xsltTemplate {
+    struct _xsltTemplate *     next    : chained list sorted by priority
+    struct _xsltStylesheet *   style   : the containing stylesheet
+    xmlChar *  match   : the matching string
+    float      priority        : as given from the stylesheet, not computed
+    const xmlChar *    name    : the local part of the name QName
+    const xmlChar *    nameURI : the URI part of the name QName
+    const xmlChar *    mode    : the local part of the mode QName
+    const xmlChar *    modeURI : the URI part of the mode QName
+    xmlNodePtr content : the template replacement value
+    xmlNodePtr elem    : * TODO: @inheritedNsNr and @inheritedNs won't be used in the * refact
+    int        inheritedNsNr   : number of inherited namespaces
+    xmlNsPtr * inheritedNs     : inherited non-excluded namespaces Profiling information
+    int        nbCalls : the number of time the template was called
+    unsigned long      time    : the time spent in this template
+    void *     params  : xsl:param instructions
+    int        templNr : Nb of templates in the stack
+    int        templMax        : Size of the templtes stack
+    <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> * templCalledTab  : templates 
called
+    int *      templCountTab   : .. and how often
+} xsltTemplate;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltTemplatePtr">Typedef </a>xsltTemplatePtr</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltTemplate">xsltTemplate</a> * xsltTemplatePtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltTransformCache">Structure 
</a>xsltTransformCache</h3><pre class="programlisting">struct _xsltTransformCache {
+    xmlDocPtr  RVT
+    int        nbRVT
+    <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> stackItems
+    int        nbStackItems
+    int        dbgCachedRVTs
+    int        dbgReusedRVTs
+    int        dbgCachedVars
+    int        dbgReusedVars
+} xsltTransformCache;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltTransformCachePtr">Typedef 
</a>xsltTransformCachePtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltTransformCache">xsltTransformCache</a> * xsltTransformCachePtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltTransformContext">Structure 
</a>xsltTransformContext</h3><pre class="programlisting">struct _xsltTransformContext {
+    <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>       style   : the 
stylesheet used
+    <a href="libxslt-xsltInternals.html#xsltOutputType">xsltOutputType</a>     type    : the type of output
+    <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>   templ   : the current template
+    int        templNr : Nb of templates in the stack
+    int        templMax        : Size of the templtes stack
+    <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> * templTab        : the 
template stack
+    <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> vars    : the current 
variable list
+    int        varsNr  : Nb of variable list in the stack
+    int        varsMax : Size of the variable list stack
+    <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> *       varsTab : the 
variable list stack
+    int        varsBase        : * Extensions *
+    xmlHashTablePtr    extFunctions    : the extension functions
+    xmlHashTablePtr    extElements     : the extension elements
+    xmlHashTablePtr    extInfos        : the extension data
+    const xmlChar *    mode    : the current mode
+    const xmlChar *    modeURI : the current mode URI
+    <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>   docList : the document list
+    <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>   document        : the current 
source document; can be NULL if an RTF
+    xmlNodePtr node    : the current node being processed
+    xmlNodeSetPtr      nodeList        : the current node list xmlNodePtr current; the node
+    xmlDocPtr  output  : the resulting document
+    xmlNodePtr insert  : the insertion node
+    xmlXPathContextPtr xpathCtxt       : the XPath context
+    <a href="libxslt-xsltInternals.html#xsltTransformState">xsltTransformState</a>     state   : * Global 
variables *
+    xmlHashTablePtr    globalVars      : the global variables and params
+    xmlNodePtr inst    : the instruction in the stylesheet
+    int        xinclude        : should XInclude be processed
+    const char *       outputFile      : the output URI if known
+    int        profile : is this run profiled
+    long       prof    : the current profiled value
+    int        profNr  : Nb of templates in the stack
+    int        profMax : Size of the templtaes stack
+    long *     profTab : the profile template stack
+    void *     _private        : user defined data
+    int        extrasNr        : the number of extras used
+    int        extrasMax       : the number of extras allocated
+    <a href="libxslt-xsltInternals.html#xsltRuntimeExtraPtr">xsltRuntimeExtraPtr</a>   extras  : extra per 
runtime information
+    <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>   styleList       : the 
stylesheet docs list
+    void *     sec     : the security preferences if any
+    xmlGenericErrorFunc        error   : a specific error handler
+    void *     errctx  : context for the error handler
+    <a href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> sortfunc        : * handling of 
temporary Result Value Tree * (XSLT 1.0 term: "Result Tr
+    xmlDocPtr  tmpRVT  : list of RVT without persistance
+    xmlDocPtr  persistRVT      : list of persistant RVTs
+    int        ctxtflags       : * Speed optimization when coalescing text nodes *
+    const xmlChar *    lasttext        : last text node content
+    int        lasttsize       : last text node size
+    int        lasttuse        : * Per Context Debugging *
+    int        debugStatus     : the context level debug status
+    unsigned long *    traceCode       : pointer to the variable holding the mask
+    int        parserOptions   : * dictionary: shared between stylesheet, context and documents. *
+    xmlDictPtr dict
+    xmlDocPtr  tmpDoc  : * all document text strings are internalized *
+    int        internalized
+    int        nbKeys
+    int        hasTemplKeyPatterns
+    <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>   currentTemplateRule     : the 
Current Template Rule
+    xmlNodePtr initialContextNode
+    xmlDocPtr  initialContextDoc
+    <a href="libxslt-xsltInternals.html#xsltTransformCachePtr">xsltTransformCachePtr</a>       cache
+    void *     contextVariable : the current variable item
+    xmlDocPtr  localRVT        : list of local tree fragments; will be freed when the instruction whic
+    xmlDocPtr  localRVTBase    : Obsolete
+    int        keyInitLevel    : Needed to catch recursive keys issues
+    int        depth   : Needed to catch recursions
+    int        maxTemplateDepth
+    int        maxTemplateVars
+    unsigned long      opLimit
+    unsigned long      opCount
+} xsltTransformContext;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltTransformContextPtr">Typedef 
</a>xsltTransformContextPtr</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltTransformContext">xsltTransformContext</a> * xsltTransformContextPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltTransformState">Enum 
</a>xsltTransformState</h3><pre class="programlisting">enum <a 
href="#xsltTransformState">xsltTransformState</a> {
+    <a name="XSLT_STATE_OK">XSLT_STATE_OK</a> = 0
+    <a name="XSLT_STATE_ERROR">XSLT_STATE_ERROR</a> = 1
+    <a name="XSLT_STATE_STOPPED">XSLT_STATE_STOPPED</a> = 2
+};
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltVarInfo">Structure </a>xsltVarInfo</h3><pre 
class="programlisting">struct _xsltVarInfo {
+    <a href="libxslt-xsltInternals.html#xsltVarInfoPtr">xsltVarInfoPtr</a>     next    : next in the list
+    <a href="libxslt-xsltInternals.html#xsltVarInfoPtr">xsltVarInfoPtr</a>     prev
+    int        depth   : the depth in the tree
+    const xmlChar *    name
+    const xmlChar *    nsName
+} xsltVarInfo;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltVarInfoPtr">Typedef </a>xsltVarInfoPtr</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltVarInfo">xsltVarInfo</a> * xsltVarInfoPtr;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltElemPreCompDeallocator"/>Function type 
xsltElemPreCompDeallocator</h3><pre class="programlisting">void        xsltElemPreCompDeallocator      (<a 
href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp)<br/>
+</pre><p>Deallocates an #xsltElemPreComp structure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>comp</tt></i>:</span></td><td>the #xsltElemPreComp to free 
up</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSortFunc"/>Function type xsltSortFunc</h3><pre 
class="programlisting">void    xsltSortFunc                    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr * sorts, <br/>                                       int nbsorts)<br/>
+</pre><p>Signature of the function to use during sorting</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a transformation context</td></tr><tr><td><span 
class="term"><i><tt>sorts</tt></i>:</span></td><td>the node-set to sort</td></tr><tr><td><span 
class="term"><i><tt>nbsorts</tt></i>:</span></td><td>the number of sorts</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltTransformFunction"/>Function type 
xsltTransformFunction</h3><pre class="programlisting">void  xsltTransformFunction           (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst, <br/>         
                         <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> 
comp)<br/>
+</pre><p>Signature of the function associated to elements part of the stylesheet language like xsl:if or 
xsl:apply-templates.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the input node</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>the stylesheet node</td></tr><tr><td><span 
class="term"><i><tt>comp</tt></i>:</span></td><td>the compiled information from the 
stylesheet</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltConstNamespaceNameXSLT">Variable 
</a>xsltConstNamespaceNameXSLT</h3><pre class="programlisting">const xmlChar * xsltConstNamespaceNameXSLT;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltXSLTAttrMarker">Variable 
</a>xsltXSLTAttrMarker</h3><pre class="programlisting">const xmlChar * xsltXSLTAttrMarker;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltAllocateExtra"/>xsltAllocateExtra ()</h3><pre 
class="programlisting">int      xsltAllocateExtra               (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Allocate an extra runtime information slot statically while compiling the stylesheet and return its 
number</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of the 
slot</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltAllocateExtraCtxt"/>xsltAllocateExtraCtxt 
()</h3><pre class="programlisting">int      xsltAllocateExtraCtxt           (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>Allocate an extra runtime information slot at run-time and return its number This make sure there 
is a slot ready in the transformation context</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of the 
slot</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCompileAttr"/>xsltCompileAttr ()</h3><pre 
class="programlisting">void xsltCompileAttr                 (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlAttrPtr attr)<br/>
+</pre><p>Precompile an attribute in a stylesheet, basically it checks if it is an attribute value template, 
and if yes, establish some structures needed to process it at transformation time.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>attr</tt></i>:</span></td><td>the attribute coming from the 
stylesheet.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCreateRVT"/>xsltCreateRVT ()</h3><pre 
class="programlisting">xmlDocPtr        xsltCreateRVT           (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>Creates a Result Value Tree (the XSLT 1.0 term for this is "Result Tree Fragment")</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the result value tree or NULL in case of API or internal 
errors.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDecimalFormatGetByName"/>xsltDecimalFormatGetByName 
()</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a>     
xsltDecimalFormatGetByName      (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> 
style, <br/>                                                       xmlChar * name)<br/>
+</pre><p>Find decimal-format by name</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the decimal-format name to find</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a 
href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a></td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltDecimalFormatGetByQName"/>xsltDecimalFormatGetByQName ()</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a>   xsltDecimalFormatGetByQName 
    (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                
                                       const xmlChar * nsUri, <br/>                                           
         const xmlChar * name)<br/>
+</pre><p>Find decimal-format by QName</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>nsUri</tt></i>:</span></td><td>the namespace URI of the QName</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the local part of the QName</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the <a 
href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a></td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltEvalAVT"/>xsltEvalAVT ()</h3><pre 
class="programlisting">xmlChar *    xsltEvalAVT             (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       void * avt, <br/>                                       xmlNodePtr node)<br/>
+</pre><p>Process the given AVT, and return the new string value.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>avt</tt></i>:</span></td><td>the prevompiled attribute value template 
info</td></tr><tr><td><span class="term"><i><tt>node</tt></i>:</span></td><td>the node hosting the 
attribute</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the computed string 
value or NULL, must be deallocated by the caller.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltExtensionInstructionResultFinalize"/>xsltExtensionInstructionResultFinalize ()</h3><pre 
class="programlisting">int    xsltExtensionInstructionResultFinalize  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>Finalizes the data (e.g. result tree fragments) created within a value-returning process (e.g. 
EXSLT's function). Tree fragments marked as being returned by a function are set to normal state, which means 
that the fragment garbage collector will free them after the function-calling process exits.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of API or internal 
errors. This function is unsupported in newer releases of libxslt.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltExtensionInstructionResultRegister"/>xsltExtensionInstructionResultRegister ()</h3><pre 
class="programlisting">int    xsltExtensionInstructionResultRegister  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                               xmlXPathObjectPtr obj)<br/>
+</pre><p>Marks the result of a value-returning extension instruction in order to avoid it being garbage 
collected before the extension instruction exits. Note that one still has to additionally register any newly 
created tree fragments (via xsltCreateRVT()) with xsltRegisterLocalRVT().</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>obj</tt></i>:</span></td><td>an XPath object to be inspected for result tree 
fragments</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success 
and -1 in case of error. It isn't necessary to call this function in newer releases of 
libxslt.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFlagRVTs"/>xsltFlagRVTs ()</h3><pre 
class="programlisting">int        xsltFlagRVTs                    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlXPathObjectPtr obj, <br/>                                    void * val)<br/>
+</pre><p>Updates ownership information of RVTs in @obj according to @val. @val = <a 
href="libxslt-variables.html#XSLT_RVT_FUNC_RESULT">XSLT_RVT_FUNC_RESULT</a> for the result of an extension 
function, so its RVTs won't be destroyed after leaving the returning scope. @val = <a 
href="libxslt-variables.html#XSLT_RVT_LOCAL">XSLT_RVT_LOCAL</a> for the result of an extension function to 
reset the state of its RVTs after it was returned to a new scope. @val = <a 
href="libxslt-variables.html#XSLT_RVT_GLOBAL">XSLT_RVT_GLOBAL</a> for parts of global variables.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>obj</tt></i>:</span></td><td>an XPath object to be inspected for result tree 
fragments</td></tr><tr><td><span class="term"><i><tt>val</tt></i>:</span></td><td>the flag 
value</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 
in case of error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFormatNumberConversion"/>xsltFormatNumberConversion 
()</h3><pre class="programlisting">xmlXPathError  xsltFormatNumberConversion      (<a 
href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> self, <br/>                   
                       xmlChar * format, <br/>                                                 double number, 
<br/>                                            xmlChar ** result)<br/>
+</pre><p>format-number() uses the JDK 1.1 DecimalFormat class: 
http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html Structure: pattern := 
subpattern{;subpattern} subpattern := {prefix}integer{.fraction}{suffix} prefix := '\\u0000'..'\\uFFFD' - 
specialCharacters suffix := '\\u0000'..'\\uFFFD' - specialCharacters integer := '#'* '0'* '0' fraction := 
'0'* '#'* Notation: X* 0 or more instances of X (X | Y) either X or Y. X..Y any character from X up to Y, 
inclusive. S - T characters in S, except those in T Special Characters: Symbol Meaning 0 a digit # a digit, 
zero shows as absent . placeholder for decimal separator , placeholder for grouping separator. ; separates 
formats. - default negative prefix. % multiply by 100 and show as percentage ? multiply by 1000 and show as 
per mille X any other characters can be used in the prefix or suffix ' used to quote special characters in a 
prefix or suffix.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>self</tt></i>:</span></td><td>the decimal format</td></tr><tr><td><span 
class="term"><i><tt>format</tt></i>:</span></td><td>the format requested</td></tr><tr><td><span 
class="term"><i><tt>number</tt></i>:</span></td><td>the value to format</td></tr><tr><td><span 
class="term"><i><tt>result</tt></i>:</span></td><td>the place to output the result</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a possible XPath 
error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeAVTList"/>xsltFreeAVTList ()</h3><pre 
class="programlisting">void xsltFreeAVTList                 (void * avt)<br/>
+</pre><p>Free up the memory associated to the attribute value templates</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>avt</tt></i>:</span></td><td>pointer to an list of AVT 
structures</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeRVTs"/>xsltFreeRVTs ()</h3><pre 
class="programlisting">void       xsltFreeRVTs                    (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>Frees all registered result value trees (Result Tree Fragments) of the transformation. Internal 
function; should not be called by user-code.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation 
context</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeStackElemList"/>xsltFreeStackElemList 
()</h3><pre class="programlisting">void     xsltFreeStackElemList           (<a 
href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elem)<br/>
+</pre><p>Free up the memory allocated by @elem</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>elem</tt></i>:</span></td><td>an XSLT stack element</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeStylesheet"/>xsltFreeStylesheet ()</h3><pre 
class="programlisting">void   xsltFreeStylesheet              (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Free up the memory allocated by @style</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>an XSLT stylesheet</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltInitAllDocKeys"/>xsltInitAllDocKeys ()</h3><pre 
class="programlisting">int    xsltInitAllDocKeys              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>INTERNAL ROUTINE ONLY Check if any keys on the current document need to be computed</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>transformation context</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of 
failure</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltInitCtxtKey"/>xsltInitCtxtKey ()</h3><pre 
class="programlisting">int  xsltInitCtxtKey                 (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a> idoc, <br/>   
                                 <a href="libxslt-xsltInternals.html#xsltKeyDefPtr">xsltKeyDefPtr</a> 
keyDef)<br/>
+</pre><p>Computes the key tables this key and for the current input document.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>idoc</tt></i>:</span></td><td>the document information (holds key 
values)</td></tr><tr><td><span class="term"><i><tt>keyDef</tt></i>:</span></td><td>the key 
definition</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 on success, -1 on 
error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltIsBlank"/>xsltIsBlank ()</h3><pre 
class="programlisting">int  xsltIsBlank                     (xmlChar * str)<br/>
+</pre><p>Check if a string is ignorable</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>str</tt></i>:</span></td><td>a string</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>1 if the string is NULL or made of blanks chars, 0 
otherwise</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltLoadStylesheetPI"/>xsltLoadStylesheetPI ()</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>       
xsltLoadStylesheetPI    (xmlDocPtr doc)<br/>
+</pre><p>This function tries to locate the stylesheet PI in the given document If found, and if contained 
within the document, it will extract that subtree to build the stylesheet to process @doc (doc itself will be 
modified). If found but referencing an external document it will attempt to load it and generate a stylesheet 
from it. In both cases, the resulting stylesheet and the document need to be freed once the transformation is 
done.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>doc</tt></i>:</span></td><td>a document to process</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a new XSLT stylesheet structure or NULL if not 
found.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNewStylesheet"/>xsltNewStylesheet ()</h3><pre 
class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>     
xsltNewStylesheet       (void)<br/>
+</pre><p>Create a new XSLT Stylesheet</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the newly allocated <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> or NULL in case of 
error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNumberFormat"/>xsltNumberFormat ()</h3><pre 
class="programlisting">void       xsltNumberFormat                (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-numbersInternals.html#xsltNumberDataPtr">xsltNumberDataPtr</a> data, 
<br/>                                     xmlNodePtr node)<br/>
+</pre><p>Convert one number.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>data</tt></i>:</span></td><td>the formatting information</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the data to format</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltParseAnyXSLTElem"/>xsltParseAnyXSLTElem ()</h3><pre 
class="programlisting">int        xsltParseAnyXSLTElem            (<a 
href="libxslt-xsltInternals.html#xsltCompilerCtxtPtr">xsltCompilerCtxtPtr</a> cctxt, <br/>                    
               xmlNodePtr elem)<br/>
+</pre><p>Parses, validates the content models and compiles XSLT instructions.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>cctxt</tt></i>:</span></td><td>the compilation context</td></tr><tr><td><span 
class="term"><i><tt>elem</tt></i>:</span></td><td>the element node of the XSLT 
instruction</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if everything's 
fine; -1 on API or internal errors.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltParseSequenceConstructor"/>xsltParseSequenceConstructor ()</h3><pre class="programlisting">void     
  xsltParseSequenceConstructor    (<a 
href="libxslt-xsltInternals.html#xsltCompilerCtxtPtr">xsltCompilerCtxtPtr</a> cctxt, <br/>                    
               xmlNodePtr cur)<br/>
+</pre><p>Parses a "template" content (or "sequence constructor" in XSLT 2.0 terms). This will additionally 
remove xsl:text elements from the tree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>cctxt</tt></i>:</span></td><td>the compilation context</td></tr><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td>the start-node of the content to be 
parsed</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetDoc"/>xsltParseStylesheetDoc 
()</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>   xsltParseStylesheetDoc  
(xmlDocPtr doc)<br/>
+</pre><p>parse an XSLT stylesheet, building the associated structures. doc is kept as a reference within the 
returned stylesheet, so changes to doc after the parsing will be reflected when the stylesheet is applied, 
and the doc is automatically freed when the stylesheet is closed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>doc</tt></i>:</span></td><td>and xmlDoc parsed XML</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a new XSLT stylesheet 
structure.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetFile"/>xsltParseStylesheetFile 
()</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> xsltParseStylesheetFile (const 
xmlChar * filename)<br/>
+</pre><p>Load and parse an XSLT stylesheet</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>filename</tt></i>:</span></td><td>the filename/URL to the 
stylesheet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new XSLT stylesheet 
structure.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltParseStylesheetImportedDoc"/>xsltParseStylesheetImportedDoc ()</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>   xsltParseStylesheetImportedDoc  
(xmlDocPtr doc, <br/>                                                    <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> parentStyle)<br/>
+</pre><p>parse an XSLT stylesheet building the associated structures except the processing not needed for 
imported documents.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>doc</tt></i>:</span></td><td>an xmlDoc parsed XML</td></tr><tr><td><span 
class="term"><i><tt>parentStyle</tt></i>:</span></td><td>pointer to the parent stylesheet (if it 
exists)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a new XSLT stylesheet 
structure.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetOutput"/>xsltParseStylesheetOutput 
()</h3><pre class="programlisting">void     xsltParseStylesheetOutput       (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr cur)<br/>
+</pre><p>parse an XSLT stylesheet output element and record information related to the stylesheet output</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td>the "output" element</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetProcess"/>xsltParseStylesheetProcess 
()</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>   xsltParseStylesheetProcess      
(<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> ret, <br/>                      
                                   xmlDocPtr doc)<br/>
+</pre><p>Parses an XSLT stylesheet, adding the associated structures. Called by: 
xsltParseStylesheetImportedDoc() (xslt.c) xsltParseStylesheetInclude() (imports.c)</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ret</tt></i>:</span></td><td>the XSLT stylesheet (the current 
stylesheet-level)</td></tr><tr><td><span class="term"><i><tt>doc</tt></i>:</span></td><td>and xmlDoc parsed 
XML</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the value of the @style 
parameter if everything went right, NULL if something went amiss.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetUser"/>xsltParseStylesheetUser 
()</h3><pre class="programlisting">int  xsltParseStylesheetUser         (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlDocPtr doc)<br/>
+</pre><p>Parse an XSLT stylesheet with a user-provided stylesheet struct.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>pointer to the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>doc</tt></i>:</span></td><td>an xmlDoc parsed XML</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 if successful, -1 in case of 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltParseTemplateContent"/>xsltParseTemplateContent 
()</h3><pre class="programlisting">void       xsltParseTemplateContent        (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr templ)<br/>
+</pre><p>parse a template content-model Clean-up the template content from unwanted ignorable blank nodes 
and process xslt:text</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet</td></tr><tr><td><span 
class="term"><i><tt>templ</tt></i>:</span></td><td>the container node (can be a document for literal 
results)</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltPointerListAddSize"/>xsltPointerListAddSize 
()</h3><pre class="programlisting">int    xsltPointerListAddSize          (<a 
href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a> list, <br/>                       
               void * item, <br/>                                      int initialSize)<br/>
+</pre><p>Adds an item to the list.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>list</tt></i>:</span></td><td>the pointer list structure</td></tr><tr><td><span 
class="term"><i><tt>item</tt></i>:</span></td><td>the item to be stored</td></tr><tr><td><span 
class="term"><i><tt>initialSize</tt></i>:</span></td><td>the initial size of the list</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the position of the added item in the list or -1 in case 
of an error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltPointerListClear"/>xsltPointerListClear ()</h3><pre 
class="programlisting">void       xsltPointerListClear            (<a 
href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a> list)<br/>
+</pre><p>Resets the list, but does not free the allocated array and does not free the content of the 
list.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>list</tt></i>:</span></td><td>pointer to the list to be 
cleared</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltPointerListCreate"/>xsltPointerListCreate 
()</h3><pre class="programlisting"><a 
href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a>   xsltPointerListCreate   (int 
initialSize)<br/>
+</pre><p>Creates an <a href="libxslt-xsltInternals.html#xsltPointerList">xsltPointerList</a> structure.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>initialSize</tt></i>:</span></td><td>the initial size for the list</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a <a 
href="libxslt-xsltInternals.html#xsltPointerList">xsltPointerList</a> structure or NULL in case of an 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltPointerListFree"/>xsltPointerListFree ()</h3><pre 
class="programlisting">void xsltPointerListFree             (<a 
href="libxslt-xsltInternals.html#xsltPointerListPtr">xsltPointerListPtr</a> list)<br/>
+</pre><p>Frees the <a href="libxslt-xsltInternals.html#xsltPointerList">xsltPointerList</a> structure. This 
does not free the content of the list.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>list</tt></i>:</span></td><td>pointer to the list to be 
freed</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRegisterLocalRVT"/>xsltRegisterLocalRVT ()</h3><pre 
class="programlisting">int        xsltRegisterLocalRVT            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlDocPtr RVT)<br/>
+</pre><p>Registers a result value tree (XSLT 1.0 term: Result Tree Fragment) in the RVT garbage collector. 
The fragment will be freed when the instruction which created the fragment exits.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>RVT</tt></i>:</span></td><td>a result value tree (Result Tree Fragment; 
xmlDocPtr)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success 
and -1 in case of API or internal errors.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRegisterPersistRVT"/>xsltRegisterPersistRVT 
()</h3><pre class="programlisting">int    xsltRegisterPersistRVT          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlDocPtr RVT)<br/>
+</pre><p>Register the result value tree (XSLT 1.0 term: Result Tree Fragment) in the fragment garbage 
collector. The fragment will be freed when the transformation context is freed.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>RVT</tt></i>:</span></td><td>a result value tree (Result Tree 
Fragment)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success 
and -1 in case of error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltRegisterTmpRVT"/>xsltRegisterTmpRVT ()</h3><pre 
class="programlisting">int    xsltRegisterTmpRVT              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlDocPtr RVT)<br/>
+</pre><p>Registers the result value tree (XSLT 1.0 term: Result Tree Fragment) in the garbage collector. The 
fragment will be freed at the exit of the currently instantiated xsl:template. Obsolete; this function might 
produce massive memory overhead, since the fragment is only freed when the current xsl:template exits. Use 
xsltRegisterLocalRVT() instead.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>RVT</tt></i>:</span></td><td>a result value tree (Result Tree 
Fragment)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success 
and -1 in case of API or internal errors.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltReleaseRVT"/>xsltReleaseRVT ()</h3><pre 
class="programlisting">void   xsltReleaseRVT                  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlDocPtr RVT)<br/>
+</pre><p>Either frees the RVT (which is an xmlDoc) or stores it in the context's cache for later reuse.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>RVT</tt></i>:</span></td><td>a result value tree (Result Tree 
Fragment)</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a 
name="xsltRestoreDocumentNamespaces"/>xsltRestoreDocumentNamespaces ()</h3><pre class="programlisting">int    
  xsltRestoreDocumentNamespaces   (<a href="libxslt-xsltInternals.html#xsltNsMapPtr">xsltNsMapPtr</a> ns, 
<br/>                                    xmlDocPtr doc)<br/>
+</pre><p>Restore the namespaces for the document</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ns</tt></i>:</span></td><td>map of namespaces</td></tr><tr><td><span 
class="term"><i><tt>doc</tt></i>:</span></td><td>the document</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success, -1 in case of 
failure</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltUninit"/>xsltUninit ()</h3><pre 
class="programlisting">void   xsltUninit                      (void)<br/>
+</pre><p>Uninitializes the processor.</p>
+</div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-xsltexports.html b/doc/devhelp/libxslt-xsltexports.html
new file mode 100644
index 00000000..e9479ea1
--- /dev/null
+++ b/doc/devhelp/libxslt-xsltexports.html
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>xsltexports: macros for marking symbols as exportable/importable.</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-xsltInternals.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-xsltlocale.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">xsltexports</span>
+    </h2>
+    <p>xsltexports - macros for marking symbols as exportable/importable.</p>
+    <p>macros for marking symbols as exportable/importable. </p>
+    <p>Author(s): Igor Zlatkovic &lt;igor zlatkovic com&gt; </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">#define <a href="#LIBXSLT_PUBLIC">LIBXSLT_PUBLIC</a>;
+#define <a href="#XSLTPUBFUN">XSLTPUBFUN</a>;
+#define <a href="#XSLTPUBVAR">XSLTPUBVAR</a>;
+#define <a href="#_REENTRANT">_REENTRANT</a>;
+#define <a href="#XSLTCALL">XSLTCALL</a>;
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="LIBXSLT_PUBLIC">Macro </a>LIBXSLT_PUBLIC</h3><pre 
class="programlisting">#define <a href="#LIBXSLT_PUBLIC">LIBXSLT_PUBLIC</a>;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLTCALL">Macro </a>XSLTCALL</h3><pre 
class="programlisting">#define <a href="#XSLTCALL">XSLTCALL</a>;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLTPUBFUN">Macro </a>XSLTPUBFUN</h3><pre 
class="programlisting">#define <a href="#XSLTPUBFUN">XSLTPUBFUN</a>;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLTPUBVAR">Macro </a>XSLTPUBVAR</h3><pre 
class="programlisting">#define <a href="#XSLTPUBVAR">XSLTPUBVAR</a>;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="_REENTRANT">Macro </a>_REENTRANT</h3><pre 
class="programlisting">#define <a href="#_REENTRANT">_REENTRANT</a>;
+</pre><p/>
+</div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-xsltlocale.html b/doc/devhelp/libxslt-xsltlocale.html
new file mode 100644
index 00000000..9861b8c0
--- /dev/null
+++ b/doc/devhelp/libxslt-xsltlocale.html
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>xsltlocale: Locale handling</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-xsltexports.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="n" href="libxslt-xsltutils.html">
+            <img src="right.png" width="24" height="24" border="0" alt="Next"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">xsltlocale</span>
+    </h2>
+    <p>xsltlocale - Locale handling</p>
+    <p>Interfaces for locale handling. Needed for language dependent sorting. </p>
+    <p>Author(s): Nick Wellnhofer </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">#define <a href="#XSLT_LOCALE_WINAPI">XSLT_LOCALE_WINAPI</a>;
+#define <a href="#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a>;
+#define <a href="#XSLT_LOCALE_POSIX">XSLT_LOCALE_POSIX</a>;
+typedef void * <a href="#xsltLocale">xsltLocale</a>;
+typedef xmlChar <a href="#xsltLocaleChar">xsltLocaleChar</a>;
+<a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a>    <a href="#xsltNewLocale">xsltNewLocale</a>    
          (const xmlChar * languageTag);
+int    <a href="#xsltLocaleStrcmp">xsltLocaleStrcmp</a>                (<a 
href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale, <br/>                                       
const <a href="libxslt-xsltlocale.html#xsltLocaleChar">xsltLocaleChar</a> * str1, <br/>                       
                  const <a href="libxslt-xsltlocale.html#xsltLocaleChar">xsltLocaleChar</a> * str2);
+void   <a href="#xsltFreeLocale">xsltFreeLocale</a>                    (<a 
href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale);
+<a href="libxslt-xsltlocale.html#xsltLocaleChar">xsltLocaleChar</a> *  <a 
href="#xsltStrxfrm">xsltStrxfrm</a>  (<a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale, 
<br/>                                       const xmlChar * string);
+void   <a href="#xsltFreeLocales">xsltFreeLocales</a>                  (void);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="XSLT_LOCALE_NONE">Macro </a>XSLT_LOCALE_NONE</h3><pre 
class="programlisting">#define <a href="#XSLT_LOCALE_NONE">XSLT_LOCALE_NONE</a>;
+</pre><p>Macro indicating that there's no extended locale support</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_LOCALE_POSIX">Macro </a>XSLT_LOCALE_POSIX</h3><pre 
class="programlisting">#define <a href="#XSLT_LOCALE_POSIX">XSLT_LOCALE_POSIX</a>;
+</pre><p>Macro indicating to use POSIX locale extensions</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_LOCALE_WINAPI">Macro 
</a>XSLT_LOCALE_WINAPI</h3><pre class="programlisting">#define <a 
href="#XSLT_LOCALE_WINAPI">XSLT_LOCALE_WINAPI</a>;
+</pre><p>Macro indicating to use WinAPI for extended locale support</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltLocale">Typedef </a>xsltLocale</h3><pre 
class="programlisting">void * xsltLocale;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltLocaleChar">Typedef </a>xsltLocaleChar</h3><pre 
class="programlisting">xmlChar xsltLocaleChar;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeLocale"/>xsltFreeLocale ()</h3><pre 
class="programlisting">void   xsltFreeLocale                  (<a 
href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale)<br/>
+</pre><p>Frees a locale created with <a href="libxslt-xsltlocale.html#xsltNewLocale">xsltNewLocale</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>locale</tt></i>:</span></td><td>the locale to free</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltFreeLocales"/>xsltFreeLocales ()</h3><pre 
class="programlisting">void xsltFreeLocales                 (void)<br/>
+</pre><p>Cleanup function for the locale support on shutdown</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltLocaleStrcmp"/>xsltLocaleStrcmp ()</h3><pre 
class="programlisting">int        xsltLocaleStrcmp                (<a 
href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale, <br/>                                       
const <a href="libxslt-xsltlocale.html#xsltLocaleChar">xsltLocaleChar</a> * str1, <br/>                       
                  const <a href="libxslt-xsltlocale.html#xsltLocaleChar">xsltLocaleChar</a> * str2)<br/>
+</pre><p>Compares two strings transformed with <a 
href="libxslt-xsltlocale.html#xsltStrxfrm">xsltStrxfrm</a></p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>locale</tt></i>:</span></td><td>a locale identifier</td></tr><tr><td><span 
class="term"><i><tt>str1</tt></i>:</span></td><td>a string transformed with <a 
href="libxslt-xsltlocale.html#xsltStrxfrm">xsltStrxfrm</a></td></tr><tr><td><span 
class="term"><i><tt>str2</tt></i>:</span></td><td>a string transformed with <a 
href="libxslt-xsltlocale.html#xsltStrxfrm">xsltStrxfrm</a></td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a value &lt; 0 if str1 sorts before str2, a value &gt; 0 
if str1 sorts after str2, 0 if str1 and str2 are equal wrt sorting</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltNewLocale"/>xsltNewLocale ()</h3><pre 
class="programlisting"><a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a>      xsltNewLocale         
  (const xmlChar * languageTag)<br/>
+</pre><p>Creates a new locale of an opaque system dependent type based on the language tag.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>languageTag</tt></i>:</span></td><td>RFC 3066 language tag</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the locale or NULL on error or if no matching locale was 
found</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltStrxfrm"/>xsltStrxfrm ()</h3><pre 
class="programlisting"><a href="libxslt-xsltlocale.html#xsltLocaleChar">xsltLocaleChar</a> *        
xsltStrxfrm     (<a href="libxslt-xsltlocale.html#xsltLocale">xsltLocale</a> locale, <br/>                    
                   const xmlChar * string)<br/>
+</pre><p>Transforms a string according to locale. The transformed string must then be compared with <a 
href="libxslt-xsltlocale.html#xsltLocaleStrcmp">xsltLocaleStrcmp</a> and freed with xmlFree.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>locale</tt></i>:</span></td><td>locale created with <a 
href="libxslt-xsltlocale.html#xsltNewLocale">xsltNewLocale</a></td></tr><tr><td><span 
class="term"><i><tt>string</tt></i>:</span></td><td>UTF-8 string to transform</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the transformed string or NULL on 
error</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt-xsltutils.html b/doc/devhelp/libxslt-xsltutils.html
new file mode 100644
index 00000000..9611b946
--- /dev/null
+++ b/doc/devhelp/libxslt-xsltutils.html
@@ -0,0 +1,348 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+  <head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <title>xsltutils: set of utilities for the XSLT engine</title>
+    <meta name="generator" content="Libxml2 devhelp stylesheet"/>
+    <link rel="start" href="index.html" title="libxslt Reference Manual"/>
+    <link rel="up" href="general.html" title="API"/>
+    <link rel="stylesheet" href="style.css" type="text/css"/>
+    <link rel="chapter" href="general.html" title="API"/>
+  </head>
+  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+    <table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
+      <tr valign="middle">
+        <td>
+          <a accesskey="p" href="libxslt-xsltlocale.html">
+            <img src="left.png" width="24" height="24" border="0" alt="Prev"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="u" href="general.html">
+            <img src="up.png" width="24" height="24" border="0" alt="Up"/>
+          </a>
+        </td>
+        <td>
+          <a accesskey="h" href="index.html">
+            <img src="home.png" width="24" height="24" border="0" alt="Home"/>
+          </a>
+        </td>
+        <th width="100%" align="center">libxslt Reference Manual</th>
+      </tr>
+    </table>
+    <h2>
+      <span class="refentrytitle">xsltutils</span>
+    </h2>
+    <p>xsltutils - set of utilities for the XSLT engine</p>
+    <p>interfaces for the utilities module of the XSLT engine. things like message handling, profiling, and 
other generally useful routines. </p>
+    <p>Author(s): Daniel Veillard </p>
+    <div class="refsynopsisdiv">
+      <h2>Synopsis</h2>
+      <pre class="synopsis">#define <a href="#IS_XSLT_REAL_NODE">IS_XSLT_REAL_NODE</a>;
+#define <a href="#IS_XSLT_ELEM">IS_XSLT_ELEM</a>;
+#define <a href="#IS_XSLT_NAME">IS_XSLT_NAME</a>;
+#define <a href="#XSLT_TODO">XSLT_TODO</a>;
+#define <a href="#XSLT_STRANGE">XSLT_STRANGE</a>;
+#define <a href="#XSLT_TIMESTAMP_TICS_PER_SEC">XSLT_TIMESTAMP_TICS_PER_SEC</a>;
+#define <a href="#XSLT_TRACE">XSLT_TRACE</a>;
+typedef enum <a href="#xsltDebugTraceCodes">xsltDebugTraceCodes</a>;
+typedef enum <a href="#xsltDebugStatusCodes">xsltDebugStatusCodes</a>;
+int    <a href="#xsltSaveResultToFile">xsltSaveResultToFile</a>                (FILE * file, <br/>           
                           xmlDocPtr result, <br/>                                         <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+void   <a href="#xsltSetGenericErrorFunc">xsltSetGenericErrorFunc</a>          (void * ctx, <br/>            
                           xmlGenericErrorFunc handler);
+int    <a href="#xsltSetDebuggerCallbacks">xsltSetDebuggerCallbacks</a>        (int no, <br/>                
                   void * block);
+int    <a href="#xsltSaveResultTo">xsltSaveResultTo</a>                (xmlOutputBufferPtr buf, <br/>        
                           xmlDocPtr result, <br/>                                         <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+void   <a href="#xsltTransformError">xsltTransformError</a>            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, 
<br/>                                       xmlNodePtr node, <br/>                                  const 
char * msg, <br/>                                         ... ...);
+int    <a href="#xslAddCall">xslAddCall</a>                    (<a 
href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/>                            
       xmlNodePtr source);
+void   <a href="#xsltDocumentSortFunction">xsltDocumentSortFunction</a>        (xmlNodeSetPtr list);
+const xmlChar *        <a href="#xsltGetQNameURI2">xsltGetQNameURI2</a>        (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr node, <br/>                                  const xmlChar ** name);
+xmlXPathObjectPtr *    <a href="#xsltComputeSortResult">xsltComputeSortResult</a>      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                               xmlNodePtr sort);
+void   <a href="#xsltPrintErrorContext">xsltPrintErrorContext</a>              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, 
<br/>                                       xmlNodePtr node);
+int    <a href="#xsltGetUTF8Char">xsltGetUTF8Char</a>                  (const unsigned char * utf, <br/>     
                                   int * len);
+void   <a href="#xsltDefaultSortFunction">xsltDefaultSortFunction</a>          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr * sorts, <br/>                                       int nbsorts);
+int    <a href="#xsltSaveResultToFd">xsltSaveResultToFd</a>            (int fd, <br/>                        
           xmlDocPtr result, <br/>                                         <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+void   <a href="#xsltSetCtxtSortFunc">xsltSetCtxtSortFunc</a>          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> handler);
+xmlChar *      <a href="#xsltGetNsProp">xsltGetNsProp</a>              (xmlNodePtr node, <br/>               
                   const xmlChar * name, <br/>                                     const xmlChar * nameSpace);
+const xmlChar *        <a href="#xsltGetCNsProp">xsltGetCNsProp</a>            (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr node, <br/>                                  const xmlChar * name, <br/>            
                         const xmlChar * nameSpace);
+const xmlChar *        <a href="#xsltGetQNameURI">xsltGetQNameURI</a>          (xmlNodePtr node, <br/>       
                           xmlChar ** name);
+typedef int <a href="#xsltAddCallCallback">xsltAddCallCallback</a>             (<a 
href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/>                            
       xmlNodePtr source);
+void   <a href="#xsltCalibrateAdjust">xsltCalibrateAdjust</a>          (long delta);
+void   <a href="#xsltSaveProfiling">xsltSaveProfiling</a>              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       FILE * output);
+int    <a href="#xsltSaveResultToString">xsltSaveResultToString</a>            (xmlChar ** doc_txt_ptr, 
<br/>                                   int * doc_txt_len, <br/>                                        
xmlDocPtr result, <br/>                                         <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
+const xmlChar *        <a href="#xsltSplitQName">xsltSplitQName</a>            (xmlDictPtr dict, <br/>       
                           const xmlChar * name, <br/>                                     const xmlChar ** 
prefix);
+void   <a href="#xsltDoSortFunction">xsltDoSortFunction</a>            (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr * sorts, <br/>                                       int nbsorts);
+<a href="libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a>   <a 
href="#xsltDebugGetDefaultTrace">xsltDebugGetDefaultTrace</a>        (void);
+void   <a href="#xsltMessage">xsltMessage</a>                  (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst);
+int    <a href="#xsltGetDebuggerStatus">xsltGetDebuggerStatus</a>              (void);
+long   <a href="#xsltTimestamp">xsltTimestamp</a>                      (void);
+void   <a href="#xsltSetTransformErrorFunc">xsltSetTransformErrorFunc</a>      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       void * ctx, <br/>                                       xmlGenericErrorFunc handler);
+xmlXPathCompExprPtr    <a href="#xsltXPathCompile">xsltXPathCompile</a>        (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                       const xmlChar * str);
+void   <a href="#xsltDebugSetDefaultTrace">xsltDebugSetDefaultTrace</a>        (<a 
href="libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a> val);
+void   <a href="#xsltSetGenericDebugFunc">xsltSetGenericDebugFunc</a>          (void * ctx, <br/>            
                           xmlGenericErrorFunc handler);
+xmlXPathCompExprPtr    <a href="#xsltXPathCompileFlags">xsltXPathCompileFlags</a>      (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                       const xmlChar * str, <br/>                                              int flags);
+int    <a href="#xsltSetCtxtParseOptions">xsltSetCtxtParseOptions</a>          (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       int options);
+void   <a href="#xsltSetDebuggerStatus">xsltSetDebuggerStatus</a>              (int value);
+void   <a href="#xslDropCall">xslDropCall</a>                  (void);
+void   <a href="#xsltSetSortFunc">xsltSetSortFunc</a>                  (<a 
href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> handler);
+typedef void <a href="#xsltHandleDebuggerCallback">xsltHandleDebuggerCallback</a>      (xmlNodePtr cur, 
<br/>                                   xmlNodePtr node, <br/>                                  <a 
href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/>                            
       <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+int    <a href="#xsltSaveResultToFilename">xsltSaveResultToFilename</a>        (const char * URL, <br/>      
                                   xmlDocPtr result, <br/>                                         <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               int compression);
+typedef void <a href="#xsltDropCallCallback">xsltDropCallCallback</a>          (void);
+xmlDocPtr      <a href="#xsltGetProfileInformation">xsltGetProfileInformation</a>      (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
+</pre>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Description</h2>
+    </div>
+    <div class="refsect1" lang="en">
+      <h2>Details</h2>
+      <div class="refsect2" lang="en">
+        <div class="refsect2" lang="en"><h3><a name="IS_XSLT_ELEM">Macro </a>IS_XSLT_ELEM</h3><pre 
class="programlisting">#define <a href="#IS_XSLT_ELEM">IS_XSLT_ELEM</a>;
+</pre><p>Checks that the element pertains to XSLT namespace.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="IS_XSLT_NAME">Macro </a>IS_XSLT_NAME</h3><pre 
class="programlisting">#define <a href="#IS_XSLT_NAME">IS_XSLT_NAME</a>;
+</pre><p>Checks the value of an element in XSLT namespace.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="IS_XSLT_REAL_NODE">Macro </a>IS_XSLT_REAL_NODE</h3><pre 
class="programlisting">#define <a href="#IS_XSLT_REAL_NODE">IS_XSLT_REAL_NODE</a>;
+</pre><p>Check that a node is a 'real' one: document, element, text or attribute.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_STRANGE">Macro </a>XSLT_STRANGE</h3><pre 
class="programlisting">#define <a href="#XSLT_STRANGE">XSLT_STRANGE</a>;
+</pre><p>Macro to flag that a problem was detected internally.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_TIMESTAMP_TICS_PER_SEC">Macro 
</a>XSLT_TIMESTAMP_TICS_PER_SEC</h3><pre class="programlisting">#define <a 
href="#XSLT_TIMESTAMP_TICS_PER_SEC">XSLT_TIMESTAMP_TICS_PER_SEC</a>;
+</pre><p>Sampling precision for profiling</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_TODO">Macro </a>XSLT_TODO</h3><pre 
class="programlisting">#define <a href="#XSLT_TODO">XSLT_TODO</a>;
+</pre><p>Macro to flag unimplemented blocks.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="XSLT_TRACE">Macro </a>XSLT_TRACE</h3><pre 
class="programlisting">#define <a href="#XSLT_TRACE">XSLT_TRACE</a>;
+</pre><p>Control the type of xsl debugtrace messages emitted.</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDebugStatusCodes">Enum 
</a>xsltDebugStatusCodes</h3><pre class="programlisting">enum <a 
href="#xsltDebugStatusCodes">xsltDebugStatusCodes</a> {
+    <a name="XSLT_DEBUG_NONE">XSLT_DEBUG_NONE</a> = 0 /* no debugging allowed */
+    <a name="XSLT_DEBUG_INIT">XSLT_DEBUG_INIT</a> = 1
+    <a name="XSLT_DEBUG_STEP">XSLT_DEBUG_STEP</a> = 2
+    <a name="XSLT_DEBUG_STEPOUT">XSLT_DEBUG_STEPOUT</a> = 3
+    <a name="XSLT_DEBUG_NEXT">XSLT_DEBUG_NEXT</a> = 4
+    <a name="XSLT_DEBUG_STOP">XSLT_DEBUG_STOP</a> = 5
+    <a name="XSLT_DEBUG_CONT">XSLT_DEBUG_CONT</a> = 6
+    <a name="XSLT_DEBUG_RUN">XSLT_DEBUG_RUN</a> = 7
+    <a name="XSLT_DEBUG_RUN_RESTART">XSLT_DEBUG_RUN_RESTART</a> = 8
+    <a name="XSLT_DEBUG_QUIT">XSLT_DEBUG_QUIT</a> = 9
+};
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDebugTraceCodes">Enum 
</a>xsltDebugTraceCodes</h3><pre class="programlisting">enum <a 
href="#xsltDebugTraceCodes">xsltDebugTraceCodes</a> {
+    <a name="XSLT_TRACE_ALL">XSLT_TRACE_ALL</a> = -1
+    <a name="XSLT_TRACE_NONE">XSLT_TRACE_NONE</a> = 0
+    <a name="XSLT_TRACE_COPY_TEXT">XSLT_TRACE_COPY_TEXT</a> = 1
+    <a name="XSLT_TRACE_PROCESS_NODE">XSLT_TRACE_PROCESS_NODE</a> = 2
+    <a name="XSLT_TRACE_APPLY_TEMPLATE">XSLT_TRACE_APPLY_TEMPLATE</a> = 4
+    <a name="XSLT_TRACE_COPY">XSLT_TRACE_COPY</a> = 8
+    <a name="XSLT_TRACE_COMMENT">XSLT_TRACE_COMMENT</a> = 16
+    <a name="XSLT_TRACE_PI">XSLT_TRACE_PI</a> = 32
+    <a name="XSLT_TRACE_COPY_OF">XSLT_TRACE_COPY_OF</a> = 64
+    <a name="XSLT_TRACE_VALUE_OF">XSLT_TRACE_VALUE_OF</a> = 128
+    <a name="XSLT_TRACE_CALL_TEMPLATE">XSLT_TRACE_CALL_TEMPLATE</a> = 256
+    <a name="XSLT_TRACE_APPLY_TEMPLATES">XSLT_TRACE_APPLY_TEMPLATES</a> = 512
+    <a name="XSLT_TRACE_CHOOSE">XSLT_TRACE_CHOOSE</a> = 1024
+    <a name="XSLT_TRACE_IF">XSLT_TRACE_IF</a> = 2048
+    <a name="XSLT_TRACE_FOR_EACH">XSLT_TRACE_FOR_EACH</a> = 4096
+    <a name="XSLT_TRACE_STRIP_SPACES">XSLT_TRACE_STRIP_SPACES</a> = 8192
+    <a name="XSLT_TRACE_TEMPLATES">XSLT_TRACE_TEMPLATES</a> = 16384
+    <a name="XSLT_TRACE_KEYS">XSLT_TRACE_KEYS</a> = 32768
+    <a name="XSLT_TRACE_VARIABLES">XSLT_TRACE_VARIABLES</a> = 65536
+};
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltAddCallCallback"/>Function type 
xsltAddCallCallback</h3><pre class="programlisting">int       xsltAddCallCallback             (<a 
href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/>                            
       xmlNodePtr source)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>templ</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>source</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDropCallCallback"/>Function type 
xsltDropCallCallback</h3><pre class="programlisting">void    xsltDropCallCallback            (void)<br/>
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltHandleDebuggerCallback"/>Function type 
xsltHandleDebuggerCallback</h3><pre class="programlisting">void        xsltHandleDebuggerCallback      
(xmlNodePtr cur, <br/>                                   xmlNodePtr node, <br/>                               
   <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/>                      
             <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> 
ctxt)<br/>
+</pre><p/>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>cur</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>templ</tt></i>:</span></td><td/></tr><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td/></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xslDebugStatus">Variable </a>xslDebugStatus</h3><pre 
class="programlisting">int xslDebugStatus;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGenericDebug">Variable 
</a>xsltGenericDebug</h3><pre class="programlisting">xmlGenericErrorFunc xsltGenericDebug;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGenericDebugContext">Variable 
</a>xsltGenericDebugContext</h3><pre class="programlisting">void * xsltGenericDebugContext;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGenericError">Variable 
</a>xsltGenericError</h3><pre class="programlisting">xmlGenericErrorFunc xsltGenericError;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGenericErrorContext">Variable 
</a>xsltGenericErrorContext</h3><pre class="programlisting">void * xsltGenericErrorContext;
+</pre><p/>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xslAddCall"/>xslAddCall ()</h3><pre 
class="programlisting">int    xslAddCall                      (<a 
href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a> templ, <br/>                            
       xmlNodePtr source)<br/>
+</pre><p>Add template "call" to call stack</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>templ</tt></i>:</span></td><td>current template being applied</td></tr><tr><td><span 
class="term"><i><tt>source</tt></i>:</span></td><td>the source node being processed</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>: 1 on sucess 0 otherwise an error may be printed if 
WITH_XSLT_DEBUG_BREAKPOINTS is defined</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xslDropCall"/>xslDropCall ()</h3><pre 
class="programlisting">void xslDropCall                     (void)<br/>
+</pre><p>Drop the topmost item off the call stack</p>
+</div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltCalibrateAdjust"/>xsltCalibrateAdjust ()</h3><pre 
class="programlisting">void xsltCalibrateAdjust             (long delta)<br/>
+</pre><p>Used for to correct the calibration for xsltTimestamp()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>delta</tt></i>:</span></td><td>a negative dealy value 
found</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltComputeSortResult"/>xsltComputeSortResult 
()</h3><pre class="programlisting">xmlXPathObjectPtr *      xsltComputeSortResult   (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                               xmlNodePtr sort)<br/>
+</pre><p>reorder the current node list accordingly to the set of sorting requirement provided by the array 
of nodes.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>sort</tt></i>:</span></td><td>node list</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>a ordered XPath nodeset or NULL in case of 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDebugGetDefaultTrace"/>xsltDebugGetDefaultTrace 
()</h3><pre class="programlisting"><a 
href="libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a>       xsltDebugGetDefaultTrace      
  (void)<br/>
+</pre><p>Get the current default debug tracing level mask</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the current default debug tracing level 
mask</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDebugSetDefaultTrace"/>xsltDebugSetDefaultTrace 
()</h3><pre class="programlisting">void       xsltDebugSetDefaultTrace        (<a 
href="libxslt-xsltutils.html#xsltDebugTraceCodes">xsltDebugTraceCodes</a> val)<br/>
+</pre><p>Set the default debug tracing level mask</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>val</tt></i>:</span></td><td>tracing level mask</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDefaultSortFunction"/>xsltDefaultSortFunction 
()</h3><pre class="programlisting">void xsltDefaultSortFunction         (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr * sorts, <br/>                                       int nbsorts)<br/>
+</pre><p>reorder the current node list accordingly to the set of sorting requirement provided by the arry of 
nodes.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>sorts</tt></i>:</span></td><td>array of sort nodes</td></tr><tr><td><span 
class="term"><i><tt>nbsorts</tt></i>:</span></td><td>the number of sorts in the 
array</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDoSortFunction"/>xsltDoSortFunction ()</h3><pre 
class="programlisting">void   xsltDoSortFunction              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr * sorts, <br/>                                       int nbsorts)<br/>
+</pre><p>reorder the current node list accordingly to the set of sorting requirement provided by the arry of 
nodes. This is a wrapper function, the actual function used is specified using xsltSetCtxtSortFunc() to set 
the context specific sort function, or xsltSetSortFunc() to set the global sort function. If a sort function 
is set on the context, this will get called. Otherwise the global sort function is called.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>sorts</tt></i>:</span></td><td>array of sort nodes</td></tr><tr><td><span 
class="term"><i><tt>nbsorts</tt></i>:</span></td><td>the number of sorts in the 
array</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltDocumentSortFunction"/>xsltDocumentSortFunction 
()</h3><pre class="programlisting">void       xsltDocumentSortFunction        (xmlNodeSetPtr list)<br/>
+</pre><p>reorder the current node list @list accordingly to the document order This function is slow, 
obsolete and should not be used anymore.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>list</tt></i>:</span></td><td>the node set</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetCNsProp"/>xsltGetCNsProp ()</h3><pre 
class="programlisting">const xmlChar *        xsltGetCNsProp          (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr node, <br/>                                  const xmlChar * name, <br/>            
                         const xmlChar * nameSpace)<br/>
+</pre><p>Similar to xmlGetNsProp() but with a slightly different semantic Search and get the value of an 
attribute associated to a node This attribute has to be anchored in the namespace specified, or has no 
namespace and the element is in that namespace. This does the entity substitution. This function looks in DTD 
attribute declaration for #FIXED or default declaration values unless DTD use has been turned off.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the attribute name</td></tr><tr><td><span 
class="term"><i><tt>nameSpace</tt></i>:</span></td><td>the URI of the namespace</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the attribute value or NULL if not found. The string is 
allocated in the stylesheet dictionary.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetDebuggerStatus"/>xsltGetDebuggerStatus 
()</h3><pre class="programlisting">int      xsltGetDebuggerStatus           (void)<br/>
+</pre><p>Get xslDebugStatus.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the value of 
xslDebugStatus.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetNsProp"/>xsltGetNsProp ()</h3><pre 
class="programlisting">xmlChar *        xsltGetNsProp           (xmlNodePtr node, <br/>                       
           const xmlChar * name, <br/>                                     const xmlChar * nameSpace)<br/>
+</pre><p>Similar to xmlGetNsProp() but with a slightly different semantic Search and get the value of an 
attribute associated to a node This attribute has to be anchored in the namespace specified, or has no 
namespace and the element is in that namespace. This does the entity substitution. This function looks in DTD 
attribute declaration for #FIXED or default declaration values unless DTD use has been turned off.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the node</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the attribute name</td></tr><tr><td><span 
class="term"><i><tt>nameSpace</tt></i>:</span></td><td>the URI of the namespace</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the attribute value or NULL if not found. It's up to the 
caller to free the memory.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetProfileInformation"/>xsltGetProfileInformation 
()</h3><pre class="programlisting">xmlDocPtr        xsltGetProfileInformation       (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt)<br/>
+</pre><p>This function should be called after the transformation completed to extract template processing 
profiling information if available. The information is returned as an XML document tree like &lt;?xml 
version="1.0"?&gt; &lt;profile&gt; &lt;template rank="1" match="*" name="" mode="" calls="6" time="48" 
average="8"/&gt; &lt;template rank="2" match="item2|item3" name="" mode="" calls="10" time="30" 
average="3"/&gt; &lt;template rank="3" match="item1" name="" mode="" calls="5" time="17" average="3"/&gt; 
&lt;/profile&gt; The caller will need to free up the returned tree with xmlFreeDoc()</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a transformation context</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the xmlDocPtr corresponding to the result or NULL if not 
available.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetQNameURI"/>xsltGetQNameURI ()</h3><pre 
class="programlisting">const xmlChar *      xsltGetQNameURI         (xmlNodePtr node, <br/>                   
               xmlChar ** name)<br/>
+</pre><p>This function analyzes @name, if the name contains a prefix, the function seaches the associated 
namespace in scope for it. It will also replace @name value with the NCName, the old value being freed. 
Errors in the prefix lookup are signalled by setting @name to NULL. NOTE: the namespace returned is a pointer 
to the place where it is defined and hence has the same lifespan as the document holding it.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the node holding the QName</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>pointer to the initial QName value</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace URI if there is a prefix, or NULL if @name 
is not prefixed.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetQNameURI2"/>xsltGetQNameURI2 ()</h3><pre 
class="programlisting">const xmlChar *    xsltGetQNameURI2        (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               xmlNodePtr node, <br/>                                  const xmlChar ** name)<br/>
+</pre><p>This function is similar to xsltGetQNameURI, but is used when @name is a dictionary entry.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>stylesheet pointer</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the node holding the QName</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>pointer to the initial QName value</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the namespace URI if there is a prefix, or NULL if @name 
is not prefixed.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltGetUTF8Char"/>xsltGetUTF8Char ()</h3><pre 
class="programlisting">int  xsltGetUTF8Char                 (const unsigned char * utf, <br/>                 
                       int * len)<br/>
+</pre><p>Read one UTF8 Char from @utf Function copied from libxml2 xmlGetUTF8Char() ... to discard 
ultimately and use the original API</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>utf</tt></i>:</span></td><td>a sequence of UTF-8 encoded bytes</td></tr><tr><td><span 
class="term"><i><tt>len</tt></i>:</span></td><td>a pointer to @bytes len</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the char value or -1 in case of error and update @len 
with the number of bytes used</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltMessage"/>xsltMessage ()</h3><pre 
class="programlisting">void xsltMessage                     (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       xmlNodePtr node, <br/>                                  xmlNodePtr inst)<br/>
+</pre><p>Process and xsl:message construct</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT processing context</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>The current node</td></tr><tr><td><span 
class="term"><i><tt>inst</tt></i>:</span></td><td>The node containing the message 
instruction</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltPrintErrorContext"/>xsltPrintErrorContext 
()</h3><pre class="programlisting">void     xsltPrintErrorContext           (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, 
<br/>                                       xmlNodePtr node)<br/>
+</pre><p>Display the context of an error.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the transformation context</td></tr><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the current node being 
processed</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSaveProfiling"/>xsltSaveProfiling ()</h3><pre 
class="programlisting">void     xsltSaveProfiling               (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       FILE * output)<br/>
+</pre><p>Save the profiling information on @output</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT context</td></tr><tr><td><span 
class="term"><i><tt>output</tt></i>:</span></td><td>a FILE * for saving the 
information</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSaveResultTo"/>xsltSaveResultTo ()</h3><pre 
class="programlisting">int        xsltSaveResultTo                (xmlOutputBufferPtr buf, <br/>              
                     xmlDocPtr result, <br/>                                         <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Save the result @result obtained by applying the @style stylesheet to an I/O output channel @buf</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>buf</tt></i>:</span></td><td>an output buffer</td></tr><tr><td><span 
class="term"><i><tt>result</tt></i>:</span></td><td>the result xmlDocPtr</td></tr><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte written or -1 in case of 
failure.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSaveResultToFd"/>xsltSaveResultToFd ()</h3><pre 
class="programlisting">int    xsltSaveResultToFd              (int fd, <br/>                                  
 xmlDocPtr result, <br/>                                         <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Save the result @result obtained by applying the @style stylesheet to an open file descriptor This 
does not close the descriptor.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>fd</tt></i>:</span></td><td>a file descriptor</td></tr><tr><td><span 
class="term"><i><tt>result</tt></i>:</span></td><td>the result xmlDocPtr</td></tr><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of 
failure.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSaveResultToFile"/>xsltSaveResultToFile ()</h3><pre 
class="programlisting">int        xsltSaveResultToFile            (FILE * file, <br/>                         
             xmlDocPtr result, <br/>                                         <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Save the result @result obtained by applying the @style stylesheet to an open FILE * I/O. This does 
not close the FILE @file</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>file</tt></i>:</span></td><td>a FILE * I/O</td></tr><tr><td><span 
class="term"><i><tt>result</tt></i>:</span></td><td>the result xmlDocPtr</td></tr><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of bytes written or -1 in case of 
failure.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSaveResultToFilename"/>xsltSaveResultToFilename 
()</h3><pre class="programlisting">int        xsltSaveResultToFilename        (const char * URL, <br/>        
                                 xmlDocPtr result, <br/>                                         <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
               int compression)<br/>
+</pre><p>Save the result @result obtained by applying the @style stylesheet to a file or @URL</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>URL</tt></i>:</span></td><td>a filename or URL</td></tr><tr><td><span 
class="term"><i><tt>result</tt></i>:</span></td><td>the result xmlDocPtr</td></tr><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>compression</tt></i>:</span></td><td>the compression factor (0 - 9 
included)</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of byte 
written or -1 in case of failure.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSaveResultToString"/>xsltSaveResultToString 
()</h3><pre class="programlisting">int    xsltSaveResultToString          (xmlChar ** doc_txt_ptr, <br/>      
                             int * doc_txt_len, <br/>                                        xmlDocPtr 
result, <br/>                                         <a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style)<br/>
+</pre><p>Save the result @result obtained by applying the @style stylesheet to a new allocated string.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>doc_txt_ptr</tt></i>:</span></td><td>Memory pointer for allocated XML 
text</td></tr><tr><td><span class="term"><i><tt>doc_txt_len</tt></i>:</span></td><td>Length of the generated 
XML text</td></tr><tr><td><span class="term"><i><tt>result</tt></i>:</span></td><td>the result 
xmlDocPtr</td></tr><tr><td><span class="term"><i><tt>style</tt></i>:</span></td><td>the 
stylesheet</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success 
and -1 in case of error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSetCtxtParseOptions"/>xsltSetCtxtParseOptions 
()</h3><pre class="programlisting">int  xsltSetCtxtParseOptions         (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       int options)<br/>
+</pre><p>Change the default parser option passed by the XSLT engine to the parser when using document() 
loading.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>options</tt></i>:</span></td><td>a combination of libxml2 
xmlParserOption</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the previous 
options or -1 in case of error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSetCtxtSortFunc"/>xsltSetCtxtSortFunc ()</h3><pre 
class="programlisting">void xsltSetCtxtSortFunc             (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> handler)<br/>
+</pre><p>Function to set the handler for XSLT sorting for the specified context. If the handler is NULL, 
then the global sort function will be called</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>a XSLT process context</td></tr><tr><td><span 
class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler 
function</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSetDebuggerCallbacks"/>xsltSetDebuggerCallbacks 
()</h3><pre class="programlisting">int        xsltSetDebuggerCallbacks        (int no, <br/>                  
                 void * block)<br/>
+</pre><p>This function allow to plug a debugger into the XSLT library @block points to a block of memory 
containing the address of @no callback routines.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>no</tt></i>:</span></td><td>number of callbacks</td></tr><tr><td><span 
class="term"><i><tt>block</tt></i>:</span></td><td>the block of callbacks</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>0 in case of success and -1 in case of 
error</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSetDebuggerStatus"/>xsltSetDebuggerStatus 
()</h3><pre class="programlisting">void     xsltSetDebuggerStatus           (int value)<br/>
+</pre><p>This function sets the value of xslDebugStatus.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>value</tt></i>:</span></td><td>the value to be set</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSetGenericDebugFunc"/>xsltSetGenericDebugFunc 
()</h3><pre class="programlisting">void xsltSetGenericDebugFunc         (void * ctx, <br/>                    
                   xmlGenericErrorFunc handler)<br/>
+</pre><p>Function to reset the handler and the error context for out of context error messages. This simply 
means that @handler will be called for subsequent error messages while not parsing or validating. And @ctx 
will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * 
than stderr by setting @ctx to this file handle and @handler to NULL.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctx</tt></i>:</span></td><td>the new error handling context</td></tr><tr><td><span 
class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler 
function</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSetGenericErrorFunc"/>xsltSetGenericErrorFunc 
()</h3><pre class="programlisting">void xsltSetGenericErrorFunc         (void * ctx, <br/>                    
                   xmlGenericErrorFunc handler)<br/>
+</pre><p>Function to reset the handler and the error context for out of context error messages. This simply 
means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx 
will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * 
than stderr by setting @ctx to this file handle and @handler to NULL.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctx</tt></i>:</span></td><td>the new error handling context</td></tr><tr><td><span 
class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler 
function</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSetSortFunc"/>xsltSetSortFunc ()</h3><pre 
class="programlisting">void xsltSetSortFunc                 (<a 
href="libxslt-xsltInternals.html#xsltSortFunc">xsltSortFunc</a> handler)<br/>
+</pre><p>Function to reset the global handler for XSLT sorting. If the handler is NULL, the default sort 
function will be used.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler 
function</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSetTransformErrorFunc"/>xsltSetTransformErrorFunc 
()</h3><pre class="programlisting">void     xsltSetTransformErrorFunc       (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       void * ctx, <br/>                                       xmlGenericErrorFunc 
handler)<br/>
+</pre><p>Function to reset the handler and the error context for out of context error messages specific to a 
given XSLT transromation. This simply means that @handler will be called for subsequent error messages while 
running the transformation.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>the XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>ctx</tt></i>:</span></td><td>the new error handling context</td></tr><tr><td><span 
class="term"><i><tt>handler</tt></i>:</span></td><td>the new handler 
function</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltSplitQName"/>xsltSplitQName ()</h3><pre 
class="programlisting">const xmlChar *        xsltSplitQName          (xmlDictPtr dict, <br/>                 
                 const xmlChar * name, <br/>                                     const xmlChar ** prefix)<br/>
+</pre><p>Split QNames into prefix and local names, both allocated from a dictionary.</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>dict</tt></i>:</span></td><td>a dictionary</td></tr><tr><td><span 
class="term"><i><tt>name</tt></i>:</span></td><td>the full QName</td></tr><tr><td><span 
class="term"><i><tt>prefix</tt></i>:</span></td><td>the return value</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the localname or NULL in case of 
error.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltTimestamp"/>xsltTimestamp ()</h3><pre 
class="programlisting">long     xsltTimestamp                   (void)<br/>
+</pre><p>Used for gathering profiling data</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the number of tenth of milliseconds since the beginning 
of the profiling</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltTransformError"/>xsltTransformError ()</h3><pre 
class="programlisting">void   xsltTransformError              (<a 
href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt, <br/>             
                       <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, 
<br/>                                       xmlNodePtr node, <br/>                                  const 
char * msg, <br/>                                         ... ...)<br/>
+</pre><p>Display and format an error messages, gives file, line, position and extra parameters, will use the 
specific transformation context if available</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>ctxt</tt></i>:</span></td><td>an XSLT transformation context</td></tr><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the XSLT stylesheet used</td></tr><tr><td><span 
class="term"><i><tt>node</tt></i>:</span></td><td>the current node in the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>msg</tt></i>:</span></td><td>the message to display/transmit</td></tr><tr><td><span 
class="term"><i><tt>...</tt></i>:</span></td><td>extra parameters for the message 
display</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltXPathCompile"/>xsltXPathCompile ()</h3><pre 
class="programlisting">xmlXPathCompExprPtr        xsltXPathCompile        (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                       const xmlChar * str)<br/>
+</pre><p>Compile an XPath expression</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span 
class="term"><i><tt>Returns</tt></i>:</span></td><td>the xmlXPathCompExprPtr resulting from the compilation 
or NULL. the caller has to free the object.</td></tr></tbody></table></div></div>
+        <hr/>
+        <div class="refsect2" lang="en"><h3><a name="xsltXPathCompileFlags"/>xsltXPathCompileFlags 
()</h3><pre class="programlisting">xmlXPathCompExprPtr      xsltXPathCompileFlags   (<a 
href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style, <br/>                        
                       const xmlChar * str, <br/>                                              int flags)<br/>
+</pre><p>Compile an XPath expression</p>
+<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span 
class="term"><i><tt>style</tt></i>:</span></td><td>the stylesheet</td></tr><tr><td><span 
class="term"><i><tt>str</tt></i>:</span></td><td>the XPath expression</td></tr><tr><td><span 
class="term"><i><tt>flags</tt></i>:</span></td><td>extra compilation flags to pass down to libxml2 
XPath</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>the xmlXPathCompExprPtr 
resulting from the compilation or NULL. the caller has to free the 
object.</td></tr></tbody></table></div></div>
+        <hr/>
+      </div>
+    </div>
+  </body>
+</html>
diff --git a/doc/devhelp/libxslt.devhelp2 b/doc/devhelp/libxslt.devhelp2
new file mode 100644
index 00000000..4a44f803
--- /dev/null
+++ b/doc/devhelp/libxslt.devhelp2
@@ -0,0 +1,558 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<book xmlns="http://www.devhelp.net/book"; title="libxslt Reference Manual" link="index.html" author="" 
name="libxslt">
+  <chapters>
+    <sub name="API" link="general.html">
+      <sub name="attributes" link="libxslt-attributes.html"/>
+      <sub name="documents" link="libxslt-documents.html"/>
+      <sub name="extensions" link="libxslt-extensions.html"/>
+      <sub name="extra" link="libxslt-extra.html"/>
+      <sub name="functions" link="libxslt-functions.html"/>
+      <sub name="imports" link="libxslt-imports.html"/>
+      <sub name="keys" link="libxslt-keys.html"/>
+      <sub name="namespaces" link="libxslt-namespaces.html"/>
+      <sub name="numbersInternals" link="libxslt-numbersInternals.html"/>
+      <sub name="pattern" link="libxslt-pattern.html"/>
+      <sub name="preproc" link="libxslt-preproc.html"/>
+      <sub name="security" link="libxslt-security.html"/>
+      <sub name="templates" link="libxslt-templates.html"/>
+      <sub name="transform" link="libxslt-transform.html"/>
+      <sub name="variables" link="libxslt-variables.html"/>
+      <sub name="xslt" link="libxslt-xslt.html"/>
+      <sub name="xsltInternals" link="libxslt-xsltInternals.html"/>
+      <sub name="xsltexports" link="libxslt-xsltexports.html"/>
+      <sub name="xsltlocale" link="libxslt-xsltlocale.html"/>
+      <sub name="xsltutils" link="libxslt-xsltutils.html"/>
+    </sub>
+  </chapters>
+  <functions>
+    <keyword type="macro" name="CHECK_STOPPED" link="libxslt-xsltInternals.html#CHECK_STOPPED"/>
+    <keyword type="macro" name="CHECK_STOPPED0" link="libxslt-xsltInternals.html#CHECK_STOPPED0"/>
+    <keyword type="macro" name="CHECK_STOPPEDE" link="libxslt-xsltInternals.html#CHECK_STOPPEDE"/>
+    <keyword type="macro" name="IS_XSLT_ATTR_FAST" link="libxslt-xsltInternals.html#IS_XSLT_ATTR_FAST"/>
+    <keyword type="macro" name="IS_XSLT_ELEM" link="libxslt-xsltutils.html#IS_XSLT_ELEM"/>
+    <keyword type="macro" name="IS_XSLT_ELEM_FAST" link="libxslt-xsltInternals.html#IS_XSLT_ELEM_FAST"/>
+    <keyword type="macro" name="IS_XSLT_NAME" link="libxslt-xsltutils.html#IS_XSLT_NAME"/>
+    <keyword type="macro" name="IS_XSLT_REAL_NODE" link="libxslt-xsltutils.html#IS_XSLT_REAL_NODE"/>
+    <keyword type="macro" name="LIBXSLT_PUBLIC" link="libxslt-xsltexports.html#LIBXSLT_PUBLIC"/>
+    <keyword type="macro" name="NODE_IS_KEYED" link="libxslt-keys.html#NODE_IS_KEYED"/>
+    <keyword type="macro" name="UNDEFINED_DEFAULT_NS" link="libxslt-namespaces.html#UNDEFINED_DEFAULT_NS"/>
+    <keyword type="macro" name="XML_CAST_FPTR" link="libxslt-xsltInternals.html#XML_CAST_FPTR"/>
+    <keyword type="macro" name="XSLTCALL" link="libxslt-xsltexports.html#XSLTCALL"/>
+    <keyword type="macro" name="XSLTPUBFUN" link="libxslt-xsltexports.html#XSLTPUBFUN"/>
+    <keyword type="macro" name="XSLTPUBVAR" link="libxslt-xsltexports.html#XSLTPUBVAR"/>
+    <keyword type="macro" name="XSLT_CCTXT" link="libxslt-xsltInternals.html#XSLT_CCTXT"/>
+    <keyword type="macro" name="XSLT_DEFAULT_URL" link="libxslt-xslt.html#XSLT_DEFAULT_URL"/>
+    <keyword type="macro" name="XSLT_DEFAULT_VENDOR" link="libxslt-xslt.html#XSLT_DEFAULT_VENDOR"/>
+    <keyword type="macro" name="XSLT_DEFAULT_VERSION" link="libxslt-xslt.html#XSLT_DEFAULT_VERSION"/>
+    <keyword type="macro" name="XSLT_FAST_IF" link="libxslt-xsltInternals.html#XSLT_FAST_IF"/>
+    <keyword type="macro" name="XSLT_GET_IMPORT_INT" link="libxslt-imports.html#XSLT_GET_IMPORT_INT"/>
+    <keyword type="macro" name="XSLT_GET_IMPORT_PTR" link="libxslt-imports.html#XSLT_GET_IMPORT_PTR"/>
+    <keyword type="macro" name="XSLT_GET_INTERNAL_NSMAP" 
link="libxslt-xsltInternals.html#XSLT_GET_INTERNAL_NSMAP"/>
+    <keyword type="macro" name="XSLT_HAS_INTERNAL_NSMAP" 
link="libxslt-xsltInternals.html#XSLT_HAS_INTERNAL_NSMAP"/>
+    <keyword type="macro" name="XSLT_IS_RES_TREE_FRAG" 
link="libxslt-xsltInternals.html#XSLT_IS_RES_TREE_FRAG"/>
+    <keyword type="macro" name="XSLT_IS_TEXT_NODE" link="libxslt-xsltInternals.html#XSLT_IS_TEXT_NODE"/>
+    <keyword type="macro" name="XSLT_ITEM_COMMON_FIELDS" 
link="libxslt-xsltInternals.html#XSLT_ITEM_COMMON_FIELDS"/>
+    <keyword type="macro" name="XSLT_ITEM_COMPATIBILITY_FIELDS" 
link="libxslt-xsltInternals.html#XSLT_ITEM_COMPATIBILITY_FIELDS"/>
+    <keyword type="macro" name="XSLT_ITEM_NAVIGATION_FIELDS" 
link="libxslt-xsltInternals.html#XSLT_ITEM_NAVIGATION_FIELDS"/>
+    <keyword type="macro" name="XSLT_ITEM_NSINSCOPE_FIELDS" 
link="libxslt-xsltInternals.html#XSLT_ITEM_NSINSCOPE_FIELDS"/>
+    <keyword type="macro" name="XSLT_LIBXSLT_NAMESPACE" link="libxslt-extra.html#XSLT_LIBXSLT_NAMESPACE"/>
+    <keyword type="macro" name="XSLT_LOCALE_NONE" link="libxslt-xsltlocale.html#XSLT_LOCALE_NONE"/>
+    <keyword type="macro" name="XSLT_LOCALE_POSIX" link="libxslt-xsltlocale.html#XSLT_LOCALE_POSIX"/>
+    <keyword type="macro" name="XSLT_LOCALE_WINAPI" link="libxslt-xsltlocale.html#XSLT_LOCALE_WINAPI"/>
+    <keyword type="macro" name="XSLT_MARK_RES_TREE_FRAG" 
link="libxslt-xsltInternals.html#XSLT_MARK_RES_TREE_FRAG"/>
+    <keyword type="macro" name="XSLT_MAX_SORT" link="libxslt-xsltInternals.html#XSLT_MAX_SORT"/>
+    <keyword type="macro" name="XSLT_NAMESPACE" link="libxslt-xslt.html#XSLT_NAMESPACE"/>
+    <keyword type="macro" name="XSLT_PARSE_OPTIONS" link="libxslt-xslt.html#XSLT_PARSE_OPTIONS"/>
+    <keyword type="macro" name="XSLT_PAT_NO_PRIORITY" 
link="libxslt-xsltInternals.html#XSLT_PAT_NO_PRIORITY"/>
+    <keyword type="macro" name="XSLT_REFACTORED_KEYCOMP" 
link="libxslt-xsltInternals.html#XSLT_REFACTORED_KEYCOMP"/>
+    <keyword type="macro" name="XSLT_REFACTORED_VARS" 
link="libxslt-xsltInternals.html#XSLT_REFACTORED_VARS"/>
+    <keyword type="macro" name="XSLT_REGISTER_FUNCTION_LOOKUP" 
link="libxslt-functions.html#XSLT_REGISTER_FUNCTION_LOOKUP"/>
+    <keyword type="macro" name="XSLT_REGISTER_VARIABLE_LOOKUP" 
link="libxslt-variables.html#XSLT_REGISTER_VARIABLE_LOOKUP"/>
+    <keyword type="macro" name="XSLT_RUNTIME_EXTRA" link="libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA"/>
+    <keyword type="macro" name="XSLT_RUNTIME_EXTRA_FREE" 
link="libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_FREE"/>
+    <keyword type="macro" name="XSLT_RUNTIME_EXTRA_LST" 
link="libxslt-xsltInternals.html#XSLT_RUNTIME_EXTRA_LST"/>
+    <keyword type="macro" name="XSLT_RVT_FUNC_RESULT" link="libxslt-variables.html#XSLT_RVT_FUNC_RESULT"/>
+    <keyword type="macro" name="XSLT_RVT_GLOBAL" link="libxslt-variables.html#XSLT_RVT_GLOBAL"/>
+    <keyword type="macro" name="XSLT_RVT_LOCAL" link="libxslt-variables.html#XSLT_RVT_LOCAL"/>
+    <keyword type="macro" name="XSLT_SAXON_NAMESPACE" link="libxslt-extra.html#XSLT_SAXON_NAMESPACE"/>
+    <keyword type="macro" name="XSLT_STRANGE" link="libxslt-xsltutils.html#XSLT_STRANGE"/>
+    <keyword type="macro" name="XSLT_TIMESTAMP_TICS_PER_SEC" 
link="libxslt-xsltutils.html#XSLT_TIMESTAMP_TICS_PER_SEC"/>
+    <keyword type="macro" name="XSLT_TODO" link="libxslt-xsltutils.html#XSLT_TODO"/>
+    <keyword type="macro" name="XSLT_TRACE" link="libxslt-xsltutils.html#XSLT_TRACE"/>
+    <keyword type="macro" name="XSLT_XALAN_NAMESPACE" link="libxslt-extra.html#XSLT_XALAN_NAMESPACE"/>
+    <keyword type="macro" name="XSLT_XT_NAMESPACE" link="libxslt-extra.html#XSLT_XT_NAMESPACE"/>
+    <keyword type="macro" name="_REENTRANT" link="libxslt-xsltexports.html#_REENTRANT"/>
+    <keyword type="enum" name="XSLT_DEBUG_CONT" link="libxslt-xsltutils.html#XSLT_DEBUG_CONT"/>
+    <keyword type="enum" name="XSLT_DEBUG_INIT" link="libxslt-xsltutils.html#XSLT_DEBUG_INIT"/>
+    <keyword type="enum" name="XSLT_DEBUG_NEXT" link="libxslt-xsltutils.html#XSLT_DEBUG_NEXT"/>
+    <keyword type="enum" name="XSLT_DEBUG_NONE" link="libxslt-xsltutils.html#XSLT_DEBUG_NONE"/>
+    <keyword type="enum" name="XSLT_DEBUG_QUIT" link="libxslt-xsltutils.html#XSLT_DEBUG_QUIT"/>
+    <keyword type="enum" name="XSLT_DEBUG_RUN" link="libxslt-xsltutils.html#XSLT_DEBUG_RUN"/>
+    <keyword type="enum" name="XSLT_DEBUG_RUN_RESTART" link="libxslt-xsltutils.html#XSLT_DEBUG_RUN_RESTART"/>
+    <keyword type="enum" name="XSLT_DEBUG_STEP" link="libxslt-xsltutils.html#XSLT_DEBUG_STEP"/>
+    <keyword type="enum" name="XSLT_DEBUG_STEPOUT" link="libxslt-xsltutils.html#XSLT_DEBUG_STEPOUT"/>
+    <keyword type="enum" name="XSLT_DEBUG_STOP" link="libxslt-xsltutils.html#XSLT_DEBUG_STOP"/>
+    <keyword type="enum" name="XSLT_ERROR_SEVERITY_ERROR" 
link="libxslt-xsltInternals.html#XSLT_ERROR_SEVERITY_ERROR"/>
+    <keyword type="enum" name="XSLT_ERROR_SEVERITY_WARNING" 
link="libxslt-xsltInternals.html#XSLT_ERROR_SEVERITY_WARNING"/>
+    <keyword type="enum" name="XSLT_FUNC_APPLYIMPORTS" 
link="libxslt-xsltInternals.html#XSLT_FUNC_APPLYIMPORTS"/>
+    <keyword type="enum" name="XSLT_FUNC_APPLYTEMPLATES" 
link="libxslt-xsltInternals.html#XSLT_FUNC_APPLYTEMPLATES"/>
+    <keyword type="enum" name="XSLT_FUNC_ATTRIBUTE" link="libxslt-xsltInternals.html#XSLT_FUNC_ATTRIBUTE"/>
+    <keyword type="enum" name="XSLT_FUNC_ATTRSET" link="libxslt-xsltInternals.html#XSLT_FUNC_ATTRSET"/>
+    <keyword type="enum" name="XSLT_FUNC_CALLTEMPLATE" 
link="libxslt-xsltInternals.html#XSLT_FUNC_CALLTEMPLATE"/>
+    <keyword type="enum" name="XSLT_FUNC_CHOOSE" link="libxslt-xsltInternals.html#XSLT_FUNC_CHOOSE"/>
+    <keyword type="enum" name="XSLT_FUNC_COMMENT" link="libxslt-xsltInternals.html#XSLT_FUNC_COMMENT"/>
+    <keyword type="enum" name="XSLT_FUNC_COPY" link="libxslt-xsltInternals.html#XSLT_FUNC_COPY"/>
+    <keyword type="enum" name="XSLT_FUNC_COPYOF" link="libxslt-xsltInternals.html#XSLT_FUNC_COPYOF"/>
+    <keyword type="enum" name="XSLT_FUNC_DOCUMENT" link="libxslt-xsltInternals.html#XSLT_FUNC_DOCUMENT"/>
+    <keyword type="enum" name="XSLT_FUNC_ELEMENT" link="libxslt-xsltInternals.html#XSLT_FUNC_ELEMENT"/>
+    <keyword type="enum" name="XSLT_FUNC_EXTENSION" link="libxslt-xsltInternals.html#XSLT_FUNC_EXTENSION"/>
+    <keyword type="enum" name="XSLT_FUNC_FALLBACK" link="libxslt-xsltInternals.html#XSLT_FUNC_FALLBACK"/>
+    <keyword type="enum" name="XSLT_FUNC_FOREACH" link="libxslt-xsltInternals.html#XSLT_FUNC_FOREACH"/>
+    <keyword type="enum" name="XSLT_FUNC_IF" link="libxslt-xsltInternals.html#XSLT_FUNC_IF"/>
+    <keyword type="enum" name="XSLT_FUNC_INCLUDE" link="libxslt-xsltInternals.html#XSLT_FUNC_INCLUDE"/>
+    <keyword type="enum" name="XSLT_FUNC_LITERAL_RESULT_ELEMENT" 
link="libxslt-xsltInternals.html#XSLT_FUNC_LITERAL_RESULT_ELEMENT"/>
+    <keyword type="enum" name="XSLT_FUNC_MESSAGE" link="libxslt-xsltInternals.html#XSLT_FUNC_MESSAGE"/>
+    <keyword type="enum" name="XSLT_FUNC_NUMBER" link="libxslt-xsltInternals.html#XSLT_FUNC_NUMBER"/>
+    <keyword type="enum" name="XSLT_FUNC_OTHERWISE" link="libxslt-xsltInternals.html#XSLT_FUNC_OTHERWISE"/>
+    <keyword type="enum" name="XSLT_FUNC_PARAM" link="libxslt-xsltInternals.html#XSLT_FUNC_PARAM"/>
+    <keyword type="enum" name="XSLT_FUNC_PI" link="libxslt-xsltInternals.html#XSLT_FUNC_PI"/>
+    <keyword type="enum" name="XSLT_FUNC_SORT" link="libxslt-xsltInternals.html#XSLT_FUNC_SORT"/>
+    <keyword type="enum" name="XSLT_FUNC_TEXT" link="libxslt-xsltInternals.html#XSLT_FUNC_TEXT"/>
+    <keyword type="enum" name="XSLT_FUNC_UNKOWN_FORWARDS_COMPAT" 
link="libxslt-xsltInternals.html#XSLT_FUNC_UNKOWN_FORWARDS_COMPAT"/>
+    <keyword type="enum" name="XSLT_FUNC_VALUEOF" link="libxslt-xsltInternals.html#XSLT_FUNC_VALUEOF"/>
+    <keyword type="enum" name="XSLT_FUNC_VARIABLE" link="libxslt-xsltInternals.html#XSLT_FUNC_VARIABLE"/>
+    <keyword type="enum" name="XSLT_FUNC_WHEN" link="libxslt-xsltInternals.html#XSLT_FUNC_WHEN"/>
+    <keyword type="enum" name="XSLT_FUNC_WITHPARAM" link="libxslt-xsltInternals.html#XSLT_FUNC_WITHPARAM"/>
+    <keyword type="enum" name="XSLT_LOAD_DOCUMENT" link="libxslt-documents.html#XSLT_LOAD_DOCUMENT"/>
+    <keyword type="enum" name="XSLT_LOAD_START" link="libxslt-documents.html#XSLT_LOAD_START"/>
+    <keyword type="enum" name="XSLT_LOAD_STYLESHEET" link="libxslt-documents.html#XSLT_LOAD_STYLESHEET"/>
+    <keyword type="enum" name="XSLT_OUTPUT_HTML" link="libxslt-xsltInternals.html#XSLT_OUTPUT_HTML"/>
+    <keyword type="enum" name="XSLT_OUTPUT_TEXT" link="libxslt-xsltInternals.html#XSLT_OUTPUT_TEXT"/>
+    <keyword type="enum" name="XSLT_OUTPUT_XML" link="libxslt-xsltInternals.html#XSLT_OUTPUT_XML"/>
+    <keyword type="enum" name="XSLT_SECPREF_CREATE_DIRECTORY" 
link="libxslt-security.html#XSLT_SECPREF_CREATE_DIRECTORY"/>
+    <keyword type="enum" name="XSLT_SECPREF_READ_FILE" link="libxslt-security.html#XSLT_SECPREF_READ_FILE"/>
+    <keyword type="enum" name="XSLT_SECPREF_READ_NETWORK" 
link="libxslt-security.html#XSLT_SECPREF_READ_NETWORK"/>
+    <keyword type="enum" name="XSLT_SECPREF_WRITE_FILE" 
link="libxslt-security.html#XSLT_SECPREF_WRITE_FILE"/>
+    <keyword type="enum" name="XSLT_SECPREF_WRITE_NETWORK" 
link="libxslt-security.html#XSLT_SECPREF_WRITE_NETWORK"/>
+    <keyword type="enum" name="XSLT_STATE_ERROR" link="libxslt-xsltInternals.html#XSLT_STATE_ERROR"/>
+    <keyword type="enum" name="XSLT_STATE_OK" link="libxslt-xsltInternals.html#XSLT_STATE_OK"/>
+    <keyword type="enum" name="XSLT_STATE_STOPPED" link="libxslt-xsltInternals.html#XSLT_STATE_STOPPED"/>
+    <keyword type="enum" name="XSLT_TRACE_ALL" link="libxslt-xsltutils.html#XSLT_TRACE_ALL"/>
+    <keyword type="enum" name="XSLT_TRACE_APPLY_TEMPLATE" 
link="libxslt-xsltutils.html#XSLT_TRACE_APPLY_TEMPLATE"/>
+    <keyword type="enum" name="XSLT_TRACE_APPLY_TEMPLATES" 
link="libxslt-xsltutils.html#XSLT_TRACE_APPLY_TEMPLATES"/>
+    <keyword type="enum" name="XSLT_TRACE_CALL_TEMPLATE" 
link="libxslt-xsltutils.html#XSLT_TRACE_CALL_TEMPLATE"/>
+    <keyword type="enum" name="XSLT_TRACE_CHOOSE" link="libxslt-xsltutils.html#XSLT_TRACE_CHOOSE"/>
+    <keyword type="enum" name="XSLT_TRACE_COMMENT" link="libxslt-xsltutils.html#XSLT_TRACE_COMMENT"/>
+    <keyword type="enum" name="XSLT_TRACE_COPY" link="libxslt-xsltutils.html#XSLT_TRACE_COPY"/>
+    <keyword type="enum" name="XSLT_TRACE_COPY_OF" link="libxslt-xsltutils.html#XSLT_TRACE_COPY_OF"/>
+    <keyword type="enum" name="XSLT_TRACE_COPY_TEXT" link="libxslt-xsltutils.html#XSLT_TRACE_COPY_TEXT"/>
+    <keyword type="enum" name="XSLT_TRACE_FOR_EACH" link="libxslt-xsltutils.html#XSLT_TRACE_FOR_EACH"/>
+    <keyword type="enum" name="XSLT_TRACE_IF" link="libxslt-xsltutils.html#XSLT_TRACE_IF"/>
+    <keyword type="enum" name="XSLT_TRACE_KEYS" link="libxslt-xsltutils.html#XSLT_TRACE_KEYS"/>
+    <keyword type="enum" name="XSLT_TRACE_NONE" link="libxslt-xsltutils.html#XSLT_TRACE_NONE"/>
+    <keyword type="enum" name="XSLT_TRACE_PI" link="libxslt-xsltutils.html#XSLT_TRACE_PI"/>
+    <keyword type="enum" name="XSLT_TRACE_PROCESS_NODE" 
link="libxslt-xsltutils.html#XSLT_TRACE_PROCESS_NODE"/>
+    <keyword type="enum" name="XSLT_TRACE_STRIP_SPACES" 
link="libxslt-xsltutils.html#XSLT_TRACE_STRIP_SPACES"/>
+    <keyword type="enum" name="XSLT_TRACE_TEMPLATES" link="libxslt-xsltutils.html#XSLT_TRACE_TEMPLATES"/>
+    <keyword type="enum" name="XSLT_TRACE_VALUE_OF" link="libxslt-xsltutils.html#XSLT_TRACE_VALUE_OF"/>
+    <keyword type="enum" name="XSLT_TRACE_VARIABLES" link="libxslt-xsltutils.html#XSLT_TRACE_VARIABLES"/>
+    <keyword type="typedef" name="xsltCompMatchPtr" link="libxslt-pattern.html#xsltCompMatchPtr"/>
+    <keyword type="typedef" name="xsltCompilerCtxtPtr" 
link="libxslt-xsltInternals.html#xsltCompilerCtxtPtr"/>
+    <keyword type="typedef" name="xsltCompilerNodeInfoPtr" 
link="libxslt-xsltInternals.html#xsltCompilerNodeInfoPtr"/>
+    <keyword type="typedef" name="xsltDebugStatusCodes" link="libxslt-xsltutils.html#xsltDebugStatusCodes"/>
+    <keyword type="typedef" name="xsltDebugTraceCodes" link="libxslt-xsltutils.html#xsltDebugTraceCodes"/>
+    <keyword type="typedef" name="xsltDecimalFormatPtr" 
link="libxslt-xsltInternals.html#xsltDecimalFormatPtr"/>
+    <keyword type="typedef" name="xsltDocumentPtr" link="libxslt-xsltInternals.html#xsltDocumentPtr"/>
+    <keyword type="typedef" name="xsltEffectiveNsPtr" link="libxslt-xsltInternals.html#xsltEffectiveNsPtr"/>
+    <keyword type="typedef" name="xsltElemPreCompPtr" link="libxslt-xsltInternals.html#xsltElemPreCompPtr"/>
+    <keyword type="typedef" name="xsltErrorSeverityType" 
link="libxslt-xsltInternals.html#xsltErrorSeverityType"/>
+    <keyword type="typedef" name="xsltFormatNumberInfoPtr" 
link="libxslt-numbersInternals.html#xsltFormatNumberInfoPtr"/>
+    <keyword type="typedef" name="xsltKeyDefPtr" link="libxslt-xsltInternals.html#xsltKeyDefPtr"/>
+    <keyword type="typedef" name="xsltKeyTablePtr" link="libxslt-xsltInternals.html#xsltKeyTablePtr"/>
+    <keyword type="typedef" name="xsltLoadType" link="libxslt-documents.html#xsltLoadType"/>
+    <keyword type="typedef" name="xsltLocale" link="libxslt-xsltlocale.html#xsltLocale"/>
+    <keyword type="typedef" name="xsltLocaleChar" link="libxslt-xsltlocale.html#xsltLocaleChar"/>
+    <keyword type="typedef" name="xsltNsAliasPtr" link="libxslt-xsltInternals.html#xsltNsAliasPtr"/>
+    <keyword type="typedef" name="xsltNsListContainerPtr" 
link="libxslt-xsltInternals.html#xsltNsListContainerPtr"/>
+    <keyword type="typedef" name="xsltNsListPtr" link="libxslt-xsltInternals.html#xsltNsListPtr"/>
+    <keyword type="typedef" name="xsltNsMapPtr" link="libxslt-xsltInternals.html#xsltNsMapPtr"/>
+    <keyword type="typedef" name="xsltNumberDataPtr" link="libxslt-numbersInternals.html#xsltNumberDataPtr"/>
+    <keyword type="typedef" name="xsltOutputType" link="libxslt-xsltInternals.html#xsltOutputType"/>
+    <keyword type="typedef" name="xsltPointerListPtr" link="libxslt-xsltInternals.html#xsltPointerListPtr"/>
+    <keyword type="typedef" name="xsltPrincipalStylesheetDataPtr" 
link="libxslt-xsltInternals.html#xsltPrincipalStylesheetDataPtr"/>
+    <keyword type="typedef" name="xsltRuntimeExtraPtr" 
link="libxslt-xsltInternals.html#xsltRuntimeExtraPtr"/>
+    <keyword type="typedef" name="xsltSecurityOption" link="libxslt-security.html#xsltSecurityOption"/>
+    <keyword type="typedef" name="xsltSecurityPrefsPtr" link="libxslt-security.html#xsltSecurityPrefsPtr"/>
+    <keyword type="typedef" name="xsltStackElemPtr" link="libxslt-xsltInternals.html#xsltStackElemPtr"/>
+    <keyword type="typedef" name="xsltStyleBasicEmptyItemPtr" 
link="libxslt-xsltInternals.html#xsltStyleBasicEmptyItemPtr"/>
+    <keyword type="typedef" name="xsltStyleBasicExpressionItemPtr" 
link="libxslt-xsltInternals.html#xsltStyleBasicExpressionItemPtr"/>
+    <keyword type="typedef" name="xsltStyleBasicItemVariablePtr" 
link="libxslt-xsltInternals.html#xsltStyleBasicItemVariablePtr"/>
+    <keyword type="typedef" name="xsltStyleItemApplyImports" 
link="libxslt-xsltInternals.html#xsltStyleItemApplyImports"/>
+    <keyword type="typedef" name="xsltStyleItemApplyImportsPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemApplyImportsPtr"/>
+    <keyword type="typedef" name="xsltStyleItemApplyTemplatesPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemApplyTemplatesPtr"/>
+    <keyword type="typedef" name="xsltStyleItemAttributePtr" 
link="libxslt-xsltInternals.html#xsltStyleItemAttributePtr"/>
+    <keyword type="typedef" name="xsltStyleItemCallTemplatePtr" 
link="libxslt-xsltInternals.html#xsltStyleItemCallTemplatePtr"/>
+    <keyword type="typedef" name="xsltStyleItemChoose" 
link="libxslt-xsltInternals.html#xsltStyleItemChoose"/>
+    <keyword type="typedef" name="xsltStyleItemChoosePtr" 
link="libxslt-xsltInternals.html#xsltStyleItemChoosePtr"/>
+    <keyword type="typedef" name="xsltStyleItemComment" 
link="libxslt-xsltInternals.html#xsltStyleItemComment"/>
+    <keyword type="typedef" name="xsltStyleItemCommentPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemCommentPtr"/>
+    <keyword type="typedef" name="xsltStyleItemCopyOf" 
link="libxslt-xsltInternals.html#xsltStyleItemCopyOf"/>
+    <keyword type="typedef" name="xsltStyleItemCopyOfPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemCopyOfPtr"/>
+    <keyword type="typedef" name="xsltStyleItemCopyPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemCopyPtr"/>
+    <keyword type="typedef" name="xsltStyleItemDocumentPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemDocumentPtr"/>
+    <keyword type="typedef" name="xsltStyleItemElementPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemElementPtr"/>
+    <keyword type="typedef" name="xsltStyleItemExtElementPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemExtElementPtr"/>
+    <keyword type="typedef" name="xsltStyleItemFallback" 
link="libxslt-xsltInternals.html#xsltStyleItemFallback"/>
+    <keyword type="typedef" name="xsltStyleItemFallbackPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemFallbackPtr"/>
+    <keyword type="typedef" name="xsltStyleItemForEach" 
link="libxslt-xsltInternals.html#xsltStyleItemForEach"/>
+    <keyword type="typedef" name="xsltStyleItemForEachPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemForEachPtr"/>
+    <keyword type="typedef" name="xsltStyleItemIfPtr" link="libxslt-xsltInternals.html#xsltStyleItemIfPtr"/>
+    <keyword type="typedef" name="xsltStyleItemIncludePtr" 
link="libxslt-xsltInternals.html#xsltStyleItemIncludePtr"/>
+    <keyword type="typedef" name="xsltStyleItemLRElementInfoPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemLRElementInfoPtr"/>
+    <keyword type="typedef" name="xsltStyleItemMessagePtr" 
link="libxslt-xsltInternals.html#xsltStyleItemMessagePtr"/>
+    <keyword type="typedef" name="xsltStyleItemNumberPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemNumberPtr"/>
+    <keyword type="typedef" name="xsltStyleItemOtherwisePtr" 
link="libxslt-xsltInternals.html#xsltStyleItemOtherwisePtr"/>
+    <keyword type="typedef" name="xsltStyleItemPIPtr" link="libxslt-xsltInternals.html#xsltStyleItemPIPtr"/>
+    <keyword type="typedef" name="xsltStyleItemParamPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemParamPtr"/>
+    <keyword type="typedef" name="xsltStyleItemSortPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemSortPtr"/>
+    <keyword type="typedef" name="xsltStyleItemTextPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemTextPtr"/>
+    <keyword type="typedef" name="xsltStyleItemUknownPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemUknownPtr"/>
+    <keyword type="typedef" name="xsltStyleItemValueOfPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemValueOfPtr"/>
+    <keyword type="typedef" name="xsltStyleItemVariable" 
link="libxslt-xsltInternals.html#xsltStyleItemVariable"/>
+    <keyword type="typedef" name="xsltStyleItemVariablePtr" 
link="libxslt-xsltInternals.html#xsltStyleItemVariablePtr"/>
+    <keyword type="typedef" name="xsltStyleItemWhenPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemWhenPtr"/>
+    <keyword type="typedef" name="xsltStyleItemWithParam" 
link="libxslt-xsltInternals.html#xsltStyleItemWithParam"/>
+    <keyword type="typedef" name="xsltStyleItemWithParamPtr" 
link="libxslt-xsltInternals.html#xsltStyleItemWithParamPtr"/>
+    <keyword type="typedef" name="xsltStylePreCompPtr" 
link="libxslt-xsltInternals.html#xsltStylePreCompPtr"/>
+    <keyword type="typedef" name="xsltStyleType" link="libxslt-xsltInternals.html#xsltStyleType"/>
+    <keyword type="typedef" name="xsltStylesheetPtr" link="libxslt-xsltInternals.html#xsltStylesheetPtr"/>
+    <keyword type="typedef" name="xsltTemplatePtr" link="libxslt-xsltInternals.html#xsltTemplatePtr"/>
+    <keyword type="typedef" name="xsltTransformCachePtr" 
link="libxslt-xsltInternals.html#xsltTransformCachePtr"/>
+    <keyword type="typedef" name="xsltTransformContextPtr" 
link="libxslt-xsltInternals.html#xsltTransformContextPtr"/>
+    <keyword type="typedef" name="xsltTransformState" link="libxslt-xsltInternals.html#xsltTransformState"/>
+    <keyword type="typedef" name="xsltVarInfoPtr" link="libxslt-xsltInternals.html#xsltVarInfoPtr"/>
+    <keyword type="struct" name="xsltCompMatch" link="libxslt-pattern.html#xsltCompMatch"/>
+    <keyword type="struct" name="xsltCompilerCtxt" link="libxslt-xsltInternals.html#xsltCompilerCtxt"/>
+    <keyword type="struct" name="xsltCompilerNodeInfo" 
link="libxslt-xsltInternals.html#xsltCompilerNodeInfo"/>
+    <keyword type="struct" name="xsltDecimalFormat" link="libxslt-xsltInternals.html#xsltDecimalFormat"/>
+    <keyword type="struct" name="xsltDocument" link="libxslt-xsltInternals.html#xsltDocument"/>
+    <keyword type="struct" name="xsltEffectiveNs" link="libxslt-xsltInternals.html#xsltEffectiveNs"/>
+    <keyword type="struct" name="xsltElemPreComp" link="libxslt-xsltInternals.html#xsltElemPreComp"/>
+    <keyword type="struct" name="xsltFormatNumberInfo" 
link="libxslt-numbersInternals.html#xsltFormatNumberInfo"/>
+    <keyword type="struct" name="xsltKeyDef" link="libxslt-xsltInternals.html#xsltKeyDef"/>
+    <keyword type="struct" name="xsltKeyTable" link="libxslt-xsltInternals.html#xsltKeyTable"/>
+    <keyword type="struct" name="xsltNsAlias" link="libxslt-xsltInternals.html#xsltNsAlias"/>
+    <keyword type="struct" name="xsltNsList" link="libxslt-xsltInternals.html#xsltNsList"/>
+    <keyword type="struct" name="xsltNsListContainer" link="libxslt-xsltInternals.html#xsltNsListContainer"/>
+    <keyword type="struct" name="xsltNsMap" link="libxslt-xsltInternals.html#xsltNsMap"/>
+    <keyword type="struct" name="xsltNumberData" link="libxslt-numbersInternals.html#xsltNumberData"/>
+    <keyword type="struct" name="xsltPointerList" link="libxslt-xsltInternals.html#xsltPointerList"/>
+    <keyword type="struct" name="xsltPrincipalStylesheetData" 
link="libxslt-xsltInternals.html#xsltPrincipalStylesheetData"/>
+    <keyword type="struct" name="xsltRuntimeExtra" link="libxslt-xsltInternals.html#xsltRuntimeExtra"/>
+    <keyword type="struct" name="xsltSecurityPrefs" link="libxslt-security.html#xsltSecurityPrefs"/>
+    <keyword type="struct" name="xsltStackElem" link="libxslt-xsltInternals.html#xsltStackElem"/>
+    <keyword type="struct" name="xsltStyleBasicEmptyItem" 
link="libxslt-xsltInternals.html#xsltStyleBasicEmptyItem"/>
+    <keyword type="struct" name="xsltStyleBasicExpressionItem" 
link="libxslt-xsltInternals.html#xsltStyleBasicExpressionItem"/>
+    <keyword type="struct" name="xsltStyleBasicItemVariable" 
link="libxslt-xsltInternals.html#xsltStyleBasicItemVariable"/>
+    <keyword type="struct" name="xsltStyleItemApplyTemplates" 
link="libxslt-xsltInternals.html#xsltStyleItemApplyTemplates"/>
+    <keyword type="struct" name="xsltStyleItemAttribute" 
link="libxslt-xsltInternals.html#xsltStyleItemAttribute"/>
+    <keyword type="struct" name="xsltStyleItemCallTemplate" 
link="libxslt-xsltInternals.html#xsltStyleItemCallTemplate"/>
+    <keyword type="struct" name="xsltStyleItemCopy" link="libxslt-xsltInternals.html#xsltStyleItemCopy"/>
+    <keyword type="struct" name="xsltStyleItemDocument" 
link="libxslt-xsltInternals.html#xsltStyleItemDocument"/>
+    <keyword type="struct" name="xsltStyleItemElement" 
link="libxslt-xsltInternals.html#xsltStyleItemElement"/>
+    <keyword type="struct" name="xsltStyleItemExtElement" 
link="libxslt-xsltInternals.html#xsltStyleItemExtElement"/>
+    <keyword type="struct" name="xsltStyleItemIf" link="libxslt-xsltInternals.html#xsltStyleItemIf"/>
+    <keyword type="struct" name="xsltStyleItemInclude" 
link="libxslt-xsltInternals.html#xsltStyleItemInclude"/>
+    <keyword type="struct" name="xsltStyleItemLRElementInfo" 
link="libxslt-xsltInternals.html#xsltStyleItemLRElementInfo"/>
+    <keyword type="struct" name="xsltStyleItemMessage" 
link="libxslt-xsltInternals.html#xsltStyleItemMessage"/>
+    <keyword type="struct" name="xsltStyleItemNumber" link="libxslt-xsltInternals.html#xsltStyleItemNumber"/>
+    <keyword type="struct" name="xsltStyleItemOtherwise" 
link="libxslt-xsltInternals.html#xsltStyleItemOtherwise"/>
+    <keyword type="struct" name="xsltStyleItemPI" link="libxslt-xsltInternals.html#xsltStyleItemPI"/>
+    <keyword type="struct" name="xsltStyleItemParam" link="libxslt-xsltInternals.html#xsltStyleItemParam"/>
+    <keyword type="struct" name="xsltStyleItemSort" link="libxslt-xsltInternals.html#xsltStyleItemSort"/>
+    <keyword type="struct" name="xsltStyleItemText" link="libxslt-xsltInternals.html#xsltStyleItemText"/>
+    <keyword type="struct" name="xsltStyleItemUknown" link="libxslt-xsltInternals.html#xsltStyleItemUknown"/>
+    <keyword type="struct" name="xsltStyleItemValueOf" 
link="libxslt-xsltInternals.html#xsltStyleItemValueOf"/>
+    <keyword type="struct" name="xsltStyleItemWhen" link="libxslt-xsltInternals.html#xsltStyleItemWhen"/>
+    <keyword type="struct" name="xsltStylePreComp" link="libxslt-xsltInternals.html#xsltStylePreComp"/>
+    <keyword type="struct" name="xsltStylesheet" link="libxslt-xsltInternals.html#xsltStylesheet"/>
+    <keyword type="struct" name="xsltTemplate" link="libxslt-xsltInternals.html#xsltTemplate"/>
+    <keyword type="struct" name="xsltTransformCache" link="libxslt-xsltInternals.html#xsltTransformCache"/>
+    <keyword type="struct" name="xsltTransformContext" 
link="libxslt-xsltInternals.html#xsltTransformContext"/>
+    <keyword type="struct" name="xsltVarInfo" link="libxslt-xsltInternals.html#xsltVarInfo"/>
+    <keyword type="function" name="xsltAddCallCallback" link="libxslt-xsltutils.html#xsltAddCallCallback"/>
+    <keyword type="function" name="xsltDocLoaderFunc" link="libxslt-documents.html#xsltDocLoaderFunc"/>
+    <keyword type="function" name="xsltDropCallCallback" link="libxslt-xsltutils.html#xsltDropCallCallback"/>
+    <keyword type="function" name="xsltElemPreCompDeallocator" 
link="libxslt-xsltInternals.html#xsltElemPreCompDeallocator"/>
+    <keyword type="function" name="xsltExtInitFunction" link="libxslt-extensions.html#xsltExtInitFunction"/>
+    <keyword type="function" name="xsltExtShutdownFunction" 
link="libxslt-extensions.html#xsltExtShutdownFunction"/>
+    <keyword type="function" name="xsltHandleDebuggerCallback" 
link="libxslt-xsltutils.html#xsltHandleDebuggerCallback"/>
+    <keyword type="function" name="xsltPreComputeFunction" 
link="libxslt-extensions.html#xsltPreComputeFunction"/>
+    <keyword type="function" name="xsltSecurityCheck" link="libxslt-security.html#xsltSecurityCheck"/>
+    <keyword type="function" name="xsltSortFunc" link="libxslt-xsltInternals.html#xsltSortFunc"/>
+    <keyword type="function" name="xsltStyleExtInitFunction" 
link="libxslt-extensions.html#xsltStyleExtInitFunction"/>
+    <keyword type="function" name="xsltStyleExtShutdownFunction" 
link="libxslt-extensions.html#xsltStyleExtShutdownFunction"/>
+    <keyword type="function" name="xsltTopLevelFunction" 
link="libxslt-extensions.html#xsltTopLevelFunction"/>
+    <keyword type="function" name="xsltTransformFunction" 
link="libxslt-xsltInternals.html#xsltTransformFunction"/>
+    <keyword type="macro" name="xslDebugStatus" link="libxslt-xsltutils.html#xslDebugStatus"/>
+    <keyword type="macro" name="xsltConstNamespaceNameXSLT" 
link="libxslt-xsltInternals.html#xsltConstNamespaceNameXSLT"/>
+    <keyword type="macro" name="xsltDocDefaultLoader" link="libxslt-documents.html#xsltDocDefaultLoader"/>
+    <keyword type="macro" name="xsltEngineVersion" link="libxslt-xslt.html#xsltEngineVersion"/>
+    <keyword type="macro" name="xsltExtMarker" link="libxslt-preproc.html#xsltExtMarker"/>
+    <keyword type="macro" name="xsltGenericDebug" link="libxslt-xsltutils.html#xsltGenericDebug"/>
+    <keyword type="macro" name="xsltGenericDebugContext" 
link="libxslt-xsltutils.html#xsltGenericDebugContext"/>
+    <keyword type="macro" name="xsltGenericError" link="libxslt-xsltutils.html#xsltGenericError"/>
+    <keyword type="macro" name="xsltGenericErrorContext" 
link="libxslt-xsltutils.html#xsltGenericErrorContext"/>
+    <keyword type="macro" name="xsltLibxmlVersion" link="libxslt-xslt.html#xsltLibxmlVersion"/>
+    <keyword type="macro" name="xsltLibxsltVersion" link="libxslt-xslt.html#xsltLibxsltVersion"/>
+    <keyword type="macro" name="xsltMaxDepth" link="libxslt-xslt.html#xsltMaxDepth"/>
+    <keyword type="macro" name="xsltMaxVars" link="libxslt-xslt.html#xsltMaxVars"/>
+    <keyword type="macro" name="xsltXSLTAttrMarker" link="libxslt-xsltInternals.html#xsltXSLTAttrMarker"/>
+    <keyword type="function" name="xslAddCall ()" link="libxslt-xsltutils.html#xslAddCall"/>
+    <keyword type="function" name="xslDropCall ()" link="libxslt-xsltutils.html#xslDropCall"/>
+    <keyword type="function" name="xslHandleDebugger ()" link="libxslt-transform.html#xslHandleDebugger"/>
+    <keyword type="function" name="xsltAddKey ()" link="libxslt-keys.html#xsltAddKey"/>
+    <keyword type="function" name="xsltAddStackElemList ()" 
link="libxslt-variables.html#xsltAddStackElemList"/>
+    <keyword type="function" name="xsltAddTemplate ()" link="libxslt-pattern.html#xsltAddTemplate"/>
+    <keyword type="function" name="xsltAllocateExtra ()" 
link="libxslt-xsltInternals.html#xsltAllocateExtra"/>
+    <keyword type="function" name="xsltAllocateExtraCtxt ()" 
link="libxslt-xsltInternals.html#xsltAllocateExtraCtxt"/>
+    <keyword type="function" name="xsltApplyAttributeSet ()" 
link="libxslt-attributes.html#xsltApplyAttributeSet"/>
+    <keyword type="function" name="xsltApplyImports ()" link="libxslt-transform.html#xsltApplyImports"/>
+    <keyword type="function" name="xsltApplyOneTemplate ()" 
link="libxslt-transform.html#xsltApplyOneTemplate"/>
+    <keyword type="function" name="xsltApplyStripSpaces ()" 
link="libxslt-transform.html#xsltApplyStripSpaces"/>
+    <keyword type="function" name="xsltApplyStylesheet ()" 
link="libxslt-transform.html#xsltApplyStylesheet"/>
+    <keyword type="function" name="xsltApplyStylesheetUser ()" 
link="libxslt-transform.html#xsltApplyStylesheetUser"/>
+    <keyword type="function" name="xsltApplyTemplates ()" link="libxslt-transform.html#xsltApplyTemplates"/>
+    <keyword type="function" name="xsltAttrListTemplateProcess ()" 
link="libxslt-templates.html#xsltAttrListTemplateProcess"/>
+    <keyword type="function" name="xsltAttrTemplateProcess ()" 
link="libxslt-templates.html#xsltAttrTemplateProcess"/>
+    <keyword type="function" name="xsltAttrTemplateValueProcess ()" 
link="libxslt-templates.html#xsltAttrTemplateValueProcess"/>
+    <keyword type="function" name="xsltAttrTemplateValueProcessNode ()" 
link="libxslt-templates.html#xsltAttrTemplateValueProcessNode"/>
+    <keyword type="function" name="xsltAttribute ()" link="libxslt-transform.html#xsltAttribute"/>
+    <keyword type="function" name="xsltCalibrateAdjust ()" 
link="libxslt-xsltutils.html#xsltCalibrateAdjust"/>
+    <keyword type="function" name="xsltCallTemplate ()" link="libxslt-transform.html#xsltCallTemplate"/>
+    <keyword type="function" name="xsltCheckExtPrefix ()" link="libxslt-extensions.html#xsltCheckExtPrefix"/>
+    <keyword type="function" name="xsltCheckExtURI ()" link="libxslt-extensions.html#xsltCheckExtURI"/>
+    <keyword type="function" name="xsltCheckRead ()" link="libxslt-security.html#xsltCheckRead"/>
+    <keyword type="function" name="xsltCheckWrite ()" link="libxslt-security.html#xsltCheckWrite"/>
+    <keyword type="function" name="xsltChoose ()" link="libxslt-transform.html#xsltChoose"/>
+    <keyword type="function" name="xsltCleanupGlobals ()" link="libxslt-xslt.html#xsltCleanupGlobals"/>
+    <keyword type="function" name="xsltCleanupTemplates ()" 
link="libxslt-pattern.html#xsltCleanupTemplates"/>
+    <keyword type="function" name="xsltComment ()" link="libxslt-transform.html#xsltComment"/>
+    <keyword type="function" name="xsltCompMatchClearCache ()" 
link="libxslt-pattern.html#xsltCompMatchClearCache"/>
+    <keyword type="function" name="xsltCompileAttr ()" link="libxslt-xsltInternals.html#xsltCompileAttr"/>
+    <keyword type="function" name="xsltCompilePattern ()" link="libxslt-pattern.html#xsltCompilePattern"/>
+    <keyword type="function" name="xsltComputeSortResult ()" 
link="libxslt-xsltutils.html#xsltComputeSortResult"/>
+    <keyword type="function" name="xsltCopy ()" link="libxslt-transform.html#xsltCopy"/>
+    <keyword type="function" name="xsltCopyNamespace ()" link="libxslt-namespaces.html#xsltCopyNamespace"/>
+    <keyword type="function" name="xsltCopyNamespaceList ()" 
link="libxslt-namespaces.html#xsltCopyNamespaceList"/>
+    <keyword type="function" name="xsltCopyOf ()" link="libxslt-transform.html#xsltCopyOf"/>
+    <keyword type="function" name="xsltCopyTextString ()" link="libxslt-transform.html#xsltCopyTextString"/>
+    <keyword type="function" name="xsltCreateRVT ()" link="libxslt-xsltInternals.html#xsltCreateRVT"/>
+    <keyword type="function" name="xsltDebug ()" link="libxslt-extra.html#xsltDebug"/>
+    <keyword type="function" name="xsltDebugDumpExtensions ()" 
link="libxslt-extensions.html#xsltDebugDumpExtensions"/>
+    <keyword type="function" name="xsltDebugGetDefaultTrace ()" 
link="libxslt-xsltutils.html#xsltDebugGetDefaultTrace"/>
+    <keyword type="function" name="xsltDebugSetDefaultTrace ()" 
link="libxslt-xsltutils.html#xsltDebugSetDefaultTrace"/>
+    <keyword type="function" name="xsltDecimalFormatGetByName ()" 
link="libxslt-xsltInternals.html#xsltDecimalFormatGetByName"/>
+    <keyword type="function" name="xsltDecimalFormatGetByQName ()" 
link="libxslt-xsltInternals.html#xsltDecimalFormatGetByQName"/>
+    <keyword type="function" name="xsltDefaultSortFunction ()" 
link="libxslt-xsltutils.html#xsltDefaultSortFunction"/>
+    <keyword type="function" name="xsltDoSortFunction ()" link="libxslt-xsltutils.html#xsltDoSortFunction"/>
+    <keyword type="function" name="xsltDocumentComp ()" link="libxslt-preproc.html#xsltDocumentComp"/>
+    <keyword type="function" name="xsltDocumentElem ()" link="libxslt-transform.html#xsltDocumentElem"/>
+    <keyword type="function" name="xsltDocumentFunction ()" 
link="libxslt-functions.html#xsltDocumentFunction"/>
+    <keyword type="function" name="xsltDocumentSortFunction ()" 
link="libxslt-xsltutils.html#xsltDocumentSortFunction"/>
+    <keyword type="function" name="xsltElement ()" link="libxslt-transform.html#xsltElement"/>
+    <keyword type="function" name="xsltElementAvailableFunction ()" 
link="libxslt-functions.html#xsltElementAvailableFunction"/>
+    <keyword type="function" name="xsltEvalAVT ()" link="libxslt-xsltInternals.html#xsltEvalAVT"/>
+    <keyword type="function" name="xsltEvalAttrValueTemplate ()" 
link="libxslt-templates.html#xsltEvalAttrValueTemplate"/>
+    <keyword type="function" name="xsltEvalGlobalVariables ()" 
link="libxslt-variables.html#xsltEvalGlobalVariables"/>
+    <keyword type="function" name="xsltEvalOneUserParam ()" 
link="libxslt-variables.html#xsltEvalOneUserParam"/>
+    <keyword type="function" name="xsltEvalStaticAttrValueTemplate ()" 
link="libxslt-templates.html#xsltEvalStaticAttrValueTemplate"/>
+    <keyword type="function" name="xsltEvalTemplateString ()" 
link="libxslt-templates.html#xsltEvalTemplateString"/>
+    <keyword type="function" name="xsltEvalUserParams ()" link="libxslt-variables.html#xsltEvalUserParams"/>
+    <keyword type="function" name="xsltEvalXPathPredicate ()" 
link="libxslt-templates.html#xsltEvalXPathPredicate"/>
+    <keyword type="function" name="xsltEvalXPathString ()" 
link="libxslt-templates.html#xsltEvalXPathString"/>
+    <keyword type="function" name="xsltEvalXPathStringNs ()" 
link="libxslt-templates.html#xsltEvalXPathStringNs"/>
+    <keyword type="function" name="xsltExtElementLookup ()" 
link="libxslt-extensions.html#xsltExtElementLookup"/>
+    <keyword type="function" name="xsltExtModuleElementLookup ()" 
link="libxslt-extensions.html#xsltExtModuleElementLookup"/>
+    <keyword type="function" name="xsltExtModuleElementPreComputeLookup ()" 
link="libxslt-extensions.html#xsltExtModuleElementPreComputeLookup"/>
+    <keyword type="function" name="xsltExtModuleFunctionLookup ()" 
link="libxslt-extensions.html#xsltExtModuleFunctionLookup"/>
+    <keyword type="function" name="xsltExtModuleTopLevelLookup ()" 
link="libxslt-extensions.html#xsltExtModuleTopLevelLookup"/>
+    <keyword type="function" name="xsltExtensionInstructionResultFinalize ()" 
link="libxslt-xsltInternals.html#xsltExtensionInstructionResultFinalize"/>
+    <keyword type="function" name="xsltExtensionInstructionResultRegister ()" 
link="libxslt-xsltInternals.html#xsltExtensionInstructionResultRegister"/>
+    <keyword type="function" name="xsltFindDocument ()" link="libxslt-documents.html#xsltFindDocument"/>
+    <keyword type="function" name="xsltFindElemSpaceHandling ()" 
link="libxslt-imports.html#xsltFindElemSpaceHandling"/>
+    <keyword type="function" name="xsltFindTemplate ()" link="libxslt-imports.html#xsltFindTemplate"/>
+    <keyword type="function" name="xsltFlagRVTs ()" link="libxslt-xsltInternals.html#xsltFlagRVTs"/>
+    <keyword type="function" name="xsltForEach ()" link="libxslt-transform.html#xsltForEach"/>
+    <keyword type="function" name="xsltFormatNumberConversion ()" 
link="libxslt-xsltInternals.html#xsltFormatNumberConversion"/>
+    <keyword type="function" name="xsltFormatNumberFunction ()" 
link="libxslt-functions.html#xsltFormatNumberFunction"/>
+    <keyword type="function" name="xsltFreeAVTList ()" link="libxslt-xsltInternals.html#xsltFreeAVTList"/>
+    <keyword type="function" name="xsltFreeAttributeSetsHashes ()" 
link="libxslt-attributes.html#xsltFreeAttributeSetsHashes"/>
+    <keyword type="function" name="xsltFreeCompMatchList ()" 
link="libxslt-pattern.html#xsltFreeCompMatchList"/>
+    <keyword type="function" name="xsltFreeCtxtExts ()" link="libxslt-extensions.html#xsltFreeCtxtExts"/>
+    <keyword type="function" name="xsltFreeDocumentKeys ()" link="libxslt-keys.html#xsltFreeDocumentKeys"/>
+    <keyword type="function" name="xsltFreeDocuments ()" link="libxslt-documents.html#xsltFreeDocuments"/>
+    <keyword type="function" name="xsltFreeExts ()" link="libxslt-extensions.html#xsltFreeExts"/>
+    <keyword type="function" name="xsltFreeGlobalVariables ()" 
link="libxslt-variables.html#xsltFreeGlobalVariables"/>
+    <keyword type="function" name="xsltFreeKeys ()" link="libxslt-keys.html#xsltFreeKeys"/>
+    <keyword type="function" name="xsltFreeLocale ()" link="libxslt-xsltlocale.html#xsltFreeLocale"/>
+    <keyword type="function" name="xsltFreeLocales ()" link="libxslt-xsltlocale.html#xsltFreeLocales"/>
+    <keyword type="function" name="xsltFreeNamespaceAliasHashes ()" 
link="libxslt-namespaces.html#xsltFreeNamespaceAliasHashes"/>
+    <keyword type="function" name="xsltFreeRVTs ()" link="libxslt-xsltInternals.html#xsltFreeRVTs"/>
+    <keyword type="function" name="xsltFreeSecurityPrefs ()" 
link="libxslt-security.html#xsltFreeSecurityPrefs"/>
+    <keyword type="function" name="xsltFreeStackElemList ()" 
link="libxslt-xsltInternals.html#xsltFreeStackElemList"/>
+    <keyword type="function" name="xsltFreeStyleDocuments ()" 
link="libxslt-documents.html#xsltFreeStyleDocuments"/>
+    <keyword type="function" name="xsltFreeStylePreComps ()" 
link="libxslt-preproc.html#xsltFreeStylePreComps"/>
+    <keyword type="function" name="xsltFreeStylesheet ()" 
link="libxslt-xsltInternals.html#xsltFreeStylesheet"/>
+    <keyword type="function" name="xsltFreeTemplateHashes ()" 
link="libxslt-pattern.html#xsltFreeTemplateHashes"/>
+    <keyword type="function" name="xsltFreeTransformContext ()" 
link="libxslt-transform.html#xsltFreeTransformContext"/>
+    <keyword type="function" name="xsltFunctionAvailableFunction ()" 
link="libxslt-functions.html#xsltFunctionAvailableFunction"/>
+    <keyword type="function" name="xsltFunctionNodeSet ()" link="libxslt-extra.html#xsltFunctionNodeSet"/>
+    <keyword type="function" name="xsltGenerateIdFunction ()" 
link="libxslt-functions.html#xsltGenerateIdFunction"/>
+    <keyword type="function" name="xsltGetCNsProp ()" link="libxslt-xsltutils.html#xsltGetCNsProp"/>
+    <keyword type="function" name="xsltGetDebuggerStatus ()" 
link="libxslt-xsltutils.html#xsltGetDebuggerStatus"/>
+    <keyword type="function" name="xsltGetDefaultSecurityPrefs ()" 
link="libxslt-security.html#xsltGetDefaultSecurityPrefs"/>
+    <keyword type="function" name="xsltGetExtData ()" link="libxslt-extensions.html#xsltGetExtData"/>
+    <keyword type="function" name="xsltGetExtInfo ()" link="libxslt-extensions.html#xsltGetExtInfo"/>
+    <keyword type="function" name="xsltGetKey ()" link="libxslt-keys.html#xsltGetKey"/>
+    <keyword type="function" name="xsltGetNamespace ()" link="libxslt-namespaces.html#xsltGetNamespace"/>
+    <keyword type="function" name="xsltGetNsProp ()" link="libxslt-xsltutils.html#xsltGetNsProp"/>
+    <keyword type="function" name="xsltGetPlainNamespace ()" 
link="libxslt-namespaces.html#xsltGetPlainNamespace"/>
+    <keyword type="function" name="xsltGetProfileInformation ()" 
link="libxslt-xsltutils.html#xsltGetProfileInformation"/>
+    <keyword type="function" name="xsltGetQNameURI ()" link="libxslt-xsltutils.html#xsltGetQNameURI"/>
+    <keyword type="function" name="xsltGetQNameURI2 ()" link="libxslt-xsltutils.html#xsltGetQNameURI2"/>
+    <keyword type="function" name="xsltGetSecurityPrefs ()" 
link="libxslt-security.html#xsltGetSecurityPrefs"/>
+    <keyword type="function" name="xsltGetSpecialNamespace ()" 
link="libxslt-namespaces.html#xsltGetSpecialNamespace"/>
+    <keyword type="function" name="xsltGetTemplate ()" link="libxslt-pattern.html#xsltGetTemplate"/>
+    <keyword type="function" name="xsltGetUTF8Char ()" link="libxslt-xsltutils.html#xsltGetUTF8Char"/>
+    <keyword type="function" name="xsltGetXIncludeDefault ()" 
link="libxslt-transform.html#xsltGetXIncludeDefault"/>
+    <keyword type="function" name="xsltIf ()" link="libxslt-transform.html#xsltIf"/>
+    <keyword type="function" name="xsltInit ()" link="libxslt-xslt.html#xsltInit"/>
+    <keyword type="function" name="xsltInitAllDocKeys ()" 
link="libxslt-xsltInternals.html#xsltInitAllDocKeys"/>
+    <keyword type="function" name="xsltInitCtxtExts ()" link="libxslt-extensions.html#xsltInitCtxtExts"/>
+    <keyword type="function" name="xsltInitCtxtKey ()" link="libxslt-xsltInternals.html#xsltInitCtxtKey"/>
+    <keyword type="function" name="xsltInitCtxtKeys ()" link="libxslt-keys.html#xsltInitCtxtKeys"/>
+    <keyword type="function" name="xsltInitElemPreComp ()" 
link="libxslt-extensions.html#xsltInitElemPreComp"/>
+    <keyword type="function" name="xsltInitGlobals ()" link="libxslt-extensions.html#xsltInitGlobals"/>
+    <keyword type="function" name="xsltIsBlank ()" link="libxslt-xsltInternals.html#xsltIsBlank"/>
+    <keyword type="function" name="xsltKeyFunction ()" link="libxslt-functions.html#xsltKeyFunction"/>
+    <keyword type="function" name="xsltLoadDocument ()" link="libxslt-documents.html#xsltLoadDocument"/>
+    <keyword type="function" name="xsltLoadStyleDocument ()" 
link="libxslt-documents.html#xsltLoadStyleDocument"/>
+    <keyword type="function" name="xsltLoadStylesheetPI ()" 
link="libxslt-xsltInternals.html#xsltLoadStylesheetPI"/>
+    <keyword type="function" name="xsltLocalVariablePop ()" 
link="libxslt-transform.html#xsltLocalVariablePop"/>
+    <keyword type="function" name="xsltLocalVariablePush ()" 
link="libxslt-transform.html#xsltLocalVariablePush"/>
+    <keyword type="function" name="xsltLocaleStrcmp ()" link="libxslt-xsltlocale.html#xsltLocaleStrcmp"/>
+    <keyword type="function" name="xsltMatchPattern ()" link="libxslt-pattern.html#xsltMatchPattern"/>
+    <keyword type="function" name="xsltMessage ()" link="libxslt-xsltutils.html#xsltMessage"/>
+    <keyword type="function" name="xsltNamespaceAlias ()" link="libxslt-namespaces.html#xsltNamespaceAlias"/>
+    <keyword type="function" name="xsltNeedElemSpaceHandling ()" 
link="libxslt-imports.html#xsltNeedElemSpaceHandling"/>
+    <keyword type="function" name="xsltNewDocument ()" link="libxslt-documents.html#xsltNewDocument"/>
+    <keyword type="function" name="xsltNewElemPreComp ()" link="libxslt-extensions.html#xsltNewElemPreComp"/>
+    <keyword type="function" name="xsltNewLocale ()" link="libxslt-xsltlocale.html#xsltNewLocale"/>
+    <keyword type="function" name="xsltNewSecurityPrefs ()" 
link="libxslt-security.html#xsltNewSecurityPrefs"/>
+    <keyword type="function" name="xsltNewStyleDocument ()" 
link="libxslt-documents.html#xsltNewStyleDocument"/>
+    <keyword type="function" name="xsltNewStylesheet ()" 
link="libxslt-xsltInternals.html#xsltNewStylesheet"/>
+    <keyword type="function" name="xsltNewTransformContext ()" 
link="libxslt-transform.html#xsltNewTransformContext"/>
+    <keyword type="function" name="xsltNextImport ()" link="libxslt-imports.html#xsltNextImport"/>
+    <keyword type="function" name="xsltNormalizeCompSteps ()" 
link="libxslt-pattern.html#xsltNormalizeCompSteps"/>
+    <keyword type="function" name="xsltNumber ()" link="libxslt-transform.html#xsltNumber"/>
+    <keyword type="function" name="xsltNumberFormat ()" link="libxslt-xsltInternals.html#xsltNumberFormat"/>
+    <keyword type="function" name="xsltParseAnyXSLTElem ()" 
link="libxslt-xsltInternals.html#xsltParseAnyXSLTElem"/>
+    <keyword type="function" name="xsltParseGlobalParam ()" 
link="libxslt-variables.html#xsltParseGlobalParam"/>
+    <keyword type="function" name="xsltParseGlobalVariable ()" 
link="libxslt-variables.html#xsltParseGlobalVariable"/>
+    <keyword type="function" name="xsltParseSequenceConstructor ()" 
link="libxslt-xsltInternals.html#xsltParseSequenceConstructor"/>
+    <keyword type="function" name="xsltParseStylesheetAttributeSet ()" 
link="libxslt-attributes.html#xsltParseStylesheetAttributeSet"/>
+    <keyword type="function" name="xsltParseStylesheetCallerParam ()" 
link="libxslt-variables.html#xsltParseStylesheetCallerParam"/>
+    <keyword type="function" name="xsltParseStylesheetDoc ()" 
link="libxslt-xsltInternals.html#xsltParseStylesheetDoc"/>
+    <keyword type="function" name="xsltParseStylesheetFile ()" 
link="libxslt-xsltInternals.html#xsltParseStylesheetFile"/>
+    <keyword type="function" name="xsltParseStylesheetImport ()" 
link="libxslt-imports.html#xsltParseStylesheetImport"/>
+    <keyword type="function" name="xsltParseStylesheetImportedDoc ()" 
link="libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc"/>
+    <keyword type="function" name="xsltParseStylesheetInclude ()" 
link="libxslt-imports.html#xsltParseStylesheetInclude"/>
+    <keyword type="function" name="xsltParseStylesheetOutput ()" 
link="libxslt-xsltInternals.html#xsltParseStylesheetOutput"/>
+    <keyword type="function" name="xsltParseStylesheetParam ()" 
link="libxslt-variables.html#xsltParseStylesheetParam"/>
+    <keyword type="function" name="xsltParseStylesheetProcess ()" 
link="libxslt-xsltInternals.html#xsltParseStylesheetProcess"/>
+    <keyword type="function" name="xsltParseStylesheetUser ()" 
link="libxslt-xsltInternals.html#xsltParseStylesheetUser"/>
+    <keyword type="function" name="xsltParseStylesheetVariable ()" 
link="libxslt-variables.html#xsltParseStylesheetVariable"/>
+    <keyword type="function" name="xsltParseTemplateContent ()" 
link="libxslt-xsltInternals.html#xsltParseTemplateContent"/>
+    <keyword type="function" name="xsltPointerListAddSize ()" 
link="libxslt-xsltInternals.html#xsltPointerListAddSize"/>
+    <keyword type="function" name="xsltPointerListClear ()" 
link="libxslt-xsltInternals.html#xsltPointerListClear"/>
+    <keyword type="function" name="xsltPointerListCreate ()" 
link="libxslt-xsltInternals.html#xsltPointerListCreate"/>
+    <keyword type="function" name="xsltPointerListFree ()" 
link="libxslt-xsltInternals.html#xsltPointerListFree"/>
+    <keyword type="function" name="xsltPreComputeExtModuleElement ()" 
link="libxslt-extensions.html#xsltPreComputeExtModuleElement"/>
+    <keyword type="function" name="xsltPrintErrorContext ()" 
link="libxslt-xsltutils.html#xsltPrintErrorContext"/>
+    <keyword type="function" name="xsltProcessOneNode ()" link="libxslt-transform.html#xsltProcessOneNode"/>
+    <keyword type="function" name="xsltProcessingInstruction ()" 
link="libxslt-transform.html#xsltProcessingInstruction"/>
+    <keyword type="function" name="xsltProfileStylesheet ()" 
link="libxslt-transform.html#xsltProfileStylesheet"/>
+    <keyword type="function" name="xsltQuoteOneUserParam ()" 
link="libxslt-variables.html#xsltQuoteOneUserParam"/>
+    <keyword type="function" name="xsltQuoteUserParams ()" 
link="libxslt-variables.html#xsltQuoteUserParams"/>
+    <keyword type="function" name="xsltRegisterAllElement ()" 
link="libxslt-transform.html#xsltRegisterAllElement"/>
+    <keyword type="function" name="xsltRegisterAllExtras ()" 
link="libxslt-extra.html#xsltRegisterAllExtras"/>
+    <keyword type="function" name="xsltRegisterAllFunctions ()" 
link="libxslt-functions.html#xsltRegisterAllFunctions"/>
+    <keyword type="function" name="xsltRegisterExtElement ()" 
link="libxslt-extensions.html#xsltRegisterExtElement"/>
+    <keyword type="function" name="xsltRegisterExtFunction ()" 
link="libxslt-extensions.html#xsltRegisterExtFunction"/>
+    <keyword type="function" name="xsltRegisterExtModule ()" 
link="libxslt-extensions.html#xsltRegisterExtModule"/>
+    <keyword type="function" name="xsltRegisterExtModuleElement ()" 
link="libxslt-extensions.html#xsltRegisterExtModuleElement"/>
+    <keyword type="function" name="xsltRegisterExtModuleFull ()" 
link="libxslt-extensions.html#xsltRegisterExtModuleFull"/>
+    <keyword type="function" name="xsltRegisterExtModuleFunction ()" 
link="libxslt-extensions.html#xsltRegisterExtModuleFunction"/>
+    <keyword type="function" name="xsltRegisterExtModuleTopLevel ()" 
link="libxslt-extensions.html#xsltRegisterExtModuleTopLevel"/>
+    <keyword type="function" name="xsltRegisterExtPrefix ()" 
link="libxslt-extensions.html#xsltRegisterExtPrefix"/>
+    <keyword type="function" name="xsltRegisterExtras ()" link="libxslt-extra.html#xsltRegisterExtras"/>
+    <keyword type="function" name="xsltRegisterLocalRVT ()" 
link="libxslt-xsltInternals.html#xsltRegisterLocalRVT"/>
+    <keyword type="function" name="xsltRegisterPersistRVT ()" 
link="libxslt-xsltInternals.html#xsltRegisterPersistRVT"/>
+    <keyword type="function" name="xsltRegisterTestModule ()" 
link="libxslt-extensions.html#xsltRegisterTestModule"/>
+    <keyword type="function" name="xsltRegisterTmpRVT ()" 
link="libxslt-xsltInternals.html#xsltRegisterTmpRVT"/>
+    <keyword type="function" name="xsltReleaseRVT ()" link="libxslt-xsltInternals.html#xsltReleaseRVT"/>
+    <keyword type="function" name="xsltResolveStylesheetAttributeSet ()" 
link="libxslt-attributes.html#xsltResolveStylesheetAttributeSet"/>
+    <keyword type="function" name="xsltRestoreDocumentNamespaces ()" 
link="libxslt-xsltInternals.html#xsltRestoreDocumentNamespaces"/>
+    <keyword type="function" name="xsltRunStylesheet ()" link="libxslt-transform.html#xsltRunStylesheet"/>
+    <keyword type="function" name="xsltRunStylesheetUser ()" 
link="libxslt-transform.html#xsltRunStylesheetUser"/>
+    <keyword type="function" name="xsltSaveProfiling ()" link="libxslt-xsltutils.html#xsltSaveProfiling"/>
+    <keyword type="function" name="xsltSaveResultTo ()" link="libxslt-xsltutils.html#xsltSaveResultTo"/>
+    <keyword type="function" name="xsltSaveResultToFd ()" link="libxslt-xsltutils.html#xsltSaveResultToFd"/>
+    <keyword type="function" name="xsltSaveResultToFile ()" 
link="libxslt-xsltutils.html#xsltSaveResultToFile"/>
+    <keyword type="function" name="xsltSaveResultToFilename ()" 
link="libxslt-xsltutils.html#xsltSaveResultToFilename"/>
+    <keyword type="function" name="xsltSaveResultToString ()" 
link="libxslt-xsltutils.html#xsltSaveResultToString"/>
+    <keyword type="function" name="xsltSecurityAllow ()" link="libxslt-security.html#xsltSecurityAllow"/>
+    <keyword type="function" name="xsltSecurityForbid ()" link="libxslt-security.html#xsltSecurityForbid"/>
+    <keyword type="function" name="xsltSetCtxtParseOptions ()" 
link="libxslt-xsltutils.html#xsltSetCtxtParseOptions"/>
+    <keyword type="function" name="xsltSetCtxtSecurityPrefs ()" 
link="libxslt-security.html#xsltSetCtxtSecurityPrefs"/>
+    <keyword type="function" name="xsltSetCtxtSortFunc ()" 
link="libxslt-xsltutils.html#xsltSetCtxtSortFunc"/>
+    <keyword type="function" name="xsltSetDebuggerCallbacks ()" 
link="libxslt-xsltutils.html#xsltSetDebuggerCallbacks"/>
+    <keyword type="function" name="xsltSetDebuggerStatus ()" 
link="libxslt-xsltutils.html#xsltSetDebuggerStatus"/>
+    <keyword type="function" name="xsltSetDefaultSecurityPrefs ()" 
link="libxslt-security.html#xsltSetDefaultSecurityPrefs"/>
+    <keyword type="function" name="xsltSetGenericDebugFunc ()" 
link="libxslt-xsltutils.html#xsltSetGenericDebugFunc"/>
+    <keyword type="function" name="xsltSetGenericErrorFunc ()" 
link="libxslt-xsltutils.html#xsltSetGenericErrorFunc"/>
+    <keyword type="function" name="xsltSetLoaderFunc ()" link="libxslt-documents.html#xsltSetLoaderFunc"/>
+    <keyword type="function" name="xsltSetSecurityPrefs ()" 
link="libxslt-security.html#xsltSetSecurityPrefs"/>
+    <keyword type="function" name="xsltSetSortFunc ()" link="libxslt-xsltutils.html#xsltSetSortFunc"/>
+    <keyword type="function" name="xsltSetTransformErrorFunc ()" 
link="libxslt-xsltutils.html#xsltSetTransformErrorFunc"/>
+    <keyword type="function" name="xsltSetXIncludeDefault ()" 
link="libxslt-transform.html#xsltSetXIncludeDefault"/>
+    <keyword type="function" name="xsltShutdownCtxtExts ()" 
link="libxslt-extensions.html#xsltShutdownCtxtExts"/>
+    <keyword type="function" name="xsltShutdownExts ()" link="libxslt-extensions.html#xsltShutdownExts"/>
+    <keyword type="function" name="xsltSort ()" link="libxslt-transform.html#xsltSort"/>
+    <keyword type="function" name="xsltSplitQName ()" link="libxslt-xsltutils.html#xsltSplitQName"/>
+    <keyword type="function" name="xsltStrxfrm ()" link="libxslt-xsltlocale.html#xsltStrxfrm"/>
+    <keyword type="function" name="xsltStyleGetExtData ()" 
link="libxslt-extensions.html#xsltStyleGetExtData"/>
+    <keyword type="function" name="xsltStylePreCompute ()" link="libxslt-preproc.html#xsltStylePreCompute"/>
+    <keyword type="function" name="xsltStyleStylesheetLevelGetExtData ()" 
link="libxslt-extensions.html#xsltStyleStylesheetLevelGetExtData"/>
+    <keyword type="function" name="xsltSystemPropertyFunction ()" 
link="libxslt-functions.html#xsltSystemPropertyFunction"/>
+    <keyword type="function" name="xsltTemplateProcess ()" 
link="libxslt-templates.html#xsltTemplateProcess"/>
+    <keyword type="function" name="xsltTestCompMatchList ()" 
link="libxslt-pattern.html#xsltTestCompMatchList"/>
+    <keyword type="function" name="xsltText ()" link="libxslt-transform.html#xsltText"/>
+    <keyword type="function" name="xsltTimestamp ()" link="libxslt-xsltutils.html#xsltTimestamp"/>
+    <keyword type="function" name="xsltTransformError ()" link="libxslt-xsltutils.html#xsltTransformError"/>
+    <keyword type="function" name="xsltUninit ()" link="libxslt-xsltInternals.html#xsltUninit"/>
+    <keyword type="function" name="xsltUnparsedEntityURIFunction ()" 
link="libxslt-functions.html#xsltUnparsedEntityURIFunction"/>
+    <keyword type="function" name="xsltUnregisterExtModule ()" 
link="libxslt-extensions.html#xsltUnregisterExtModule"/>
+    <keyword type="function" name="xsltUnregisterExtModuleElement ()" 
link="libxslt-extensions.html#xsltUnregisterExtModuleElement"/>
+    <keyword type="function" name="xsltUnregisterExtModuleFunction ()" 
link="libxslt-extensions.html#xsltUnregisterExtModuleFunction"/>
+    <keyword type="function" name="xsltUnregisterExtModuleTopLevel ()" 
link="libxslt-extensions.html#xsltUnregisterExtModuleTopLevel"/>
+    <keyword type="function" name="xsltValueOf ()" link="libxslt-transform.html#xsltValueOf"/>
+    <keyword type="function" name="xsltVariableLookup ()" link="libxslt-variables.html#xsltVariableLookup"/>
+    <keyword type="function" name="xsltXPathCompile ()" link="libxslt-xsltutils.html#xsltXPathCompile"/>
+    <keyword type="function" name="xsltXPathCompileFlags ()" 
link="libxslt-xsltutils.html#xsltXPathCompileFlags"/>
+    <keyword type="function" name="xsltXPathFunctionLookup ()" 
link="libxslt-functions.html#xsltXPathFunctionLookup"/>
+    <keyword type="function" name="xsltXPathGetTransformContext ()" 
link="libxslt-extensions.html#xsltXPathGetTransformContext"/>
+    <keyword type="function" name="xsltXPathVariableLookup ()" 
link="libxslt-variables.html#xsltXPathVariableLookup"/>
+  </functions>
+</book>
diff --git a/doc/devhelp/right.png b/doc/devhelp/right.png
new file mode 100644
index 00000000..92832e3a
Binary files /dev/null and b/doc/devhelp/right.png differ
diff --git a/doc/devhelp/style.css b/doc/devhelp/style.css
new file mode 100644
index 00000000..c9cabe78
--- /dev/null
+++ b/doc/devhelp/style.css
@@ -0,0 +1,66 @@
+.synopsis, .classsynopsis 
+{
+  background: #eeeeee;
+  border: solid 1px #aaaaaa;
+  padding: 0.5em;
+}
+.programlisting 
+{
+  background: #eeeeff;
+  border: solid 1px #aaaaff;
+  padding: 0.5em;
+}
+.variablelist 
+{
+  padding: 4px;
+  margin-left: 3em;
+}
+.variablelist td:first-child
+{
+  vertical-align: top;
+}
+table.navigation 
+{
+  background: #ffeeee;
+  border: solid 1px #ffaaaa;
+  margin-top: 0.5em;
+  margin-bottom: 0.5em;
+}
+.navigation a 
+{
+  color: #770000;
+}
+.navigation a:visited 
+{
+  color: #550000;
+}
+.navigation .title 
+{
+  font-size: 200%;
+}
+div.refnamediv 
+{
+  margin-top: 2em;
+}
+div.gallery-float 
+{
+  float: left;
+  padding: 10px;
+}
+div.gallery-float img 
+{
+  border-style: none;
+}
+div.gallery-spacer 
+{
+  clear: both;
+}
+a
+{
+  text-decoration: none;
+}
+a:hover
+{
+  text-decoration: underline;
+  color: #FF0000;
+}
diff --git a/doc/devhelp/up.png b/doc/devhelp/up.png
new file mode 100644
index 00000000..85b3e2a2
Binary files /dev/null and b/doc/devhelp/up.png differ


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]