preparing libxslt-1.0.32 release updated the doc and rebuilt Daniel
[platform/upstream/libxslt.git] / doc / html / libxslt-xsltInternals.html
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 {
3             background: #eeeeee;
4             border: solid 1px #aaaaaa;
5             padding: 0.5em;
6         }
7         .programlisting {
8             background: #eeeeff;
9             border: solid 1px #aaaaff;
10             padding: 0.5em;
11         }
12         .variablelist {
13             padding: 4px;
14             margin-left: 3em;
15         }
16         .navigation {
17             background: #ffeeee;
18             border: solid 1px #ffaaaa;
19             margin-top: 0.5em;
20             margin-bottom: 0.5em;
21         }
22         .navigation a {
23             color: #770000;
24         }
25         .navigation a:visited {
26             color: #550000;
27         }
28         .navigation .title {
29             font-size: 200%;
30         }
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 &#8212; </p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
32
33
34
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,
58                                              int nbsorts);
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>
107
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
109 </pre><p>
110 Max number of specified xsl:sort on an element.</p><p>
111
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
113 </pre><p>
114 Specific value for pattern without priority expressed.</p><p>
115
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 */
120 };
121 </pre><p>
122 Extra information added to the transformation context.</p><p>
123
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;
125 </pre><p>
126
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)-&gt;extras[(nr)].info
128 </pre><p>
129 Macro used to access extra information stored in the context</p><p>
130
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)-&gt;extras[(nr)].deallocate
134 </pre><p>
135 Macro used to free extra information stored in the context</p><p>
136
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)-&gt;extras[(nr)].val
140 </pre><p>
141 Macro used to define extra information stored in the context</p><p>
142
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 */
156
157     int inheritedNsNr;  /* number of inherited namespaces */
158     xmlNsPtr *inheritedNs;/* inherited non-excluded namespaces */
159
160     /* Profiling informations */
161     int nbCalls;        /* the number of time the template was called */
162     unsigned long time; /* the time spent in this template */
163 };
164 </pre><p>
165 The in-memory structure corresponding to an XSLT Template.</p><p>
166
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;
168 </pre><p>
169
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 */
172     xmlChar *name;
173     /* Used for interpretation of pattern */
174     xmlChar *digit;
175     xmlChar *patternSeparator;
176     /* May appear in result */
177     xmlChar *minusSign;
178     xmlChar *infinity;
179     xmlChar *noNumber; /* Not-a-number */
180     /* Used for interpretation of pattern and may appear in result */
181     xmlChar *decimalPoint;
182     xmlChar *grouping;
183     xmlChar *percent;
184     xmlChar *permille;
185     xmlChar *zeroDigit;
186 };
187 </pre><p>
188 Data structure of decimal-format.</p><p>
189
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;
191 </pre><p>
192
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 */
198 };
199 </pre><p>
200 Data structure associated to a parsed document.</p><p>
201
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;
203 </pre><p>
204
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 */
208
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 */
213
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 */
219
220     /*
221      * Extensions
222      */
223     xmlHashTablePtr   extFunctions;     /* the extension functions */
224     xmlHashTablePtr   extElements;      /* the extension elements */
225     xmlHashTablePtr   extInfos;         /* the extension data */
226
227     const xmlChar *mode;                /* the current mode */
228     const xmlChar *modeURI;             /* the current mode URI */
229
230     xsltDocumentPtr docList;            /* the document list */
231
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 */
236
237     xmlDocPtr output;                   /* the resulting document */
238     xmlNodePtr insert;                  /* the insertion node */
239
240     xmlXPathContextPtr xpathCtxt;       /* the XPath context */
241     xsltTransformState state;           /* the current state */
242
243     /*
244      * Global variables
245      */
246     xmlHashTablePtr   globalVars;       /* the global variables and params */
247
248     xmlNodePtr inst;                    /* the instruction in the stylesheet */
249
250     int xinclude;                       /* should XInclude be processed */
251
252     const char *      outputFile;       /* the output URI if known */
253
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 */
259
260     void            *_private;          /* user defined data */
261
262     int              extrasNr;          /* the number of extras used */
263     int              extrasMax;         /* the number of extras allocated */
264     xsltRuntimeExtraPtr extras;         /* extra per runtime informations */
265
266     xsltDocumentPtr  styleList;         /* the stylesheet docs list */
267     void                 * sec;         /* the security preferences if any */
268
269     xmlGenericErrorFunc  error;         /* a specific error handler */
270     void              * errctx;         /* context for the error handler */
271
272     xsltSortFunc      sortfunc;         /* a ctxt specific sort routine */
273
274     /*
275      * handling of temporary Result Value Tree
276      */
277     xmlDocPtr       tmpRVT;             /* list of RVT without persistance */
278     xmlDocPtr       persistRVT;         /* list of persistant RVTs */
279     int             ctxtflags;          /* context processing flags */
280
281     /*
282      * Speed optimization when coalescing text nodes
283      */
284     const xmlChar  *lasttext;           /* last text node content */
285     unsigned int    lasttsize;          /* last text node size */
286     unsigned int    lasttuse;           /* last text node use */
287 };
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="xsltTransformContextPtr"></a>xsltTransformContextPtr</h3><pre class="programlisting">typedef xsltTransformContext *xsltTransformContextPtr;
291 </pre><p>
292
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 */
298
299     /* end of common part */
300     xsltElemPreCompDeallocator free;    /* the deallocator */
301 };
302 </pre><p>
303 The in-memory structure corresponding to element precomputed data,
304 designed to be extended by extension implementors.</p><p>
305
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;
307 </pre><p>
308
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>
315
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>
324
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 {
329     XSLT_FUNC_COPY=1,
330     XSLT_FUNC_SORT,
331     XSLT_FUNC_TEXT,
332     XSLT_FUNC_ELEMENT,
333     XSLT_FUNC_ATTRIBUTE,
334     XSLT_FUNC_COMMENT,
335     XSLT_FUNC_PI,
336     XSLT_FUNC_COPYOF,
337     XSLT_FUNC_VALUEOF,
338     XSLT_FUNC_NUMBER,
339     XSLT_FUNC_APPLYIMPORTS,
340     XSLT_FUNC_CALLTEMPLATE,
341     XSLT_FUNC_APPLYTEMPLATES,
342     XSLT_FUNC_CHOOSE,
343     XSLT_FUNC_IF,
344     XSLT_FUNC_FOREACH,
345     XSLT_FUNC_DOCUMENT,
346     XSLT_FUNC_WITHPARAM,
347     XSLT_FUNC_PARAM,
348     XSLT_FUNC_VARIABLE,
349     XSLT_FUNC_WHEN,
350     XSLT_FUNC_EXTENSION
351 } xsltStyleType;
352 </pre><p>
353
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>
356
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 */
363
364     /*
365      * Pre computed values.
366      */
367
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 */
378
379     xmlChar *use;               /* copy, element */
380     int      has_use;           /* copy, element */
381
382     int      noescape;          /* text */
383
384     xmlChar *name;              /* element, attribute, pi */
385     int      has_name;          /* element, attribute, pi */
386     xmlChar *ns;                /* element */
387     int      has_ns;            /* element */
388
389     xmlChar *mode;              /* apply-templates */
390     xmlChar *modeURI;           /* apply-templates */
391
392     xmlChar *test;              /* if */
393
394     xsltTemplatePtr templ;      /* call-template */
395
396     xmlChar *select;            /* sort, copy-of, value-of, apply-templates */
397
398     int      ver11;             /* document */
399     xmlChar *filename;          /* document URL */
400     int      has_filename;      /* document */
401
402     xsltNumberData numdata;     /* number */
403
404     xmlXPathCompExprPtr comp;   /* a precompiled XPath expression */
405     xmlNsPtr *nsList;           /* the namespaces in scope */
406     int nsNr;                   /* the number of namespaces in scope */
407 };
408 </pre><p>
409 The in-memory structure corresponding to XSLT stylesheet constructs
410 precomputed data.</p><p>
411
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;
413 </pre><p>
414
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 */
424 };
425 </pre><p>
426
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;
428 </pre><p>
429
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 {
431     /*
432      * The stylesheet import relation is kept as a tree.
433      */
434     struct _xsltStylesheet *parent;
435     struct _xsltStylesheet *next;
436     struct _xsltStylesheet *imports;
437
438     xsltDocumentPtr docList;            /* the include document list */
439
440     /*
441      * General data on the style sheet document.
442      */
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 */
448
449     /*
450      * Global variable or parameters.
451      */
452     xsltStackElemPtr variables; /* linked list of param and variables */
453
454     /*
455      * Template descriptions.
456      */
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() */
468     
469     /*
470      * Namespace aliases.
471      */
472     xmlHashTablePtr nsAliases;  /* the namespace alias hash tables */
473
474     /*
475      * Attribute sets.
476      */
477     xmlHashTablePtr attributeSets;/* the attribute sets hash tables */
478
479     /*
480      * Namespaces.
481      */
482     xmlHashTablePtr nsHash;     /* the set of namespaces in use */
483     void           *nsDefs;     /* the namespaces defined */
484
485     /*
486      * Key definitions.
487      */
488     void *keys;                         /* key definitions */
489
490     /*
491      * Output related stuff.
492      */
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" */
498
499     /* 
500      * Number formatting.
501      */
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 */
508
509     /*
510      * Precomputed blocks.
511      */
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 */
515
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 */
520
521     void     *_private;         /* user defined data */
522
523     /*
524      * Extensions.
525      */
526     xmlHashTablePtr extInfos;   /* the extension data */
527     int             extrasNr;   /* the number of extras required */
528 };
529 </pre><p>
530
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;
532 </pre><p>
533
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 {
535     XSLT_OUTPUT_XML = 0,
536     XSLT_OUTPUT_HTML,
537     XSLT_OUTPUT_TEXT
538 } xsltOutputType;
539 </pre><p>
540
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 {
542     XSLT_STATE_OK = 0,
543     XSLT_STATE_ERROR,
544     XSLT_STATE_STOPPED
545 } xsltTransformState;
546 </pre><p>
547
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-&gt;state == XSLT_STATE_STOPPED) return;
549 </pre><p>
550 Macro to check if the XSLT processing should be stopped.
551 Will return from the function.</p><p>
552
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-&gt;state == XSLT_STATE_STOPPED) goto error;
554 </pre><p>
555 Macro to check if the XSLT processing should be stopped.
556 Will goto the error: label.</p><p>
557
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-&gt;state == XSLT_STATE_STOPPED) return(0);
559 </pre><p>
560 Macro to check if the XSLT processing should be stopped.
561 Will return from the function with a 0 value.</p><p>
562
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>
565
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>
569
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>
574
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>
578
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>
583
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>
589
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>
597
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>
606
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>
611
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>
618
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>
629
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>
636
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:
645 </p><p>
646 http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html
647 </p><p>
648 Structure:
649 </p><p>
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'* '#'*
656 </p><p>
657   Notation:
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
662 </p><p>
663 Special Characters:
664 </p><p>
665   Symbol Meaning
666   0      a digit
667   #      a digit, zero shows as absent
668   .      placeholder for decimal separator
669   ,      placeholder for grouping separator.
670   ;      separates formats.
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>
676
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>
687
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>
693
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>
700
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>
705
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>
711
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>
718
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>
724
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>&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>