2 <NAME>LIBXSLT_DOTTED_VERSION</NAME>
3 #define LIBXSLT_DOTTED_VERSION "1.1.0"
6 <NAME>LIBXSLT_VERSION</NAME>
7 #define LIBXSLT_VERSION 10100
10 <NAME>LIBXSLT_VERSION_STRING</NAME>
11 #define LIBXSLT_VERSION_STRING "10100"
14 <NAME>WITH_XSLT_DEBUG</NAME>
15 #define WITH_XSLT_DEBUG
18 <NAME>DEBUG_MEMORY</NAME>
22 <NAME>DEBUG_MEMORY_LOCATION</NAME>
23 #define DEBUG_MEMORY_LOCATION
26 <NAME>XSLT_NEED_TRIO</NAME>
27 #define XSLT_NEED_TRIO
30 <NAME>XSLT_NEED_TRIO</NAME>
31 #define XSLT_NEED_TRIO
34 <NAME>WITH_DEBUGGER</NAME>
38 <NAME>ATTRIBUTE_UNUSED</NAME>
39 #define ATTRIBUTE_UNUSED __attribute__((unused))
42 <NAME>ATTRIBUTE_UNUSED</NAME>
43 #define ATTRIBUTE_UNUSED
46 <NAME>LIBXSLT_PUBLIC</NAME>
47 #define LIBXSLT_PUBLIC __declspec(dllimport)
50 <NAME>LIBXSLT_PUBLIC</NAME>
51 #define LIBXSLT_PUBLIC
54 <NAME>XSLT_LIBXSLT_NAMESPACE</NAME>
55 #define XSLT_LIBXSLT_NAMESPACE ((xmlChar *) "http://xmlsoft.org/XSLT/namespace")
58 <NAME>XSLT_SAXON_NAMESPACE</NAME>
59 #define XSLT_SAXON_NAMESPACE ((xmlChar *) "http://icl.com/saxon")
62 <NAME>XSLT_XT_NAMESPACE</NAME>
63 #define XSLT_XT_NAMESPACE ((xmlChar *) "http://www.jclark.com/xt")
66 <NAME>XSLT_XALAN_NAMESPACE</NAME>
67 #define XSLT_XALAN_NAMESPACE ((xmlChar *) \
68 "org.apache.xalan.xslt.extensions.Redirect")
71 <NAME>XSLT_NORM_SAXON_NAMESPACE</NAME>
72 #define XSLT_NORM_SAXON_NAMESPACE ((xmlChar *) \
73 "http://nwalsh.com/xslt/ext/com.nwalsh.saxon.CVS")
76 <NAME>xsltStyleExtInitFunction</NAME>
77 <RETURNS>void *</RETURNS>
78 xsltStylesheetPtr style,
82 <NAME>xsltStyleExtShutdownFunction</NAME>
83 <RETURNS>void </RETURNS>
84 xsltStylesheetPtr style,
89 <NAME>xsltExtInitFunction</NAME>
90 <RETURNS>void *</RETURNS>
91 xsltTransformContextPtr ctxt,
95 <NAME>xsltExtShutdownFunction</NAME>
96 <RETURNS>void </RETURNS>
97 xsltTransformContextPtr ctxt,
102 <NAME>xsltTopLevelFunction</NAME>
103 <RETURNS>void </RETURNS>
104 xsltStylesheetPtr style,
108 <NAME>XSLT_REGISTER_FUNCTION_LOOKUP</NAME>
109 #define XSLT_REGISTER_FUNCTION_LOOKUP(ctxt) \
110 xmlXPathRegisterFuncLookup((ctxt)->xpathCtxt, \
111 (xmlXPathFuncLookupFunc) xsltXPathFunctionLookup, \
112 (void *)(ctxt->xpathCtxt));
115 <NAME>XSLT_GET_IMPORT_PTR</NAME>
116 #define XSLT_GET_IMPORT_PTR(res, style, name) { \
117 xsltStylesheetPtr st = style; \
119 while (st != NULL) { \
120 if (st->name != NULL) { res = st->name; break; } \
121 st = xsltNextImport(st); \
125 <NAME>XSLT_GET_IMPORT_INT</NAME>
126 #define XSLT_GET_IMPORT_INT(res, style, name) { \
127 xsltStylesheetPtr st = style; \
129 while (st != NULL) { \
130 if (st->name != -1) { res = st->name; break; } \
131 st = xsltNextImport(st); \
135 <NAME>LIBXSLT_PUBLIC</NAME>
136 #define LIBXSLT_PUBLIC __declspec(dllimport)
139 <NAME>LIBXSLT_PUBLIC</NAME>
140 #define LIBXSLT_PUBLIC
143 <NAME>xsltNumberData</NAME>
146 <NAME>xsltNumberDataPtr</NAME>
147 typedef xsltNumberData *xsltNumberDataPtr;
150 <NAME>xsltNumberData</NAME>
151 struct xsltNumberData {
159 int groupingCharacter;
160 int groupingCharacterLen;
170 <NAME>xsltFormatNumberInfo</NAME>
173 <NAME>xsltFormatNumberInfoPtr</NAME>
174 typedef xsltFormatNumberInfo *xsltFormatNumberInfoPtr;
177 <NAME>xsltFormatNumberInfo</NAME>
178 struct xsltFormatNumberInfo {
179 int integer_hash; /* Number of '#' in integer part */
180 int integer_digits; /* Number of '0' in integer part */
181 int frac_digits; /* Number of '0' in fractional part */
182 int frac_hash; /* Number of '#' in fractional part */
183 int group; /* Number of chars per display 'group' */
184 int multiplier; /* Scaling for percent or permille */
185 char add_decimal; /* Flag for whether decimal point appears in pattern */
186 char is_multiplier_set; /* Flag to catch multiple occurences of percent/permille */
187 char is_negative_pattern;/* Flag for processing -ve prefix/suffix */
191 <NAME>xsltCompMatch</NAME>
194 <NAME>xsltCompMatchPtr</NAME>
195 typedef xsltCompMatch *xsltCompMatchPtr;
198 <NAME>xsltMatchPattern</NAME>
199 <RETURNS>int </RETURNS>
200 xsltTransformContextPtr ctxt,xmlNodePtr node,const xmlChar *pattern,xmlDocPtr ctxtdoc,xmlNodePtr ctxtnode
203 <NAME>xsltExtMarker</NAME>
204 extern const xmlChar *xsltExtMarker;
207 <NAME>XSLT_REGISTER_VARIABLE_LOOKUP</NAME>
208 #define XSLT_REGISTER_VARIABLE_LOOKUP(ctxt) \
209 xmlXPathRegisterVariableLookup((ctxt)->xpathCtxt, \
210 xsltXPathVariableLookup, (void *)(ctxt)); \
211 xsltRegisterAllFunctions((ctxt)->xpathCtxt); \
212 xsltRegisterAllElement(ctxt); \
213 (ctxt)->xpathCtxt->extra = ctxt
216 <NAME>XSLT_DEFAULT_VERSION</NAME>
217 #define XSLT_DEFAULT_VERSION "1.0"
220 <NAME>XSLT_DEFAULT_VENDOR</NAME>
221 #define XSLT_DEFAULT_VENDOR "libxslt"
224 <NAME>XSLT_DEFAULT_URL</NAME>
225 #define XSLT_DEFAULT_URL "http://xmlsoft.org/XSLT/"
228 <NAME>XSLT_NAMESPACE</NAME>
229 #define XSLT_NAMESPACE ((xmlChar *) "http://www.w3.org/1999/XSL/Transform")
232 <NAME>XSLT_PARSE_OPTIONS</NAME>
233 #define XSLT_PARSE_OPTIONS \
234 XML_PARSE_NOENT | XML_PARSE_DTDLOAD | XML_PARSE_DTDATTR | XML_PARSE_NOCDATA
237 <NAME>xsltMaxDepth</NAME>
238 extern int xsltMaxDepth;
241 <NAME>xsltEngineVersion</NAME>
242 extern const char *xsltEngineVersion;
245 <NAME>xsltLibxsltVersion</NAME>
246 extern const int xsltLibxsltVersion;
249 <NAME>xsltLibxmlVersion</NAME>
250 extern const int xsltLibxmlVersion;
253 <NAME>XSLT_TODO</NAME>
255 xsltGenericError(xsltGenericErrorContext, \
256 "Unimplemented block at %s:%d\n", \
260 <NAME>XSLT_STRANGE</NAME>
261 #define XSLT_STRANGE \
262 xsltGenericError(xsltGenericErrorContext, \
263 "Internal error at %s:%d\n", \
267 <NAME>IS_XSLT_ELEM</NAME>
268 #define IS_XSLT_ELEM(n) \
269 (((n) != NULL) && ((n)->ns != NULL) && \
270 (xmlStrEqual((n)->ns->href, XSLT_NAMESPACE)))
273 <NAME>IS_XSLT_NAME</NAME>
274 #define IS_XSLT_NAME(n, val) \
275 (xmlStrEqual((n)->name, (const xmlChar *) (val)))
278 <NAME>IS_XSLT_REAL_NODE</NAME>
279 #define IS_XSLT_REAL_NODE(n) \
281 (((n)->type == XML_ELEMENT_NODE) || \
282 ((n)->type == XML_TEXT_NODE) || \
283 ((n)->type == XML_ATTRIBUTE_NODE) || \
284 ((n)->type == XML_DOCUMENT_NODE) || \
285 ((n)->type == XML_HTML_DOCUMENT_NODE) || \
286 ((n)->type == XML_PI_NODE)))
289 <NAME>xsltDebugTraceCodes</NAME>
293 XSLT_TRACE_COPY_TEXT = 1<<0,
294 XSLT_TRACE_PROCESS_NODE = 1<<1,
295 XSLT_TRACE_APPLY_TEMPLATE = 1<<2,
296 XSLT_TRACE_COPY = 1<<3,
297 XSLT_TRACE_COMMENT = 1<<4,
298 XSLT_TRACE_PI = 1<<5,
299 XSLT_TRACE_COPY_OF = 1<<6,
300 XSLT_TRACE_VALUE_OF = 1<<7,
301 XSLT_TRACE_CALL_TEMPLATE = 1<<8,
302 XSLT_TRACE_APPLY_TEMPLATES = 1<<9,
303 XSLT_TRACE_CHOOSE = 1<<10,
304 XSLT_TRACE_IF = 1<<11,
305 XSLT_TRACE_FOR_EACH = 1<<12,
306 XSLT_TRACE_STRIP_SPACES = 1<<13,
307 XSLT_TRACE_TEMPLATES = 1<<14,
308 XSLT_TRACE_KEYS = 1<<15,
309 XSLT_TRACE_VARIABLES = 1<<16
310 } xsltDebugTraceCodes;
313 <NAME>XSLT_TRACE</NAME>
314 #define XSLT_TRACE(ctxt,code,call) \
315 if (ctxt->traceCode && (*(ctxt->traceCode) & code)) \
319 <NAME>xsltGenericError</NAME>
320 extern xmlGenericErrorFunc xsltGenericError;
323 <NAME>xsltGenericErrorContext</NAME>
324 extern void *xsltGenericErrorContext;
327 <NAME>xsltGenericDebug</NAME>
328 extern xmlGenericErrorFunc xsltGenericDebug;
331 <NAME>xsltGenericDebugContext</NAME>
332 extern void *xsltGenericDebugContext;
335 <NAME>XSLT_TIMESTAMP_TICS_PER_SEC</NAME>
336 #define XSLT_TIMESTAMP_TICS_PER_SEC 100000l
339 <NAME>xsltDebugStatusCodes</NAME>
341 XSLT_DEBUG_NONE = 0, /* no debugging allowed */
349 XSLT_DEBUG_RUN_RESTART,
351 } xsltDebugStatusCodes;
354 <NAME>xslDebugStatus</NAME>
355 extern int xslDebugStatus;
358 <NAME>xsltHandleDebuggerCallback</NAME>
359 <RETURNS>void </RETURNS>
360 xmlNodePtr cur, xmlNodePtr node,
361 xsltTemplatePtr templ, xsltTransformContextPtr ctxt
364 <NAME>xsltAddCallCallback</NAME>
365 <RETURNS>int </RETURNS>
366 xsltTemplatePtr templ, xmlNodePtr source
369 <NAME>xsltDropCallCallback</NAME>
370 <RETURNS>void </RETURNS>
374 <NAME>LIBXSLT_DOTTED_VERSION</NAME>
375 #define LIBXSLT_DOTTED_VERSION "1.1.0"
378 <NAME>LIBXSLT_VERSION</NAME>
379 #define LIBXSLT_VERSION 10100
382 <NAME>LIBXSLT_VERSION_STRING</NAME>
383 #define LIBXSLT_VERSION_STRING "10100"
386 <NAME>WITH_XSLT_DEBUG</NAME>
387 #define WITH_XSLT_DEBUG
390 <NAME>DEBUG_MEMORY</NAME>
394 <NAME>DEBUG_MEMORY_LOCATION</NAME>
395 #define DEBUG_MEMORY_LOCATION
398 <NAME>ATTRIBUTE_UNUSED</NAME>
399 #define ATTRIBUTE_UNUSED
402 <NAME>TRIO_ERROR_CODE</NAME>
403 #define TRIO_ERROR_CODE(x) ((-(x)) & 0x00FF)
406 <NAME>TRIO_ERROR_POSITION</NAME>
407 #define TRIO_ERROR_POSITION(x) ((-(x)) >> 8)
410 <NAME>TRIO_ERROR_NAME</NAME>
411 #define TRIO_ERROR_NAME(x) trio_strerror(x)
415 typedef int (*trio_outstream_t) TRIO_PROTO((trio_pointer_t, int));
418 <NAME>TRIO_PROTO((trio_pointer_t))</NAME>
419 typedef int (*trio_instream_t) TRIO_PROTO((trio_pointer_t));
423 # define printf trio_printf
427 # define vprintf trio_vprintf
431 # define fprintf trio_fprintf
434 <NAME>vfprintf</NAME>
435 # define vfprintf trio_vfprintf
439 # define sprintf trio_sprintf
442 <NAME>vsprintf</NAME>
443 # define vsprintf trio_vsprintf
446 <NAME>snprintf</NAME>
447 # define snprintf trio_snprintf
450 <NAME>vsnprintf</NAME>
451 # define vsnprintf trio_vsnprintf
455 # define scanf trio_scanf
459 # define vscanf trio_vscanf
463 # define fscanf trio_fscanf
467 # define vfscanf trio_vfscanf
471 # define sscanf trio_sscanf
475 # define vsscanf trio_vsscanf
479 #define dprintf trio_dprintf
482 <NAME>vdprintf</NAME>
483 #define vdprintf trio_vdprintf
487 #define aprintf trio_aprintf
490 <NAME>vaprintf</NAME>
491 #define vaprintf trio_vaprintf
494 <NAME>asprintf</NAME>
495 #define asprintf trio_asprintf
498 <NAME>vasprintf</NAME>
499 #define vasprintf trio_vasprintf
503 #define dscanf trio_dscanf
507 #define vdscanf trio_vdscanf
510 <NAME>XSLT_MAX_SORT</NAME>
511 #define XSLT_MAX_SORT 15
514 <NAME>XSLT_PAT_NO_PRIORITY</NAME>
515 #define XSLT_PAT_NO_PRIORITY -12345789
518 <NAME>xsltRuntimeExtra</NAME>
521 <NAME>xsltRuntimeExtraPtr</NAME>
522 typedef xsltRuntimeExtra *xsltRuntimeExtraPtr;
525 <NAME>xsltRuntimeExtra</NAME>
526 struct xsltRuntimeExtra {
527 void *info; /* pointer to the extra data */
528 xmlFreeFunc deallocate; /* pointer to the deallocation routine */
529 void *val; /* data not needing deallocation */
533 <NAME>XSLT_RUNTIME_EXTRA_LST</NAME>
534 #define XSLT_RUNTIME_EXTRA_LST(ctxt, nr) (ctxt)->extras[(nr)].info
537 <NAME>XSLT_RUNTIME_EXTRA_FREE</NAME>
538 #define XSLT_RUNTIME_EXTRA_FREE(ctxt, nr) (ctxt)->extras[(nr)].deallocate
541 <NAME>XSLT_RUNTIME_EXTRA</NAME>
542 #define XSLT_RUNTIME_EXTRA(ctxt, nr) (ctxt)->extras[(nr)].val
545 <NAME>xsltTemplate</NAME>
548 <NAME>xsltTemplatePtr</NAME>
549 typedef xsltTemplate *xsltTemplatePtr;
552 <NAME>xsltTemplate</NAME>
553 struct xsltTemplate {
554 struct _xsltTemplate *next;/* chained list sorted by priority */
555 struct _xsltStylesheet *style;/* the containing stylesheet */
556 xmlChar *match; /* the matching string */
557 float priority; /* as given from the stylesheet, not computed */
558 xmlChar *name; /* the local part of the name QName */
559 xmlChar *nameURI; /* the URI part of the name QName */
560 xmlChar *mode; /* the local part of the mode QName */
561 xmlChar *modeURI; /* the URI part of the mode QName */
562 xmlNodePtr content; /* the template replacement value */
563 xmlNodePtr elem; /* the source element */
565 int inheritedNsNr; /* number of inherited namespaces */
566 xmlNsPtr *inheritedNs;/* inherited non-excluded namespaces */
568 /* Profiling informations */
569 int nbCalls; /* the number of time the template was called */
570 unsigned long time; /* the time spent in this template */
574 <NAME>xsltDecimalFormat</NAME>
577 <NAME>xsltDecimalFormatPtr</NAME>
578 typedef xsltDecimalFormat *xsltDecimalFormatPtr;
581 <NAME>xsltDecimalFormat</NAME>
582 struct xsltDecimalFormat {
583 struct _xsltDecimalFormat *next; /* chained list */
585 /* Used for interpretation of pattern */
587 xmlChar *patternSeparator;
588 /* May appear in result */
591 xmlChar *noNumber; /* Not-a-number */
592 /* Used for interpretation of pattern and may appear in result */
593 xmlChar *decimalPoint;
601 <NAME>xsltDocument</NAME>
604 <NAME>xsltDocumentPtr</NAME>
605 typedef xsltDocument *xsltDocumentPtr;
608 <NAME>xsltDocument</NAME>
609 struct xsltDocument {
610 struct _xsltDocument *next; /* documents are kept in a chained list */
611 int main; /* is this the main document */
612 xmlDocPtr doc; /* the parsed document */
613 void *keys; /* key tables storage */
614 struct _xsltDocument *includes; /* subsidiary includes */
618 <NAME>xsltTransformContext</NAME>
621 <NAME>xsltTransformContextPtr</NAME>
622 typedef xsltTransformContext *xsltTransformContextPtr;
625 <NAME>xsltElemPreComp</NAME>
628 <NAME>xsltElemPreCompPtr</NAME>
629 typedef xsltElemPreComp *xsltElemPreCompPtr;
632 <NAME>xsltTransformFunction</NAME>
633 <RETURNS>void </RETURNS>
634 xsltTransformContextPtr ctxt,
637 xsltElemPreCompPtr comp
640 <NAME>xsltSortFunc</NAME>
641 <RETURNS>void </RETURNS>
642 xsltTransformContextPtr ctxt, xmlNodePtr *sorts,
646 <NAME>xsltStyleType</NAME>
658 XSLT_FUNC_APPLYIMPORTS,
659 XSLT_FUNC_CALLTEMPLATE,
660 XSLT_FUNC_APPLYTEMPLATES,
673 <NAME>xsltElemPreCompDeallocator</NAME>
674 <RETURNS>void </RETURNS>
675 xsltElemPreCompPtr comp
678 <NAME>xsltElemPreComp</NAME>
679 struct xsltElemPreComp {
680 xsltElemPreCompPtr next; /* chained list */
681 xsltStyleType type; /* type of the element */
682 xsltTransformFunction func; /* handling function */
683 xmlNodePtr inst; /* the instruction */
685 /* end of common part */
686 xsltElemPreCompDeallocator free; /* the deallocator */
690 <NAME>xsltStylePreComp</NAME>
693 <NAME>xsltStylePreCompPtr</NAME>
694 typedef xsltStylePreComp *xsltStylePreCompPtr;
697 <NAME>xsltStylePreComp</NAME>
698 struct xsltStylePreComp {
699 xsltElemPreCompPtr next; /* chained list */
700 xsltStyleType type; /* type of the element */
701 xsltTransformFunction func; /* handling function */
702 xmlNodePtr inst; /* the instruction */
705 * Pre computed values.
708 xmlChar *stype; /* sort */
709 int has_stype; /* sort */
710 int number; /* sort */
711 xmlChar *order; /* sort */
712 int has_order; /* sort */
713 int descending; /* sort */
714 xmlChar *lang; /* sort */
715 int has_lang; /* sort */
716 xmlChar *case_order; /* sort */
717 int lower_first; /* sort */
719 xmlChar *use; /* copy, element */
720 int has_use; /* copy, element */
722 int noescape; /* text */
724 xmlChar *name; /* element, attribute, pi */
725 int has_name; /* element, attribute, pi */
726 xmlChar *ns; /* element */
727 int has_ns; /* element */
729 xmlChar *mode; /* apply-templates */
730 xmlChar *modeURI; /* apply-templates */
732 xmlChar *test; /* if */
734 xsltTemplatePtr templ; /* call-template */
736 xmlChar *select; /* sort, copy-of, value-of, apply-templates */
738 int ver11; /* document */
739 xmlChar *filename; /* document URL */
740 int has_filename; /* document */
742 xsltNumberData numdata; /* number */
744 xmlXPathCompExprPtr comp; /* a precompiled XPath expression */
745 xmlNsPtr *nsList; /* the namespaces in scope */
746 int nsNr; /* the number of namespaces in scope */
750 <NAME>xsltStackElem</NAME>
753 <NAME>xsltStackElemPtr</NAME>
754 typedef xsltStackElem *xsltStackElemPtr;
757 <NAME>xsltStackElem</NAME>
758 struct xsltStackElem {
759 struct _xsltStackElem *next;/* chained list */
760 xsltStylePreCompPtr comp; /* the compiled form */
761 int computed; /* was the evaluation done */
762 xmlChar *name; /* the local part of the name QName */
763 xmlChar *nameURI; /* the URI part of the name QName */
764 xmlChar *select; /* the eval string */
765 xmlNodePtr tree; /* the tree if no eval string or the location */
766 xmlXPathObjectPtr value; /* The value if computed */
770 <NAME>xsltStylesheet</NAME>
773 <NAME>xsltStylesheetPtr</NAME>
774 typedef xsltStylesheet *xsltStylesheetPtr;
777 <NAME>xsltStylesheet</NAME>
778 struct xsltStylesheet {
780 * The stylesheet import relation is kept as a tree.
782 struct _xsltStylesheet *parent;
783 struct _xsltStylesheet *next;
784 struct _xsltStylesheet *imports;
786 xsltDocumentPtr docList; /* the include document list */
789 * General data on the style sheet document.
791 xmlDocPtr doc; /* the parsed XML stylesheet */
792 xmlHashTablePtr stripSpaces;/* the hash table of the strip-space and
793 preserve space elements */
794 int stripAll; /* strip-space * (1) preserve-space * (-1) */
795 xmlHashTablePtr cdataSection;/* the hash table of the cdata-section */
798 * Global variable or parameters.
800 xsltStackElemPtr variables; /* linked list of param and variables */
803 * Template descriptions.
805 xsltTemplatePtr templates; /* the ordered list of templates */
806 void *templatesHash; /* hash table or wherever compiled templates
807 informations are stored */
808 void *rootMatch; /* template based on / */
809 void *keyMatch; /* template based on key() */
810 void *elemMatch; /* template based on * */
811 void *attrMatch; /* template based on @* */
812 void *parentMatch; /* template based on .. */
813 void *textMatch; /* template based on text() */
814 void *piMatch; /* template based on processing-instruction() */
815 void *commentMatch; /* template based on comment() */
820 xmlHashTablePtr nsAliases; /* the namespace alias hash tables */
825 xmlHashTablePtr attributeSets;/* the attribute sets hash tables */
830 xmlHashTablePtr nsHash; /* the set of namespaces in use */
831 void *nsDefs; /* the namespaces defined */
836 void *keys; /* key definitions */
839 * Output related stuff.
841 xmlChar *method; /* the output method */
842 xmlChar *methodURI; /* associated namespace if any */
843 xmlChar *version; /* version string */
844 xmlChar *encoding; /* encoding string */
845 int omitXmlDeclaration; /* omit-xml-declaration = "yes" | "no" */
850 xsltDecimalFormatPtr decimalFormat;
851 int standalone; /* standalone = "yes" | "no" */
852 xmlChar *doctypePublic; /* doctype-public string */
853 xmlChar *doctypeSystem; /* doctype-system string */
854 int indent; /* should output being indented */
855 xmlChar *mediaType; /* media-type string */
858 * Precomputed blocks.
860 xsltElemPreCompPtr preComps;/* list of precomputed blocks */
861 int warnings; /* number of warnings found at compilation */
862 int errors; /* number of errors found at compilation */
864 xmlChar *exclPrefix; /* last excluded prefixes */
865 xmlChar **exclPrefixTab; /* array of excluded prefixes */
866 int exclPrefixNr; /* number of excluded prefixes in scope */
867 int exclPrefixMax; /* size of the array */
869 void *_private; /* user defined data */
874 xmlHashTablePtr extInfos; /* the extension data */
875 int extrasNr; /* the number of extras required */
878 * For keeping track of nested includes
880 xsltDocumentPtr includes; /* points to last nested include */
884 <NAME>xsltOutputType</NAME>
892 <NAME>xsltTransformState</NAME>
897 } xsltTransformState;
900 <NAME>xsltTransformContext</NAME>
901 struct xsltTransformContext {
902 xsltStylesheetPtr style; /* the stylesheet used */
903 xsltOutputType type; /* the type of output */
905 xsltTemplatePtr templ; /* the current template */
906 int templNr; /* Nb of templates in the stack */
907 int templMax; /* Size of the templtes stack */
908 xsltTemplatePtr *templTab; /* the template stack */
910 xsltStackElemPtr vars; /* the current variable list */
911 int varsNr; /* Nb of variable list in the stack */
912 int varsMax; /* Size of the variable list stack */
913 xsltStackElemPtr *varsTab; /* the variable list stack */
914 int varsBase; /* the var base for current templ */
919 xmlHashTablePtr extFunctions; /* the extension functions */
920 xmlHashTablePtr extElements; /* the extension elements */
921 xmlHashTablePtr extInfos; /* the extension data */
923 const xmlChar *mode; /* the current mode */
924 const xmlChar *modeURI; /* the current mode URI */
926 xsltDocumentPtr docList; /* the document list */
928 xsltDocumentPtr document; /* the current document */
929 xmlNodePtr node; /* the current node being processed */
930 xmlNodeSetPtr nodeList; /* the current node list */
931 /* xmlNodePtr current; the node */
933 xmlDocPtr output; /* the resulting document */
934 xmlNodePtr insert; /* the insertion node */
936 xmlXPathContextPtr xpathCtxt; /* the XPath context */
937 xsltTransformState state; /* the current state */
942 xmlHashTablePtr globalVars; /* the global variables and params */
944 xmlNodePtr inst; /* the instruction in the stylesheet */
946 int xinclude; /* should XInclude be processed */
948 const char * outputFile; /* the output URI if known */
950 int profile; /* is this run profiled */
951 long prof; /* the current profiled value */
952 int profNr; /* Nb of templates in the stack */
953 int profMax; /* Size of the templtaes stack */
954 long *profTab; /* the profile template stack */
956 void *_private; /* user defined data */
958 int extrasNr; /* the number of extras used */
959 int extrasMax; /* the number of extras allocated */
960 xsltRuntimeExtraPtr extras; /* extra per runtime informations */
962 xsltDocumentPtr styleList; /* the stylesheet docs list */
963 void * sec; /* the security preferences if any */
965 xmlGenericErrorFunc error; /* a specific error handler */
966 void * errctx; /* context for the error handler */
968 xsltSortFunc sortfunc; /* a ctxt specific sort routine */
971 * handling of temporary Result Value Tree
973 xmlDocPtr tmpRVT; /* list of RVT without persistance */
974 xmlDocPtr persistRVT; /* list of persistant RVTs */
975 int ctxtflags; /* context processing flags */
978 * Speed optimization when coalescing text nodes
980 const xmlChar *lasttext; /* last text node content */
981 unsigned int lasttsize; /* last text node size */
982 unsigned int lasttuse; /* last text node use */
984 * Per Context Debugging
986 int debugStatus; /* the context level debug status */
987 unsigned long* traceCode; /* pointer to the variable holding the mask */
991 <NAME>CHECK_STOPPED</NAME>
992 #define CHECK_STOPPED if (ctxt->state == XSLT_STATE_STOPPED) return;
995 <NAME>CHECK_STOPPEDE</NAME>
996 #define CHECK_STOPPEDE if (ctxt->state == XSLT_STATE_STOPPED) goto error;
999 <NAME>CHECK_STOPPED0</NAME>
1000 #define CHECK_STOPPED0 if (ctxt->state == XSLT_STATE_STOPPED) return(0);
1003 <NAME>TRIO_COMPILER_GCC</NAME>
1004 # define TRIO_COMPILER_GCC
1007 <NAME>TRIO_COMPILER_SUNPRO</NAME>
1008 # define TRIO_COMPILER_SUNPRO
1011 <NAME>TRIO_COMPILER_SUNPRO</NAME>
1012 # define TRIO_COMPILER_SUNPRO
1015 <NAME>TRIO_COMPILER_XLC</NAME>
1016 # define TRIO_COMPILER_XLC
1019 <NAME>TRIO_COMPILER_XLC</NAME>
1020 # define TRIO_COMPILER_XLC /* Workaround for old xlc */
1023 <NAME>TRIO_COMPILER_DECC</NAME>
1024 # define TRIO_COMPILER_DECC
1027 <NAME>TRIO_COMPILER_DECC</NAME>
1028 # define TRIO_COMPILER_DECC /* Workaround for old DEC C compilers */
1031 <NAME>TRIO_COMPILER_MSVC</NAME>
1032 # define TRIO_COMPILER_MSVC
1035 <NAME>TRIO_COMPILER_BCB</NAME>
1036 # define TRIO_COMPILER_BCB
1039 <NAME>TRIO_PLATFORM_VMS</NAME>
1040 # define TRIO_PLATFORM_VMS
1043 <NAME>TRIO_PLATFORM_UNIX</NAME>
1044 # define TRIO_PLATFORM_UNIX
1047 <NAME>TRIO_PLATFORM_UNIX</NAME>
1048 # define TRIO_PLATFORM_UNIX
1051 <NAME>TRIO_PLATFORM_UNIX</NAME>
1052 # define TRIO_PLATFORM_UNIX
1055 <NAME>TRIO_PLATFORM_UNIX</NAME>
1056 # define TRIO_PLATFORM_UNIX
1059 <NAME>TRIO_PLATFORM_UNIX</NAME>
1060 # define TRIO_PLATFORM_UNIX
1063 <NAME>TRIO_PLATFORM_QNX</NAME>
1064 # define TRIO_PLATFORM_QNX
1067 <NAME>TRIO_PLATFORM_UNIX</NAME>
1068 # define TRIO_PLATFORM_UNIX
1071 <NAME>TRIO_PLATFORM_UNIX</NAME>
1072 # define TRIO_PLATFORM_UNIX
1075 <NAME>TRIO_PLATFORM_WIN32</NAME>
1076 # define TRIO_PLATFORM_WIN32
1079 <NAME>TRIO_PLATFORM_MPEIX</NAME>
1080 # define TRIO_PLATFORM_MPEIX
1083 <NAME>TRIO_PLATFORM_AIX</NAME>
1084 # define TRIO_PLATFORM_AIX
1087 <NAME>TRIO_PLATFORM_HPUX</NAME>
1088 # define TRIO_PLATFORM_HPUX
1091 <NAME>TRIO_PLATFORM_SOLARIS</NAME>
1092 # define TRIO_PLATFORM_SOLARIS
1095 <NAME>TRIO_PLATFORM_SUNOS</NAME>
1096 # define TRIO_PLATFORM_SUNOS
1099 <NAME>TRIO_COMPILER_SUPPORTS_C89</NAME>
1100 # define TRIO_COMPILER_SUPPORTS_C89
1103 <NAME>TRIO_COMPILER_SUPPORTS_C90</NAME>
1104 # define TRIO_COMPILER_SUPPORTS_C90
1107 <NAME>TRIO_COMPILER_SUPPORTS_C94</NAME>
1108 # define TRIO_COMPILER_SUPPORTS_C94
1111 <NAME>TRIO_COMPILER_SUPPORTS_C99</NAME>
1112 # define TRIO_COMPILER_SUPPORTS_C99
1115 <NAME>TRIO_COMPILER_SUPPORTS_C94</NAME>
1116 # define TRIO_COMPILER_SUPPORTS_C94
1119 <NAME>TRIO_COMPILER_SUPPORTS_UNIX95</NAME>
1120 # define TRIO_COMPILER_SUPPORTS_UNIX95
1123 <NAME>TRIO_COMPILER_SUPPORTS_UNIX98</NAME>
1124 # define TRIO_COMPILER_SUPPORTS_UNIX98
1127 <NAME>TRIO_COMPILER_SUPPORTS_UNIX01</NAME>
1128 # define TRIO_COMPILER_SUPPORTS_UNIX01
1131 <NAME>TRIO_PUBLIC</NAME>
1132 # define TRIO_PUBLIC
1135 <NAME>TRIO_PRIVATE</NAME>
1136 # define TRIO_PRIVATE static
1139 <NAME>TRIO_COMPILER_ANCIENT</NAME>
1140 # define TRIO_COMPILER_ANCIENT
1143 <NAME>TRIO_CONST</NAME>
1147 <NAME>TRIO_VOLATILE</NAME>
1148 # define TRIO_VOLATILE
1151 <NAME>TRIO_SIGNED</NAME>
1152 # define TRIO_SIGNED
1155 <NAME>trio_long_double_t</NAME>
1156 typedef double trio_long_double_t;
1159 <NAME>trio_pointer_t</NAME>
1160 typedef char * trio_pointer_t;
1163 <NAME>TRIO_SUFFIX_LONG</NAME>
1164 # define TRIO_SUFFIX_LONG(x) x
1167 <NAME>TRIO_PROTO</NAME>
1168 # define TRIO_PROTO(x) ()
1171 <NAME>TRIO_NOARGS</NAME>
1172 # define TRIO_NOARGS
1175 <NAME>TRIO_ARGS1</NAME>
1176 # define TRIO_ARGS1(list,a1) list a1;
1179 <NAME>TRIO_ARGS2</NAME>
1180 # define TRIO_ARGS2(list,a1,a2) list a1; a2;
1183 <NAME>TRIO_ARGS3</NAME>
1184 # define TRIO_ARGS3(list,a1,a2,a3) list a1; a2; a3;
1187 <NAME>TRIO_ARGS4</NAME>
1188 # define TRIO_ARGS4(list,a1,a2,a3,a4) list a1; a2; a3; a4;
1191 <NAME>TRIO_ARGS5</NAME>
1192 # define TRIO_ARGS5(list,a1,a2,a3,a4,a5) list a1; a2; a3; a4; a5;
1195 <NAME>TRIO_ARGS6</NAME>
1196 # define TRIO_ARGS6(list,a1,a2,a3,a4,a5,a6) list a1; a2; a3; a4; a5; a6;
1199 <NAME>TRIO_VARGS2</NAME>
1200 # define TRIO_VARGS2(list,a1,a2) list a1; a2
1203 <NAME>TRIO_VARGS3</NAME>
1204 # define TRIO_VARGS3(list,a1,a2,a3) list a1; a2; a3
1207 <NAME>TRIO_VARGS4</NAME>
1208 # define TRIO_VARGS4(list,a1,a2,a3,a4) list a1; a2; a3; a4
1211 <NAME>TRIO_VARGS5</NAME>
1212 # define TRIO_VARGS5(list,a1,a2,a3,a4,a5) list a1; a2; a3; a4; a5
1215 <NAME>TRIO_VA_DECL</NAME>
1216 # define TRIO_VA_DECL va_dcl
1219 <NAME>TRIO_VA_START</NAME>
1220 # define TRIO_VA_START(x,y) va_start(x)
1223 <NAME>TRIO_VA_END</NAME>
1224 # define TRIO_VA_END(x) va_end(x)
1227 <NAME>TRIO_CONST</NAME>
1228 # define TRIO_CONST const
1231 <NAME>TRIO_VOLATILE</NAME>
1232 # define TRIO_VOLATILE volatile
1235 <NAME>TRIO_SIGNED</NAME>
1236 # define TRIO_SIGNED signed
1239 <NAME>trio_long_double_t</NAME>
1240 typedef long double trio_long_double_t;
1243 <NAME>trio_pointer_t</NAME>
1244 typedef void * trio_pointer_t;
1247 <NAME>TRIO_SUFFIX_LONG</NAME>
1248 # define TRIO_SUFFIX_LONG(x) x ## L
1251 <NAME>TRIO_PROTO</NAME>
1252 # define TRIO_PROTO(x) x
1255 <NAME>TRIO_NOARGS</NAME>
1256 # define TRIO_NOARGS void
1259 <NAME>TRIO_ARGS1</NAME>
1260 # define TRIO_ARGS1(list,a1) (a1)
1263 <NAME>TRIO_ARGS2</NAME>
1264 # define TRIO_ARGS2(list,a1,a2) (a1,a2)
1267 <NAME>TRIO_ARGS3</NAME>
1268 # define TRIO_ARGS3(list,a1,a2,a3) (a1,a2,a3)
1271 <NAME>TRIO_ARGS4</NAME>
1272 # define TRIO_ARGS4(list,a1,a2,a3,a4) (a1,a2,a3,a4)
1275 <NAME>TRIO_ARGS5</NAME>
1276 # define TRIO_ARGS5(list,a1,a2,a3,a4,a5) (a1,a2,a3,a4,a5)
1279 <NAME>TRIO_ARGS6</NAME>
1280 # define TRIO_ARGS6(list,a1,a2,a3,a4,a5,a6) (a1,a2,a3,a4,a5,a6)
1283 <NAME>TRIO_VARGS2</NAME>
1284 # define TRIO_VARGS2 TRIO_ARGS2
1287 <NAME>TRIO_VARGS3</NAME>
1288 # define TRIO_VARGS3 TRIO_ARGS3
1291 <NAME>TRIO_VARGS4</NAME>
1292 # define TRIO_VARGS4 TRIO_ARGS4
1295 <NAME>TRIO_VARGS5</NAME>
1296 # define TRIO_VARGS5 TRIO_ARGS5
1299 <NAME>TRIO_VA_DECL</NAME>
1300 # define TRIO_VA_DECL ...
1303 <NAME>TRIO_VA_START</NAME>
1304 # define TRIO_VA_START(x,y) va_start(x,y)
1307 <NAME>TRIO_VA_END</NAME>
1308 # define TRIO_VA_END(x) va_end(x)
1311 <NAME>TRIO_INLINE</NAME>
1312 # define TRIO_INLINE inline
1315 <NAME>TRIO_INLINE</NAME>
1316 # define TRIO_INLINE __inline__
1319 <NAME>TRIO_INLINE</NAME>
1320 # define TRIO_INLINE _inline
1323 <NAME>TRIO_INLINE</NAME>
1324 # define TRIO_INLINE __inline
1327 <NAME>TRIO_INLINE</NAME>
1328 # define TRIO_INLINE
1331 <NAME>TRIO_COMPILER_SUPPORTS_LL</NAME>
1332 # define TRIO_COMPILER_SUPPORTS_LL
1335 <NAME>xsltSecurityPrefs</NAME>
1338 <NAME>xsltSecurityPrefsPtr</NAME>
1339 typedef xsltSecurityPrefs *xsltSecurityPrefsPtr;
1342 <NAME>xsltSecurityOption</NAME>
1344 XSLT_SECPREF_READ_FILE = 1,
1345 XSLT_SECPREF_WRITE_FILE,
1346 XSLT_SECPREF_CREATE_DIRECTORY,
1347 XSLT_SECPREF_READ_NETWORK,
1348 XSLT_SECPREF_WRITE_NETWORK
1349 } xsltSecurityOption;
1352 <NAME>xsltSecurityCheck</NAME>
1353 <RETURNS>int </RETURNS>
1354 xsltSecurityPrefsPtr sec,
1355 xsltTransformContextPtr ctxt,
1359 <NAME>XSLTPUBFUN</NAME>
1363 <NAME>XSLTPUBVAR</NAME>
1364 #define XSLTPUBVAR extern
1367 <NAME>XSLTCALL</NAME>
1371 <NAME>XSLTPUBFUN</NAME>
1372 #define XSLTPUBFUN __declspec(dllexport)
1375 <NAME>XSLTPUBVAR</NAME>
1376 #define XSLTPUBVAR __declspec(dllexport)
1379 <NAME>XSLTPUBFUN</NAME>
1383 <NAME>XSLTPUBVAR</NAME>
1384 #define XSLTPUBVAR __declspec(dllimport) extern
1387 <NAME>XSLTPUBVAR</NAME>
1388 #define XSLTPUBVAR extern
1391 <NAME>XSLTCALL</NAME>
1392 #define XSLTCALL __cdecl
1395 <NAME>XSLTPUBFUN</NAME>
1396 #define XSLTPUBFUN __declspec(dllexport)
1399 <NAME>XSLTPUBVAR</NAME>
1400 #define XSLTPUBVAR __declspec(dllexport) extern
1403 <NAME>XSLTPUBFUN</NAME>
1407 <NAME>XSLTPUBVAR</NAME>
1408 #define XSLTPUBVAR __declspec(dllimport) extern
1411 <NAME>XSLTPUBVAR</NAME>
1412 #define XSLTPUBVAR extern
1415 <NAME>XSLTCALL</NAME>
1416 #define XSLTCALL __cdecl
1419 <NAME>XSLTPUBFUN</NAME>
1420 #define XSLTPUBFUN __declspec(dllexport)
1423 <NAME>XSLTPUBVAR</NAME>
1424 #define XSLTPUBVAR __declspec(dllexport)
1427 <NAME>XSLTPUBFUN</NAME>
1431 <NAME>XSLTPUBVAR</NAME>
1432 #define XSLTPUBVAR __declspec(dllimport) extern
1435 <NAME>XSLTPUBVAR</NAME>
1439 <NAME>XSLTCALL</NAME>
1440 #define XSLTCALL __cdecl
1443 <NAME>LIBXSLT_PUBLIC</NAME>
1444 #define LIBXSLT_PUBLIC XSLTPUBVAR