1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>xsltInternals</title><meta name="generator" content="DocBook XSL Stylesheets V1.58.1"><style xmlns="http://www.w3.org/TR/xhtml1/transitional" type="text/css">
3 .synopsis, .classsynopsis {
5 border: solid 1px #aaaaaa;
10 border: solid 1px #aaaaff;
19 border: solid 1px #ffaaaa;
26 .navigation a:visited {
32 </style><link rel="home" href="index.html" title="Gnome XSLT Library Reference Manual"><link rel="up" href="libxslt-lib.html" title="Libxslt Library Reference"><link rel="previous" href="libxslt-keys.html" title="keys"><link rel="next" href="libxslt-numbersInternals.html" title="numbersInternals"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="libxslt-keys.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></img></a></td><td><a accesskey="u" href="libxslt-lib.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></img></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></img></a></td><th width="100%" align="center">Gnome XSLT Library Reference Manual</th><td><a accesskey="n" href="libxslt-numbersInternals.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></img></a></td></tr></table><div class="refentry" lang="en"><a name="libxslt-xsltInternals"></a><div class="titlepage"></div><div class="refnamediv"><h2>xsltInternals</h2><p>xsltInternals — </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
36 #define <a href="libxslt-xsltInternals.html#XSLT-MAX-SORT-CAPS">XSLT_MAX_SORT</a>
37 #define <a href="libxslt-xsltInternals.html#XSLT-PAT-NO-PRIORITY-CAPS">XSLT_PAT_NO_PRIORITY</a>
38 struct <a href="libxslt-xsltInternals.html#xsltRuntimeExtra">xsltRuntimeExtra</a>;
39 typedef <a href="libxslt-xsltInternals.html#xsltRuntimeExtraPtr">xsltRuntimeExtraPtr</a>;
40 #define <a href="libxslt-xsltInternals.html#XSLT-RUNTIME-EXTRA-LST-CAPS">XSLT_RUNTIME_EXTRA_LST</a> (ctxt, nr)
41 #define <a href="libxslt-xsltInternals.html#XSLT-RUNTIME-EXTRA-FREE-CAPS">XSLT_RUNTIME_EXTRA_FREE</a> (ctxt, nr)
42 #define <a href="libxslt-xsltInternals.html#XSLT-RUNTIME-EXTRA-CAPS">XSLT_RUNTIME_EXTRA</a> (ctxt, nr)
43 struct <a href="libxslt-xsltInternals.html#xsltTemplate">xsltTemplate</a>;
44 typedef <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>;
45 struct <a href="libxslt-xsltInternals.html#xsltDecimalFormat">xsltDecimalFormat</a>;
46 typedef <a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a>;
47 struct <a href="libxslt-xsltInternals.html#xsltDocument">xsltDocument</a>;
48 typedef <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>;
49 struct <a href="libxslt-xsltInternals.html#xsltTransformContext">xsltTransformContext</a>;
50 typedef <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a>;
51 struct <a href="libxslt-xsltInternals.html#xsltElemPreComp">xsltElemPreComp</a>;
52 typedef <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>;
53 void (<a href="libxslt-xsltInternals.html#xsltTransformFunction">*xsltTransformFunction</a>) (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt,
54 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> node,
55 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> inst,
56 <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
57 void (<a href="libxslt-xsltInternals.html#xsltSortFunc">*xsltSortFunc</a>) (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt,
58 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> *sorts,
60 enum <a href="libxslt-xsltInternals.html#xsltStyleType">xsltStyleType</a>;
61 void (<a href="libxslt-xsltInternals.html#xsltElemPreCompDeallocator">*xsltElemPreCompDeallocator</a>) (<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
62 struct <a href="libxslt-xsltInternals.html#xsltStylePreComp">xsltStylePreComp</a>;
63 typedef <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a>;
64 struct <a href="libxslt-xsltInternals.html#xsltStackElem">xsltStackElem</a>;
65 typedef <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a>;
66 struct <a href="libxslt-xsltInternals.html#xsltStylesheet">xsltStylesheet</a>;
67 typedef <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>;
68 enum <a href="libxslt-xsltInternals.html#xsltOutputType">xsltOutputType</a>;
69 enum <a href="libxslt-xsltInternals.html#xsltTransformState">xsltTransformState</a>;
70 #define <a href="libxslt-xsltInternals.html#CHECK-STOPPED-CAPS">CHECK_STOPPED</a>
71 #define <a href="libxslt-xsltInternals.html#CHECK-STOPPEDE-CAPS">CHECK_STOPPEDE</a>
72 #define <a href="libxslt-xsltInternals.html#CHECK-STOPPED0-CAPS">CHECK_STOPPED0</a>
73 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="libxslt-xsltInternals.html#xsltNewStylesheet">xsltNewStylesheet</a> (void);
74 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="libxslt-xsltInternals.html#xsltParseStylesheetFile">xsltParseStylesheetFile</a> (const <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> *filename);
75 void <a href="libxslt-xsltInternals.html#xsltFreeStylesheet">xsltFreeStylesheet</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> sheet);
76 int <a href="libxslt-xsltInternals.html#xsltIsBlank">xsltIsBlank</a> (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> *str);
77 void <a href="libxslt-xsltInternals.html#xsltFreeStackElemList">xsltFreeStackElemList</a> (<a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elem);
78 <a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> <a href="libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a>
79 (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> sheet,
80 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> *name);
81 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a>
82 (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> ret,
83 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> doc);
84 void <a href="libxslt-xsltInternals.html#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style,
85 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> cur);
86 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="libxslt-xsltInternals.html#xsltParseStylesheetDoc">xsltParseStylesheetDoc</a> (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> doc);
87 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a>
88 (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> doc);
89 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="libxslt-xsltInternals.html#xsltLoadStylesheetPI">xsltLoadStylesheetPI</a> (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> doc);
90 void <a href="libxslt-xsltInternals.html#xsltNumberFormat">xsltNumberFormat</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt,
91 <a href="libxslt-numbersInternals.html#xsltNumberDataPtr">xsltNumberDataPtr</a> data,
92 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> node);
93 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlXPathError">xmlXPathError</GTKDOCLINK> <a href="libxslt-xsltInternals.html#xsltFormatNumberConversion">xsltFormatNumberConversion</a> (<a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> self,
94 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> *format,
95 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="double">double</GTKDOCLINK> number,
96 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> **result);
97 void <a href="libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style,
98 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> templ);
99 int <a href="libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
100 int <a href="libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
101 </pre></div><div class="refsect1" lang="en"><h2>Description</h2><p>
103 </p></div><div class="refsect1" lang="en"><h2>Details</h2><div class="refsect2" lang="en"><h3><a name="XSLT-MAX-SORT-CAPS"></a>XSLT_MAX_SORT</h3><pre class="programlisting">#define XSLT_MAX_SORT 15
105 Max number of specified xsl:sort on an element.</p><p>
107 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="XSLT-PAT-NO-PRIORITY-CAPS"></a>XSLT_PAT_NO_PRIORITY</h3><pre class="programlisting">#define XSLT_PAT_NO_PRIORITY -12345789
109 Specific value for pattern without priority expressed.</p><p>
111 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltRuntimeExtra"></a>struct xsltRuntimeExtra</h3><pre class="programlisting">struct xsltRuntimeExtra {
112 void *info; /* pointer to the extra data */
113 xmlFreeFunc deallocate; /* pointer to the deallocation routine */
114 void *val; /* data not needing deallocation */
117 Extra information added to the transformation context.</p><p>
119 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltRuntimeExtraPtr"></a>xsltRuntimeExtraPtr</h3><pre class="programlisting">typedef xsltRuntimeExtra *xsltRuntimeExtraPtr;
122 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="XSLT-RUNTIME-EXTRA-LST-CAPS"></a>XSLT_RUNTIME_EXTRA_LST()</h3><pre class="programlisting">#define XSLT_RUNTIME_EXTRA_LST(ctxt, nr) (ctxt)->extras[(nr)].info
124 Macro used to access extra information stored in the context</p><p>
126 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> the transformation context
127 </td></tr><tr><td><span class="term"><i><tt>nr</tt></i> :</span></td><td> the index
128 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="XSLT-RUNTIME-EXTRA-FREE-CAPS"></a>XSLT_RUNTIME_EXTRA_FREE()</h3><pre class="programlisting">#define XSLT_RUNTIME_EXTRA_FREE(ctxt, nr) (ctxt)->extras[(nr)].deallocate
130 Macro used to free extra information stored in the context</p><p>
132 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> the transformation context
133 </td></tr><tr><td><span class="term"><i><tt>nr</tt></i> :</span></td><td> the index
134 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="XSLT-RUNTIME-EXTRA-CAPS"></a>XSLT_RUNTIME_EXTRA()</h3><pre class="programlisting">#define XSLT_RUNTIME_EXTRA(ctxt, nr) (ctxt)->extras[(nr)].val
136 Macro used to define extra information stored in the context</p><p>
138 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> the transformation context
139 </td></tr><tr><td><span class="term"><i><tt>nr</tt></i> :</span></td><td> the index
140 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltTemplate"></a>struct xsltTemplate</h3><pre class="programlisting">struct xsltTemplate {
141 struct _xsltTemplate *next;/* chained list sorted by priority */
142 struct _xsltStylesheet *style;/* the containing stylesheet */
143 xmlChar *match; /* the matching string */
144 float priority; /* as given from the stylesheet, not computed */
145 xmlChar *name; /* the local part of the name QName */
146 xmlChar *nameURI; /* the URI part of the name QName */
147 xmlChar *mode; /* the local part of the mode QName */
148 xmlChar *modeURI; /* the URI part of the mode QName */
149 xmlNodePtr content; /* the template replacement value */
150 xmlNodePtr elem; /* the source element */
152 int inheritedNsNr; /* number of inherited namespaces */
153 xmlNsPtr *inheritedNs;/* inherited non-excluded namespaces */
155 /* Profiling informations */
156 int nbCalls; /* the number of time the template was called */
157 unsigned long time; /* the time spent in this template */
160 The in-memory structure corresponding to an XSLT Template.</p><p>
162 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltTemplatePtr"></a>xsltTemplatePtr</h3><pre class="programlisting">typedef xsltTemplate *xsltTemplatePtr;
165 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltDecimalFormat"></a>struct xsltDecimalFormat</h3><pre class="programlisting">struct xsltDecimalFormat {
166 struct _xsltDecimalFormat *next; /* chained list */
168 /* Used for interpretation of pattern */
170 xmlChar *patternSeparator;
171 /* May appear in result */
174 xmlChar *noNumber; /* Not-a-number */
175 /* Used for interpretation of pattern and may appear in result */
176 xmlChar *decimalPoint;
183 Data structure of decimal-format.</p><p>
185 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltDecimalFormatPtr"></a>xsltDecimalFormatPtr</h3><pre class="programlisting">typedef xsltDecimalFormat *xsltDecimalFormatPtr;
188 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltDocument"></a>struct xsltDocument</h3><pre class="programlisting">struct xsltDocument {
189 struct _xsltDocument *next; /* documents are kept in a chained list */
190 int main; /* is this the main document */
191 xmlDocPtr doc; /* the parsed document */
192 void *keys; /* key tables storage */
195 Data structure associated to a parsed document.</p><p>
197 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltDocumentPtr"></a>xsltDocumentPtr</h3><pre class="programlisting">typedef xsltDocument *xsltDocumentPtr;
200 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltTransformContext"></a>struct xsltTransformContext</h3><pre class="programlisting">struct xsltTransformContext {
201 xsltStylesheetPtr style; /* the stylesheet used */
202 xsltOutputType type; /* the type of output */
204 xsltTemplatePtr templ; /* the current template */
205 int templNr; /* Nb of templates in the stack */
206 int templMax; /* Size of the templtes stack */
207 xsltTemplatePtr *templTab; /* the template stack */
209 xsltStackElemPtr vars; /* the current variable list */
210 int varsNr; /* Nb of variable list in the stack */
211 int varsMax; /* Size of the variable list stack */
212 xsltStackElemPtr *varsTab; /* the variable list stack */
213 int varsBase; /* the var base for current templ */
218 xmlHashTablePtr extFunctions; /* the extension functions */
219 xmlHashTablePtr extElements; /* the extension elements */
220 xmlHashTablePtr extInfos; /* the extension data */
222 const xmlChar *mode; /* the current mode */
223 const xmlChar *modeURI; /* the current mode URI */
225 xsltDocumentPtr docList; /* the document list */
227 xsltDocumentPtr document; /* the current document */
228 xmlNodePtr node; /* the current node being processed */
229 xmlNodeSetPtr nodeList; /* the current node list */
230 /* xmlNodePtr current; the node */
232 xmlDocPtr output; /* the resulting document */
233 xmlNodePtr insert; /* the insertion node */
235 xmlXPathContextPtr xpathCtxt; /* the XPath context */
236 xsltTransformState state; /* the current state */
241 xmlHashTablePtr globalVars; /* the global variables and params */
243 xmlNodePtr inst; /* the instruction in the stylesheet */
245 int xinclude; /* should XInclude be processed */
247 const char * outputFile; /* the output URI if known */
249 int profile; /* is this run profiled */
250 long prof; /* the current profiled value */
251 int profNr; /* Nb of templates in the stack */
252 int profMax; /* Size of the templtaes stack */
253 long *profTab; /* the profile template stack */
255 void *_private; /* user defined data */
257 int extrasNr; /* the number of extras used */
258 int extrasMax; /* the number of extras allocated */
259 xsltRuntimeExtraPtr extras; /* extra per runtime informations */
261 xsltDocumentPtr styleList; /* the stylesheet docs list */
262 void * sec; /* the security preferences if any */
264 xmlGenericErrorFunc error; /* a specific error handler */
265 void * errctx; /* context for the error handler */
267 xsltSortFunc sortfunc; /* a ctxt specific sort routine */
271 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltTransformContextPtr"></a>xsltTransformContextPtr</h3><pre class="programlisting">typedef xsltTransformContext *xsltTransformContextPtr;
274 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltElemPreComp"></a>struct xsltElemPreComp</h3><pre class="programlisting">struct xsltElemPreComp {
275 xsltElemPreCompPtr next; /* chained list */
276 xsltStyleType type; /* type of the element */
277 xsltTransformFunction func; /* handling function */
278 xmlNodePtr inst; /* the instruction */
280 /* end of common part */
281 xsltElemPreCompDeallocator free; /* the deallocator */
284 The in-memory structure corresponding to element precomputed data,
285 designed to be extended by extension implementors.</p><p>
287 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltElemPreCompPtr"></a>xsltElemPreCompPtr</h3><pre class="programlisting">typedef xsltElemPreComp *xsltElemPreCompPtr;
290 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltTransformFunction"></a>xsltTransformFunction ()</h3><pre class="programlisting">void (*xsltTransformFunction) (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt,
291 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> node,
292 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> inst,
293 <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);</pre><p>
294 Signature of the function associated to elements part of the
295 stylesheet language like xsl:if or xsl:apply-templates.</p><p>
297 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> the XSLT transformation context
298 </td></tr><tr><td><span class="term"><i><tt>node</tt></i> :</span></td><td> the input node
299 </td></tr><tr><td><span class="term"><i><tt>inst</tt></i> :</span></td><td> the stylesheet node
300 </td></tr><tr><td><span class="term"><i><tt>comp</tt></i> :</span></td><td> the compiled information from the stylesheet
301 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltSortFunc"></a>xsltSortFunc ()</h3><pre class="programlisting">void (*xsltSortFunc) (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt,
302 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> *sorts,
303 int nbsorts);</pre><p>
304 Signature of the function to use during sorting</p><p>
306 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> a transformation context
307 </td></tr><tr><td><span class="term"><i><tt>sorts</tt></i> :</span></td><td> the node-set to sort
308 </td></tr><tr><td><span class="term"><i><tt>nbsorts</tt></i> :</span></td><td> the number of sorts
309 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltStyleType"></a>enum xsltStyleType</h3><pre class="programlisting">typedef enum {
320 XSLT_FUNC_APPLYIMPORTS,
321 XSLT_FUNC_CALLTEMPLATE,
322 XSLT_FUNC_APPLYTEMPLATES,
335 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltElemPreCompDeallocator"></a>xsltElemPreCompDeallocator ()</h3><pre class="programlisting">void (*xsltElemPreCompDeallocator) (<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);</pre><p>
336 Deallocates an <a href="libxslt-xsltInternals.html#xsltElemPreComp">xsltElemPreComp</a> structure.</p><p>
338 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>comp</tt></i> :</span></td><td> the <a href="libxslt-xsltInternals.html#xsltElemPreComp">xsltElemPreComp</a> to free up
339 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltStylePreComp"></a>struct xsltStylePreComp</h3><pre class="programlisting">struct xsltStylePreComp {
340 xsltElemPreCompPtr next; /* chained list */
341 xsltStyleType type; /* type of the element */
342 xsltTransformFunction func; /* handling function */
343 xmlNodePtr inst; /* the instruction */
346 * Pre computed values.
349 xmlChar *stype; /* sort */
350 int has_stype; /* sort */
351 int number; /* sort */
352 xmlChar *order; /* sort */
353 int has_order; /* sort */
354 int descending; /* sort */
355 xmlChar *lang; /* sort */
356 int has_lang; /* sort */
357 xmlChar *case_order; /* sort */
358 int lower_first; /* sort */
360 xmlChar *use; /* copy, element */
361 int has_use; /* copy, element */
363 int noescape; /* text */
365 xmlChar *name; /* element, attribute, pi */
366 int has_name; /* element, attribute, pi */
367 xmlChar *ns; /* element */
368 int has_ns; /* element */
370 xmlChar *mode; /* apply-templates */
371 xmlChar *modeURI; /* apply-templates */
373 xmlChar *test; /* if */
375 xsltTemplatePtr templ; /* call-template */
377 xmlChar *select; /* sort, copy-of, value-of, apply-templates */
379 int ver11; /* document */
380 xmlChar *filename; /* document URL */
381 int has_filename; /* document */
383 xsltNumberData numdata; /* number */
385 xmlXPathCompExprPtr comp; /* a precompiled XPath expression */
386 xmlNsPtr *nsList; /* the namespaces in scope */
387 int nsNr; /* the number of namespaces in scope */
390 The in-memory structure corresponding to XSLT stylesheet constructs
391 precomputed data.</p><p>
393 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltStylePreCompPtr"></a>xsltStylePreCompPtr</h3><pre class="programlisting">typedef xsltStylePreComp *xsltStylePreCompPtr;
396 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltStackElem"></a>struct xsltStackElem</h3><pre class="programlisting">struct xsltStackElem {
397 struct _xsltStackElem *next;/* chained list */
398 xsltStylePreCompPtr comp; /* the compiled form */
399 int computed; /* was the evaluation done */
400 xmlChar *name; /* the local part of the name QName */
401 xmlChar *nameURI; /* the URI part of the name QName */
402 xmlChar *select; /* the eval string */
403 xmlNodePtr tree; /* the tree if no eval string or the location */
404 xmlXPathObjectPtr value; /* The value if computed */
408 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltStackElemPtr"></a>xsltStackElemPtr</h3><pre class="programlisting">typedef xsltStackElem *xsltStackElemPtr;
411 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltStylesheet"></a>struct xsltStylesheet</h3><pre class="programlisting">struct xsltStylesheet {
413 * The stylesheet import relation is kept as a tree.
415 struct _xsltStylesheet *parent;
416 struct _xsltStylesheet *next;
417 struct _xsltStylesheet *imports;
419 xsltDocumentPtr docList; /* the include document list */
422 * General data on the style sheet document.
424 xmlDocPtr doc; /* the parsed XML stylesheet */
425 xmlHashTablePtr stripSpaces;/* the hash table of the strip-space and
426 preserve space elements */
427 int stripAll; /* strip-space * (1) preserve-space * (-1) */
428 xmlHashTablePtr cdataSection;/* the hash table of the cdata-section */
431 * Global variable or parameters.
433 xsltStackElemPtr variables; /* linked list of param and variables */
436 * Template descriptions.
438 xsltTemplatePtr templates; /* the ordered list of templates */
439 void *templatesHash; /* hash table or wherever compiled templates
440 informations are stored */
441 void *rootMatch; /* template based on / */
442 void *keyMatch; /* template based on key() */
443 void *elemMatch; /* template based on * */
444 void *attrMatch; /* template based on @* */
445 void *parentMatch; /* template based on .. */
446 void *textMatch; /* template based on text() */
447 void *piMatch; /* template based on processing-instruction() */
448 void *commentMatch; /* template based on comment() */
453 xmlHashTablePtr nsAliases; /* the namespace alias hash tables */
458 xmlHashTablePtr attributeSets;/* the attribute sets hash tables */
463 xmlHashTablePtr nsHash; /* the set of namespaces in use */
464 void *nsDefs; /* the namespaces defined */
469 void *keys; /* key definitions */
472 * Output related stuff.
474 xmlChar *method; /* the output method */
475 xmlChar *methodURI; /* associated namespace if any */
476 xmlChar *version; /* version string */
477 xmlChar *encoding; /* encoding string */
478 int omitXmlDeclaration; /* omit-xml-declaration = "yes" | "no" */
483 xsltDecimalFormatPtr decimalFormat;
484 int standalone; /* standalone = "yes" | "no" */
485 xmlChar *doctypePublic; /* doctype-public string */
486 xmlChar *doctypeSystem; /* doctype-system string */
487 int indent; /* should output being indented */
488 xmlChar *mediaType; /* media-type string */
491 * Precomputed blocks.
493 xsltElemPreCompPtr preComps;/* list of precomputed blocks */
494 int warnings; /* number of warnings found at compilation */
495 int errors; /* number of errors found at compilation */
497 xmlChar *exclPrefix; /* last excluded prefixes */
498 xmlChar **exclPrefixTab; /* array of excluded prefixes */
499 int exclPrefixNr; /* number of excluded prefixes in scope */
500 int exclPrefixMax; /* size of the array */
502 void *_private; /* user defined data */
507 xmlHashTablePtr extInfos; /* the extension data */
508 int extrasNr; /* the number of extras required */
512 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltStylesheetPtr"></a>xsltStylesheetPtr</h3><pre class="programlisting">typedef xsltStylesheet *xsltStylesheetPtr;
515 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltOutputType"></a>enum xsltOutputType</h3><pre class="programlisting">typedef enum {
522 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltTransformState"></a>enum xsltTransformState</h3><pre class="programlisting">typedef enum {
526 } xsltTransformState;
529 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="CHECK-STOPPED-CAPS"></a>CHECK_STOPPED</h3><pre class="programlisting">#define CHECK_STOPPED if (ctxt->state == XSLT_STATE_STOPPED) return;
531 Macro to check if the XSLT processing should be stopped.
532 Will return from the function.</p><p>
534 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="CHECK-STOPPEDE-CAPS"></a>CHECK_STOPPEDE</h3><pre class="programlisting">#define CHECK_STOPPEDE if (ctxt->state == XSLT_STATE_STOPPED) goto error;
536 Macro to check if the XSLT processing should be stopped.
537 Will goto the error: label.</p><p>
539 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="CHECK-STOPPED0-CAPS"></a>CHECK_STOPPED0</h3><pre class="programlisting">#define CHECK_STOPPED0 if (ctxt->state == XSLT_STATE_STOPPED) return(0);
541 Macro to check if the XSLT processing should be stopped.
542 Will return from the function with a 0 value.</p><p>
544 </p></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltNewStylesheet"></a>xsltNewStylesheet ()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> xsltNewStylesheet (void);</pre><p>
545 Create a new XSLT Stylesheet</p><p>
547 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the newly allocated xsltStylesheetPtr or NULL in case of error
548 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetFile"></a>xsltParseStylesheetFile ()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> xsltParseStylesheetFile (const <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> *filename);</pre><p>
549 Load and parse an XSLT stylesheet</p><p>
551 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>filename</tt></i> :</span></td><td> the filename/URL to the stylesheet
552 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new XSLT stylesheet structure.
553 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltFreeStylesheet"></a>xsltFreeStylesheet ()</h3><pre class="programlisting">void xsltFreeStylesheet (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> sheet);</pre><p>
554 Free up the memory allocated by <i><tt>sheet</tt></i></p><p>
556 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sheet</tt></i> :</span></td><td> an XSLT stylesheet
557 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltIsBlank"></a>xsltIsBlank ()</h3><pre class="programlisting">int xsltIsBlank (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> *str);</pre><p>
558 Check if a string is ignorable</p><p>
560 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>str</tt></i> :</span></td><td> a string
561 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>1 if the string is NULL or made of blanks chars, 0 otherwise
562 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltFreeStackElemList"></a>xsltFreeStackElemList ()</h3><pre class="programlisting">void xsltFreeStackElemList (<a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elem);</pre><p>
563 Free up the memory allocated by <i><tt>elem</tt></i></p><p>
565 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>elem</tt></i> :</span></td><td> an XSLT stack element
566 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltDecimalFormatGetByName"></a>xsltDecimalFormatGetByName ()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> xsltDecimalFormatGetByName
567 (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> sheet,
568 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> *name);</pre><p>
569 Find decimal-format by name</p><p>
571 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>sheet</tt></i> :</span></td><td> the XSLT stylesheet
572 </td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the decimal-format name to find
573 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xsltDecimalFormatPtr
574 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetProcess"></a>xsltParseStylesheetProcess ()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> xsltParseStylesheetProcess
575 (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> ret,
576 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> doc);</pre><p>
577 parse an XSLT stylesheet adding the associated structures</p><p>
579 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ret</tt></i> :</span></td><td> the XSLT stylesheet
580 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td> and xmlDoc parsed XML
581 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the value of the 'ret' parameter if everything
582 went right, NULL if something went amiss.
583 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetOutput"></a>xsltParseStylesheetOutput ()</h3><pre class="programlisting">void xsltParseStylesheetOutput (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style,
584 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> cur);</pre><p>
585 parse an XSLT stylesheet output element and record
586 information related to the stylesheet output</p><p>
588 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>style</tt></i> :</span></td><td> the XSLT stylesheet
589 </td></tr><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> the "output" element
590 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetDoc"></a>xsltParseStylesheetDoc ()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> xsltParseStylesheetDoc (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> doc);</pre><p>
591 parse an XSLT stylesheet building the associated structures</p><p>
593 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td> and xmlDoc parsed XML
594 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new XSLT stylesheet structure.
595 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltParseStylesheetImportedDoc"></a>xsltParseStylesheetImportedDoc ()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> xsltParseStylesheetImportedDoc
596 (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> doc);</pre><p>
597 parse an XSLT stylesheet building the associated structures
598 except the processing not needed for imported documents.</p><p>
600 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td> and xmlDoc parsed XML
601 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new XSLT stylesheet structure.
602 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltLoadStylesheetPI"></a>xsltLoadStylesheetPI ()</h3><pre class="programlisting"><a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> xsltLoadStylesheetPI (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> doc);</pre><p>
603 This function tries to locate the stylesheet PI in the given document
604 If found, and if contained within the document, it will extract
605 that subtree to build the stylesheet to process <i><tt>doc</tt></i> (doc itself will
606 be modified). If found but referencing an external document it will
607 attempt to load it and generate a stylesheet from it. In both cases,
608 the resulting stylesheet and the document need to be freed once the
609 transformation is done.</p><p>
611 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td> a document to process
612 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new XSLT stylesheet structure or NULL if not found.
613 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltNumberFormat"></a>xsltNumberFormat ()</h3><pre class="programlisting">void xsltNumberFormat (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt,
614 <a href="libxslt-numbersInternals.html#xsltNumberDataPtr">xsltNumberDataPtr</a> data,
615 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> node);</pre><p>
616 Convert one number.</p><p>
618 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> the XSLT transformation context
619 </td></tr><tr><td><span class="term"><i><tt>data</tt></i> :</span></td><td> the formatting informations
620 </td></tr><tr><td><span class="term"><i><tt>node</tt></i> :</span></td><td> the data to format
621 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltFormatNumberConversion"></a>xsltFormatNumberConversion ()</h3><pre class="programlisting"><GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlXPathError">xmlXPathError</GTKDOCLINK> xsltFormatNumberConversion (<a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> self,
622 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> *format,
623 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="double">double</GTKDOCLINK> number,
624 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> **result);</pre><p>
625 format-<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="number">number</GTKDOCLINK>() uses the JDK 1.1 DecimalFormat class:
627 http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html
631 pattern := subpattern{;subpattern}
632 subpattern := {prefix}integer{.fraction}{suffix}
633 prefix := '\\u0000'..'\\uFFFD' - specialCharacters
634 suffix := '\\u0000'..'\\uFFFD' - specialCharacters
635 integer := '#'* '0'* '0'
636 fraction := '0'* '#'*
639 X* 0 or more instances of X
640 (X | Y) either X or Y.
641 X..Y any character from X up to Y, inclusive.
642 S - T characters in S, except those in T
648 # a digit, zero shows as absent
649 . placeholder for decimal separator
650 , placeholder for grouping separator.
652 - default negative prefix.
653 % multiply by 100 and show as percentage
654 ? multiply by 1000 and show as per mille
655 X any other characters can be used in the prefix or suffix
656 ' used to quote special characters in a prefix or suffix.</p><p>
658 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>self</tt></i> :</span></td><td> the decimal format
659 </td></tr><tr><td><span class="term"><i><tt>format</tt></i> :</span></td><td> the format requested
660 </td></tr><tr><td><span class="term"><i><tt>number</tt></i> :</span></td><td> the value to format
661 </td></tr><tr><td><span class="term"><i><tt>result</tt></i> :</span></td><td> the place to ouput the result
662 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a possible XPath error
663 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltParseTemplateContent"></a>xsltParseTemplateContent ()</h3><pre class="programlisting">void xsltParseTemplateContent (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style,
664 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> templ);</pre><p>
665 parse a template content-model
666 Clean-up the template content from unwanted ignorable blank nodes
667 and process xslt:text</p><p>
669 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>style</tt></i> :</span></td><td> the XSLT stylesheet
670 </td></tr><tr><td><span class="term"><i><tt>templ</tt></i> :</span></td><td> the container node (can be a document for literal results)
671 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltAllocateExtra"></a>xsltAllocateExtra ()</h3><pre class="programlisting">int xsltAllocateExtra (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);</pre><p>
672 Allocate an extra runtime information slot statically while compiling
673 the stylesheet and return its number</p><p>
675 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>style</tt></i> :</span></td><td> an XSLT stylesheet
676 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of the slot
677 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltAllocateExtraCtxt"></a>xsltAllocateExtraCtxt ()</h3><pre class="programlisting">int xsltAllocateExtraCtxt (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);</pre><p>
678 Allocate an extra runtime information slot at run-time
679 and return its number
680 This make sure there is a slot ready in the transformation context</p><p>
682 </p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i><tt>ctxt</tt></i> :</span></td><td> an XSLT transformation context
683 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of the slot
684 </td></tr></tbody></table></div></div></div></div><table xmlns="http://www.w3.org/TR/xhtml1/transitional" class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="libxslt-keys.html"><b><< keys</b></a></td><td align="right"><a accesskey="n" href="libxslt-numbersInternals.html"><b>numbersInternals >></b></a></td></tr></table></body></html>