diff --git a/configure.ac b/configure.ac
index 384e26b53d5ea4f8635a3cec30a32d83d2bca445_Y29uZmlndXJlLmFj..04b16442ef4f55e6900b12a4d522411ea3247dde_Y29uZmlndXJlLmFj 100644
--- a/configure.ac
+++ b/configure.ac
@@ -753,6 +753,8 @@
 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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL0VYU0xUL2RldmhlbHAvTWFrZWZpbGUuYW0=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL0VYU0xUL2RldmhlbHAvZGV2aGVscDIueHNs
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL0VYU0xUL2RldmhlbHAvZ2VuZXJhbC5odG1s
--- /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 0000000000000000000000000000000000000000..17003611d9df2b066afc682cbde962f3a575002d
GIT binary patch
literal 654
zc$@)_0&)F`P)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3labT3lag+-G2N4000McNliru(g+^~F$eY9OLhPN0vkz0
zK~#90)s?Yp6LB2HKi_gghu`3E!wDUJLxc_;Zg9MzLqS1G3ob$}Tqj3|4qZCjpp$=s
zgG0v(EhvaMwBV2ofgaR=5Fv$T2t=@ufB}W)(vxd!Vp7||2XA@&c<=k}%kOt^!>~yY
zO1cF+0vxb!W?!x?K+*#62Jq)nA4q`)5S6sgX4ao{=)(Mgq+YMr)7sjak|a^9)zS!j
zlk{-n29mabXYF=7SYBQx&vO8xC}MYams+hxqtO7sImhPaCf@rq;I^3!#u*2aUP)55
zT2&N90xmEJ0s&fGT~(T<3d2xYmK9C>IP*x-M@ib*+0pFm>>uW37N2Wzaq-fCnIZE9
zpb8}0+uN+KuQM2oZVHfP8U6kQdo3?>Wo2dT)WeM9So8Dq<pxiO&9@}|I6Xa89LH0c
zm+8IN(a}*6@={WOq$lH+IW3)Y+S}VJLS7*0L$}+NbMBwb%RFz=41hD|97{_}bUGbs
zwHlR5g(OM-zPJ+dJSWd{;yA{8kM|y+gQUBXdXm&?wFD?l(@{5dB(f|Mpo4>hLi#T0
z-i(>mfjhvbsYV`;4sgfJ-p>G-SqJ!fjR6BQYs1h*y9xaN0l{VB;o%`08yiy@)$8@~
z2PD1gcDuiy;j1tR0v#V8OH%W)25-YKyx(j#IXO9*YWf0mb8}QG6@b@;cHxh9{t7+@
o!Yd`f8L$sLH?yBt^q3C6015TtIu@BS5dZ)H07*qoM6N<$f*igdr~m)}

diff --git a/doc/EXSLT/devhelp/html.xsl b/doc/EXSLT/devhelp/html.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL0VYU0xUL2RldmhlbHAvaHRtbC54c2w=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL0VYU0xUL2RldmhlbHAvaW5kZXguaHRtbA==
--- /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 0000000000000000000000000000000000000000..2d05b3d5b4aeec9384bbfe404bfc4ed0897051c4
GIT binary patch
literal 459
zc$@*t0W|)JP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3labT3lag+-G2N4000McNliru(g+^~F($dQTPOek0a!^y
zK~#90wUr@H!%!GS@7pR7h>40xL?wO*>WZ(J#ML5j2<9jD6A%Q&kC<R{2;7#CrE*JV
zmb8MT;vi_30c~lQ$4Q=gefQk2N&BRh04{La_FR)-2YBR*42W!pKLc#HTe2(zNUVpi
z*K0h_BaUML{v}+J9YIxiTY*!vH<lD`HXHfAujO*N-{|#vMTv)!b03nPj4`vi_LH*a
z#cDtXoR>}jOeEc;X{s;`zcnxLeZR6?6h#^ihmNF6NpGdilO$m<82oD9WQ|6nVv1`?
z>KufRi{?QPXg;4;wroQu4?mN1Ydd@|kaQ|ZyWLK!)yi7<USN!Ql{D-3`<hOta$VQ1
zAm>Wb%=0{}lD)tfliHAUyWRQ+fD_;aV6j->y6!O_8bENg<bb$jy#x1uj#?)vX!zFJ
zORNd1Bvu7KCB<EUtt+!kl5=NOkV_okBL8<a;uAAZ0JjyD-0}bb002ovPDHLkV1kj6
B!Ug~U

diff --git a/doc/EXSLT/devhelp/libexslt-exslt.html b/doc/EXSLT/devhelp/libexslt-exslt.html
new file mode 100644
index 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL0VYU0xUL2RldmhlbHAvbGliZXhzbHQtZXhzbHQuaHRtbA==
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL0VYU0xUL2RldmhlbHAvbGliZXhzbHQtZXhzbHRleHBvcnRzLmh0bWw=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL0VYU0xUL2RldmhlbHAvbGliZXhzbHQuZGV2aGVscDI=
--- /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 0000000000000000000000000000000000000000..92832e3a4566e59d6e4092010e08d28f3be3a68d
GIT binary patch
literal 472
zc$@*)0Vn>6P)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3labT3lag+-G2N4000McNliru(g+^~G7L#2!94%~0cA-<
zK~#90t&|~e!ax{?pDrgVDi9MB6HPEA7{mku!6Xj9KQVq4qIOATMG<w7Ol%GT$tIT6
zG#P^AouJJQwnDqzo1D3P_df5J`|hBHB;B^DZ(}@^w9!GSq#M_OSd#KQFBy7q3XzmZ
zQor9<nx^g{6(9^l1wr5*VgrD`K_uNtib}K7mD_;U5J^F0a!xj&Da0!QV<1_rR?KFz
z+8|k$vD@vA_JSZFj$=ln5x^^O?|I()X$NCTN|NL#VbgW4ldIaeEmRZ*lgWg|Vgb+t
zVoAO;fDOsA3}66EodW9Q3{YM6a5#j+Wj{Fs)J#$VVC+KQ_X)$W)@ZxkvfuBUnEx2l
zYe}DNADS`d;zKh4p67i?ngWl2|4aA*&^bD24D<Q?eDbD}w6r@g#wd!SD*3w6XLkXx
zt^g<IZ<2cdGPeQUZr8ne33!&I<#OrXyaYU0!?bZ~Zb5qGuiLp?{jD!|Y5)O~pG*G$
O0000<MNUMnLSTZ|2*tJl

diff --git a/doc/EXSLT/devhelp/style.css b/doc/EXSLT/devhelp/style.css
new file mode 100644
index 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL0VYU0xUL2RldmhlbHAvc3R5bGUuY3Nz
--- /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 0000000000000000000000000000000000000000..85b3e2a2755fece72d0d09fbf1cf28d51fa71077
GIT binary patch
literal 406
zc$@*20crk;P)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3labT3lag+-G2N4000McNliru(g+^~GA^7&fY|^50V7F7
zK~#90?UOx9#6SQ>zi)|M3Lz_`oHB*Q7F$}(9Xvo9FX0_LfSsj<SlbHPt&lQ}Fm|!C
zh>*gC&uTEcZ2opuu<$`(m<;dD3<>a;kaQ|(`5WR$(ye}YkQ5(MekVy)RmnN$BTvDR
zZF!buO4C$jS%yb;$pHvJc%)Ar92q0uJ2FK+IkJy@bR<OH6FF`NZbIbk$ZECnkwQ`g
zNpnf6>pDp8pE!<H6orqR`Rn;m2iDq7nK5Q#t#eM!IW<k=r<M`PwWJFG*8t|7pV$bD
zF@CrPa7FTE1^^`QNuIC;fX4~$H*Ru7@)7`MAv+$!e_)WP=iMg&<arKj?al>BlKA2K
z<g%o5Nnc(6#};{)hXauXfW^RGUP(SrKEa{*2Cb(UvYJ0xLI3~&07*qoM6N<$f?2Pk
A9smFU

diff --git a/doc/Makefile.am b/doc/Makefile.am
index 384e26b53d5ea4f8635a3cec30a32d83d2bca445_ZG9jL01ha2VmaWxlLmFt..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL01ha2VmaWxlLmFt 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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvTWFrZWZpbGUuYW0=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvZGV2aGVscDIueHNs
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvZ2VuZXJhbC5odG1s
--- /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="libxslt-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 0000000000000000000000000000000000000000..17003611d9df2b066afc682cbde962f3a575002d
GIT binary patch
literal 654
zc$@)_0&)F`P)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3labT3lag+-G2N4000McNliru(g+^~F$eY9OLhPN0vkz0
zK~#90)s?Yp6LB2HKi_gghu`3E!wDUJLxc_;Zg9MzLqS1G3ob$}Tqj3|4qZCjpp$=s
zgG0v(EhvaMwBV2ofgaR=5Fv$T2t=@ufB}W)(vxd!Vp7||2XA@&c<=k}%kOt^!>~yY
zO1cF+0vxb!W?!x?K+*#62Jq)nA4q`)5S6sgX4ao{=)(Mgq+YMr)7sjak|a^9)zS!j
zlk{-n29mabXYF=7SYBQx&vO8xC}MYams+hxqtO7sImhPaCf@rq;I^3!#u*2aUP)55
zT2&N90xmEJ0s&fGT~(T<3d2xYmK9C>IP*x-M@ib*+0pFm>>uW37N2Wzaq-fCnIZE9
zpb8}0+uN+KuQM2oZVHfP8U6kQdo3?>Wo2dT)WeM9So8Dq<pxiO&9@}|I6Xa89LH0c
zm+8IN(a}*6@={WOq$lH+IW3)Y+S}VJLS7*0L$}+NbMBwb%RFz=41hD|97{_}bUGbs
zwHlR5g(OM-zPJ+dJSWd{;yA{8kM|y+gQUBXdXm&?wFD?l(@{5dB(f|Mpo4>hLi#T0
z-i(>mfjhvbsYV`;4sgfJ-p>G-SqJ!fjR6BQYs1h*y9xaN0l{VB;o%`08yiy@)$8@~
z2PD1gcDuiy;j1tR0v#V8OH%W)25-YKyx(j#IXO9*YWf0mb8}QG6@b@;cHxh9{t7+@
o!Yd`f8L$sLH?yBt^q3C6015TtIu@BS5dZ)H07*qoM6N<$f*igdr~m)}

diff --git a/doc/devhelp/html.xsl b/doc/devhelp/html.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvaHRtbC54c2w=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvaW5kZXguaHRtbA==
--- /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 0000000000000000000000000000000000000000..2d05b3d5b4aeec9384bbfe404bfc4ed0897051c4
GIT binary patch
literal 459
zc$@*t0W|)JP)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3labT3lag+-G2N4000McNliru(g+^~F($dQTPOek0a!^y
zK~#90wUr@H!%!GS@7pR7h>40xL?wO*>WZ(J#ML5j2<9jD6A%Q&kC<R{2;7#CrE*JV
zmb8MT;vi_30c~lQ$4Q=gefQk2N&BRh04{La_FR)-2YBR*42W!pKLc#HTe2(zNUVpi
z*K0h_BaUML{v}+J9YIxiTY*!vH<lD`HXHfAujO*N-{|#vMTv)!b03nPj4`vi_LH*a
z#cDtXoR>}jOeEc;X{s;`zcnxLeZR6?6h#^ihmNF6NpGdilO$m<82oD9WQ|6nVv1`?
z>KufRi{?QPXg;4;wroQu4?mN1Ydd@|kaQ|ZyWLK!)yi7<USN!Ql{D-3`<hOta$VQ1
zAm>Wb%=0{}lD)tfliHAUyWRQ+fD_;aV6j->y6!O_8bENg<bb$jy#x1uj#?)vX!zFJ
zORNd1Bvu7KCB<EUtt+!kl5=NOkV_okBL8<a;uAAZ0JjyD-0}bb002ovPDHLkV1kj6
B!Ug~U

diff --git a/doc/devhelp/libxslt-attributes.html b/doc/devhelp/libxslt-attributes.html
new file mode 100644
index 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC1hdHRyaWJ1dGVzLmh0bWw=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC1kb2N1bWVudHMuaHRtbA==
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC1leHRlbnNpb25zLmh0bWw=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC1leHRyYS5odG1s
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC1mdW5jdGlvbnMuaHRtbA==
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC1pbXBvcnRzLmh0bWw=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC1rZXlzLmh0bWw=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC1uYW1lc3BhY2VzLmh0bWw=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC1udW1iZXJzSW50ZXJuYWxzLmh0bWw=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC1wYXR0ZXJuLmh0bWw=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC1wcmVwcm9jLmh0bWw=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC1zZWN1cml0eS5odG1s
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC10ZW1wbGF0ZXMuaHRtbA==
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC10cmFuc2Zvcm0uaHRtbA==
--- /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/functions.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 transform 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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC12YXJpYWJsZXMuaHRtbA==
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC14c2x0Lmh0bWw=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC14c2x0SW50ZXJuYWxzLmh0bWw=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC14c2x0ZXhwb3J0cy5odG1s
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC14c2x0bG9jYWxlLmh0bWw=
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC14c2x0dXRpbHMuaHRtbA==
--- /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 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvbGlieHNsdC5kZXZoZWxwMg==
--- /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 0000000000000000000000000000000000000000..92832e3a4566e59d6e4092010e08d28f3be3a68d
GIT binary patch
literal 472
zc$@*)0Vn>6P)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3labT3lag+-G2N4000McNliru(g+^~G7L#2!94%~0cA-<
zK~#90t&|~e!ax{?pDrgVDi9MB6HPEA7{mku!6Xj9KQVq4qIOATMG<w7Ol%GT$tIT6
zG#P^AouJJQwnDqzo1D3P_df5J`|hBHB;B^DZ(}@^w9!GSq#M_OSd#KQFBy7q3XzmZ
zQor9<nx^g{6(9^l1wr5*VgrD`K_uNtib}K7mD_;U5J^F0a!xj&Da0!QV<1_rR?KFz
z+8|k$vD@vA_JSZFj$=ln5x^^O?|I()X$NCTN|NL#VbgW4ldIaeEmRZ*lgWg|Vgb+t
zVoAO;fDOsA3}66EodW9Q3{YM6a5#j+Wj{Fs)J#$VVC+KQ_X)$W)@ZxkvfuBUnEx2l
zYe}DNADS`d;zKh4p67i?ngWl2|4aA*&^bD24D<Q?eDbD}w6r@g#wd!SD*3w6XLkXx
zt^g<IZ<2cdGPeQUZr8ne33!&I<#OrXyaYU0!?bZ~Zb5qGuiLp?{jD!|Y5)O~pG*G$
O0000<MNUMnLSTZ|2*tJl

diff --git a/doc/devhelp/style.css b/doc/devhelp/style.css
new file mode 100644
index 0000000000000000000000000000000000000000..04b16442ef4f55e6900b12a4d522411ea3247dde_ZG9jL2RldmhlbHAvc3R5bGUuY3Nz
--- /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 0000000000000000000000000000000000000000..85b3e2a2755fece72d0d09fbf1cf28d51fa71077
GIT binary patch
literal 406
zc$@*20crk;P)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00006VoOIv0RI60
z0RN!9r;`8x010qNS#tmY3labT3lag+-G2N4000McNliru(g+^~GA^7&fY|^50V7F7
zK~#90?UOx9#6SQ>zi)|M3Lz_`oHB*Q7F$}(9Xvo9FX0_LfSsj<SlbHPt&lQ}Fm|!C
zh>*gC&uTEcZ2opuu<$`(m<;dD3<>a;kaQ|(`5WR$(ye}YkQ5(MekVy)RmnN$BTvDR
zZF!buO4C$jS%yb;$pHvJc%)Ar92q0uJ2FK+IkJy@bR<OH6FF`NZbIbk$ZECnkwQ`g
zNpnf6>pDp8pE!<H6orqR`Rn;m2iDq7nK5Q#t#eM!IW<k=r<M`PwWJFG*8t|7pV$bD
zF@CrPa7FTE1^^`QNuIC;fX4~$H*Ru7@)7`MAv+$!e_)WP=iMg&<arKj?al>BlKA2K
z<g%o5Nnc(6#};{)hXauXfW^RGUP(SrKEa{*2Cb(UvYJ0xLI3~&07*qoM6N<$f?2Pk
A9smFU