1
0
mirror of https://gitlab.gnome.org/GNOME/libxslt synced 2025-06-15 10:41:43 +03:00
Files
libxslt/doc/html/libxslt-xsltutils.html

4262 lines
59 KiB
HTML

<HTML
><HEAD
><TITLE
>xsltutils</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+
"><LINK
REL="HOME"
TITLE="Gnome XSLT Library Reference Manual"
HREF="book1.html"><LINK
REL="UP"
TITLE="Libxslt Library Reference"
HREF="libxslt-lib.html"><LINK
REL="PREVIOUS"
TITLE="transform"
HREF="libxslt-transform.html"><LINK
REL="NEXT"
TITLE="attributes"
HREF="libxslt-attributes.html"></HEAD
><BODY
CLASS="REFENTRY"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
BGCOLOR="#000000"
CELLPADDING="1"
CELLSPACING="0"
><TR
><TH
COLSPAN="4"
ALIGN="center"
><FONT
COLOR="#FFFFFF"
SIZE="5"
>Gnome XSLT Library Reference Manual</FONT
></TH
></TR
><TR
><TD
WIDTH="25%"
BGCOLOR="#C00000"
ALIGN="left"
><A
HREF="libxslt-transform.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>&#60;&#60;&#60; Previous Page</B
></FONT
></A
></TD
><TD
WIDTH="25%"
BGCOLOR="#0000C0"
ALIGN="center"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
><A
HREF="book1.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Home</B
></FONT
></A
></B
></FONT
></TD
><TD
WIDTH="25%"
BGCOLOR="#00C000"
ALIGN="center"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
><A
HREF="libxslt-lib.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Up</B
></FONT
></A
></B
></FONT
></TD
><TD
WIDTH="25%"
BGCOLOR="#C00000"
ALIGN="right"
><A
HREF="libxslt-attributes.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Next Page &#62;&#62;&#62;</B
></FONT
></A
></TD
></TR
></TABLE
></DIV
><H1
><A
NAME="LIBXSLT-XSLTUTILS"
></A
>xsltutils</H1
><DIV
CLASS="REFNAMEDIV"
><A
NAME="AEN2138"
></A
><H2
>Name</H2
>xsltutils&nbsp;--&nbsp;</DIV
><DIV
CLASS="REFSYNOPSISDIV"
><A
NAME="AEN2141"
></A
><H2
>Synopsis</H2
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="SYNOPSIS"
>&#13;
#define <A
HREF="libxslt-xsltutils.html#XSLT-TODO-CAPS"
>XSLT_TODO</A
>
#define <A
HREF="libxslt-xsltutils.html#XSLT-STRANGE-CAPS"
>XSLT_STRANGE</A
>
#define <A
HREF="libxslt-xsltutils.html#IS-XSLT-ELEM-CAPS"
>IS_XSLT_ELEM</A
> (n)
#define <A
HREF="libxslt-xsltutils.html#IS-XSLT-NAME-CAPS"
>IS_XSLT_NAME</A
> (n, val)
#define <A
HREF="libxslt-xsltutils.html#IS-XSLT-REAL-NODE-CAPS"
>IS_XSLT_REAL_NODE</A
> (n)
<GTKDOCLINK
HREF="XMLCHAR"
>xmlChar</GTKDOCLINK
>* <A
HREF="libxslt-xsltutils.html#XSLTGETNSPROP"
>xsltGetNsProp</A
> (<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> node,
const <GTKDOCLINK
HREF="XMLCHAR"
>xmlChar</GTKDOCLINK
> *name,
const <GTKDOCLINK
HREF="XMLCHAR"
>xmlChar</GTKDOCLINK
> *nameSpace);
int <A
HREF="libxslt-xsltutils.html#XSLTGETUTF8CHAR"
>xsltGetUTF8Char</A
> (unsigned char *utf,
int *len);
void <A
HREF="libxslt-xsltutils.html#XSLTPRINTERRORCONTEXT"
>xsltPrintErrorContext</A
> (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<A
HREF="libxslt-xsltinternals.html#XSLTSTYLESHEETPTR"
>xsltStylesheetPtr</A
> style,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> node);
void <A
HREF="libxslt-xsltutils.html#XSLTMESSAGE"
>xsltMessage</A
> (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> node,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> inst);
void <A
HREF="libxslt-xsltutils.html#XSLTSETGENERICERRORFUNC"
>xsltSetGenericErrorFunc</A
> (void *ctx,
<GTKDOCLINK
HREF="XMLGENERICERRORFUNC"
>xmlGenericErrorFunc</GTKDOCLINK
> handler);
void <A
HREF="libxslt-xsltutils.html#XSLTSETGENERICDEBUGFUNC"
>xsltSetGenericDebugFunc</A
> (void *ctx,
<GTKDOCLINK
HREF="XMLGENERICERRORFUNC"
>xmlGenericErrorFunc</GTKDOCLINK
> handler);
void <A
HREF="libxslt-xsltutils.html#XSLTSETTRANSFORMERRORFUNC"
>xsltSetTransformErrorFunc</A
> (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
void *ctx,
<GTKDOCLINK
HREF="XMLGENERICERRORFUNC"
>xmlGenericErrorFunc</GTKDOCLINK
> handler);
void <A
HREF="libxslt-xsltutils.html#XSLTTRANSFORMERROR"
>xsltTransformError</A
> (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<A
HREF="libxslt-xsltinternals.html#XSLTSTYLESHEETPTR"
>xsltStylesheetPtr</A
> style,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> node,
const char *msg,
...);
void <A
HREF="libxslt-xsltutils.html#XSLTDOCUMENTSORTFUNCTION"
>xsltDocumentSortFunction</A
> (<GTKDOCLINK
HREF="XMLNODESETPTR"
>xmlNodeSetPtr</GTKDOCLINK
> list);
void <A
HREF="libxslt-xsltutils.html#XSLTSETSORTFUNC"
>xsltSetSortFunc</A
> (<A
HREF="libxslt-xsltinternals.html#XSLTSORTFUNC"
>xsltSortFunc</A
> handler);
void <A
HREF="libxslt-xsltutils.html#XSLTSETCTXTSORTFUNC"
>xsltSetCtxtSortFunc</A
> (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<A
HREF="libxslt-xsltinternals.html#XSLTSORTFUNC"
>xsltSortFunc</A
> handler);
void <A
HREF="libxslt-xsltutils.html#XSLTDEFAULTSORTFUNCTION"
>xsltDefaultSortFunction</A
> (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> *sorts,
int nbsorts);
void <A
HREF="libxslt-xsltutils.html#XSLTDOSORTFUNCTION"
>xsltDoSortFunction</A
> (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> *sorts,
int nbsorts);
<GTKDOCLINK
HREF="XMLXPATHOBJECTPTR"
>xmlXPathObjectPtr</GTKDOCLINK
>* <A
HREF="libxslt-xsltutils.html#XSLTCOMPUTESORTRESULT"
>xsltComputeSortResult</A
> (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> sort);
const <GTKDOCLINK
HREF="XMLCHAR"
>xmlChar</GTKDOCLINK
>* <A
HREF="libxslt-xsltutils.html#XSLTGETQNAMEURI"
>xsltGetQNameURI</A
> (<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> node,
<GTKDOCLINK
HREF="XMLCHAR"
>xmlChar</GTKDOCLINK
> **name);
int <A
HREF="libxslt-xsltutils.html#XSLTSAVERESULTTO"
>xsltSaveResultTo</A
> (<GTKDOCLINK
HREF="XMLOUTPUTBUFFERPTR"
>xmlOutputBufferPtr</GTKDOCLINK
> buf,
<GTKDOCLINK
HREF="XMLDOCPTR"
>xmlDocPtr</GTKDOCLINK
> result,
<A
HREF="libxslt-xsltinternals.html#XSLTSTYLESHEETPTR"
>xsltStylesheetPtr</A
> style);
int <A
HREF="libxslt-xsltutils.html#XSLTSAVERESULTTOFILENAME"
>xsltSaveResultToFilename</A
> (const char *URI,
<GTKDOCLINK
HREF="XMLDOCPTR"
>xmlDocPtr</GTKDOCLINK
> result,
<A
HREF="libxslt-xsltinternals.html#XSLTSTYLESHEETPTR"
>xsltStylesheetPtr</A
> style,
int compression);
int <A
HREF="libxslt-xsltutils.html#XSLTSAVERESULTTOFILE"
>xsltSaveResultToFile</A
> (<GTKDOCLINK
HREF="FILE-CAPS"
>FILE</GTKDOCLINK
> *file,
<GTKDOCLINK
HREF="XMLDOCPTR"
>xmlDocPtr</GTKDOCLINK
> result,
<A
HREF="libxslt-xsltinternals.html#XSLTSTYLESHEETPTR"
>xsltStylesheetPtr</A
> style);
int <A
HREF="libxslt-xsltutils.html#XSLTSAVERESULTTOFD"
>xsltSaveResultToFd</A
> (int fd,
<GTKDOCLINK
HREF="XMLDOCPTR"
>xmlDocPtr</GTKDOCLINK
> result,
<A
HREF="libxslt-xsltinternals.html#XSLTSTYLESHEETPTR"
>xsltStylesheetPtr</A
> style);
int <A
HREF="libxslt-xsltutils.html#XSLTSAVERESULTTOSTRING"
>xsltSaveResultToString</A
> (<GTKDOCLINK
HREF="XMLCHAR"
>xmlChar</GTKDOCLINK
> **doc_txt_ptr,
int *doc_txt_len,
<GTKDOCLINK
HREF="XMLDOCPTR"
>xmlDocPtr</GTKDOCLINK
> result,
<A
HREF="libxslt-xsltinternals.html#XSLTSTYLESHEETPTR"
>xsltStylesheetPtr</A
> style);
void <A
HREF="libxslt-xsltutils.html#XSLTSAVEPROFILING"
>xsltSaveProfiling</A
> (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<GTKDOCLINK
HREF="FILE-CAPS"
>FILE</GTKDOCLINK
> *output);
<GTKDOCLINK
HREF="XMLDOCPTR"
>xmlDocPtr</GTKDOCLINK
> <A
HREF="libxslt-xsltutils.html#XSLTGETPROFILEINFORMATION"
>xsltGetProfileInformation</A
> (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt);
<GTKDOCLINK
HREF="LONG"
>long</GTKDOCLINK
> <A
HREF="libxslt-xsltutils.html#XSLTTIMESTAMP"
>xsltTimestamp</A
> (void);
void <A
HREF="libxslt-xsltutils.html#XSLTCALIBRATEADJUST"
>xsltCalibrateAdjust</A
> (<GTKDOCLINK
HREF="LONG-DELTA"
>long delta</GTKDOCLINK
>);
#define <A
HREF="libxslt-xsltutils.html#XSLT-TIMESTAMP-TICS-PER-SEC-CAPS"
>XSLT_TIMESTAMP_TICS_PER_SEC</A
>
enum <A
HREF="libxslt-xsltutils.html#XSLTDEBUGSTATUSCODES"
>xsltDebugStatusCodes</A
>;
void (<A
HREF="libxslt-xsltutils.html#XSLTHANDLEDEBUGGERCALLBACK"
>*xsltHandleDebuggerCallback</A
>) (<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> cur,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> node,
<A
HREF="libxslt-xsltinternals.html#XSLTTEMPLATEPTR"
>xsltTemplatePtr</A
> templ,
<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt);
int (<A
HREF="libxslt-xsltutils.html#XSLTADDCALLCALLBACK"
>*xsltAddCallCallback</A
>) (<A
HREF="libxslt-xsltinternals.html#XSLTTEMPLATEPTR"
>xsltTemplatePtr</A
> templ,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> source);
void (<A
HREF="libxslt-xsltutils.html#XSLTDROPCALLCALLBACK"
>*xsltDropCallCallback</A
>) (void);
int <A
HREF="libxslt-xsltutils.html#XSLTSETDEBUGGERCALLBACKS"
>xsltSetDebuggerCallbacks</A
> (int no,
void *block);
int <A
HREF="libxslt-xsltutils.html#XSLADDCALL"
>xslAddCall</A
> (<A
HREF="libxslt-xsltinternals.html#XSLTTEMPLATEPTR"
>xsltTemplatePtr</A
> templ,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> source);
void <A
HREF="libxslt-xsltutils.html#XSLDROPCALL"
>xslDropCall</A
> (void);</PRE
></TD
></TR
></TABLE
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN2239"
></A
><H2
>Description</H2
><P
></P
></DIV
><DIV
CLASS="REFSECT1"
><A
NAME="AEN2242"
></A
><H2
>Details</H2
><DIV
CLASS="REFSECT2"
><A
NAME="AEN2244"
></A
><H3
><A
NAME="XSLT-TODO-CAPS"
></A
>XSLT_TODO</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XSLT_TODO</PRE
></TD
></TR
></TABLE
><P
>Macro to flag unimplemented blocks.</P
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2250"
></A
><H3
><A
NAME="XSLT-STRANGE-CAPS"
></A
>XSLT_STRANGE</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XSLT_STRANGE</PRE
></TD
></TR
></TABLE
><P
>Macro to flag that a problem was detected internally.</P
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2256"
></A
><H3
><A
NAME="IS-XSLT-ELEM-CAPS"
></A
>IS_XSLT_ELEM()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define IS_XSLT_ELEM(n)</PRE
></TD
></TR
></TABLE
><P
>Checks that the element pertains to XSLT namespace.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2262"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>n</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2271"
></A
><H3
><A
NAME="IS-XSLT-NAME-CAPS"
></A
>IS_XSLT_NAME()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define IS_XSLT_NAME(n, val)</PRE
></TD
></TR
></TABLE
><P
>Checks the value of an element in XSLT namespace.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2277"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>n</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>val</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2290"
></A
><H3
><A
NAME="IS-XSLT-REAL-NODE-CAPS"
></A
>IS_XSLT_REAL_NODE()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define IS_XSLT_REAL_NODE(n)</PRE
></TD
></TR
></TABLE
><P
>Check that a node is a 'real' one: document, element, text or attribute.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2296"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>n</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2305"
></A
><H3
><A
NAME="XSLTGETNSPROP"
></A
>xsltGetNsProp ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
><GTKDOCLINK
HREF="XMLCHAR"
>xmlChar</GTKDOCLINK
>* xsltGetNsProp (<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> node,
const <GTKDOCLINK
HREF="XMLCHAR"
>xmlChar</GTKDOCLINK
> *name,
const <GTKDOCLINK
HREF="XMLCHAR"
>xmlChar</GTKDOCLINK
> *nameSpace);</PRE
></TD
></TR
></TABLE
><P
>Similar to <GTKDOCLINK
HREF="XMLGETNSPROP"
>xmlGetNsProp</GTKDOCLINK
>() but with a slightly different semantic</P
><P
>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.</P
><P
>This does the entity substitution.
This function looks in DTD attribute declaration for <GTKDOCLINK
HREF="FIXED-CAPS"
>FIXED</GTKDOCLINK
> or
default declaration values unless DTD use has been turned off.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2319"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>node</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the node</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>name</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the attribute name</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>nameSpace</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the URI of the namespace</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Returns</I
></SPAN
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>the attribute value or NULL if not found.
It's up to the caller to free the memory.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2340"
></A
><H3
><A
NAME="XSLTGETUTF8CHAR"
></A
>xsltGetUTF8Char ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>int xsltGetUTF8Char (unsigned char *utf,
int *len);</PRE
></TD
></TR
></TABLE
><P
>Read one UTF8 Char from <TT
CLASS="PARAMETER"
><I
>utf</I
></TT
>
Function copied from libxml2 <GTKDOCLINK
HREF="XMLGETUTF8CHAR"
>xmlGetUTF8Char</GTKDOCLINK
>() ... to discard ultimately
and use the original API</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2348"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>utf</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> a sequence of UTF-8 encoded bytes</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>len</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> a pointer to <TT
CLASS="PARAMETER"
><I
>bytes</I
></TT
> len</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Returns</I
></SPAN
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>the char value or -1 in case of error and update <TT
CLASS="PARAMETER"
><I
>len</I
></TT
> with the
number of bytes used</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2367"
></A
><H3
><A
NAME="XSLTPRINTERRORCONTEXT"
></A
>xsltPrintErrorContext ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xsltPrintErrorContext (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<A
HREF="libxslt-xsltinternals.html#XSLTSTYLESHEETPTR"
>xsltStylesheetPtr</A
> style,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> node);</PRE
></TD
></TR
></TABLE
><P
>Display the context of an error.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2376"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctxt</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the transformation context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>style</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the stylesheet</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>node</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the current node being processed</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2393"
></A
><H3
><A
NAME="XSLTMESSAGE"
></A
>xsltMessage ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xsltMessage (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> node,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> inst);</PRE
></TD
></TR
></TABLE
><P
>Process and xsl:message construct</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2402"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctxt</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> an XSLT processing context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>node</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> The current node</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>inst</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> The node containing the message instruction</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2419"
></A
><H3
><A
NAME="XSLTSETGENERICERRORFUNC"
></A
>xsltSetGenericErrorFunc ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xsltSetGenericErrorFunc (void *ctx,
<GTKDOCLINK
HREF="XMLGENERICERRORFUNC"
>xmlGenericErrorFunc</GTKDOCLINK
> handler);</PRE
></TD
></TR
></TABLE
><P
>Function to reset the handler and the error context for out of
context error messages.
This simply means that <TT
CLASS="PARAMETER"
><I
>handler</I
></TT
> will be called for subsequent
error messages while not parsing nor validating. And <TT
CLASS="PARAMETER"
><I
>ctx</I
></TT
> will
be passed as first argument to <TT
CLASS="PARAMETER"
><I
>handler</I
></TT
>
One can simply force messages to be emitted to another FILE * than
stderr by setting <TT
CLASS="PARAMETER"
><I
>ctx</I
></TT
> to this file handle and <TT
CLASS="PARAMETER"
><I
>handler</I
></TT
> to NULL.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2431"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctx</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the new error handling context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>handler</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the new handler function</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2444"
></A
><H3
><A
NAME="XSLTSETGENERICDEBUGFUNC"
></A
>xsltSetGenericDebugFunc ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xsltSetGenericDebugFunc (void *ctx,
<GTKDOCLINK
HREF="XMLGENERICERRORFUNC"
>xmlGenericErrorFunc</GTKDOCLINK
> handler);</PRE
></TD
></TR
></TABLE
><P
>Function to reset the handler and the error context for out of
context error messages.
This simply means that <TT
CLASS="PARAMETER"
><I
>handler</I
></TT
> will be called for subsequent
error messages while not parsing or validating. And <TT
CLASS="PARAMETER"
><I
>ctx</I
></TT
> will
be passed as first argument to <TT
CLASS="PARAMETER"
><I
>handler</I
></TT
>
One can simply force messages to be emitted to another FILE * than
stderr by setting <TT
CLASS="PARAMETER"
><I
>ctx</I
></TT
> to this file handle and <TT
CLASS="PARAMETER"
><I
>handler</I
></TT
> to NULL.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2456"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctx</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the new error handling context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>handler</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the new handler function</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2469"
></A
><H3
><A
NAME="XSLTSETTRANSFORMERRORFUNC"
></A
>xsltSetTransformErrorFunc ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xsltSetTransformErrorFunc (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
void *ctx,
<GTKDOCLINK
HREF="XMLGENERICERRORFUNC"
>xmlGenericErrorFunc</GTKDOCLINK
> handler);</PRE
></TD
></TR
></TABLE
><P
>Function to reset the handler and the error context for out of
context error messages specific to a given XSLT transromation.</P
><P
>This simply means that <TT
CLASS="PARAMETER"
><I
>handler</I
></TT
> will be called for subsequent
error messages while running the transformation.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2479"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctxt</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the XSLT transformation context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctx</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the new error handling context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>handler</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the new handler function</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2496"
></A
><H3
><A
NAME="XSLTTRANSFORMERROR"
></A
>xsltTransformError ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xsltTransformError (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<A
HREF="libxslt-xsltinternals.html#XSLTSTYLESHEETPTR"
>xsltStylesheetPtr</A
> style,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> node,
const char *msg,
...);</PRE
></TD
></TR
></TABLE
><P
>Display and format an error messages, gives file, line, position and
extra parameters, will use the specific transformation context if available</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2505"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctxt</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> an XSLT transformation context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>style</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the XSLT stylesheet used</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>node</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the current node in the stylesheet</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>msg</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the message to display/transmit</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>...</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> extra parameters for the message display</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2530"
></A
><H3
><A
NAME="XSLTDOCUMENTSORTFUNCTION"
></A
>xsltDocumentSortFunction ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xsltDocumentSortFunction (<GTKDOCLINK
HREF="XMLNODESETPTR"
>xmlNodeSetPtr</GTKDOCLINK
> list);</PRE
></TD
></TR
></TABLE
><P
>reorder the current node list <TT
CLASS="PARAMETER"
><I
>list</I
></TT
> accordingly to the document order</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2538"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>list</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the node set</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2547"
></A
><H3
><A
NAME="XSLTSETSORTFUNC"
></A
>xsltSetSortFunc ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xsltSetSortFunc (<A
HREF="libxslt-xsltinternals.html#XSLTSORTFUNC"
>xsltSortFunc</A
> handler);</PRE
></TD
></TR
></TABLE
><P
>Function to reset the global handler for XSLT sorting.
If the handler is NULL, the default sort function will be used.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2554"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>handler</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the new handler function</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2563"
></A
><H3
><A
NAME="XSLTSETCTXTSORTFUNC"
></A
>xsltSetCtxtSortFunc ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xsltSetCtxtSortFunc (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<A
HREF="libxslt-xsltinternals.html#XSLTSORTFUNC"
>xsltSortFunc</A
> handler);</PRE
></TD
></TR
></TABLE
><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
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2571"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctxt</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> a XSLT process context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>handler</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the new handler function</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2584"
></A
><H3
><A
NAME="XSLTDEFAULTSORTFUNCTION"
></A
>xsltDefaultSortFunction ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xsltDefaultSortFunction (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> *sorts,
int nbsorts);</PRE
></TD
></TR
></TABLE
><P
>reorder the current node list accordingly to the set of sorting
requirement provided by the arry of nodes.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2592"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctxt</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> a XSLT process context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>sorts</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> array of sort nodes</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>nbsorts</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the number of sorts in the array</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2609"
></A
><H3
><A
NAME="XSLTDOSORTFUNCTION"
></A
>xsltDoSortFunction ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xsltDoSortFunction (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> *sorts,
int nbsorts);</PRE
></TD
></TR
></TABLE
><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 <A
HREF="libxslt-xsltutils.html#XSLTSETCTXTSORTFUNC"
>xsltSetCtxtSortFunc</A
>() to set the context specific sort function,
or <A
HREF="libxslt-xsltutils.html#XSLTSETSORTFUNC"
>xsltSetSortFunc</A
>() 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
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2619"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctxt</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> a XSLT process context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>sorts</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> array of sort nodes</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>nbsorts</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the number of sorts in the array</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2636"
></A
><H3
><A
NAME="XSLTCOMPUTESORTRESULT"
></A
>xsltComputeSortResult ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
><GTKDOCLINK
HREF="XMLXPATHOBJECTPTR"
>xmlXPathObjectPtr</GTKDOCLINK
>* xsltComputeSortResult (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> sort);</PRE
></TD
></TR
></TABLE
><P
>reorder the current node list accordingly to the set of sorting
requirement provided by the array of nodes.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2645"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctxt</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> a XSLT process context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>sort</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> node list</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Returns</I
></SPAN
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>a ordered XPath nodeset or NULL in case of error.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2662"
></A
><H3
><A
NAME="XSLTGETQNAMEURI"
></A
>xsltGetQNameURI ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>const <GTKDOCLINK
HREF="XMLCHAR"
>xmlChar</GTKDOCLINK
>* xsltGetQNameURI (<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> node,
<GTKDOCLINK
HREF="XMLCHAR"
>xmlChar</GTKDOCLINK
> **name);</PRE
></TD
></TR
></TABLE
><P
>This function analyzes <TT
CLASS="PARAMETER"
><I
>name</I
></TT
>, if the name contains a prefix,
the function seaches the associated namespace in scope for it.
It will also replace <TT
CLASS="PARAMETER"
><I
>name</I
></TT
> value with the NCName, the old value being
freed.
Errors in the prefix lookup are signalled by setting <TT
CLASS="PARAMETER"
><I
>name</I
></TT
> to NULL.</P
><P
>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
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2675"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>node</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the node holding the QName</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>name</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> pointer to the initial QName value</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Returns</I
></SPAN
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>the namespace URI if there is a prefix, or NULL if <TT
CLASS="PARAMETER"
><I
>name</I
></TT
> is
not prefixed.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2693"
></A
><H3
><A
NAME="XSLTSAVERESULTTO"
></A
>xsltSaveResultTo ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>int xsltSaveResultTo (<GTKDOCLINK
HREF="XMLOUTPUTBUFFERPTR"
>xmlOutputBufferPtr</GTKDOCLINK
> buf,
<GTKDOCLINK
HREF="XMLDOCPTR"
>xmlDocPtr</GTKDOCLINK
> result,
<A
HREF="libxslt-xsltinternals.html#XSLTSTYLESHEETPTR"
>xsltStylesheetPtr</A
> style);</PRE
></TD
></TR
></TABLE
><P
>Save the result <TT
CLASS="PARAMETER"
><I
>result</I
></TT
> obtained by applying the <TT
CLASS="PARAMETER"
><I
>style</I
></TT
> stylesheet
to an I/O output channel <TT
CLASS="PARAMETER"
><I
>buf</I
></TT
></P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2705"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>buf</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> an output buffer</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>result</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the result xmlDocPtr</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>style</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the stylesheet</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Returns</I
></SPAN
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>the number of byte written or -1 in case of failure.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2726"
></A
><H3
><A
NAME="XSLTSAVERESULTTOFILENAME"
></A
>xsltSaveResultToFilename ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>int xsltSaveResultToFilename (const char *URI,
<GTKDOCLINK
HREF="XMLDOCPTR"
>xmlDocPtr</GTKDOCLINK
> result,
<A
HREF="libxslt-xsltinternals.html#XSLTSTYLESHEETPTR"
>xsltStylesheetPtr</A
> style,
int compression);</PRE
></TD
></TR
></TABLE
><P
>Save the result <TT
CLASS="PARAMETER"
><I
>result</I
></TT
> obtained by applying the <TT
CLASS="PARAMETER"
><I
>style</I
></TT
> stylesheet
to a file or <TT
CLASS="PARAMETER"
><I
>URL</I
></TT
></P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2737"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>URI</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>result</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the result xmlDocPtr</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>style</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the stylesheet</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>compression</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the compression factor (0 - 9 included)</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Returns</I
></SPAN
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>the number of byte written or -1 in case of failure.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2762"
></A
><H3
><A
NAME="XSLTSAVERESULTTOFILE"
></A
>xsltSaveResultToFile ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>int xsltSaveResultToFile (<GTKDOCLINK
HREF="FILE-CAPS"
>FILE</GTKDOCLINK
> *file,
<GTKDOCLINK
HREF="XMLDOCPTR"
>xmlDocPtr</GTKDOCLINK
> result,
<A
HREF="libxslt-xsltinternals.html#XSLTSTYLESHEETPTR"
>xsltStylesheetPtr</A
> style);</PRE
></TD
></TR
></TABLE
><P
>Save the result <TT
CLASS="PARAMETER"
><I
>result</I
></TT
> obtained by applying the <TT
CLASS="PARAMETER"
><I
>style</I
></TT
> stylesheet
to an open FILE * I/O.
This does not close the FILE <TT
CLASS="PARAMETER"
><I
>file</I
></TT
></P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2774"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>file</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> a FILE * I/O</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>result</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the result xmlDocPtr</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>style</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the stylesheet</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Returns</I
></SPAN
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>the number of bytes written or -1 in case of failure.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2795"
></A
><H3
><A
NAME="XSLTSAVERESULTTOFD"
></A
>xsltSaveResultToFd ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>int xsltSaveResultToFd (int fd,
<GTKDOCLINK
HREF="XMLDOCPTR"
>xmlDocPtr</GTKDOCLINK
> result,
<A
HREF="libxslt-xsltinternals.html#XSLTSTYLESHEETPTR"
>xsltStylesheetPtr</A
> style);</PRE
></TD
></TR
></TABLE
><P
>Save the result <TT
CLASS="PARAMETER"
><I
>result</I
></TT
> obtained by applying the <TT
CLASS="PARAMETER"
><I
>style</I
></TT
> stylesheet
to an open file descriptor
This does not close the descriptor.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2805"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>fd</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> a file descriptor</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>result</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the result xmlDocPtr</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>style</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the stylesheet</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Returns</I
></SPAN
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>the number of bytes written or -1 in case of failure.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2826"
></A
><H3
><A
NAME="XSLTSAVERESULTTOSTRING"
></A
>xsltSaveResultToString ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>int xsltSaveResultToString (<GTKDOCLINK
HREF="XMLCHAR"
>xmlChar</GTKDOCLINK
> **doc_txt_ptr,
int *doc_txt_len,
<GTKDOCLINK
HREF="XMLDOCPTR"
>xmlDocPtr</GTKDOCLINK
> result,
<A
HREF="libxslt-xsltinternals.html#XSLTSTYLESHEETPTR"
>xsltStylesheetPtr</A
> style);</PRE
></TD
></TR
></TABLE
><P
>Save the result <TT
CLASS="PARAMETER"
><I
>result</I
></TT
> obtained by applying the <TT
CLASS="PARAMETER"
><I
>style</I
></TT
> stylesheet
to a file or <TT
CLASS="PARAMETER"
><I
>URL</I
></TT
></P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2838"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>doc_txt_ptr</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> Memory pointer for allocated XML text</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>doc_txt_len</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> Length of the generated XML text</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>result</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the result xmlDocPtr</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>style</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the stylesheet</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Returns</I
></SPAN
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>the number of byte written or -1 in case of failure.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2863"
></A
><H3
><A
NAME="XSLTSAVEPROFILING"
></A
>xsltSaveProfiling ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xsltSaveProfiling (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt,
<GTKDOCLINK
HREF="FILE-CAPS"
>FILE</GTKDOCLINK
> *output);</PRE
></TD
></TR
></TABLE
><P
>Save the profiling informations on <TT
CLASS="PARAMETER"
><I
>output</I
></TT
></P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2872"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctxt</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> an XSLT context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>output</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> a FILE * for saving the informations</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2885"
></A
><H3
><A
NAME="XSLTGETPROFILEINFORMATION"
></A
>xsltGetProfileInformation ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
><GTKDOCLINK
HREF="XMLDOCPTR"
>xmlDocPtr</GTKDOCLINK
> xsltGetProfileInformation (<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt);</PRE
></TD
></TR
></TABLE
><P
>This function should be called after the transformation completed
to extract template processing profiling informations if availble.
The informations are 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 <GTKDOCLINK
HREF="XMLFREEDOC"
>xmlFreeDoc</GTKDOCLINK
>()</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2894"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctxt</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> a transformation context</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Returns</I
></SPAN
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>the xmlDocPtr corresponding to the result or NULL if not available.</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2907"
></A
><H3
><A
NAME="XSLTTIMESTAMP"
></A
>xsltTimestamp ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
><GTKDOCLINK
HREF="LONG"
>long</GTKDOCLINK
> xsltTimestamp (void);</PRE
></TD
></TR
></TABLE
><P
>Used for gathering profiling data</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2914"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Returns</I
></SPAN
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>the number of tenth of milliseconds since the beginning of the
profiling</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2923"
></A
><H3
><A
NAME="XSLTCALIBRATEADJUST"
></A
>xsltCalibrateAdjust ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xsltCalibrateAdjust (<GTKDOCLINK
HREF="LONG-DELTA"
>long delta</GTKDOCLINK
>);</PRE
></TD
></TR
></TABLE
><P
>Used for to correct the calibration for <A
HREF="libxslt-xsltutils.html#XSLTTIMESTAMP"
>xsltTimestamp</A
>()</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2931"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>Param1</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2940"
></A
><H3
><A
NAME="XSLT-TIMESTAMP-TICS-PER-SEC-CAPS"
></A
>XSLT_TIMESTAMP_TICS_PER_SEC</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>#define XSLT_TIMESTAMP_TICS_PER_SEC 100000l</PRE
></TD
></TR
></TABLE
><P
>Sampling precision for profiling</P
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2946"
></A
><H3
><A
NAME="XSLTDEBUGSTATUSCODES"
></A
>enum xsltDebugStatusCodes</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>typedef enum {
XSLT_DEBUG_NONE = 0, /* no debugging allowed */
XSLT_DEBUG_INIT,
XSLT_DEBUG_STEP,
XSLT_DEBUG_STEPOUT,
XSLT_DEBUG_NEXT,
XSLT_DEBUG_STOP,
XSLT_DEBUG_CONT,
XSLT_DEBUG_RUN,
XSLT_DEBUG_RUN_RESTART,
XSLT_DEBUG_QUIT
} xsltDebugStatusCodes;</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2951"
></A
><H3
><A
NAME="XSLTHANDLEDEBUGGERCALLBACK"
></A
>xsltHandleDebuggerCallback ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void (*xsltHandleDebuggerCallback) (<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> cur,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> node,
<A
HREF="libxslt-xsltinternals.html#XSLTTEMPLATEPTR"
>xsltTemplatePtr</A
> templ,
<A
HREF="libxslt-xsltinternals.html#XSLTTRANSFORMCONTEXTPTR"
>xsltTransformContextPtr</A
> ctxt);</PRE
></TD
></TR
></TABLE
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2960"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>cur</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>node</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>templ</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>ctxt</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN2981"
></A
><H3
><A
NAME="XSLTADDCALLCALLBACK"
></A
>xsltAddCallCallback ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>int (*xsltAddCallCallback) (<A
HREF="libxslt-xsltinternals.html#XSLTTEMPLATEPTR"
>xsltTemplatePtr</A
> templ,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> source);</PRE
></TD
></TR
></TABLE
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN2988"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>templ</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>source</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Returns</I
></SPAN
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>&nbsp;</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3005"
></A
><H3
><A
NAME="XSLTDROPCALLCALLBACK"
></A
>xsltDropCallCallback ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void (*xsltDropCallCallback) (void);</PRE
></TD
></TR
></TABLE
><P
></P
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3010"
></A
><H3
><A
NAME="XSLTSETDEBUGGERCALLBACKS"
></A
>xsltSetDebuggerCallbacks ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>int xsltSetDebuggerCallbacks (int no,
void *block);</PRE
></TD
></TR
></TABLE
><P
>This function allow to plug a debugger into the XSLT library
<TT
CLASS="PARAMETER"
><I
>block</I
></TT
> points to a block of memory containing the address of <TT
CLASS="PARAMETER"
><I
>no</I
></TT
>
callback routines.</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN3018"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>no</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> number of callbacks</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>block</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the block of callbacks</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Returns</I
></SPAN
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>0 in case of success and -1 in case of error</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3035"
></A
><H3
><A
NAME="XSLADDCALL"
></A
>xslAddCall ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>int xslAddCall (<A
HREF="libxslt-xsltinternals.html#XSLTTEMPLATEPTR"
>xsltTemplatePtr</A
> templ,
<GTKDOCLINK
HREF="XMLNODEPTR"
>xmlNodePtr</GTKDOCLINK
> source);</PRE
></TD
></TR
></TABLE
><P
>Add template "call" to call stack</P
><P
></P
><DIV
CLASS="INFORMALTABLE"
><A
NAME="AEN3043"
></A
><P
></P
><TABLE
BORDER="0"
WIDTH="100%"
BGCOLOR="#FFD0D0"
CELLSPACING="0"
CELLPADDING="4"
CLASS="CALSTABLE"
><TBODY
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>templ</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> current template being applied</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><TT
CLASS="PARAMETER"
><I
>source</I
></TT
>&nbsp;:</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
> the source node being processed</TD
></TR
><TR
><TD
WIDTH="20%"
ALIGN="RIGHT"
VALIGN="TOP"
><SPAN
CLASS="emphasis"
><I
CLASS="EMPHASIS"
>Returns</I
></SPAN
> :</TD
><TD
WIDTH="80%"
ALIGN="LEFT"
VALIGN="TOP"
>: 1 on sucess 0 otherwise an error may be printed if
WITH_XSLT_DEBUG_BREAKPOINTS is defined</TD
></TR
></TBODY
></TABLE
><P
></P
></DIV
></DIV
><HR><DIV
CLASS="REFSECT2"
><A
NAME="AEN3060"
></A
><H3
><A
NAME="XSLDROPCALL"
></A
>xslDropCall ()</H3
><TABLE
BORDER="0"
BGCOLOR="#D6E8FF"
WIDTH="100%"
CELLPADDING="6"
><TR
><TD
><PRE
CLASS="PROGRAMLISTING"
>void xslDropCall (void);</PRE
></TD
></TR
></TABLE
><P
>Drop the topmost item off the call stack</P
><P
></P
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><BR
CLEAR="all"><BR><TABLE
WIDTH="100%"
BORDER="0"
BGCOLOR="#000000"
CELLPADDING="1"
CELLSPACING="0"
><TR
><TD
WIDTH="25%"
BGCOLOR="#C00000"
ALIGN="left"
><A
HREF="libxslt-transform.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>&#60;&#60;&#60; Previous Page</B
></FONT
></A
></TD
><TD
WIDTH="25%"
BGCOLOR="#0000C0"
ALIGN="center"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
><A
HREF="book1.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Home</B
></FONT
></A
></B
></FONT
></TD
><TD
WIDTH="25%"
BGCOLOR="#00C000"
ALIGN="center"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
><A
HREF="libxslt-lib.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Up</B
></FONT
></A
></B
></FONT
></TD
><TD
WIDTH="25%"
BGCOLOR="#C00000"
ALIGN="right"
><A
HREF="libxslt-attributes.html"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>Next Page &#62;&#62;&#62;</B
></FONT
></A
></TD
></TR
><TR
><TD
COLSPAN="2"
ALIGN="left"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>transform</B
></FONT
></TD
><TD
COLSPAN="2"
ALIGN="right"
><FONT
COLOR="#FFFFFF"
SIZE="3"
><B
>attributes</B
></FONT
></TD
></TR
></TABLE
></DIV
></BODY
></HTML
>