1 <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">
2 .synopsis, .classsynopsis {
4 border: solid 1px #aaaaaa;
9 border: solid 1px #aaaaff;
18 border: solid 1px #ffaaaa;
25 .navigation a:visited {
31 </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">
35 #define <a href="libxslt-xsltInternals.html#XSLT-MAX-SORT-CAPS">XSLT_MAX_SORT</a>
36 #define <a href="libxslt-xsltInternals.html#XSLT-PAT-NO-PRIORITY-CAPS">XSLT_PAT_NO_PRIORITY</a>
37 struct <a href="libxslt-xsltInternals.html#xsltRuntimeExtra">xsltRuntimeExtra</a>;
38 typedef <a href="libxslt-xsltInternals.html#xsltRuntimeExtraPtr">xsltRuntimeExtraPtr</a>;
39 #define <a href="libxslt-xsltInternals.html#XSLT-RUNTIME-EXTRA-LST-CAPS">XSLT_RUNTIME_EXTRA_LST</a> (ctxt, nr)
40 #define <a href="libxslt-xsltInternals.html#XSLT-RUNTIME-EXTRA-FREE-CAPS">XSLT_RUNTIME_EXTRA_FREE</a> (ctxt, nr)
41 #define <a href="libxslt-xsltInternals.html#XSLT-RUNTIME-EXTRA-CAPS">XSLT_RUNTIME_EXTRA</a> (ctxt, nr)
42 struct <a href="libxslt-xsltInternals.html#xsltTemplate">xsltTemplate</a>;
43 typedef <a href="libxslt-xsltInternals.html#xsltTemplatePtr">xsltTemplatePtr</a>;
44 struct <a href="libxslt-xsltInternals.html#xsltDecimalFormat">xsltDecimalFormat</a>;
45 typedef <a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a>;
46 struct <a href="libxslt-xsltInternals.html#xsltDocument">xsltDocument</a>;
47 typedef <a href="libxslt-xsltInternals.html#xsltDocumentPtr">xsltDocumentPtr</a>;
48 struct <a href="libxslt-xsltInternals.html#xsltTransformContext">xsltTransformContext</a>;
49 typedef <a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a>;
50 struct <a href="libxslt-xsltInternals.html#xsltElemPreComp">xsltElemPreComp</a>;
51 typedef <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a>;
52 void (<a href="libxslt-xsltInternals.html#xsltTransformFunction">*xsltTransformFunction</a>) (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt,
53 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> node,
54 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> inst,
55 <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
56 void (<a href="libxslt-xsltInternals.html#xsltSortFunc">*xsltSortFunc</a>) (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt,
57 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> *sorts,
59 enum <a href="libxslt-xsltInternals.html#xsltStyleType">xsltStyleType</a>;
60 void (<a href="libxslt-xsltInternals.html#xsltElemPreCompDeallocator">*xsltElemPreCompDeallocator</a>) (<a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);
61 struct <a href="libxslt-xsltInternals.html#xsltStylePreComp">xsltStylePreComp</a>;
62 typedef <a href="libxslt-xsltInternals.html#xsltStylePreCompPtr">xsltStylePreCompPtr</a>;
63 struct <a href="libxslt-xsltInternals.html#xsltStackElem">xsltStackElem</a>;
64 typedef <a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a>;
65 struct <a href="libxslt-xsltInternals.html#xsltStylesheet">xsltStylesheet</a>;
66 typedef <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a>;
67 enum <a href="libxslt-xsltInternals.html#xsltOutputType">xsltOutputType</a>;
68 enum <a href="libxslt-xsltInternals.html#xsltTransformState">xsltTransformState</a>;
69 #define <a href="libxslt-xsltInternals.html#CHECK-STOPPED-CAPS">CHECK_STOPPED</a>
70 #define <a href="libxslt-xsltInternals.html#CHECK-STOPPEDE-CAPS">CHECK_STOPPEDE</a>
71 #define <a href="libxslt-xsltInternals.html#CHECK-STOPPED0-CAPS">CHECK_STOPPED0</a>
72 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="libxslt-xsltInternals.html#xsltNewStylesheet">xsltNewStylesheet</a> (void);
73 <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);
74 void <a href="libxslt-xsltInternals.html#xsltFreeStylesheet">xsltFreeStylesheet</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> sheet);
75 int <a href="libxslt-xsltInternals.html#xsltIsBlank">xsltIsBlank</a> (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> *str);
76 void <a href="libxslt-xsltInternals.html#xsltFreeStackElemList">xsltFreeStackElemList</a> (<a href="libxslt-xsltInternals.html#xsltStackElemPtr">xsltStackElemPtr</a> elem);
77 <a href="libxslt-xsltInternals.html#xsltDecimalFormatPtr">xsltDecimalFormatPtr</a> <a href="libxslt-xsltInternals.html#xsltDecimalFormatGetByName">xsltDecimalFormatGetByName</a>
78 (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> sheet,
79 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> *name);
80 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="libxslt-xsltInternals.html#xsltParseStylesheetProcess">xsltParseStylesheetProcess</a>
81 (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> ret,
82 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> doc);
83 void <a href="libxslt-xsltInternals.html#xsltParseStylesheetOutput">xsltParseStylesheetOutput</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style,
84 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> cur);
85 <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);
86 <a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> <a href="libxslt-xsltInternals.html#xsltParseStylesheetImportedDoc">xsltParseStylesheetImportedDoc</a>
87 (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> doc);
88 <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);
89 void <a href="libxslt-xsltInternals.html#xsltNumberFormat">xsltNumberFormat</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt,
90 <a href="libxslt-numbersInternals.html#xsltNumberDataPtr">xsltNumberDataPtr</a> data,
91 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> node);
92 <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,
93 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> *format,
94 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="double">double</GTKDOCLINK> number,
95 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> **result);
96 void <a href="libxslt-xsltInternals.html#xsltParseTemplateContent">xsltParseTemplateContent</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style,
97 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> templ);
98 int <a href="libxslt-xsltInternals.html#xsltAllocateExtra">xsltAllocateExtra</a> (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style);
99 int <a href="libxslt-xsltInternals.html#xsltAllocateExtraCtxt">xsltAllocateExtraCtxt</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
100 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> <a href="libxslt-xsltInternals.html#xsltCreateRVT">xsltCreateRVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
101 int <a href="libxslt-xsltInternals.html#xsltRegisterTmpRVT">xsltRegisterTmpRVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt,
102 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> RVT);
103 int <a href="libxslt-xsltInternals.html#xsltRegisterPersistRVT">xsltRegisterPersistRVT</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt,
104 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> RVT);
105 void <a href="libxslt-xsltInternals.html#xsltFreeRVTs">xsltFreeRVTs</a> (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);
106 </pre></div><div class="refsect1" lang="en"><h2>Description</h2><p>
108 </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
110 Max number of specified xsl:sort on an element.</p><p>
112 </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
114 Specific value for pattern without priority expressed.</p><p>
116 </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 {
117 void *info; /* pointer to the extra data */
118 xmlFreeFunc deallocate; /* pointer to the deallocation routine */
119 void *val; /* data not needing deallocation */
122 Extra information added to the transformation context.</p><p>
124 </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;
127 </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
129 Macro used to access extra information stored in the context</p><p>
131 </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
132 </td></tr><tr><td><span class="term"><i><tt>nr</tt></i> :</span></td><td> the index
133 </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
135 Macro used to free extra information stored in the context</p><p>
137 </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
138 </td></tr><tr><td><span class="term"><i><tt>nr</tt></i> :</span></td><td> the index
139 </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
141 Macro used to define extra information stored in the context</p><p>
143 </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
144 </td></tr><tr><td><span class="term"><i><tt>nr</tt></i> :</span></td><td> the index
145 </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 {
146 struct _xsltTemplate *next;/* chained list sorted by priority */
147 struct _xsltStylesheet *style;/* the containing stylesheet */
148 xmlChar *match; /* the matching string */
149 float priority; /* as given from the stylesheet, not computed */
150 xmlChar *name; /* the local part of the name QName */
151 xmlChar *nameURI; /* the URI part of the name QName */
152 xmlChar *mode; /* the local part of the mode QName */
153 xmlChar *modeURI; /* the URI part of the mode QName */
154 xmlNodePtr content; /* the template replacement value */
155 xmlNodePtr elem; /* the source element */
157 int inheritedNsNr; /* number of inherited namespaces */
158 xmlNsPtr *inheritedNs;/* inherited non-excluded namespaces */
160 /* Profiling informations */
161 int nbCalls; /* the number of time the template was called */
162 unsigned long time; /* the time spent in this template */
165 The in-memory structure corresponding to an XSLT Template.</p><p>
167 </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;
170 </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 {
171 struct _xsltDecimalFormat *next; /* chained list */
173 /* Used for interpretation of pattern */
175 xmlChar *patternSeparator;
176 /* May appear in result */
179 xmlChar *noNumber; /* Not-a-number */
180 /* Used for interpretation of pattern and may appear in result */
181 xmlChar *decimalPoint;
188 Data structure of decimal-format.</p><p>
190 </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;
193 </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 {
194 struct _xsltDocument *next; /* documents are kept in a chained list */
195 int main; /* is this the main document */
196 xmlDocPtr doc; /* the parsed document */
197 void *keys; /* key tables storage */
200 Data structure associated to a parsed document.</p><p>
202 </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;
205 </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 {
206 xsltStylesheetPtr style; /* the stylesheet used */
207 xsltOutputType type; /* the type of output */
209 xsltTemplatePtr templ; /* the current template */
210 int templNr; /* Nb of templates in the stack */
211 int templMax; /* Size of the templtes stack */
212 xsltTemplatePtr *templTab; /* the template stack */
214 xsltStackElemPtr vars; /* the current variable list */
215 int varsNr; /* Nb of variable list in the stack */
216 int varsMax; /* Size of the variable list stack */
217 xsltStackElemPtr *varsTab; /* the variable list stack */
218 int varsBase; /* the var base for current templ */
223 xmlHashTablePtr extFunctions; /* the extension functions */
224 xmlHashTablePtr extElements; /* the extension elements */
225 xmlHashTablePtr extInfos; /* the extension data */
227 const xmlChar *mode; /* the current mode */
228 const xmlChar *modeURI; /* the current mode URI */
230 xsltDocumentPtr docList; /* the document list */
232 xsltDocumentPtr document; /* the current document */
233 xmlNodePtr node; /* the current node being processed */
234 xmlNodeSetPtr nodeList; /* the current node list */
235 /* xmlNodePtr current; the node */
237 xmlDocPtr output; /* the resulting document */
238 xmlNodePtr insert; /* the insertion node */
240 xmlXPathContextPtr xpathCtxt; /* the XPath context */
241 xsltTransformState state; /* the current state */
246 xmlHashTablePtr globalVars; /* the global variables and params */
248 xmlNodePtr inst; /* the instruction in the stylesheet */
250 int xinclude; /* should XInclude be processed */
252 const char * outputFile; /* the output URI if known */
254 int profile; /* is this run profiled */
255 long prof; /* the current profiled value */
256 int profNr; /* Nb of templates in the stack */
257 int profMax; /* Size of the templtaes stack */
258 long *profTab; /* the profile template stack */
260 void *_private; /* user defined data */
262 int extrasNr; /* the number of extras used */
263 int extrasMax; /* the number of extras allocated */
264 xsltRuntimeExtraPtr extras; /* extra per runtime informations */
266 xsltDocumentPtr styleList; /* the stylesheet docs list */
267 void * sec; /* the security preferences if any */
269 xmlGenericErrorFunc error; /* a specific error handler */
270 void * errctx; /* context for the error handler */
272 xsltSortFunc sortfunc; /* a ctxt specific sort routine */
275 * handling of temporary Result Value Tree
277 xmlDocPtr tmpRVT; /* list of RVT without persistance */
278 xmlDocPtr persistRVT; /* list of persistant RVTs */
279 int ctxtflags; /* context processing flags */
282 * Speed optimization when coalescing text nodes
284 const xmlChar *lasttext; /* last text node content */
285 unsigned int lasttsize; /* last text node size */
286 unsigned int lasttuse; /* last text node use */
290 </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;
293 </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 {
294 xsltElemPreCompPtr next; /* chained list */
295 xsltStyleType type; /* type of the element */
296 xsltTransformFunction func; /* handling function */
297 xmlNodePtr inst; /* the instruction */
299 /* end of common part */
300 xsltElemPreCompDeallocator free; /* the deallocator */
303 The in-memory structure corresponding to element precomputed data,
304 designed to be extended by extension implementors.</p><p>
306 </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;
309 </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,
310 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> node,
311 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> inst,
312 <a href="libxslt-xsltInternals.html#xsltElemPreCompPtr">xsltElemPreCompPtr</a> comp);</pre><p>
313 Signature of the function associated to elements part of the
314 stylesheet language like xsl:if or xsl:apply-templates.</p><p>
316 </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
317 </td></tr><tr><td><span class="term"><i><tt>node</tt></i> :</span></td><td> the input node
318 </td></tr><tr><td><span class="term"><i><tt>inst</tt></i> :</span></td><td> the stylesheet node
319 </td></tr><tr><td><span class="term"><i><tt>comp</tt></i> :</span></td><td> the compiled information from the stylesheet
320 </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,
321 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> *sorts,
322 int nbsorts);</pre><p>
323 Signature of the function to use during sorting</p><p>
325 </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
326 </td></tr><tr><td><span class="term"><i><tt>sorts</tt></i> :</span></td><td> the node-set to sort
327 </td></tr><tr><td><span class="term"><i><tt>nbsorts</tt></i> :</span></td><td> the number of sorts
328 </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 {
339 XSLT_FUNC_APPLYIMPORTS,
340 XSLT_FUNC_CALLTEMPLATE,
341 XSLT_FUNC_APPLYTEMPLATES,
354 </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>
355 Deallocates an <a href="libxslt-xsltInternals.html#xsltElemPreComp">xsltElemPreComp</a> structure.</p><p>
357 </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
358 </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 {
359 xsltElemPreCompPtr next; /* chained list */
360 xsltStyleType type; /* type of the element */
361 xsltTransformFunction func; /* handling function */
362 xmlNodePtr inst; /* the instruction */
365 * Pre computed values.
368 xmlChar *stype; /* sort */
369 int has_stype; /* sort */
370 int number; /* sort */
371 xmlChar *order; /* sort */
372 int has_order; /* sort */
373 int descending; /* sort */
374 xmlChar *lang; /* sort */
375 int has_lang; /* sort */
376 xmlChar *case_order; /* sort */
377 int lower_first; /* sort */
379 xmlChar *use; /* copy, element */
380 int has_use; /* copy, element */
382 int noescape; /* text */
384 xmlChar *name; /* element, attribute, pi */
385 int has_name; /* element, attribute, pi */
386 xmlChar *ns; /* element */
387 int has_ns; /* element */
389 xmlChar *mode; /* apply-templates */
390 xmlChar *modeURI; /* apply-templates */
392 xmlChar *test; /* if */
394 xsltTemplatePtr templ; /* call-template */
396 xmlChar *select; /* sort, copy-of, value-of, apply-templates */
398 int ver11; /* document */
399 xmlChar *filename; /* document URL */
400 int has_filename; /* document */
402 xsltNumberData numdata; /* number */
404 xmlXPathCompExprPtr comp; /* a precompiled XPath expression */
405 xmlNsPtr *nsList; /* the namespaces in scope */
406 int nsNr; /* the number of namespaces in scope */
409 The in-memory structure corresponding to XSLT stylesheet constructs
410 precomputed data.</p><p>
412 </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;
415 </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 {
416 struct _xsltStackElem *next;/* chained list */
417 xsltStylePreCompPtr comp; /* the compiled form */
418 int computed; /* was the evaluation done */
419 xmlChar *name; /* the local part of the name QName */
420 xmlChar *nameURI; /* the URI part of the name QName */
421 xmlChar *select; /* the eval string */
422 xmlNodePtr tree; /* the tree if no eval string or the location */
423 xmlXPathObjectPtr value; /* The value if computed */
427 </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;
430 </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 {
432 * The stylesheet import relation is kept as a tree.
434 struct _xsltStylesheet *parent;
435 struct _xsltStylesheet *next;
436 struct _xsltStylesheet *imports;
438 xsltDocumentPtr docList; /* the include document list */
441 * General data on the style sheet document.
443 xmlDocPtr doc; /* the parsed XML stylesheet */
444 xmlHashTablePtr stripSpaces;/* the hash table of the strip-space and
445 preserve space elements */
446 int stripAll; /* strip-space * (1) preserve-space * (-1) */
447 xmlHashTablePtr cdataSection;/* the hash table of the cdata-section */
450 * Global variable or parameters.
452 xsltStackElemPtr variables; /* linked list of param and variables */
455 * Template descriptions.
457 xsltTemplatePtr templates; /* the ordered list of templates */
458 void *templatesHash; /* hash table or wherever compiled templates
459 informations are stored */
460 void *rootMatch; /* template based on / */
461 void *keyMatch; /* template based on key() */
462 void *elemMatch; /* template based on * */
463 void *attrMatch; /* template based on @* */
464 void *parentMatch; /* template based on .. */
465 void *textMatch; /* template based on text() */
466 void *piMatch; /* template based on processing-instruction() */
467 void *commentMatch; /* template based on comment() */
472 xmlHashTablePtr nsAliases; /* the namespace alias hash tables */
477 xmlHashTablePtr attributeSets;/* the attribute sets hash tables */
482 xmlHashTablePtr nsHash; /* the set of namespaces in use */
483 void *nsDefs; /* the namespaces defined */
488 void *keys; /* key definitions */
491 * Output related stuff.
493 xmlChar *method; /* the output method */
494 xmlChar *methodURI; /* associated namespace if any */
495 xmlChar *version; /* version string */
496 xmlChar *encoding; /* encoding string */
497 int omitXmlDeclaration; /* omit-xml-declaration = "yes" | "no" */
502 xsltDecimalFormatPtr decimalFormat;
503 int standalone; /* standalone = "yes" | "no" */
504 xmlChar *doctypePublic; /* doctype-public string */
505 xmlChar *doctypeSystem; /* doctype-system string */
506 int indent; /* should output being indented */
507 xmlChar *mediaType; /* media-type string */
510 * Precomputed blocks.
512 xsltElemPreCompPtr preComps;/* list of precomputed blocks */
513 int warnings; /* number of warnings found at compilation */
514 int errors; /* number of errors found at compilation */
516 xmlChar *exclPrefix; /* last excluded prefixes */
517 xmlChar **exclPrefixTab; /* array of excluded prefixes */
518 int exclPrefixNr; /* number of excluded prefixes in scope */
519 int exclPrefixMax; /* size of the array */
521 void *_private; /* user defined data */
526 xmlHashTablePtr extInfos; /* the extension data */
527 int extrasNr; /* the number of extras required */
531 </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;
534 </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 {
541 </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 {
545 } xsltTransformState;
548 </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;
550 Macro to check if the XSLT processing should be stopped.
551 Will return from the function.</p><p>
553 </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;
555 Macro to check if the XSLT processing should be stopped.
556 Will goto the error: label.</p><p>
558 </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);
560 Macro to check if the XSLT processing should be stopped.
561 Will return from the function with a 0 value.</p><p>
563 </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>
564 Create a new XSLT Stylesheet</p><p>
566 </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
567 </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>
568 Load and parse an XSLT stylesheet</p><p>
570 </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
571 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new XSLT stylesheet structure.
572 </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>
573 Free up the memory allocated by <i><tt>sheet</tt></i></p><p>
575 </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
576 </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>
577 Check if a string is ignorable</p><p>
579 </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
580 </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
581 </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>
582 Free up the memory allocated by <i><tt>elem</tt></i></p><p>
584 </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
585 </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
586 (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> sheet,
587 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> *name);</pre><p>
588 Find decimal-format by name</p><p>
590 </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
591 </td></tr><tr><td><span class="term"><i><tt>name</tt></i> :</span></td><td> the decimal-format name to find
592 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the xsltDecimalFormatPtr
593 </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
594 (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> ret,
595 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> doc);</pre><p>
596 parse an XSLT stylesheet adding the associated structures</p><p>
598 </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
599 </td></tr><tr><td><span class="term"><i><tt>doc</tt></i> :</span></td><td> and xmlDoc parsed XML
600 </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
601 went right, NULL if something went amiss.
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="xsltParseStylesheetOutput"></a>xsltParseStylesheetOutput ()</h3><pre class="programlisting">void xsltParseStylesheetOutput (<a href="libxslt-xsltInternals.html#xsltStylesheetPtr">xsltStylesheetPtr</a> style,
603 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> cur);</pre><p>
604 parse an XSLT stylesheet output element and record
605 information related to the stylesheet output</p><p>
607 </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
608 </td></tr><tr><td><span class="term"><i><tt>cur</tt></i> :</span></td><td> the "output" element
609 </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>
610 parse an XSLT stylesheet building the associated structures</p><p>
612 </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
613 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new XSLT stylesheet structure.
614 </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
615 (<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> doc);</pre><p>
616 parse an XSLT stylesheet building the associated structures
617 except the processing not needed for imported documents.</p><p>
619 </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
620 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a new XSLT stylesheet structure.
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="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>
622 This function tries to locate the stylesheet PI in the given document
623 If found, and if contained within the document, it will extract
624 that subtree to build the stylesheet to process <i><tt>doc</tt></i> (doc itself will
625 be modified). If found but referencing an external document it will
626 attempt to load it and generate a stylesheet from it. In both cases,
627 the resulting stylesheet and the document need to be freed once the
628 transformation is done.</p><p>
630 </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
631 </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.
632 </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,
633 <a href="libxslt-numbersInternals.html#xsltNumberDataPtr">xsltNumberDataPtr</a> data,
634 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> node);</pre><p>
635 Convert one number.</p><p>
637 </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
638 </td></tr><tr><td><span class="term"><i><tt>data</tt></i> :</span></td><td> the formatting informations
639 </td></tr><tr><td><span class="term"><i><tt>node</tt></i> :</span></td><td> the data to format
640 </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,
641 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> *format,
642 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="double">double</GTKDOCLINK> number,
643 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlChar">xmlChar</GTKDOCLINK> **result);</pre><p>
644 format-<GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="number">number</GTKDOCLINK>() uses the JDK 1.1 DecimalFormat class:
646 http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html
650 pattern := subpattern{;subpattern}
651 subpattern := {prefix}integer{.fraction}{suffix}
652 prefix := '\\u0000'..'\\uFFFD' - specialCharacters
653 suffix := '\\u0000'..'\\uFFFD' - specialCharacters
654 integer := '#'* '0'* '0'
655 fraction := '0'* '#'*
658 X* 0 or more instances of X
659 (X | Y) either X or Y.
660 X..Y any character from X up to Y, inclusive.
661 S - T characters in S, except those in T
667 # a digit, zero shows as absent
668 . placeholder for decimal separator
669 , placeholder for grouping separator.
671 - default negative prefix.
672 % multiply by 100 and show as percentage
673 ? multiply by 1000 and show as per mille
674 X any other characters can be used in the prefix or suffix
675 ' used to quote special characters in a prefix or suffix.</p><p>
677 </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
678 </td></tr><tr><td><span class="term"><i><tt>format</tt></i> :</span></td><td> the format requested
679 </td></tr><tr><td><span class="term"><i><tt>number</tt></i> :</span></td><td> the value to format
680 </td></tr><tr><td><span class="term"><i><tt>result</tt></i> :</span></td><td> the place to ouput the result
681 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>a possible XPath error
682 </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,
683 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlNodePtr">xmlNodePtr</GTKDOCLINK> templ);</pre><p>
684 parse a template content-model
685 Clean-up the template content from unwanted ignorable blank nodes
686 and process xslt:text</p><p>
688 </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
689 </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)
690 </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>
691 Allocate an extra runtime information slot statically while compiling
692 the stylesheet and return its number</p><p>
694 </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
695 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of the slot
696 </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>
697 Allocate an extra runtime information slot at run-time
698 and return its number
699 This make sure there is a slot ready in the transformation context</p><p>
701 </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
702 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the number of the slot
703 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltCreateRVT"></a>xsltCreateRVT ()</h3><pre class="programlisting"><GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> xsltCreateRVT (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);</pre><p>
704 Create a result value tree</p><p>
706 </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
707 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>the result value tree or NULL in case of error
708 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltRegisterTmpRVT"></a>xsltRegisterTmpRVT ()</h3><pre class="programlisting">int xsltRegisterTmpRVT (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt,
709 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> RVT);</pre><p>
710 Register the result value tree for destruction at the end of the context</p><p>
712 </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
713 </td></tr><tr><td><span class="term"><i><tt>RVT</tt></i> :</span></td><td> a result value tree
714 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 in case of success and -1 in case of error.
715 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltRegisterPersistRVT"></a>xsltRegisterPersistRVT ()</h3><pre class="programlisting">int xsltRegisterPersistRVT (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt,
716 <GTKDOCLINK xmlns="http://www.w3.org/TR/xhtml1/transitional" HREF="xmlDocPtr">xmlDocPtr</GTKDOCLINK> RVT);</pre><p>
717 Register the result value tree for destruction at the end of the processing</p><p>
719 </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
720 </td></tr><tr><td><span class="term"><i><tt>RVT</tt></i> :</span></td><td> a result value tree
721 </td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>0 in case of success and -1 in case of error.
722 </td></tr></tbody></table></div></div><hr xmlns="http://www.w3.org/TR/xhtml1/transitional"></hr><div class="refsect2" lang="en"><h3><a name="xsltFreeRVTs"></a>xsltFreeRVTs ()</h3><pre class="programlisting">void xsltFreeRVTs (<a href="libxslt-xsltInternals.html#xsltTransformContextPtr">xsltTransformContextPtr</a> ctxt);</pre><p>
723 Free all the registered result value tree of the transformation</p><p>
725 </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
726 </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>