http://xmlsoft.org/
- Requires libxml2 >= 2.3.0 with XPath support. It won't even compile
+ Requires libxml2 >= 2.3.6 with XPath support. It won't even compile
otherwise.
Check the FEATURES file for informations about completeness
Check the Changelog too to keep track of progresses.
- report bugs to xml@rpmfind.net or on the bugzilla.gnome.org base.
+ report bugs to xslt@gnome.org or on the bugzilla.gnome.org base.
Daniel Veillard
CFLAGS="-Wall -g -O -ansi -pedantic -W -Wunused -Wimplicit -Wreturn-type -Wswitch -Wcomment -Wtrigraphs -Wformat -Wchar-subscripts -Wuninitialized -Wparentheses -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -Winline "
fi
+AC_ARG_WITH(debug, [ --with-debug Add the debugging code (on)])
+if test "$with_mem_debug" = "no" ; then
+ echo Disabling debug support
+ WITH_XSLT_DEBUG=0
+else
+ WITH_XSLT_DEBUG=1
+fi
+AC_SUBST(WITH_XSLT_DEBUG)
+
AC_ARG_WITH(mem_debug, [ --with-mem-debug Add the memory debugging module (off)])
if test "$with_mem_debug" = "yes" ; then
echo Enabling memory debug support
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2045"
+NAME="AEN2049"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2048"
+NAME="AEN2052"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2061"
+NAME="AEN2065"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2064"
+NAME="AEN2068"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2066"
+NAME="AEN2070"
></A
><H3
><A
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>cur</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2087"
+NAME="AEN2091"
></A
><H3
><A
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2103"
+NAME="AEN2107"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>attributes</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>nargs</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>nargs</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>nargs</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>nargs</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>nargs</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>nargs</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>nargs</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>nargs</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>nargs</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2139"
+NAME="AEN2143"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2142"
+NAME="AEN2146"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2164"
+NAME="AEN2168"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2167"
+NAME="AEN2171"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2169"
+NAME="AEN2173"
></A
><H3
><A
><I
>res</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>name</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2191"
+NAME="AEN2195"
></A
><H3
><A
><I
>res</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>name</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2213"
+NAME="AEN2217"
></A
><H3
><A
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>cur</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2234"
+NAME="AEN2238"
></A
><H3
><A
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>cur</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2255"
+NAME="AEN2259"
></A
><H3
><A
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2276"
+NAME="AEN2280"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2301"
+NAME="AEN2305"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>name</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>nameURI</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2899"
+NAME="AEN2929"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2902"
+NAME="AEN2932"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2924"
+NAME="AEN2954"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2927"
+NAME="AEN2957"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2929"
+NAME="AEN2959"
></A
><H3
><A
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>name</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>nameURI</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>match</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>use</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2969"
+NAME="AEN2999"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>name</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>nameURI</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>value</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3005"
+NAME="AEN3035"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>doc</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3026"
+NAME="AEN3056"
></A
><H3
><A
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3042"
+NAME="AEN3072"
></A
><H3
><A
><I
>doc</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2337"
+NAME="AEN2341"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2340"
+NAME="AEN2344"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2366"
+NAME="AEN2370"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2369"
+NAME="AEN2373"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2371"
+NAME="AEN2375"
></A
><H3
><A
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2392"
+NAME="AEN2396"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>cur</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ns</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>out</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2428"
+NAME="AEN2432"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>cur</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>URI</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>prefix</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>out</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2468"
+NAME="AEN2472"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>cur</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2500"
+NAME="AEN2504"
></A
><H3
><A
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3507"
+NAME="AEN3537"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3510"
+NAME="AEN3540"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3523"
+NAME="AEN3553"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3526"
+NAME="AEN3556"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3528"
+NAME="AEN3558"
></A
><H3
><A
><I
>Param1</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>Param2</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>Param3</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>Param4</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3563"
+NAME="AEN3593"
></A
><H3
><A
><I
>Param1</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>Param2</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>Param3</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>pattern</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>doc</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>cur</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>mode</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>modeURI</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>pattern</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>parent</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>name</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ns</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>name</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ns</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>found</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>target</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>cur</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>target</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>attr</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>attr</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
<GTKDOCLINK
HREF="XMLDOCPTR"
>xmlDocPtr</GTKDOCLINK
-> doc);
+> doc,
+ const char **params);
void <A
HREF="libxslt-transform.html#XSLTAPPLYONETEMPLATE"
>xsltApplyOneTemplate</A
<GTKDOCLINK
HREF="XMLDOCPTR"
>xmlDocPtr</GTKDOCLINK
-> doc);</PRE
+> doc,
+ const char **params);</PRE
></TD
></TR
></TABLE
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>doc</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>params</I
+></TT
+>:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> a NULL terminated arry of parameters names/values tuples</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
><I
CLASS="EMPHASIS"
>Returns</I
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1042"
+NAME="AEN1046"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>list</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>real</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1072"
+NAME="AEN1076"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1103"
+NAME="AEN1107"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1134"
+NAME="AEN1138"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1165"
+NAME="AEN1169"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1196"
+NAME="AEN1200"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1227"
+NAME="AEN1231"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1258"
+NAME="AEN1262"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1289"
+NAME="AEN1293"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1320"
+NAME="AEN1324"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1351"
+NAME="AEN1355"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1382"
+NAME="AEN1386"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1413"
+NAME="AEN1417"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1444"
+NAME="AEN1448"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1475"
+NAME="AEN1479"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1506"
+NAME="AEN1510"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1537"
+NAME="AEN1541"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1568"
+NAME="AEN1572"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN2521"
+NAME="AEN2525"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN2524"
+NAME="AEN2528"
></A
><H2
>Synopsis</H2
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt);
+int <A
+HREF="libxslt-variables.html#XSLTEVALUSERPARAMS"
+>xsltEvalUserParams</A
+> (<A
+HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
+>xsltTransformContextPtr</A
+> ctxt,
+ const char **params);
void <A
HREF="libxslt-variables.html#XSLTPUSHSTACK"
>xsltPushStack</A
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2570"
+NAME="AEN2576"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN2573"
+NAME="AEN2579"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2575"
+NAME="AEN2581"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2589"
+NAME="AEN2595"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> the XSLT transformation context</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><I
+CLASS="EMPHASIS"
+>Returns</I
+> :</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+>0 in case of success, -1 in case of error</TD
+></TR
+></TABLE
+><P
+></P
+></DIV
+></DIV
+><HR><DIV
+CLASS="REFSECT2"
+><A
+NAME="AEN2615"
+></A
+><H3
+><A
+NAME="XSLTEVALUSERPARAMS"
+></A
+>xsltEvalUserParams ()</H3
+><TABLE
+BORDER="0"
+BGCOLOR="#D6E8FF"
+WIDTH="100%"
+CELLPADDING="6"
+><TR
+><TD
+><PRE
+CLASS="PROGRAMLISTING"
+>int xsltEvalUserParams (<A
+HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
+>xsltTransformContextPtr</A
+> ctxt,
+ const char **params);</PRE
+></TD
+></TR
+></TABLE
+><P
+>Evaluate the global variables of a stylesheet. This need to be
+done on parsed stylesheets before starting to apply transformations</P
+><P
+></P
+><DIV
+CLASS="INFORMALTABLE"
+><P
+></P
+><TABLE
+BORDER="0"
+WIDTH="100%"
+BGCOLOR="#FFD0D0"
+CELLSPACING="0"
+CELLPADDING="4"
+CLASS="CALSTABLE"
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>ctxt</I
+></TT
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
+><TT
+CLASS="PARAMETER"
+><I
+>params</I
+></TT
+>:</TD
+><TD
+WIDTH="80%"
+ALIGN="LEFT"
+VALIGN="TOP"
+> a NULL terminated arry of parameters names/values tuples</TD
+></TR
+><TR
+><TD
+WIDTH="20%"
+ALIGN="RIGHT"
+VALIGN="TOP"
><I
CLASS="EMPHASIS"
>Returns</I
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2609"
+NAME="AEN2639"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2624"
+NAME="AEN2654"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2639"
+NAME="AEN2669"
></A
><H3
><A
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>cur</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2660"
+NAME="AEN2690"
></A
><H3
><A
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>cur</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2681"
+NAME="AEN2711"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>cur</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2702"
+NAME="AEN2732"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>cur</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2723"
+NAME="AEN2753"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>cur</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2750"
+NAME="AEN2780"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>elems</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2775"
+NAME="AEN2805"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2790"
+NAME="AEN2820"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>name</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ns_uri</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2821"
+NAME="AEN2851"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>name</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ns_uri</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>select</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>tree</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>param</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2865"
+NAME="AEN2895"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>name</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>ns_uri</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN3062"
+NAME="AEN3092"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN3065"
+NAME="AEN3095"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3127"
+NAME="AEN3157"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN3130"
+NAME="AEN3160"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3132"
+NAME="AEN3162"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3137"
+NAME="AEN3167"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3142"
+NAME="AEN3172"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3147"
+NAME="AEN3177"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3152"
+NAME="AEN3182"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3157"
+NAME="AEN3187"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3162"
+NAME="AEN3192"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3167"
+NAME="AEN3197"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3172"
+NAME="AEN3202"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3177"
+NAME="AEN3207"
></A
><H3
><A
xsltDocumentPtr docList; /* the document list */
xsltDocumentPtr document; /* the current document */
- xmlNodePtr node; /* the node being processed */
+ xmlNodePtr node; /* the current node being processed */
xmlNodeSetPtr nodeList; /* the current node list */
- xmlNodePtr current; /* the current node */
+ /* xmlNodePtr current; the node */
xmlDocPtr output; /* the resulting document */
xmlNodePtr insert; /* the insertion node */
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3182"
+NAME="AEN3212"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3187"
+NAME="AEN3217"
></A
><H3
><A
xsltNumberData numdata; /* number */
xmlXPathCompExprPtr comp; /* a precompiled XPath expression */
+ xmlNsPtr *nsList; /* the namespaces in scope */
+ int nsNr; /* the number of namespaces in scope */
};</PRE
></TD
></TR
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3192"
+NAME="AEN3222"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3197"
+NAME="AEN3227"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>comp</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3227"
+NAME="AEN3257"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3232"
+NAME="AEN3262"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3237"
+NAME="AEN3267"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3242"
+NAME="AEN3272"
></A
><H3
><A
><TD
><PRE
CLASS="PROGRAMLISTING"
->#define CHECK_STOPPED if (ctxt->state == XSLT_STATE_STOPPED) return;</PRE
+>#define CHECK_STOPPED if (ctxt-state == XSLT_STATE_STOPPED) return;</PRE
></TD
></TR
></TABLE
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3247"
+NAME="AEN3277"
></A
><H3
><A
><TD
><PRE
CLASS="PROGRAMLISTING"
->#define CHECK_STOPPEDE if (ctxt->state == XSLT_STATE_STOPPED) goto error;</PRE
+>#define CHECK_STOPPEDE if (ctxt-state == XSLT_STATE_STOPPED) goto error;</PRE
></TD
></TR
></TABLE
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3252"
+NAME="AEN3282"
></A
><H3
><A
><TD
><PRE
CLASS="PROGRAMLISTING"
->#define CHECK_STOPPED0 if (ctxt->state == XSLT_STATE_STOPPED) return(0);</PRE
+>#define CHECK_STOPPED0 if (ctxt-state == XSLT_STATE_STOPPED) return(0);</PRE
></TD
></TR
></TABLE
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3257"
+NAME="AEN3287"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3273"
+NAME="AEN3303"
></A
><H3
><A
><I
>filename</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3294"
+NAME="AEN3324"
></A
><H3
><A
><I
>sheet</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3311"
+NAME="AEN3341"
></A
><H3
><A
><I
>str</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3331"
+NAME="AEN3361"
></A
><H3
><A
><I
>elem</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3348"
+NAME="AEN3378"
></A
><H3
><A
><I
>sheet</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>name</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3374"
+NAME="AEN3404"
></A
><H3
><A
><I
>ret</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>doc</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3400"
+NAME="AEN3430"
></A
><H3
><A
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>cur</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3421"
+NAME="AEN3451"
></A
><H3
><A
><I
>doc</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3442"
+NAME="AEN3472"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>data</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN3467"
+NAME="AEN3497"
></A
><H3
><A
><I
>self</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>format</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>number</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>result</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><DIV
CLASS="REFNAMEDIV"
><A
-NAME="AEN1604"
+NAME="AEN1608"
></A
><H2
>Name</H2
><DIV
CLASS="REFSYNOPSISDIV"
><A
-NAME="AEN1607"
+NAME="AEN1611"
></A
><H2
>Synopsis</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1653"
+NAME="AEN1657"
></A
><H2
>Description</H2
><DIV
CLASS="REFSECT1"
><A
-NAME="AEN1656"
+NAME="AEN1660"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1658"
+NAME="AEN1662"
></A
><H3
><A
><I
>name</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1677"
+NAME="AEN1681"
></A
><H3
><A
><I
>name</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>prefix</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1702"
+NAME="AEN1706"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>nargs</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1721"
+NAME="AEN1725"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1726"
+NAME="AEN1730"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1731"
+NAME="AEN1735"
></A
><H3
><A
><I
>n</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1745"
+NAME="AEN1749"
></A
><H3
><A
><I
>n</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>val</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1763"
+NAME="AEN1767"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1768"
+NAME="AEN1772"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1773"
+NAME="AEN1777"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1778"
+NAME="AEN1782"
></A
><H3
><A
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1783"
+NAME="AEN1787"
></A
><H3
><A
><I
>ctxt</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>node</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>inst</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1809"
+NAME="AEN1813"
></A
><H3
><A
><I
>ctx</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>handler</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1834"
+NAME="AEN1838"
></A
><H3
><A
><I
>ctx</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>handler</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1859"
+NAME="AEN1863"
></A
><H3
><A
><I
>list</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1876"
+NAME="AEN1880"
></A
><H3
><A
><I
>list</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>results</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>descending</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>number</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1907"
+NAME="AEN1911"
></A
><H3
><A
><I
>buf</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>result</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1940"
+NAME="AEN1944"
></A
><H3
><A
><I
>URI</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>result</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>compression</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN1976"
+NAME="AEN1980"
></A
><H3
><A
><I
>file</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>result</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><HR><DIV
CLASS="REFSECT2"
><A
-NAME="AEN2009"
+NAME="AEN2013"
></A
><H3
><A
><I
>fd</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>result</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
><I
>style</I
></TT
-> :</TD
+>:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
href="http://cvs.gnome.org/lxr/source/libxslt/ChangeLog">Changelog</a> file
for a really accurate description</h3>
+<h3>0.8.0: Apr 22 2001</h3>
+<ul>
+ <li>fixed ansidecl.h problem</li>
+ <li>fixed unparsed-entity-uri() and generate-id()</li>
+ <li>sort semantic fixes and priority prob from William M. Brack</li>
+ <li>fixed namespace handling problems in XPath expression computations
+ (requires libxml-2.3.7)</li>
+ <li>fixes to current() and key()</li>
+ <li>other, smaller fixes, lots of testing with N Walsh DocBook HTML
+ stylesheets</li>
+</ul>
+
+<h3>0.7.0: Apr 10 2001</h3>
+<ul>
+ <li>cleanup using stricter compiler flags</li>
+ <li>command line parameter passing</li>
+ <li>fix to xsltApplyTemplates from William M. Brack</li>
+ <li>added the XSLTMark in the regression tests as well as document()</li>
+</ul>
+
<h3>0.6.0: Mar 22 2001</h3>
<ul>
<li>another beta</li>
#include "imports.h"
#include "transform.h"
-#define DEBUG_ATTRIBUTES
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_ATTRIBUTES
+#endif
/*
* TODO: merge attribute sets from different import precedence.
}
if (style->attributeSets == NULL) {
-#ifdef DEBUG_ATTRIBUTES
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
xsltGenericDebug(xsltGenericDebugContext,
"creating attribute set table\n");
#endif
list->name);
delete = list;
} else {
-#ifdef DEBUG_ATTRIBUTES
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
xsltGenericDebug(xsltGenericDebugContext,
"add attribute to list %s\n", ncname);
#endif
xmlChar *ncname2 = NULL;
xmlChar *prefix2 = NULL;
xsltAttrElemPtr values2;
-#ifdef DEBUG_ATTRIBUTES
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
xsltGenericDebug(xsltGenericDebugContext,
"xslt:attribute-set : %s adds use %s\n", ncname, attribute);
#endif
* Update the value
*/
xmlHashUpdateEntry2(style->attributeSets, ncname, prefix, values, NULL);
-#ifdef DEBUG_ATTRIBUTES
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
xsltGenericDebug(xsltGenericDebugContext,
"updated attribute list %s\n", ncname);
#endif
while ((*end != 0) && (!IS_BLANK(*end))) end++;
attribute = xmlStrndup(attribute, end - attribute);
if (attribute) {
-#ifdef DEBUG_ATTRIBUTES
+#ifdef WITH_XSLT_DEBUG_ATTRIBUTES
xsltGenericDebug(xsltGenericDebugContext,
"apply attribute set %s\n", attribute);
#endif
#include "documents.h"
#include "keys.h"
-#define DEBUG_DOCUMENTS
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_DOCUMENTS
+#endif
/************************************************************************
#include "xsltutils.h"
#include "extensions.h"
-#define DEBUG_EXTENSIONS
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_EXTENSIONS
+#endif
typedef struct _xsltExtDef xsltExtDef;
typedef xsltExtDef *xsltExtDefPtr;
#include "transform.h"
#include "extra.h"
-#define DEBUG_EXTRA
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_EXTRA
+#endif
/************************************************************************
* *
#include "keys.h"
#include "documents.h"
-#define DEBUG_FUNCTION
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_FUNCTION
+#endif
/************************************************************************
#include "templates.h"
#include "keys.h"
-#define DEBUG_KEYS
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_KEYS
+#endif
typedef struct _xsltKeyDef xsltKeyDef;
typedef xsltKeyDef *xsltKeyDefPtr;
if ((style == NULL) || (name == NULL) || (match == NULL) || (use == NULL))
return(-1);
-#ifdef DEBUG_KEYS
+#ifdef WITH_XSLT_DEBUG_KEYS
xsltGenericDebug(xsltGenericDebugContext,
"Add key %s, match %s, use %s\n", name, match, use);
#endif
if ((ctxt == NULL) || (name == NULL) || (value == NULL))
return(NULL);
-#ifdef DEBUG_KEYS
+#ifdef WITH_XSLT_DEBUG_KEYS
xsltGenericDebug(xsltGenericDebugContext,
"Get key %s, value %s\n", name, value);
#endif
if (res != NULL) {
if (res->type == XPATH_NODESET) {
nodelist = res->nodesetval;
-#ifdef DEBUG_KEYS
+#ifdef WITH_XSLT_DEBUG_KEYS
if (nodelist != NULL)
xsltGenericDebug(xsltGenericDebugContext,
"xsltInitCtxtKey: %s evaluates to %d nodes\n",
pattern, nodelist->nodeNr);
#endif
} else {
-#ifdef DEBUG_KEYS
+#ifdef WITH_XSLT_DEBUG_KEYS
xsltGenericDebug(xsltGenericDebugContext,
"xsltInitCtxtKey: %s is not a node set\n", pattern);
#endif
goto error;
}
} else {
-#ifdef DEBUG_KEYS
+#ifdef WITH_XSLT_DEBUG_KEYS
xsltGenericDebug(xsltGenericDebugContext,
"xsltInitCtxtKey: %s evaluation failed\n", pattern);
#endif
ctxt->node = nodelist->nodeTab[i];
str = xsltEvalXPathString(ctxt, comp);
if (str != NULL) {
-#ifdef DEBUG_KEYS
+#ifdef WITH_XSLT_DEBUG_KEYS
xsltGenericDebug(xsltGenericDebugContext,
"xsl:key : node associated to(%s,%s)\n",
keyd->name, str);
}
nodelist->nodeTab[i]->_private = keyd;
xmlFree(str);
-#ifdef DEBUG_KEYS
+#ifdef WITH_XSLT_DEBUG_KEYS
} else {
xsltGenericDebug(xsltGenericDebugContext,
"xsl:key : use %s failed to return a string\n",
if ((ctxt == NULL) || (doc == NULL))
return;
-#ifdef DEBUG_KEYS
+#ifdef WITH_XSLT_DEBUG_KEYS
xsltGenericDebug(xsltGenericDebugContext, "Initializing keys on %s\n",
doc->doc->URL);
#endif
#include "keys.h"
#include "pattern.h"
-#define DEBUG_PATTERN
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_PATTERN
+#endif
/*
* Types are private:
return(NULL);
}
-#ifdef DEBUG_PATTERN
+#ifdef WITH_XSLT_DEBUG_PATTERN
xsltGenericDebug(xsltGenericDebugContext,
"xsltCompilePattern : parsing '%s'\n", pattern);
#endif
xsltFreeCompMatch(pat);
return(-1);
}
-#ifdef DEBUG_PATTERN
+#ifdef WITH_XSLT_DEBUG_PATTERN
if (mode)
xsltGenericDebug(xsltGenericDebugContext,
"added pattern : '%s' mode '%s' priority %f\n",
#include "extra.h"
#include "imports.h"
-#define DEBUG_PREPROC
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_PREPROC
+#endif
/************************************************************************
comp->ver11 = 0;
if (xmlStrEqual(inst->name, (const xmlChar *) "output")) {
-#ifdef DEBUG_EXTRA
+#ifdef WITH_XSLT_DEBUG_EXTRA
xsltGenericDebug(xsltGenericDebugContext,
"Found saxon:output extension\n");
#endif
(const xmlChar *)"file",
XSLT_SAXON_NAMESPACE, &comp->has_filename);
} else if (xmlStrEqual(inst->name, (const xmlChar *) "write")) {
-#ifdef DEBUG_EXTRA
+#ifdef WITH_XSLT_DEBUG_EXTRA
xsltGenericDebug(xsltGenericDebugContext,
"Found xalan:write extension\n");
#endif
(const xmlChar *)"href",
XSLT_XT_NAMESPACE, &comp->has_filename);
if (filename == NULL) {
-#ifdef DEBUG_EXTRA
+#ifdef WITH_XSLT_DEBUG_EXTRA
xsltGenericDebug(xsltGenericDebugContext,
"Found xslt11:document construct\n");
#endif
XSLT_NAMESPACE, &comp->has_filename);
comp->ver11 = 1;
} else {
-#ifdef DEBUG_EXTRA
+#ifdef WITH_XSLT_DEBUG_EXTRA
xsltGenericDebug(xsltGenericDebugContext,
"Found xt:document extension\n");
#endif
#include "namespaces.h"
#include "attributes.h"
-#define DEBUG_TEMPLATES
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_TEMPLATES
+#endif
/************************************************************************
* *
if (res != NULL) {
ret = xmlXPathEvalPredicate(ctxt->xpathCtxt, res);
xmlXPathFreeObject(res);
-#ifdef DEBUG_TEMPLATES
+#ifdef WITH_XSLT_DEBUG_TEMPLATES
xsltGenericDebug(xsltGenericDebugContext,
"xsltEvalXPathPredicate: returns %d\n", ret);
#endif
} else {
-#ifdef DEBUG_TEMPLATES
+#ifdef WITH_XSLT_DEBUG_TEMPLATES
xsltGenericDebug(xsltGenericDebugContext,
"xsltEvalXPathPredicate: failed\n");
#endif
}
xmlXPathFreeObject(res);
}
-#ifdef DEBUG_TEMPLATES
+#ifdef WITH_XSLT_DEBUG_TEMPLATES
xsltGenericDebug(xsltGenericDebugContext,
"xsltEvalXPathString: returns %s\n", ret);
#endif
*/
ret = xsltAttrTemplateValueProcess(ctxt, expr);
-#ifdef DEBUG_TEMPLATES
+#ifdef WITH_XSLT_DEBUG_TEMPLATES
xsltGenericDebug(xsltGenericDebugContext,
"xsltEvalXPathString: %s returns %s\n", expr, ret);
#endif
#include "extra.h"
#include "preproc.h"
-#define DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_PROCESS
+#endif
int xsltMaxDepth = 250;
if (template) {
xmlNodePtr oldNode;
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltDefaultProcessOneNode: applying template for CDATA %s\n",
node->content);
templPop(ctxt);
ctxt->node = oldNode;
} else /* if (ctxt->mode == NULL) */ {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltDefaultProcessOneNode: copy CDATA %s\n",
node->content);
if (template) {
xmlNodePtr oldNode;
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltDefaultProcessOneNode: applying template for text %s\n",
node->content);
templPop(ctxt);
ctxt->node = oldNode;
} else /* if (ctxt->mode == NULL) */ {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
if (node->content == NULL)
xsltGenericDebug(xsltGenericDebugContext,
"xsltDefaultProcessOneNode: copy empty text\n");
nbchild++;
break;
default:
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltDefaultProcessOneNode: skipping node type %d\n",
cur->type);
}
cur = cur->next;
if (delete != NULL) {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltDefaultProcessOneNode: removing ignorable blank node\n");
#endif
if (template) {
xmlNodePtr oldNode;
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltDefaultProcessOneNode: applying template for CDATA %s\n",
node->content);
templPop(ctxt);
ctxt->node = oldNode;
} else /* if (ctxt->mode == NULL) */ {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltDefaultProcessOneNode: copy CDATA %s\n",
node->content);
if (template) {
xmlNodePtr oldNode;
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltDefaultProcessOneNode: applying template for text %s\n",
node->content);
templPop(ctxt);
ctxt->node = oldNode;
} else /* if (ctxt->mode == NULL) */ {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
if (cur->content == NULL)
xsltGenericDebug(xsltGenericDebugContext,
"xsltDefaultProcessOneNode: copy empty text\n");
cur = cur->next;
if (delete != NULL) {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltDefaultProcessOneNode: removing ignorable blank node\n");
#endif
* If no template is found, apply the default rule.
*/
if (template == NULL) {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
if (node->type == XML_DOCUMENT_NODE)
xsltGenericDebug(xsltGenericDebugContext,
"xsltProcessOneNode: no template found for /\n");
}
if (node->type == XML_ATTRIBUTE_NODE) {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltProcessOneNode: applying template for attribute %s\n",
node->name);
xsltApplyOneTemplate(ctxt, node, template->content, 1);
templPop(ctxt);
} else {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
if (node->type == XML_DOCUMENT_NODE)
xsltGenericDebug(xsltGenericDebugContext,
"xsltProcessOneNode: applying template for /\n");
* test, we must have a valid insertion point
*/
if (insert == NULL) {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltApplyOneTemplate: insert == NULL !\n");
#endif
}
CHECK_STOPPED;
goto skip_children;
- } else if (cur->type == XML_TEXT_NODE) {
+ } else if ((cur->type == XML_TEXT_NODE) ||
+ (cur->type == XML_CDATA_SECTION_NODE)) {
/*
* This text comes from the stylesheet
* For stylesheets, the set of whitespace-preserving
* element names consists of just xsl:text.
*/
-#ifdef DEBUG_PROCESS
- if (cur->name == xmlStringTextNoenc)
+#ifdef WITH_XSLT_DEBUG_PROCESS
+ if (cur->type == XML_CDATA_SECTION_NODE)
+ xsltGenericDebug(xsltGenericDebugContext,
+ "xsltApplyOneTemplate: copy CDATA text %s\n",
+ cur->content);
+ else if (cur->name == xmlStringTextNoenc)
xsltGenericDebug(xsltGenericDebugContext,
"xsltApplyOneTemplate: copy unescaped text %s\n",
cur->content);
xsltGenericDebug(xsltGenericDebugContext,
"xsltApplyOneTemplate: copy text %s\n", cur->content);
#endif
- copy = xmlCopyNode(cur, 0);
+ copy = xmlNewText(cur->content);
if (copy != NULL) {
xmlAddChild(insert, copy);
} else {
"xsltApplyOneTemplate: failed to find extension %s\n",
cur->name);
} else {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltApplyOneTemplate: extension construct %s\n", cur->name);
#endif
}
goto skip_children;
} else if (cur->type == XML_ELEMENT_NODE) {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltApplyOneTemplate: copy node %s\n", cur->name);
#endif
xmlChar *base = NULL;
xmlChar *URL = NULL;
if (xmlStrEqual(inst->name, (const xmlChar *) "output")) {
-#ifdef DEBUG_EXTRA
+#ifdef WITH_XSLT_DEBUG_EXTRA
xsltGenericDebug(xsltGenericDebugContext,
"Found saxon:output extension\n");
#endif
(const xmlChar *)"file",
XSLT_SAXON_NAMESPACE);
} else if (xmlStrEqual(inst->name, (const xmlChar *) "write")) {
-#ifdef DEBUG_EXTRA
+#ifdef WITH_XSLT_DEBUG_EXTRA
xsltGenericDebug(xsltGenericDebugContext,
"Found xalan:write extension\n");
#endif
(const xmlChar *)"href",
XSLT_XT_NAMESPACE);
if (filename == NULL) {
-#ifdef DEBUG_EXTRA
+#ifdef WITH_XSLT_DEBUG_EXTRA
xsltGenericDebug(xsltGenericDebugContext,
"Found xslt11:document construct\n");
#endif
XSLT_NAMESPACE);
comp->ver11 = 1;
} else {
-#ifdef DEBUG_EXTRA
+#ifdef WITH_XSLT_DEBUG_EXTRA
xsltGenericDebug(xsltGenericDebugContext,
"Found xt:document extension\n");
#endif
xsltGenericError(xsltGenericErrorContext,
"xsltDocumentElem: unable to save to %s\n", filename);
} else {
-#ifdef DEBUG_EXTRA
+#ifdef WITH_XSLT_DEBUG_EXTRA
xsltGenericDebug(xsltGenericDebugContext,
"Wrote %d bytes to %s\n", ret, , filename);
#endif
if (res->type == XPATH_NUMBER) {
results[i] = res;
} else {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltSort: select didn't evaluate to a number\n");
#endif
if (res->type == XPATH_STRING) {
results[i] = res;
} else {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltSort: select didn't evaluate to a string\n");
#endif
case XML_HTML_DOCUMENT_NODE:
break;
case XML_ELEMENT_NODE:
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsl:copy: node %s\n", node->name);
#endif
}
break;
case XML_ATTRIBUTE_NODE: {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsl:copy: attribute %s\n", node->name);
#endif
xmlNodePtr copy;
if (inst->children != NULL) {
- if ((inst->children->type != XML_TEXT_NODE) ||
+ if (((inst->children->type != XML_TEXT_NODE) &&
+ (inst->children->type != XML_CDATA_SECTION_NODE)) ||
(inst->children->next != NULL)) {
xsltGenericError(xsltGenericErrorContext,
"xslt:text has content problem !\n");
copy = xmlNewDocText(ctxt->output, text->content);
if (comp->noescape) {
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"Disable escaping: %s\n", text->content);
#endif
} else {
if (prefix != NULL) {
if (!xmlStrncasecmp(prefix, (xmlChar *)"xml", 3)) {
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"xslt:element : xml prefix forbidden\n");
#endif
name = ncname;
}
if (!xmlStrncasecmp(prefix, (xmlChar *)"xml", 3)) {
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"xslt:attribute : xml prefix forbidden\n");
#endif
value = xsltEvalTemplateString(ctxt, node, inst);
/* TODO: use or generate the compiled form */
/* TODO: check that there is no -- sequence and doesn't end up with - */
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
if (value == NULL)
xsltGenericDebug(xsltGenericDebugContext,
"xsl:comment: empty\n");
value = xsltEvalTemplateString(ctxt, node, inst);
/* TODO: check that there is no ?> sequence */
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
if (value == NULL)
xsltGenericDebug(xsltGenericDebugContext,
"xsl:processing-instruction: %s empty\n", ncname);
if (comp->comp == NULL)
return;
}
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltCopyOf: select %s\n", comp->select);
#endif
xsltGenericError(xsltGenericErrorContext,
"xsltCopyOf: text copy failed\n");
}
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
else
xsltGenericDebug(xsltGenericDebugContext,
"xslcopyOf: result %s\n", res->stringval);
return;
}
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltValueOf: select %s\n", comp->select);
#endif
xsltGenericError(xsltGenericErrorContext,
"xsltDefaultProcessOneNode: text copy failed\n");
}
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
else
xsltGenericDebug(xsltGenericDebugContext,
"xsltValueOf: result %s\n", res->stringval);
if ((ctxt == NULL) || (node == NULL) || (inst == NULL) || (comp == NULL))
return;
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltApplyTemplates: node: %s\n", node->name);
#endif
if (comp->comp == NULL)
goto error;
}
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltApplyTemplates: select %s\n", comp->select);
#endif
}
}
if (list == NULL) {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltApplyTemplates: select didn't evaluate to a node list\n");
#endif
xmlXPathNodeSetAdd(list, cur);
break;
default:
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltApplyTemplates: skipping cur type %d\n",
cur->type);
}
cur = cur->next;
if (delete != NULL) {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltApplyTemplates: removing ignorable blank cur\n");
#endif
}
}
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
if (list != NULL)
xsltGenericDebug(xsltGenericDebugContext,
"xsltApplyTemplates: list of %d nodes\n", list->nodeNr);
"xsl:when: test is not defined\n");
return;
}
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsl:when: test %s\n", prop);
#endif
if (res->type == XPATH_BOOLEAN)
doit = res->boolval;
else {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsl:when: test didn't evaluate to a boolean\n");
#endif
}
}
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsl:when: test evaluate to %d\n", doit);
#endif
replacement = replacement->next;
}
if (replacement != NULL) {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsl:otherwise: applying default fallback\n");
#endif
return;
}
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltIf: test %s\n", comp->test);
#endif
if (res->type == XPATH_BOOLEAN)
doit = res->boolval;
else {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltIf: test didn't evaluate to a boolean\n");
#endif
}
}
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltIf: test evaluate to %d\n", doit);
#endif
return;
}
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltForEach: select %s\n", comp->select);
#endif
list = res->nodesetval;
}
if (list == NULL) {
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltForEach: select didn't evaluate to a node list\n");
#endif
goto error;
}
-#ifdef DEBUG_PROCESS
+#ifdef WITH_XSLT_DEBUG_PROCESS
xsltGenericDebug(xsltGenericDebugContext,
"xsltForEach: select evaluate to %d nodes\n", list->nodeNr);
#endif
#include "transform.h"
#include "imports.h"
-#define DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_VARIABLE
+#endif
/************************************************************************
* *
if ((ctxt == NULL) || (elem == NULL))
return(-1);
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
"Evaluating variable %s\n", elem->name);
#endif
xsltGenericError(xsltGenericErrorContext,
"Evaluating variable %s failed\n", elem->name);
} else {
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
#ifdef LIBXML_DEBUG_ENABLED
if ((xsltGenericDebugContext == stdout) ||
(xsltGenericDebugContext == stderr))
if (elem->value == NULL) {
elem->value = xmlXPathNewCString("");
}
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
#ifdef LIBXML_DEBUG_ENABLED
if ((xsltGenericDebugContext == stdout) ||
(xsltGenericDebugContext == stderr))
if (ctxt == NULL)
return(-1);
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
"Evaluating global variables\n");
#endif
if (name == NULL)
return(-1);
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
if (param)
xsltGenericDebug(xsltGenericDebugContext,
"Defining global param %s\n", name);
if ((name == NULL) || (value == NULL))
break;
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
"Evaluating user parameter %s=%s\n", name, value);
#endif
if (name == NULL)
return(NULL);
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
"Building variable %s", name);
if (select != NULL)
xsltGenericError(xsltGenericErrorContext,
"xsl:variable : redefining %s\n", name);
}
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
else
xsltGenericDebug(xsltGenericDebugContext,
"param %s defined by caller", name);
return(NULL);
if (!elem->computed) {
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
"uncomputed global variable %s\n", name);
#endif
}
if (elem->value != NULL)
return(xmlXPathObjectCopy(elem->value));
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
"global variable not found %s\n", name);
#endif
return(xsltGlobalVariableLookup(ctxt, name, ns_uri));
}
if (!elem->computed) {
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
"uncomputed variable %s\n", name);
#endif
}
if (elem->value != NULL)
return(xmlXPathObjectCopy(elem->value));
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
"variable not found %s\n", name);
#endif
return(NULL);
}
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
"Parsing param %s\n", name);
#endif
if (select == NULL) {
tree = cur->children;
} else {
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
" select %s\n", select);
#endif
return;
}
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
"Parsing param %s\n", name);
#endif
if (select == NULL) {
tree = cur->children;
} else {
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
" select %s\n", select);
#endif
return;
}
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
"Parsing global variable %s\n", name);
#endif
return;
}
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
"Parsing global param %s\n", name);
#endif
return;
}
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
"Parsing variable %s\n", name);
#endif
if ((ctxt == NULL) || (name == NULL))
return(NULL);
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
xsltGenericDebug(xsltGenericDebugContext,
"Lookup variable %s\n", name);
#endif
xsltGenericError(xsltGenericErrorContext,
"unregistered variable %s\n", name);
}
-#ifdef DEBUG_VARIABLE
+#ifdef WITH_XSLT_DEBUG_VARIABLE
if (ret != NULL)
xsltGenericDebug(xsltGenericDebugContext,
"found variable %s\n", name);
#include "documents.h"
#include "extensions.h"
-#define DEBUG_PARSING
-/* #define DEBUG_BLANKS */
+#ifdef WITH_XSLT_DEBUG
+#define WITH_XSLT_DEBUG_PARSING
+/* #define WITH_XSLT_DEBUG_BLANKS */
+#endif
/*
* Useful macros
while ((*end != 0) && (!IS_BLANK(*end))) end++;
element = xmlStrndup(element, end - element);
if (element) {
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"add cdata section output element %s\n", element);
#endif
while ((*end != 0) && (!IS_BLANK(*end))) end++;
element = xmlStrndup(element, end - element);
if (element) {
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"add preserved space element %s\n", element);
#endif
"xsl:extension-element-prefix : undefined namespace %s\n",
prefix);
} else {
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"add extension prefix %s\n", prefix);
#endif
while ((*end != 0) && (!IS_BLANK(*end))) end++;
element = xmlStrndup(element, end - element);
if (element) {
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"add stripped space element %s\n", element);
#endif
delete = NULL;
while (cur != NULL) {
if (delete != NULL) {
-#ifdef DEBUG_BLANKS
+#ifdef WITH_XSLT_DEBUG_BLANKS
xsltGenericDebug(xsltGenericDebugContext,
"xsltParseRemoveBlanks: removing ignorable blank node\n");
#endif
} while (cur != NULL);
}
if (delete != NULL) {
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"xsltParseRemoveBlanks: removing ignorable blank node\n");
#endif
xmlHashUpdateEntry(style->nsHash, ns->prefix,
(void *) ns->href, (xmlHashDeallocator)xmlFree);
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"Added namespace: %s mapped to %s\n", ns->prefix, ns->href);
#endif
delete = NULL;
while (cur != NULL) {
if (delete != NULL) {
-#ifdef DEBUG_BLANKS
+#ifdef WITH_XSLT_DEBUG_BLANKS
xsltGenericDebug(xsltGenericDebugContext,
"xsltParseTemplateContent: removing text\n");
#endif
if (IS_XSLT_ELEM(cur)) {
if (IS_XSLT_NAME(cur, "text")) {
if (cur->children != NULL) {
- if ((cur->children->type != XML_TEXT_NODE) ||
+ if (((cur->children->type != XML_TEXT_NODE) &&
+ (cur->children->type != XML_CDATA_SECTION_NODE)) ||
(cur->children->next != NULL)) {
xsltGenericError(xsltGenericErrorContext,
- "xsltParseStylesheetTemplate: xslt:text content problem\n");
+ "xsltParseTemplateContent: xslt:text content problem\n");
} else {
xmlChar *prop;
xmlNodePtr text = cur->children;
(const xmlChar *)"disable-output-escaping",
XSLT_NAMESPACE);
if (prop != NULL) {
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"Disable escaping: %s\n", text->content);
#endif
} while (cur != NULL);
}
if (delete != NULL) {
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"xsltParseStylesheetTemplate: removing text\n");
#endif
name = prop;
nameURI = NULL;
}
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"xslt:key: name %s\n", name);
#endif
mode = prop;
modeURI = NULL;
}
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"xslt:template: mode %s\n", mode);
#endif
xsltParseStylesheetTop(xsltStylesheetPtr style, xmlNodePtr top) {
xmlNodePtr cur;
xmlChar *prop;
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
int templates = 0;
#endif
continue;
}
if (!(IS_XSLT_ELEM(cur))) {
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"xsltParseStylesheetTop : found foreign element %s\n",
cur->name);
}
while (cur != NULL) {
if (!(IS_XSLT_ELEM(cur))) {
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"xsltParseStylesheetTop : found foreign element %s\n",
cur->name);
} else if (IS_XSLT_NAME(cur, "param")) {
xsltParseGlobalParam(style, cur);
} else if (IS_XSLT_NAME(cur, "template")) {
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
templates++;
#endif
xsltParseStylesheetTemplate(style, cur);
}
cur = cur->next;
}
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"parsed %d templates\n", templates);
#endif
if ((IS_XSLT_ELEM(cur)) &&
((IS_XSLT_NAME(cur, "stylesheet")) ||
(IS_XSLT_NAME(cur, "transform")))) {
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"xsltParseStylesheetProcess : found stylesheet\n");
#endif
return(NULL);
}
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"xsltParseStylesheetProcess : document is stylesheet\n");
#endif
if (filename == NULL)
return(NULL);
-#ifdef DEBUG_PARSING
+#ifdef WITH_XSLT_DEBUG_PARSING
xsltGenericDebug(xsltGenericDebugContext,
"xsltParseStylesheetFile : parse %s\n", filename);
#endif
extern "C" {
#endif
+#if @WITH_XSLT_DEBUG@
+#define WITH_XSLT_DEBUG
+#endif
+
#if @WITH_MEM_DEBUG@
#define DEBUG_MEMORY
#define DEBUG_MEMORY_LOCATION
<!DOCTYPE HTML PUBLIC "http://www.w3.org/TR/REC-html40/loose.dtd" "-//W3C//DTD HTML 4.0 Transitional//EN">
<measurement unit="in">12362180</measurement>
- <measurement unit="ft">521.647199999</measurement>
+ <measurement unit="ft">521.6472</measurement>
<measurement unit="yd">276683.33</measurement>
- <measurement unit="mi">0.000136701399</measurement>
- <measurement unit="in">1.275587996</measurement>
+ <measurement unit="mi">0.0001367014</measurement>
+ <measurement unit="in">1.275588</measurement>
<measurement unit="ft">1332004.8</measurement>
- <measurement unit="yd">95012.388419899</measurement>
+ <measurement unit="yd">95012.3884199</measurement>
<measurement unit="mi">0.00250598521</measurement>
<measurement unit="in">39370</measurement>
<measurement unit="ft">8.612395272</measurement>
- <measurement unit="yd">0.0470252298</measurement>
- <measurement unit="mi">0.0000893530059</measurement>
+ <measurement unit="yd">0.04702523</measurement>
+ <measurement unit="mi">0.000089353006</measurement>
<measurement unit="in">3031490</measurement>
--- /dev/null
+<?xml version= "1.0"?>
+<doc/>
+
PROD
"/><tr class="
PROD
-"><td>Orange</td><td>Proj. Rev: 1743250</td><td>Actual Rev: 10695.229999999</td></tr><tr class="
+"><td>Orange</td><td>Proj. Rev: 1743250</td><td>Actual Rev: 10695.23</td></tr><tr class="
ACT
-"><td>PICK</td><td>Proj. Rev: 1159000</td><td>Act. Rev: 9964.479999999</td></tr><tr><td valign="top"><table><tr class="NR"><td>Non-Recurring</td><td>Number: 229</td><td>Proj. Rev: 0</td><td>Act. Rev: 8300</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Pine</td><td>34</td><td>0</td><td>1420</td></tr><tr><td>Almond</td><td>1</td><td>0</td><td>25</td></tr><tr><td>Birch</td><td>8</td><td>0</td><td>300</td></tr><tr><td>Elm</td><td>186</td><td>0</td><td>6555</td></tr><tr class="NR"/></table></td><td valign="top"><table><tr class="RC"><td>Recurring</td><td>Number: 284</td><td>Proj. Rev: 1159000</td><td>Act. Rev: 1664.479999999</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Pine</td><td>36</td><td>171000</td><td>221.3</td></tr><tr><td>Elm</td><td>240</td><td>950000</td><td>1412.34</td></tr><tr><td>Birch</td><td>8</td><td>38000</td><td>30.84</td></tr><tr class="RC"/></table></td></tr><tr class="
+"><td>PICK</td><td>Proj. Rev: 1159000</td><td>Act. Rev: 9964.48</td></tr><tr><td valign="top"><table><tr class="NR"><td>Non-Recurring</td><td>Number: 229</td><td>Proj. Rev: 0</td><td>Act. Rev: 8300</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Pine</td><td>34</td><td>0</td><td>1420</td></tr><tr><td>Almond</td><td>1</td><td>0</td><td>25</td></tr><tr><td>Birch</td><td>8</td><td>0</td><td>300</td></tr><tr><td>Elm</td><td>186</td><td>0</td><td>6555</td></tr><tr class="NR"/></table></td><td valign="top"><table><tr class="RC"><td>Recurring</td><td>Number: 284</td><td>Proj. Rev: 1159000</td><td>Act. Rev: 1664.48</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Pine</td><td>36</td><td>171000</td><td>221.3</td></tr><tr><td>Elm</td><td>240</td><td>950000</td><td>1412.34</td></tr><tr><td>Birch</td><td>8</td><td>38000</td><td>30.84</td></tr><tr class="RC"/></table></td></tr><tr class="
ACT
"/><tr class="
ACT
ACT
"/><tr class="
ACT
-"><td>SQUEEZE</td><td>Proj. Rev: 584250</td><td>Act. Rev: 730.749999999</td></tr><tr><td valign="top"/><td valign="top"><table><tr class="RC"><td>Recurring</td><td>Number: 123</td><td>Proj. Rev: 584250</td><td>Act. Rev: 730.749999999</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Pine</td><td>36</td><td>171000</td><td>221.3</td></tr><tr><td>Elm</td><td>80</td><td>380000</td><td>470.78</td></tr><tr><td>Birch</td><td>4</td><td>19000</td><td>15.42</td></tr><tr><td>Almond</td><td>3</td><td>14250</td><td>23.25</td></tr><tr class="RC"/></table></td></tr><tr class="
+"><td>SQUEEZE</td><td>Proj. Rev: 584250</td><td>Act. Rev: 730.75</td></tr><tr><td valign="top"/><td valign="top"><table><tr class="RC"><td>Recurring</td><td>Number: 123</td><td>Proj. Rev: 584250</td><td>Act. Rev: 730.75</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Pine</td><td>36</td><td>171000</td><td>221.3</td></tr><tr><td>Elm</td><td>80</td><td>380000</td><td>470.78</td></tr><tr><td>Birch</td><td>4</td><td>19000</td><td>15.42</td></tr><tr><td>Almond</td><td>3</td><td>14250</td><td>23.25</td></tr><tr class="RC"/></table></td></tr><tr class="
ACT
"/><tr class="
PROD
PROD
"/><tr class="
PROD
-"><td>Pineapple</td><td>Proj. Rev: 36250</td><td>Actual Rev: 73.129999999</td></tr><tr class="
+"><td>Pineapple</td><td>Proj. Rev: 36250</td><td>Actual Rev: 73.13</td></tr><tr class="
ACT
"><td>PICK</td><td>Proj. Rev: 23750</td><td>Act. Rev: 68.75</td></tr><tr><td valign="top"><table><tr class="NR"><td>Non-Recurring</td><td>Number: 1</td><td>Proj. Rev: 0</td><td>Act. Rev: 50</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Pine</td><td>1</td><td>0</td><td>50</td></tr><tr class="NR"/></table></td><td valign="top"><table><tr class="RC"><td>Recurring</td><td>Number: 3</td><td>Proj. Rev: 23750</td><td>Act. Rev: 18.75</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Pine</td><td>2</td><td>17500</td><td>8.75</td></tr><tr><td>Birch</td><td>1</td><td>6250</td><td>10</td></tr><tr class="RC"/></table></td></tr><tr class="
ACT
ACT
"/><tr class="
ACT
-"><td>SQUEEZE</td><td>Proj. Rev: 12500</td><td>Act. Rev: 4.379999999</td></tr><tr><td valign="top"/><td valign="top"><table><tr class="RC"><td>Recurring</td><td>Number: 2</td><td>Proj. Rev: 12500</td><td>Act. Rev: 4.379999999</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Elm</td><td>2</td><td>12500</td><td>4.38</td></tr><tr class="RC"/></table></td></tr><tr class="
+"><td>SQUEEZE</td><td>Proj. Rev: 12500</td><td>Act. Rev: 4.38</td></tr><tr><td valign="top"/><td valign="top"><table><tr class="RC"><td>Recurring</td><td>Number: 2</td><td>Proj. Rev: 12500</td><td>Act. Rev: 4.38</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Elm</td><td>2</td><td>12500</td><td>4.38</td></tr><tr class="RC"/></table></td></tr><tr class="
ACT
"/><tr class="
PROD
PROD
"/><tr class="
PROD
-"><td>Guava</td><td>Proj. Rev: 14995</td><td>Actual Rev: -19.489999999</td></tr><tr class="
+"><td>Guava</td><td>Proj. Rev: 14995</td><td>Actual Rev: -19.49</td></tr><tr class="
ACT
-"><td>SQUEEZE</td><td>Proj. Rev: 14995</td><td>Act. Rev: -19.489999999</td></tr><tr><td valign="top"/><td valign="top"><table><tr class="RC"><td>Recurring</td><td>Number: 1</td><td>Proj. Rev: 14995</td><td>Act. Rev: -19.489999999</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Pine</td><td>1</td><td>14995</td><td>-19.49</td></tr><tr class="RC"/></table></td></tr><tr class="
+"><td>SQUEEZE</td><td>Proj. Rev: 14995</td><td>Act. Rev: -19.49</td></tr><tr><td valign="top"/><td valign="top"><table><tr class="RC"><td>Recurring</td><td>Number: 1</td><td>Proj. Rev: 14995</td><td>Act. Rev: -19.49</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Pine</td><td>1</td><td>14995</td><td>-19.49</td></tr><tr class="RC"/></table></td></tr><tr class="
ACT
"/><tr class="
PROD
PROD
"/><tr class="
PROD
-"><td>Raisin</td><td>Proj. Rev: 299925</td><td>Actual Rev: 227.949999999</td></tr><tr class="
+"><td>Raisin</td><td>Proj. Rev: 299925</td><td>Actual Rev: 227.95</td></tr><tr class="
ACT
"><td>EAT</td><td>Proj. Rev: 0</td><td>Act. Rev: 0</td></tr><tr><td valign="top"><table><tr class="NR"><td>Non-Recurring</td><td>Number: 17</td><td>Proj. Rev: 0</td><td>Act. Rev: 0</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Oak</td><td>17</td><td>0</td><td>0</td></tr><tr class="NR"/></table></td><td valign="top"/></tr><tr class="
ACT
"/><tr class="
ACT
-"><td>SQUEEZE</td><td>Proj. Rev: 299925</td><td>Act. Rev: 227.949999999</td></tr><tr><td valign="top"/><td valign="top"><table><tr class="RC"><td>Recurring</td><td>Number: 15</td><td>Proj. Rev: 299925</td><td>Act. Rev: 227.949999999</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Oak</td><td>15</td><td>299925</td><td>227.95</td></tr><tr class="RC"/></table></td></tr><tr class="
+"><td>SQUEEZE</td><td>Proj. Rev: 299925</td><td>Act. Rev: 227.95</td></tr><tr><td valign="top"/><td valign="top"><table><tr class="RC"><td>Recurring</td><td>Number: 15</td><td>Proj. Rev: 299925</td><td>Act. Rev: 227.95</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Oak</td><td>15</td><td>299925</td><td>227.95</td></tr><tr class="RC"/></table></td></tr><tr class="
ACT
"/><tr class="
PROD
PROD
"><td>Fig</td><td>Proj. Rev: 74990</td><td>Actual Rev: 136.24</td></tr><tr class="
ACT
-"><td>PICK</td><td>Proj. Rev: 74990</td><td>Act. Rev: 136.24</td></tr><tr><td valign="top"><table><tr class="NR"><td>Non-Recurring</td><td>Number: 1</td><td>Proj. Rev: 0</td><td>Act. Rev: 50</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Oak</td><td>1</td><td>0</td><td>50</td></tr><tr class="NR"/></table></td><td valign="top"><table><tr class="RC"><td>Recurring</td><td>Number: 2</td><td>Proj. Rev: 74990</td><td>Act. Rev: 86.239999999</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Oak</td><td>2</td><td>74990</td><td>86.24</td></tr><tr class="RC"/></table></td></tr><tr class="
+"><td>PICK</td><td>Proj. Rev: 74990</td><td>Act. Rev: 136.24</td></tr><tr><td valign="top"><table><tr class="NR"><td>Non-Recurring</td><td>Number: 1</td><td>Proj. Rev: 0</td><td>Act. Rev: 50</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Oak</td><td>1</td><td>0</td><td>50</td></tr><tr class="NR"/></table></td><td valign="top"><table><tr class="RC"><td>Recurring</td><td>Number: 2</td><td>Proj. Rev: 74990</td><td>Act. Rev: 86.24</td></tr><tr><td>Segment</td><td>Number</td><td>Proj. Rev</td><td>Act. Rev</td></tr><tr><td>Oak</td><td>2</td><td>74990</td><td>86.24</td></tr><tr class="RC"/></table></td></tr><tr class="
ACT
"/><tr class="
PROD
--- /dev/null
+<?xml version= "1.0"?>
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+
+<xsl:template match="/">
+<xsl:processing-instruction name="php">Success</xsl:processing-instruction>
+</xsl:template>
+
+</xsl:stylesheet>