upgraded to the XML/XSLT toolchain for the HTML generation fixing #111799
[platform/upstream/libxslt.git] / doc / html / libxslt-xsltInternals.html
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 {
4             background: #eeeeee;
5             border: solid 1px #aaaaaa;
6             padding: 0.5em;
7         }
8         .programlisting {
9             background: #eeeeff;
10             border: solid 1px #aaaaff;
11             padding: 0.5em;
12         }
13         .variablelist {
14             padding: 4px;
15             margin-left: 3em;
16         }
17         .navigation {
18             background: #ffeeee;
19             border: solid 1px #ffaaaa;
20             margin-top: 0.5em;
21             margin-bottom: 0.5em;
22         }
23         .navigation a {
24             color: #770000;
25         }
26         .navigation a:visited {
27             color: #550000;
28         }
29         .navigation .title {
30             font-size: 200%;
31         }
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 &#8212; </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
33
34
35
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,
59                                              int nbsorts);
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>
102
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
104 </pre><p>
105 Max number of specified xsl:sort on an element.</p><p>
106
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
108 </pre><p>
109 Specific value for pattern without priority expressed.</p><p>
110
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 */
115 };
116 </pre><p>
117 Extra information added to the transformation context.</p><p>
118
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;
120 </pre><p>
121
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)-&gt;extras[(nr)].info
123 </pre><p>
124 Macro used to access extra information stored in the context</p><p>
125
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)-&gt;extras[(nr)].deallocate
129 </pre><p>
130 Macro used to free extra information stored in the context</p><p>
131
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)-&gt;extras[(nr)].val
135 </pre><p>
136 Macro used to define extra information stored in the context</p><p>
137
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 */
151
152     int inheritedNsNr;  /* number of inherited namespaces */
153     xmlNsPtr *inheritedNs;/* inherited non-excluded namespaces */
154
155     /* Profiling informations */
156     int nbCalls;        /* the number of time the template was called */
157     unsigned long time; /* the time spent in this template */
158 };
159 </pre><p>
160 The in-memory structure corresponding to an XSLT Template.</p><p>
161
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;
163 </pre><p>
164
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 */
167     xmlChar *name;
168     /* Used for interpretation of pattern */
169     xmlChar *digit;
170     xmlChar *patternSeparator;
171     /* May appear in result */
172     xmlChar *minusSign;
173     xmlChar *infinity;
174     xmlChar *noNumber; /* Not-a-number */
175     /* Used for interpretation of pattern and may appear in result */
176     xmlChar *decimalPoint;
177     xmlChar *grouping;
178     xmlChar *percent;
179     xmlChar *permille;
180     xmlChar *zeroDigit;
181 };
182 </pre><p>
183 Data structure of decimal-format.</p><p>
184
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;
186 </pre><p>
187
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 */
193 };
194 </pre><p>
195 Data structure associated to a parsed document.</p><p>
196
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;
198 </pre><p>
199
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 */
203
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 */
208
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 */
214
215     /*
216      * Extensions
217      */
218     xmlHashTablePtr   extFunctions;     /* the extension functions */
219     xmlHashTablePtr   extElements;      /* the extension elements */
220     xmlHashTablePtr   extInfos;         /* the extension data */
221
222     const xmlChar *mode;                /* the current mode */
223     const xmlChar *modeURI;             /* the current mode URI */
224
225     xsltDocumentPtr docList;            /* the document list */
226
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 */
231
232     xmlDocPtr output;                   /* the resulting document */
233     xmlNodePtr insert;                  /* the insertion node */
234
235     xmlXPathContextPtr xpathCtxt;       /* the XPath context */
236     xsltTransformState state;           /* the current state */
237
238     /*
239      * Global variables
240      */
241     xmlHashTablePtr   globalVars;       /* the global variables and params */
242
243     xmlNodePtr inst;                    /* the instruction in the stylesheet */
244
245     int xinclude;                       /* should XInclude be processed */
246
247     const char *      outputFile;       /* the output URI if known */
248
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 */
254
255     void            *_private;          /* user defined data */
256
257     int              extrasNr;          /* the number of extras used */
258     int              extrasMax;         /* the number of extras allocated */
259     xsltRuntimeExtraPtr extras;         /* extra per runtime informations */
260
261     xsltDocumentPtr  styleList;         /* the stylesheet docs list */
262     void                 * sec;         /* the security preferences if any */
263
264     xmlGenericErrorFunc  error;         /* a specific error handler */
265     void              * errctx;         /* context for the error handler */
266
267     xsltSortFunc      sortfunc;         /* a ctxt specific sort routine */
268 };
269 </pre><p>
270
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;
272 </pre><p>
273
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 */
279
280     /* end of common part */
281     xsltElemPreCompDeallocator free;    /* the deallocator */
282 };
283 </pre><p>
284 The in-memory structure corresponding to element precomputed data,
285 designed to be extended by extension implementors.</p><p>
286
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;
288 </pre><p>
289
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>
296
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>
305
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 {
310     XSLT_FUNC_COPY=1,
311     XSLT_FUNC_SORT,
312     XSLT_FUNC_TEXT,
313     XSLT_FUNC_ELEMENT,
314     XSLT_FUNC_ATTRIBUTE,
315     XSLT_FUNC_COMMENT,
316     XSLT_FUNC_PI,
317     XSLT_FUNC_COPYOF,
318     XSLT_FUNC_VALUEOF,
319     XSLT_FUNC_NUMBER,
320     XSLT_FUNC_APPLYIMPORTS,
321     XSLT_FUNC_CALLTEMPLATE,
322     XSLT_FUNC_APPLYTEMPLATES,
323     XSLT_FUNC_CHOOSE,
324     XSLT_FUNC_IF,
325     XSLT_FUNC_FOREACH,
326     XSLT_FUNC_DOCUMENT,
327     XSLT_FUNC_WITHPARAM,
328     XSLT_FUNC_PARAM,
329     XSLT_FUNC_VARIABLE,
330     XSLT_FUNC_WHEN,
331     XSLT_FUNC_EXTENSION
332 } xsltStyleType;
333 </pre><p>
334
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>
337
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 */
344
345     /*
346      * Pre computed values.
347      */
348
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 */
359
360     xmlChar *use;               /* copy, element */
361     int      has_use;           /* copy, element */
362
363     int      noescape;          /* text */
364
365     xmlChar *name;              /* element, attribute, pi */
366     int      has_name;          /* element, attribute, pi */
367     xmlChar *ns;                /* element */
368     int      has_ns;            /* element */
369
370     xmlChar *mode;              /* apply-templates */
371     xmlChar *modeURI;           /* apply-templates */
372
373     xmlChar *test;              /* if */
374
375     xsltTemplatePtr templ;      /* call-template */
376
377     xmlChar *select;            /* sort, copy-of, value-of, apply-templates */
378
379     int      ver11;             /* document */
380     xmlChar *filename;          /* document URL */
381     int      has_filename;      /* document */
382
383     xsltNumberData numdata;     /* number */
384
385     xmlXPathCompExprPtr comp;   /* a precompiled XPath expression */
386     xmlNsPtr *nsList;           /* the namespaces in scope */
387     int nsNr;                   /* the number of namespaces in scope */
388 };
389 </pre><p>
390 The in-memory structure corresponding to XSLT stylesheet constructs
391 precomputed data.</p><p>
392
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;
394 </pre><p>
395
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 */
405 };
406 </pre><p>
407
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;
409 </pre><p>
410
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 {
412     /*
413      * The stylesheet import relation is kept as a tree.
414      */
415     struct _xsltStylesheet *parent;
416     struct _xsltStylesheet *next;
417     struct _xsltStylesheet *imports;
418
419     xsltDocumentPtr docList;            /* the include document list */
420
421     /*
422      * General data on the style sheet document.
423      */
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 */
429
430     /*
431      * Global variable or parameters.
432      */
433     xsltStackElemPtr variables; /* linked list of param and variables */
434
435     /*
436      * Template descriptions.
437      */
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() */
449     
450     /*
451      * Namespace aliases.
452      */
453     xmlHashTablePtr nsAliases;  /* the namespace alias hash tables */
454
455     /*
456      * Attribute sets.
457      */
458     xmlHashTablePtr attributeSets;/* the attribute sets hash tables */
459
460     /*
461      * Namespaces.
462      */
463     xmlHashTablePtr nsHash;     /* the set of namespaces in use */
464     void           *nsDefs;     /* the namespaces defined */
465
466     /*
467      * Key definitions.
468      */
469     void *keys;                         /* key definitions */
470
471     /*
472      * Output related stuff.
473      */
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 = &quot;yes&quot; | &quot;no&quot; */
479
480     /* 
481      * Number formatting.
482      */
483     xsltDecimalFormatPtr decimalFormat;
484     int standalone;             /* standalone = &quot;yes&quot; | &quot;no&quot; */
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 */
489
490     /*
491      * Precomputed blocks.
492      */
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 */
496
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 */
501
502     void     *_private;         /* user defined data */
503
504     /*
505      * Extensions.
506      */
507     xmlHashTablePtr extInfos;   /* the extension data */
508     int             extrasNr;   /* the number of extras required */
509 };
510 </pre><p>
511
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;
513 </pre><p>
514
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 {
516     XSLT_OUTPUT_XML = 0,
517     XSLT_OUTPUT_HTML,
518     XSLT_OUTPUT_TEXT
519 } xsltOutputType;
520 </pre><p>
521
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 {
523     XSLT_STATE_OK = 0,
524     XSLT_STATE_ERROR,
525     XSLT_STATE_STOPPED
526 } xsltTransformState;
527 </pre><p>
528
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-&gt;state == XSLT_STATE_STOPPED) return;
530 </pre><p>
531 Macro to check if the XSLT processing should be stopped.
532 Will return from the function.</p><p>
533
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-&gt;state == XSLT_STATE_STOPPED) goto error;
535 </pre><p>
536 Macro to check if the XSLT processing should be stopped.
537 Will goto the error: label.</p><p>
538
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-&gt;state == XSLT_STATE_STOPPED) return(0);
540 </pre><p>
541 Macro to check if the XSLT processing should be stopped.
542 Will return from the function with a 0 value.</p><p>
543
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>
546
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>
550
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>
555
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>
559
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>
564
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>
570
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>
578
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>
587
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 &quot;output&quot; 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>
592
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>
599
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>
610
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>
617
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:
626 </p><p>
627 http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html
628 </p><p>
629 Structure:
630 </p><p>
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'* '#'*
637 </p><p>
638   Notation:
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
643 </p><p>
644 Special Characters:
645 </p><p>
646   Symbol Meaning
647   0      a digit
648   #      a digit, zero shows as absent
649   .      placeholder for decimal separator
650   ,      placeholder for grouping separator.
651   ;      separates formats.
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>
657
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>
668
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>
674
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>
681
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>&lt;&lt; keys</b></a></td><td align="right"><a accesskey="n" href="libxslt-numbersInternals.html"><b>numbersInternals &gt;&gt;</b></a></td></tr></table></body></html>