UNPKG

node10-libxslt

Version:

[Fork] Node.js bindings for libxslt compatible with libxmljs

1,450 lines (1,398 loc) 36.4 kB
<MACRO> <NAME>LIBXSLT_DOTTED_VERSION</NAME> #define LIBXSLT_DOTTED_VERSION "1.1.0" </MACRO> <MACRO> <NAME>LIBXSLT_VERSION</NAME> #define LIBXSLT_VERSION 10100 </MACRO> <MACRO> <NAME>LIBXSLT_VERSION_STRING</NAME> #define LIBXSLT_VERSION_STRING "10100" </MACRO> <MACRO> <NAME>WITH_XSLT_DEBUG</NAME> #define WITH_XSLT_DEBUG </MACRO> <MACRO> <NAME>DEBUG_MEMORY</NAME> #define DEBUG_MEMORY </MACRO> <MACRO> <NAME>DEBUG_MEMORY_LOCATION</NAME> #define DEBUG_MEMORY_LOCATION </MACRO> <MACRO> <NAME>XSLT_NEED_TRIO</NAME> #define XSLT_NEED_TRIO </MACRO> <MACRO> <NAME>XSLT_NEED_TRIO</NAME> #define XSLT_NEED_TRIO </MACRO> <MACRO> <NAME>WITH_DEBUGGER</NAME> #define WITH_DEBUGGER </MACRO> <MACRO> <NAME>ATTRIBUTE_UNUSED</NAME> #define ATTRIBUTE_UNUSED __attribute__((unused)) </MACRO> <MACRO> <NAME>ATTRIBUTE_UNUSED</NAME> #define ATTRIBUTE_UNUSED </MACRO> <MACRO> <NAME>LIBXSLT_PUBLIC</NAME> #define LIBXSLT_PUBLIC __declspec(dllimport) </MACRO> <MACRO> <NAME>LIBXSLT_PUBLIC</NAME> #define LIBXSLT_PUBLIC </MACRO> <MACRO> <NAME>XSLT_LIBXSLT_NAMESPACE</NAME> #define XSLT_LIBXSLT_NAMESPACE ((xmlChar *) "http://xmlsoft.org/XSLT/namespace") </MACRO> <MACRO> <NAME>XSLT_SAXON_NAMESPACE</NAME> #define XSLT_SAXON_NAMESPACE ((xmlChar *) "http://icl.com/saxon") </MACRO> <MACRO> <NAME>XSLT_XT_NAMESPACE</NAME> #define XSLT_XT_NAMESPACE ((xmlChar *) "http://www.jclark.com/xt") </MACRO> <MACRO> <NAME>XSLT_XALAN_NAMESPACE</NAME> #define XSLT_XALAN_NAMESPACE ((xmlChar *) \ "org.apache.xalan.xslt.extensions.Redirect") </MACRO> <MACRO> <NAME>XSLT_NORM_SAXON_NAMESPACE</NAME> #define XSLT_NORM_SAXON_NAMESPACE ((xmlChar *) \ "http://nwalsh.com/xslt/ext/com.nwalsh.saxon.CVS") </MACRO> <USER_FUNCTION> <NAME>xsltStyleExtInitFunction</NAME> <RETURNS>void *</RETURNS> xsltStylesheetPtr style, const xmlChar *URI </USER_FUNCTION> <USER_FUNCTION> <NAME>xsltStyleExtShutdownFunction</NAME> <RETURNS>void </RETURNS> xsltStylesheetPtr style, const xmlChar *URI, void *data </USER_FUNCTION> <USER_FUNCTION> <NAME>xsltExtInitFunction</NAME> <RETURNS>void *</RETURNS> xsltTransformContextPtr ctxt, const xmlChar *URI </USER_FUNCTION> <USER_FUNCTION> <NAME>xsltExtShutdownFunction</NAME> <RETURNS>void </RETURNS> xsltTransformContextPtr ctxt, const xmlChar *URI, void *data </USER_FUNCTION> <USER_FUNCTION> <NAME>xsltTopLevelFunction</NAME> <RETURNS>void </RETURNS> xsltStylesheetPtr style, xmlNodePtr inst </USER_FUNCTION> <MACRO> <NAME>XSLT_REGISTER_FUNCTION_LOOKUP</NAME> #define XSLT_REGISTER_FUNCTION_LOOKUP(ctxt) \ xmlXPathRegisterFuncLookup((ctxt)->xpathCtxt, \ (xmlXPathFuncLookupFunc) xsltXPathFunctionLookup, \ (void *)(ctxt->xpathCtxt)); </MACRO> <MACRO> <NAME>XSLT_GET_IMPORT_PTR</NAME> #define XSLT_GET_IMPORT_PTR(res, style, name) { \ xsltStylesheetPtr st = style; \ res = NULL; \ while (st != NULL) { \ if (st->name != NULL) { res = st->name; break; } \ st = xsltNextImport(st); \ }} </MACRO> <MACRO> <NAME>XSLT_GET_IMPORT_INT</NAME> #define XSLT_GET_IMPORT_INT(res, style, name) { \ xsltStylesheetPtr st = style; \ res = -1; \ while (st != NULL) { \ if (st->name != -1) { res = st->name; break; } \ st = xsltNextImport(st); \ }} </MACRO> <MACRO> <NAME>LIBXSLT_PUBLIC</NAME> #define LIBXSLT_PUBLIC __declspec(dllimport) </MACRO> <MACRO> <NAME>LIBXSLT_PUBLIC</NAME> #define LIBXSLT_PUBLIC </MACRO> <STRUCT> <NAME>xsltNumberData</NAME> </STRUCT> <TYPEDEF> <NAME>xsltNumberDataPtr</NAME> typedef xsltNumberData *xsltNumberDataPtr; </TYPEDEF> <STRUCT> <NAME>xsltNumberData</NAME> struct xsltNumberData { xmlChar *level; xmlChar *count; xmlChar *from; xmlChar *value; xmlChar *format; int has_format; int digitsPerGroup; int groupingCharacter; int groupingCharacterLen; xmlDocPtr doc; xmlNodePtr node; /* * accelerators */ }; </STRUCT> <STRUCT> <NAME>xsltFormatNumberInfo</NAME> </STRUCT> <TYPEDEF> <NAME>xsltFormatNumberInfoPtr</NAME> typedef xsltFormatNumberInfo *xsltFormatNumberInfoPtr; </TYPEDEF> <STRUCT> <NAME>xsltFormatNumberInfo</NAME> struct xsltFormatNumberInfo { int integer_hash; /* Number of '#' in integer part */ int integer_digits; /* Number of '0' in integer part */ int frac_digits; /* Number of '0' in fractional part */ int frac_hash; /* Number of '#' in fractional part */ int group; /* Number of chars per display 'group' */ int multiplier; /* Scaling for percent or permille */ char add_decimal; /* Flag for whether decimal point appears in pattern */ char is_multiplier_set; /* Flag to catch multiple occurences of percent/permille */ char is_negative_pattern;/* Flag for processing -ve prefix/suffix */ }; </STRUCT> <STRUCT> <NAME>xsltCompMatch</NAME> </STRUCT> <TYPEDEF> <NAME>xsltCompMatchPtr</NAME> typedef xsltCompMatch *xsltCompMatchPtr; </TYPEDEF> <FUNCTION> <NAME>xsltMatchPattern</NAME> <RETURNS>int </RETURNS> xsltTransformContextPtr ctxt,xmlNodePtr node,const xmlChar *pattern,xmlDocPtr ctxtdoc,xmlNodePtr ctxtnode </FUNCTION> <VARIABLE> <NAME>xsltExtMarker</NAME> extern const xmlChar *xsltExtMarker; </VARIABLE> <MACRO> <NAME>XSLT_REGISTER_VARIABLE_LOOKUP</NAME> #define XSLT_REGISTER_VARIABLE_LOOKUP(ctxt) \ xmlXPathRegisterVariableLookup((ctxt)->xpathCtxt, \ xsltXPathVariableLookup, (void *)(ctxt)); \ xsltRegisterAllFunctions((ctxt)->xpathCtxt); \ xsltRegisterAllElement(ctxt); \ (ctxt)->xpathCtxt->extra = ctxt </MACRO> <MACRO> <NAME>XSLT_DEFAULT_VERSION</NAME> #define XSLT_DEFAULT_VERSION "1.0" </MACRO> <MACRO> <NAME>XSLT_DEFAULT_VENDOR</NAME> #define XSLT_DEFAULT_VENDOR "libxslt" </MACRO> <MACRO> <NAME>XSLT_DEFAULT_URL</NAME> #define XSLT_DEFAULT_URL "http://xmlsoft.org/XSLT/" </MACRO> <MACRO> <NAME>XSLT_NAMESPACE</NAME> #define XSLT_NAMESPACE ((xmlChar *) "http://www.w3.org/1999/XSL/Transform") </MACRO> <MACRO> <NAME>XSLT_PARSE_OPTIONS</NAME> #define XSLT_PARSE_OPTIONS \ XML_PARSE_NOENT | XML_PARSE_DTDLOAD | XML_PARSE_DTDATTR | XML_PARSE_NOCDATA </MACRO> <VARIABLE> <NAME>xsltMaxDepth</NAME> extern int xsltMaxDepth; </VARIABLE> <VARIABLE> <NAME>xsltMaxVars</NAME> extern int xsltMaxVars; </VARIABLE> <VARIABLE> <NAME>xsltEngineVersion</NAME> extern const char *xsltEngineVersion; </VARIABLE> <VARIABLE> <NAME>xsltLibxsltVersion</NAME> extern const int xsltLibxsltVersion; </VARIABLE> <VARIABLE> <NAME>xsltLibxmlVersion</NAME> extern const int xsltLibxmlVersion; </VARIABLE> <MACRO> <NAME>XSLT_TODO</NAME> #define XSLT_TODO \ xsltGenericError(xsltGenericErrorContext, \ "Unimplemented block at %s:%d\n", \ __FILE__, __LINE__); </MACRO> <MACRO> <NAME>XSLT_STRANGE</NAME> #define XSLT_STRANGE \ xsltGenericError(xsltGenericErrorContext, \ "Internal error at %s:%d\n", \ __FILE__, __LINE__); </MACRO> <MACRO> <NAME>IS_XSLT_ELEM</NAME> #define IS_XSLT_ELEM(n) \ (((n) != NULL) && ((n)->ns != NULL) && \ (xmlStrEqual((n)->ns->href, XSLT_NAMESPACE))) </MACRO> <MACRO> <NAME>IS_XSLT_NAME</NAME> #define IS_XSLT_NAME(n, val) \ (xmlStrEqual((n)->name, (const xmlChar *) (val))) </MACRO> <MACRO> <NAME>IS_XSLT_REAL_NODE</NAME> #define IS_XSLT_REAL_NODE(n) \ (((n) != NULL) && \ (((n)->type == XML_ELEMENT_NODE) || \ ((n)->type == XML_TEXT_NODE) || \ ((n)->type == XML_ATTRIBUTE_NODE) || \ ((n)->type == XML_DOCUMENT_NODE) || \ ((n)->type == XML_HTML_DOCUMENT_NODE) || \ ((n)->type == XML_PI_NODE))) </MACRO> <ENUM> <NAME>xsltDebugTraceCodes</NAME> typedef enum { XSLT_TRACE_ALL = -1, XSLT_TRACE_NONE = 0, XSLT_TRACE_COPY_TEXT = 1<<0, XSLT_TRACE_PROCESS_NODE = 1<<1, XSLT_TRACE_APPLY_TEMPLATE = 1<<2, XSLT_TRACE_COPY = 1<<3, XSLT_TRACE_COMMENT = 1<<4, XSLT_TRACE_PI = 1<<5, XSLT_TRACE_COPY_OF = 1<<6, XSLT_TRACE_VALUE_OF = 1<<7, XSLT_TRACE_CALL_TEMPLATE = 1<<8, XSLT_TRACE_APPLY_TEMPLATES = 1<<9, XSLT_TRACE_CHOOSE = 1<<10, XSLT_TRACE_IF = 1<<11, XSLT_TRACE_FOR_EACH = 1<<12, XSLT_TRACE_STRIP_SPACES = 1<<13, XSLT_TRACE_TEMPLATES = 1<<14, XSLT_TRACE_KEYS = 1<<15, XSLT_TRACE_VARIABLES = 1<<16 } xsltDebugTraceCodes; </ENUM> <MACRO> <NAME>XSLT_TRACE</NAME> #define XSLT_TRACE(ctxt,code,call) \ if (ctxt->traceCode && (*(ctxt->traceCode) & code)) \ call </MACRO> <VARIABLE> <NAME>xsltGenericError</NAME> extern xmlGenericErrorFunc xsltGenericError; </VARIABLE> <VARIABLE> <NAME>xsltGenericErrorContext</NAME> extern void *xsltGenericErrorContext; </VARIABLE> <VARIABLE> <NAME>xsltGenericDebug</NAME> extern xmlGenericErrorFunc xsltGenericDebug; </VARIABLE> <VARIABLE> <NAME>xsltGenericDebugContext</NAME> extern void *xsltGenericDebugContext; </VARIABLE> <MACRO> <NAME>XSLT_TIMESTAMP_TICS_PER_SEC</NAME> #define XSLT_TIMESTAMP_TICS_PER_SEC 100000l </MACRO> <ENUM> <NAME>xsltDebugStatusCodes</NAME> typedef enum { XSLT_DEBUG_NONE = 0, /* no debugging allowed */ XSLT_DEBUG_INIT, XSLT_DEBUG_STEP, XSLT_DEBUG_STEPOUT, XSLT_DEBUG_NEXT, XSLT_DEBUG_STOP, XSLT_DEBUG_CONT, XSLT_DEBUG_RUN, XSLT_DEBUG_RUN_RESTART, XSLT_DEBUG_QUIT } xsltDebugStatusCodes; </ENUM> <VARIABLE> <NAME>xslDebugStatus</NAME> extern int xslDebugStatus; </VARIABLE> <USER_FUNCTION> <NAME>xsltHandleDebuggerCallback</NAME> <RETURNS>void </RETURNS> xmlNodePtr cur, xmlNodePtr node, xsltTemplatePtr templ, xsltTransformContextPtr ctxt </USER_FUNCTION> <USER_FUNCTION> <NAME>xsltAddCallCallback</NAME> <RETURNS>int </RETURNS> xsltTemplatePtr templ, xmlNodePtr source </USER_FUNCTION> <USER_FUNCTION> <NAME>xsltDropCallCallback</NAME> <RETURNS>void </RETURNS> void </USER_FUNCTION> <MACRO> <NAME>LIBXSLT_DOTTED_VERSION</NAME> #define LIBXSLT_DOTTED_VERSION "1.1.0" </MACRO> <MACRO> <NAME>LIBXSLT_VERSION</NAME> #define LIBXSLT_VERSION 10100 </MACRO> <MACRO> <NAME>LIBXSLT_VERSION_STRING</NAME> #define LIBXSLT_VERSION_STRING "10100" </MACRO> <MACRO> <NAME>WITH_XSLT_DEBUG</NAME> #define WITH_XSLT_DEBUG </MACRO> <MACRO> <NAME>DEBUG_MEMORY</NAME> #define DEBUG_MEMORY </MACRO> <MACRO> <NAME>DEBUG_MEMORY_LOCATION</NAME> #define DEBUG_MEMORY_LOCATION </MACRO> <MACRO> <NAME>ATTRIBUTE_UNUSED</NAME> #define ATTRIBUTE_UNUSED </MACRO> <MACRO> <NAME>TRIO_ERROR_CODE</NAME> #define TRIO_ERROR_CODE(x) ((-(x)) & 0x00FF) </MACRO> <MACRO> <NAME>TRIO_ERROR_POSITION</NAME> #define TRIO_ERROR_POSITION(x) ((-(x)) >> 8) </MACRO> <MACRO> <NAME>TRIO_ERROR_NAME</NAME> #define TRIO_ERROR_NAME(x) trio_strerror(x) </MACRO> <TYPEDEF> <NAME>int))</NAME> typedef int (*trio_outstream_t) TRIO_PROTO((trio_pointer_t, int)); </TYPEDEF> <TYPEDEF> <NAME>TRIO_PROTO((trio_pointer_t))</NAME> typedef int (*trio_instream_t) TRIO_PROTO((trio_pointer_t)); </TYPEDEF> <MACRO> <NAME>printf</NAME> # define printf trio_printf </MACRO> <MACRO> <NAME>vprintf</NAME> # define vprintf trio_vprintf </MACRO> <MACRO> <NAME>fprintf</NAME> # define fprintf trio_fprintf </MACRO> <MACRO> <NAME>vfprintf</NAME> # define vfprintf trio_vfprintf </MACRO> <MACRO> <NAME>sprintf</NAME> # define sprintf trio_sprintf </MACRO> <MACRO> <NAME>vsprintf</NAME> # define vsprintf trio_vsprintf </MACRO> <MACRO> <NAME>snprintf</NAME> # define snprintf trio_snprintf </MACRO> <MACRO> <NAME>vsnprintf</NAME> # define vsnprintf trio_vsnprintf </MACRO> <MACRO> <NAME>scanf</NAME> # define scanf trio_scanf </MACRO> <MACRO> <NAME>vscanf</NAME> # define vscanf trio_vscanf </MACRO> <MACRO> <NAME>fscanf</NAME> # define fscanf trio_fscanf </MACRO> <MACRO> <NAME>vfscanf</NAME> # define vfscanf trio_vfscanf </MACRO> <MACRO> <NAME>sscanf</NAME> # define sscanf trio_sscanf </MACRO> <MACRO> <NAME>vsscanf</NAME> # define vsscanf trio_vsscanf </MACRO> <MACRO> <NAME>dprintf</NAME> #define dprintf trio_dprintf </MACRO> <MACRO> <NAME>vdprintf</NAME> #define vdprintf trio_vdprintf </MACRO> <MACRO> <NAME>aprintf</NAME> #define aprintf trio_aprintf </MACRO> <MACRO> <NAME>vaprintf</NAME> #define vaprintf trio_vaprintf </MACRO> <MACRO> <NAME>asprintf</NAME> #define asprintf trio_asprintf </MACRO> <MACRO> <NAME>vasprintf</NAME> #define vasprintf trio_vasprintf </MACRO> <MACRO> <NAME>dscanf</NAME> #define dscanf trio_dscanf </MACRO> <MACRO> <NAME>vdscanf</NAME> #define vdscanf trio_vdscanf </MACRO> <MACRO> <NAME>XSLT_MAX_SORT</NAME> #define XSLT_MAX_SORT 15 </MACRO> <MACRO> <NAME>XSLT_PAT_NO_PRIORITY</NAME> #define XSLT_PAT_NO_PRIORITY -12345789 </MACRO> <STRUCT> <NAME>xsltRuntimeExtra</NAME> </STRUCT> <TYPEDEF> <NAME>xsltRuntimeExtraPtr</NAME> typedef xsltRuntimeExtra *xsltRuntimeExtraPtr; </TYPEDEF> <STRUCT> <NAME>xsltRuntimeExtra</NAME> struct xsltRuntimeExtra { void *info; /* pointer to the extra data */ xmlFreeFunc deallocate; /* pointer to the deallocation routine */ void *val; /* data not needing deallocation */ }; </STRUCT> <MACRO> <NAME>XSLT_RUNTIME_EXTRA_LST</NAME> #define XSLT_RUNTIME_EXTRA_LST(ctxt, nr) (ctxt)->extras[(nr)].info </MACRO> <MACRO> <NAME>XSLT_RUNTIME_EXTRA_FREE</NAME> #define XSLT_RUNTIME_EXTRA_FREE(ctxt, nr) (ctxt)->extras[(nr)].deallocate </MACRO> <MACRO> <NAME>XSLT_RUNTIME_EXTRA</NAME> #define XSLT_RUNTIME_EXTRA(ctxt, nr) (ctxt)->extras[(nr)].val </MACRO> <STRUCT> <NAME>xsltTemplate</NAME> </STRUCT> <TYPEDEF> <NAME>xsltTemplatePtr</NAME> typedef xsltTemplate *xsltTemplatePtr; </TYPEDEF> <STRUCT> <NAME>xsltTemplate</NAME> struct xsltTemplate { struct _xsltTemplate *next;/* chained list sorted by priority */ struct _xsltStylesheet *style;/* the containing stylesheet */ xmlChar *match; /* the matching string */ float priority; /* as given from the stylesheet, not computed */ xmlChar *name; /* the local part of the name QName */ xmlChar *nameURI; /* the URI part of the name QName */ xmlChar *mode; /* the local part of the mode QName */ xmlChar *modeURI; /* the URI part of the mode QName */ xmlNodePtr content; /* the template replacement value */ xmlNodePtr elem; /* the source element */ int inheritedNsNr; /* number of inherited namespaces */ xmlNsPtr *inheritedNs;/* inherited non-excluded namespaces */ /* Profiling informations */ int nbCalls; /* the number of time the template was called */ unsigned long time; /* the time spent in this template */ }; </STRUCT> <STRUCT> <NAME>xsltDecimalFormat</NAME> </STRUCT> <TYPEDEF> <NAME>xsltDecimalFormatPtr</NAME> typedef xsltDecimalFormat *xsltDecimalFormatPtr; </TYPEDEF> <STRUCT> <NAME>xsltDecimalFormat</NAME> struct xsltDecimalFormat { struct _xsltDecimalFormat *next; /* chained list */ xmlChar *name; /* Used for interpretation of pattern */ xmlChar *digit; xmlChar *patternSeparator; /* May appear in result */ xmlChar *minusSign; xmlChar *infinity; xmlChar *noNumber; /* Not-a-number */ /* Used for interpretation of pattern and may appear in result */ xmlChar *decimalPoint; xmlChar *grouping; xmlChar *percent; xmlChar *permille; xmlChar *zeroDigit; }; </STRUCT> <STRUCT> <NAME>xsltDocument</NAME> </STRUCT> <TYPEDEF> <NAME>xsltDocumentPtr</NAME> typedef xsltDocument *xsltDocumentPtr; </TYPEDEF> <STRUCT> <NAME>xsltDocument</NAME> struct xsltDocument { struct _xsltDocument *next; /* documents are kept in a chained list */ int main; /* is this the main document */ xmlDocPtr doc; /* the parsed document */ void *keys; /* key tables storage */ struct _xsltDocument *includes; /* subsidiary includes */ }; </STRUCT> <STRUCT> <NAME>xsltTransformContext</NAME> </STRUCT> <TYPEDEF> <NAME>xsltTransformContextPtr</NAME> typedef xsltTransformContext *xsltTransformContextPtr; </TYPEDEF> <STRUCT> <NAME>xsltElemPreComp</NAME> </STRUCT> <TYPEDEF> <NAME>xsltElemPreCompPtr</NAME> typedef xsltElemPreComp *xsltElemPreCompPtr; </TYPEDEF> <USER_FUNCTION> <NAME>xsltTransformFunction</NAME> <RETURNS>void </RETURNS> xsltTransformContextPtr ctxt, xmlNodePtr node, xmlNodePtr inst, xsltElemPreCompPtr comp </USER_FUNCTION> <USER_FUNCTION> <NAME>xsltSortFunc</NAME> <RETURNS>void </RETURNS> xsltTransformContextPtr ctxt, xmlNodePtr *sorts, int nbsorts </USER_FUNCTION> <ENUM> <NAME>xsltStyleType</NAME> typedef enum { XSLT_FUNC_COPY=1, XSLT_FUNC_SORT, XSLT_FUNC_TEXT, XSLT_FUNC_ELEMENT, XSLT_FUNC_ATTRIBUTE, XSLT_FUNC_COMMENT, XSLT_FUNC_PI, XSLT_FUNC_COPYOF, XSLT_FUNC_VALUEOF, XSLT_FUNC_NUMBER, XSLT_FUNC_APPLYIMPORTS, XSLT_FUNC_CALLTEMPLATE, XSLT_FUNC_APPLYTEMPLATES, XSLT_FUNC_CHOOSE, XSLT_FUNC_IF, XSLT_FUNC_FOREACH, XSLT_FUNC_DOCUMENT, XSLT_FUNC_WITHPARAM, XSLT_FUNC_PARAM, XSLT_FUNC_VARIABLE, XSLT_FUNC_WHEN, XSLT_FUNC_EXTENSION } xsltStyleType; </ENUM> <USER_FUNCTION> <NAME>xsltElemPreCompDeallocator</NAME> <RETURNS>void </RETURNS> xsltElemPreCompPtr comp </USER_FUNCTION> <STRUCT> <NAME>xsltElemPreComp</NAME> struct xsltElemPreComp { xsltElemPreCompPtr next; /* chained list */ xsltStyleType type; /* type of the element */ xsltTransformFunction func; /* handling function */ xmlNodePtr inst; /* the instruction */ /* end of common part */ xsltElemPreCompDeallocator free; /* the deallocator */ }; </STRUCT> <STRUCT> <NAME>xsltStylePreComp</NAME> </STRUCT> <TYPEDEF> <NAME>xsltStylePreCompPtr</NAME> typedef xsltStylePreComp *xsltStylePreCompPtr; </TYPEDEF> <STRUCT> <NAME>xsltStylePreComp</NAME> struct xsltStylePreComp { xsltElemPreCompPtr next; /* chained list */ xsltStyleType type; /* type of the element */ xsltTransformFunction func; /* handling function */ xmlNodePtr inst; /* the instruction */ /* * Pre computed values. */ xmlChar *stype; /* sort */ int has_stype; /* sort */ int number; /* sort */ xmlChar *order; /* sort */ int has_order; /* sort */ int descending; /* sort */ xmlChar *lang; /* sort */ int has_lang; /* sort */ xmlChar *case_order; /* sort */ int lower_first; /* sort */ xmlChar *use; /* copy, element */ int has_use; /* copy, element */ int noescape; /* text */ xmlChar *name; /* element, attribute, pi */ int has_name; /* element, attribute, pi */ xmlChar *ns; /* element */ int has_ns; /* element */ xmlChar *mode; /* apply-templates */ xmlChar *modeURI; /* apply-templates */ xmlChar *test; /* if */ xsltTemplatePtr templ; /* call-template */ xmlChar *select; /* sort, copy-of, value-of, apply-templates */ int ver11; /* document */ xmlChar *filename; /* document URL */ int has_filename; /* document */ xsltNumberData numdata; /* number */ xmlXPathCompExprPtr comp; /* a precompiled XPath expression */ xmlNsPtr *nsList; /* the namespaces in scope */ int nsNr; /* the number of namespaces in scope */ }; </STRUCT> <STRUCT> <NAME>xsltStackElem</NAME> </STRUCT> <TYPEDEF> <NAME>xsltStackElemPtr</NAME> typedef xsltStackElem *xsltStackElemPtr; </TYPEDEF> <STRUCT> <NAME>xsltStackElem</NAME> struct xsltStackElem { struct _xsltStackElem *next;/* chained list */ xsltStylePreCompPtr comp; /* the compiled form */ int computed; /* was the evaluation done */ xmlChar *name; /* the local part of the name QName */ xmlChar *nameURI; /* the URI part of the name QName */ xmlChar *select; /* the eval string */ xmlNodePtr tree; /* the tree if no eval string or the location */ xmlXPathObjectPtr value; /* The value if computed */ }; </STRUCT> <STRUCT> <NAME>xsltStylesheet</NAME> </STRUCT> <TYPEDEF> <NAME>xsltStylesheetPtr</NAME> typedef xsltStylesheet *xsltStylesheetPtr; </TYPEDEF> <STRUCT> <NAME>xsltStylesheet</NAME> struct xsltStylesheet { /* * The stylesheet import relation is kept as a tree. */ struct _xsltStylesheet *parent; struct _xsltStylesheet *next; struct _xsltStylesheet *imports; xsltDocumentPtr docList; /* the include document list */ /* * General data on the style sheet document. */ xmlDocPtr doc; /* the parsed XML stylesheet */ xmlHashTablePtr stripSpaces;/* the hash table of the strip-space and preserve space elements */ int stripAll; /* strip-space * (1) preserve-space * (-1) */ xmlHashTablePtr cdataSection;/* the hash table of the cdata-section */ /* * Global variable or parameters. */ xsltStackElemPtr variables; /* linked list of param and variables */ /* * Template descriptions. */ xsltTemplatePtr templates; /* the ordered list of templates */ void *templatesHash; /* hash table or wherever compiled templates informations are stored */ void *rootMatch; /* template based on / */ void *keyMatch; /* template based on key() */ void *elemMatch; /* template based on * */ void *attrMatch; /* template based on @* */ void *parentMatch; /* template based on .. */ void *textMatch; /* template based on text() */ void *piMatch; /* template based on processing-instruction() */ void *commentMatch; /* template based on comment() */ /* * Namespace aliases. */ xmlHashTablePtr nsAliases; /* the namespace alias hash tables */ /* * Attribute sets. */ xmlHashTablePtr attributeSets;/* the attribute sets hash tables */ /* * Namespaces. */ xmlHashTablePtr nsHash; /* the set of namespaces in use */ void *nsDefs; /* the namespaces defined */ /* * Key definitions. */ void *keys; /* key definitions */ /* * Output related stuff. */ xmlChar *method; /* the output method */ xmlChar *methodURI; /* associated namespace if any */ xmlChar *version; /* version string */ xmlChar *encoding; /* encoding string */ int omitXmlDeclaration; /* omit-xml-declaration = "yes" | "no" */ /* * Number formatting. */ xsltDecimalFormatPtr decimalFormat; int standalone; /* standalone = "yes" | "no" */ xmlChar *doctypePublic; /* doctype-public string */ xmlChar *doctypeSystem; /* doctype-system string */ int indent; /* should output being indented */ xmlChar *mediaType; /* media-type string */ /* * Precomputed blocks. */ xsltElemPreCompPtr preComps;/* list of precomputed blocks */ int warnings; /* number of warnings found at compilation */ int errors; /* number of errors found at compilation */ xmlChar *exclPrefix; /* last excluded prefixes */ xmlChar **exclPrefixTab; /* array of excluded prefixes */ int exclPrefixNr; /* number of excluded prefixes in scope */ int exclPrefixMax; /* size of the array */ void *_private; /* user defined data */ /* * Extensions. */ xmlHashTablePtr extInfos; /* the extension data */ int extrasNr; /* the number of extras required */ /* * For keeping track of nested includes */ xsltDocumentPtr includes; /* points to last nested include */ }; </STRUCT> <ENUM> <NAME>xsltOutputType</NAME> typedef enum { XSLT_OUTPUT_XML = 0, XSLT_OUTPUT_HTML, XSLT_OUTPUT_TEXT } xsltOutputType; </ENUM> <ENUM> <NAME>xsltTransformState</NAME> typedef enum { XSLT_STATE_OK = 0, XSLT_STATE_ERROR, XSLT_STATE_STOPPED } xsltTransformState; </ENUM> <STRUCT> <NAME>xsltTransformContext</NAME> struct xsltTransformContext { xsltStylesheetPtr style; /* the stylesheet used */ xsltOutputType type; /* the type of output */ xsltTemplatePtr templ; /* the current template */ int templNr; /* Nb of templates in the stack */ int templMax; /* Size of the templtes stack */ xsltTemplatePtr *templTab; /* the template stack */ xsltStackElemPtr vars; /* the current variable list */ int varsNr; /* Nb of variable list in the stack */ int varsMax; /* Size of the variable list stack */ xsltStackElemPtr *varsTab; /* the variable list stack */ int varsBase; /* the var base for current templ */ /* * Extensions */ xmlHashTablePtr extFunctions; /* the extension functions */ xmlHashTablePtr extElements; /* the extension elements */ xmlHashTablePtr extInfos; /* the extension data */ const xmlChar *mode; /* the current mode */ const xmlChar *modeURI; /* the current mode URI */ xsltDocumentPtr docList; /* the document list */ xsltDocumentPtr document; /* the current document */ xmlNodePtr node; /* the current node being processed */ xmlNodeSetPtr nodeList; /* the current node list */ /* xmlNodePtr current; the node */ xmlDocPtr output; /* the resulting document */ xmlNodePtr insert; /* the insertion node */ xmlXPathContextPtr xpathCtxt; /* the XPath context */ xsltTransformState state; /* the current state */ /* * Global variables */ xmlHashTablePtr globalVars; /* the global variables and params */ xmlNodePtr inst; /* the instruction in the stylesheet */ int xinclude; /* should XInclude be processed */ const char * outputFile; /* the output URI if known */ int profile; /* is this run profiled */ long prof; /* the current profiled value */ int profNr; /* Nb of templates in the stack */ int profMax; /* Size of the templtaes stack */ long *profTab; /* the profile template stack */ void *_private; /* user defined data */ int extrasNr; /* the number of extras used */ int extrasMax; /* the number of extras allocated */ xsltRuntimeExtraPtr extras; /* extra per runtime informations */ xsltDocumentPtr styleList; /* the stylesheet docs list */ void * sec; /* the security preferences if any */ xmlGenericErrorFunc error; /* a specific error handler */ void * errctx; /* context for the error handler */ xsltSortFunc sortfunc; /* a ctxt specific sort routine */ /* * handling of temporary Result Value Tree */ xmlDocPtr tmpRVT; /* list of RVT without persistance */ xmlDocPtr persistRVT; /* list of persistant RVTs */ int ctxtflags; /* context processing flags */ /* * Speed optimization when coalescing text nodes */ const xmlChar *lasttext; /* last text node content */ unsigned int lasttsize; /* last text node size */ unsigned int lasttuse; /* last text node use */ /* * Per Context Debugging */ int debugStatus; /* the context level debug status */ unsigned long* traceCode; /* pointer to the variable holding the mask */ }; </STRUCT> <MACRO> <NAME>CHECK_STOPPED</NAME> #define CHECK_STOPPED if (ctxt->state == XSLT_STATE_STOPPED) return; </MACRO> <MACRO> <NAME>CHECK_STOPPEDE</NAME> #define CHECK_STOPPEDE if (ctxt->state == XSLT_STATE_STOPPED) goto error; </MACRO> <MACRO> <NAME>CHECK_STOPPED0</NAME> #define CHECK_STOPPED0 if (ctxt->state == XSLT_STATE_STOPPED) return(0); </MACRO> <MACRO> <NAME>TRIO_COMPILER_GCC</NAME> # define TRIO_COMPILER_GCC </MACRO> <MACRO> <NAME>TRIO_COMPILER_SUNPRO</NAME> # define TRIO_COMPILER_SUNPRO </MACRO> <MACRO> <NAME>TRIO_COMPILER_SUNPRO</NAME> # define TRIO_COMPILER_SUNPRO </MACRO> <MACRO> <NAME>TRIO_COMPILER_XLC</NAME> # define TRIO_COMPILER_XLC </MACRO> <MACRO> <NAME>TRIO_COMPILER_XLC</NAME> # define TRIO_COMPILER_XLC /* Workaround for old xlc */ </MACRO> <MACRO> <NAME>TRIO_COMPILER_DECC</NAME> # define TRIO_COMPILER_DECC </MACRO> <MACRO> <NAME>TRIO_COMPILER_DECC</NAME> # define TRIO_COMPILER_DECC /* Workaround for old DEC C compilers */ </MACRO> <MACRO> <NAME>TRIO_COMPILER_MSVC</NAME> # define TRIO_COMPILER_MSVC </MACRO> <MACRO> <NAME>TRIO_COMPILER_BCB</NAME> # define TRIO_COMPILER_BCB </MACRO> <MACRO> <NAME>TRIO_PLATFORM_VMS</NAME> # define TRIO_PLATFORM_VMS </MACRO> <MACRO> <NAME>TRIO_PLATFORM_UNIX</NAME> # define TRIO_PLATFORM_UNIX </MACRO> <MACRO> <NAME>TRIO_PLATFORM_UNIX</NAME> # define TRIO_PLATFORM_UNIX </MACRO> <MACRO> <NAME>TRIO_PLATFORM_UNIX</NAME> # define TRIO_PLATFORM_UNIX </MACRO> <MACRO> <NAME>TRIO_PLATFORM_UNIX</NAME> # define TRIO_PLATFORM_UNIX </MACRO> <MACRO> <NAME>TRIO_PLATFORM_UNIX</NAME> # define TRIO_PLATFORM_UNIX </MACRO> <MACRO> <NAME>TRIO_PLATFORM_QNX</NAME> # define TRIO_PLATFORM_QNX </MACRO> <MACRO> <NAME>TRIO_PLATFORM_UNIX</NAME> # define TRIO_PLATFORM_UNIX </MACRO> <MACRO> <NAME>TRIO_PLATFORM_UNIX</NAME> # define TRIO_PLATFORM_UNIX </MACRO> <MACRO> <NAME>TRIO_PLATFORM_WIN32</NAME> # define TRIO_PLATFORM_WIN32 </MACRO> <MACRO> <NAME>TRIO_PLATFORM_MPEIX</NAME> # define TRIO_PLATFORM_MPEIX </MACRO> <MACRO> <NAME>TRIO_PLATFORM_AIX</NAME> # define TRIO_PLATFORM_AIX </MACRO> <MACRO> <NAME>TRIO_PLATFORM_HPUX</NAME> # define TRIO_PLATFORM_HPUX </MACRO> <MACRO> <NAME>TRIO_PLATFORM_SOLARIS</NAME> # define TRIO_PLATFORM_SOLARIS </MACRO> <MACRO> <NAME>TRIO_PLATFORM_SUNOS</NAME> # define TRIO_PLATFORM_SUNOS </MACRO> <MACRO> <NAME>TRIO_COMPILER_SUPPORTS_C89</NAME> # define TRIO_COMPILER_SUPPORTS_C89 </MACRO> <MACRO> <NAME>TRIO_COMPILER_SUPPORTS_C90</NAME> # define TRIO_COMPILER_SUPPORTS_C90 </MACRO> <MACRO> <NAME>TRIO_COMPILER_SUPPORTS_C94</NAME> # define TRIO_COMPILER_SUPPORTS_C94 </MACRO> <MACRO> <NAME>TRIO_COMPILER_SUPPORTS_C99</NAME> # define TRIO_COMPILER_SUPPORTS_C99 </MACRO> <MACRO> <NAME>TRIO_COMPILER_SUPPORTS_C94</NAME> # define TRIO_COMPILER_SUPPORTS_C94 </MACRO> <MACRO> <NAME>TRIO_COMPILER_SUPPORTS_UNIX95</NAME> # define TRIO_COMPILER_SUPPORTS_UNIX95 </MACRO> <MACRO> <NAME>TRIO_COMPILER_SUPPORTS_UNIX98</NAME> # define TRIO_COMPILER_SUPPORTS_UNIX98 </MACRO> <MACRO> <NAME>TRIO_COMPILER_SUPPORTS_UNIX01</NAME> # define TRIO_COMPILER_SUPPORTS_UNIX01 </MACRO> <MACRO> <NAME>TRIO_PUBLIC</NAME> # define TRIO_PUBLIC </MACRO> <MACRO> <NAME>TRIO_PRIVATE</NAME> # define TRIO_PRIVATE static </MACRO> <MACRO> <NAME>TRIO_COMPILER_ANCIENT</NAME> # define TRIO_COMPILER_ANCIENT </MACRO> <MACRO> <NAME>TRIO_CONST</NAME> # define TRIO_CONST </MACRO> <MACRO> <NAME>TRIO_VOLATILE</NAME> # define TRIO_VOLATILE </MACRO> <MACRO> <NAME>TRIO_SIGNED</NAME> # define TRIO_SIGNED </MACRO> <TYPEDEF> <NAME>trio_long_double_t</NAME> typedef double trio_long_double_t; </TYPEDEF> <TYPEDEF> <NAME>trio_pointer_t</NAME> typedef char * trio_pointer_t; </TYPEDEF> <MACRO> <NAME>TRIO_SUFFIX_LONG</NAME> # define TRIO_SUFFIX_LONG(x) x </MACRO> <MACRO> <NAME>TRIO_PROTO</NAME> # define TRIO_PROTO(x) () </MACRO> <MACRO> <NAME>TRIO_NOARGS</NAME> # define TRIO_NOARGS </MACRO> <MACRO> <NAME>TRIO_ARGS1</NAME> # define TRIO_ARGS1(list,a1) list a1; </MACRO> <MACRO> <NAME>TRIO_ARGS2</NAME> # define TRIO_ARGS2(list,a1,a2) list a1; a2; </MACRO> <MACRO> <NAME>TRIO_ARGS3</NAME> # define TRIO_ARGS3(list,a1,a2,a3) list a1; a2; a3; </MACRO> <MACRO> <NAME>TRIO_ARGS4</NAME> # define TRIO_ARGS4(list,a1,a2,a3,a4) list a1; a2; a3; a4; </MACRO> <MACRO> <NAME>TRIO_ARGS5</NAME> # define TRIO_ARGS5(list,a1,a2,a3,a4,a5) list a1; a2; a3; a4; a5; </MACRO> <MACRO> <NAME>TRIO_ARGS6</NAME> # define TRIO_ARGS6(list,a1,a2,a3,a4,a5,a6) list a1; a2; a3; a4; a5; a6; </MACRO> <MACRO> <NAME>TRIO_VARGS2</NAME> # define TRIO_VARGS2(list,a1,a2) list a1; a2 </MACRO> <MACRO> <NAME>TRIO_VARGS3</NAME> # define TRIO_VARGS3(list,a1,a2,a3) list a1; a2; a3 </MACRO> <MACRO> <NAME>TRIO_VARGS4</NAME> # define TRIO_VARGS4(list,a1,a2,a3,a4) list a1; a2; a3; a4 </MACRO> <MACRO> <NAME>TRIO_VARGS5</NAME> # define TRIO_VARGS5(list,a1,a2,a3,a4,a5) list a1; a2; a3; a4; a5 </MACRO> <MACRO> <NAME>TRIO_VA_DECL</NAME> # define TRIO_VA_DECL va_dcl </MACRO> <MACRO> <NAME>TRIO_VA_START</NAME> # define TRIO_VA_START(x,y) va_start(x) </MACRO> <MACRO> <NAME>TRIO_VA_END</NAME> # define TRIO_VA_END(x) va_end(x) </MACRO> <MACRO> <NAME>TRIO_CONST</NAME> # define TRIO_CONST const </MACRO> <MACRO> <NAME>TRIO_VOLATILE</NAME> # define TRIO_VOLATILE volatile </MACRO> <MACRO> <NAME>TRIO_SIGNED</NAME> # define TRIO_SIGNED signed </MACRO> <TYPEDEF> <NAME>trio_long_double_t</NAME> typedef long double trio_long_double_t; </TYPEDEF> <TYPEDEF> <NAME>trio_pointer_t</NAME> typedef void * trio_pointer_t; </TYPEDEF> <MACRO> <NAME>TRIO_SUFFIX_LONG</NAME> # define TRIO_SUFFIX_LONG(x) x ## L </MACRO> <MACRO> <NAME>TRIO_PROTO</NAME> # define TRIO_PROTO(x) x </MACRO> <MACRO> <NAME>TRIO_NOARGS</NAME> # define TRIO_NOARGS void </MACRO> <MACRO> <NAME>TRIO_ARGS1</NAME> # define TRIO_ARGS1(list,a1) (a1) </MACRO> <MACRO> <NAME>TRIO_ARGS2</NAME> # define TRIO_ARGS2(list,a1,a2) (a1,a2) </MACRO> <MACRO> <NAME>TRIO_ARGS3</NAME> # define TRIO_ARGS3(list,a1,a2,a3) (a1,a2,a3) </MACRO> <MACRO> <NAME>TRIO_ARGS4</NAME> # define TRIO_ARGS4(list,a1,a2,a3,a4) (a1,a2,a3,a4) </MACRO> <MACRO> <NAME>TRIO_ARGS5</NAME> # define TRIO_ARGS5(list,a1,a2,a3,a4,a5) (a1,a2,a3,a4,a5) </MACRO> <MACRO> <NAME>TRIO_ARGS6</NAME> # define TRIO_ARGS6(list,a1,a2,a3,a4,a5,a6) (a1,a2,a3,a4,a5,a6) </MACRO> <MACRO> <NAME>TRIO_VARGS2</NAME> # define TRIO_VARGS2 TRIO_ARGS2 </MACRO> <MACRO> <NAME>TRIO_VARGS3</NAME> # define TRIO_VARGS3 TRIO_ARGS3 </MACRO> <MACRO> <NAME>TRIO_VARGS4</NAME> # define TRIO_VARGS4 TRIO_ARGS4 </MACRO> <MACRO> <NAME>TRIO_VARGS5</NAME> # define TRIO_VARGS5 TRIO_ARGS5 </MACRO> <MACRO> <NAME>TRIO_VA_DECL</NAME> # define TRIO_VA_DECL ... </MACRO> <MACRO> <NAME>TRIO_VA_START</NAME> # define TRIO_VA_START(x,y) va_start(x,y) </MACRO> <MACRO> <NAME>TRIO_VA_END</NAME> # define TRIO_VA_END(x) va_end(x) </MACRO> <MACRO> <NAME>TRIO_INLINE</NAME> # define TRIO_INLINE inline </MACRO> <MACRO> <NAME>TRIO_INLINE</NAME> # define TRIO_INLINE __inline__ </MACRO> <MACRO> <NAME>TRIO_INLINE</NAME> # define TRIO_INLINE _inline </MACRO> <MACRO> <NAME>TRIO_INLINE</NAME> # define TRIO_INLINE __inline </MACRO> <MACRO> <NAME>TRIO_INLINE</NAME> # define TRIO_INLINE </MACRO> <MACRO> <NAME>TRIO_COMPILER_SUPPORTS_LL</NAME> # define TRIO_COMPILER_SUPPORTS_LL </MACRO> <STRUCT> <NAME>xsltSecurityPrefs</NAME> </STRUCT> <TYPEDEF> <NAME>xsltSecurityPrefsPtr</NAME> typedef xsltSecurityPrefs *xsltSecurityPrefsPtr; </TYPEDEF> <ENUM> <NAME>xsltSecurityOption</NAME> typedef enum { XSLT_SECPREF_READ_FILE = 1, XSLT_SECPREF_WRITE_FILE, XSLT_SECPREF_CREATE_DIRECTORY, XSLT_SECPREF_READ_NETWORK, XSLT_SECPREF_WRITE_NETWORK } xsltSecurityOption; </ENUM> <USER_FUNCTION> <NAME>xsltSecurityCheck</NAME> <RETURNS>int </RETURNS> xsltSecurityPrefsPtr sec, xsltTransformContextPtr ctxt, const char *value </USER_FUNCTION> <MACRO> <NAME>XSLTPUBFUN</NAME> #define XSLTPUBFUN </MACRO> <MACRO> <NAME>XSLTPUBVAR</NAME> #define XSLTPUBVAR extern </MACRO> <MACRO> <NAME>XSLTCALL</NAME> #define XSLTCALL </MACRO> <MACRO> <NAME>XSLTPUBFUN</NAME> #define XSLTPUBFUN __declspec(dllexport) </MACRO> <MACRO> <NAME>XSLTPUBVAR</NAME> #define XSLTPUBVAR __declspec(dllexport) </MACRO> <MACRO> <NAME>XSLTPUBFUN</NAME> #define XSLTPUBFUN </MACRO> <MACRO> <NAME>XSLTPUBVAR</NAME> #define XSLTPUBVAR __declspec(dllimport) extern </MACRO> <MACRO> <NAME>XSLTPUBVAR</NAME> #define XSLTPUBVAR extern </MACRO> <MACRO> <NAME>XSLTCALL</NAME> #define XSLTCALL __cdecl </MACRO> <MACRO> <NAME>XSLTPUBFUN</NAME> #define XSLTPUBFUN __declspec(dllexport) </MACRO> <MACRO> <NAME>XSLTPUBVAR</NAME> #define XSLTPUBVAR __declspec(dllexport) extern </MACRO> <MACRO> <NAME>XSLTPUBFUN</NAME> #define XSLTPUBFUN </MACRO> <MACRO> <NAME>XSLTPUBVAR</NAME> #define XSLTPUBVAR __declspec(dllimport) extern </MACRO> <MACRO> <NAME>XSLTPUBVAR</NAME> #define XSLTPUBVAR extern </MACRO> <MACRO> <NAME>XSLTCALL</NAME> #define XSLTCALL __cdecl </MACRO> <MACRO> <NAME>XSLTPUBFUN</NAME> #define XSLTPUBFUN __declspec(dllexport) </MACRO> <MACRO> <NAME>XSLTPUBVAR</NAME> #define XSLTPUBVAR __declspec(dllexport) </MACRO> <MACRO> <NAME>XSLTPUBFUN</NAME> #define XSLTPUBFUN </MACRO> <MACRO> <NAME>XSLTPUBVAR</NAME> #define XSLTPUBVAR __declspec(dllimport) extern </MACRO> <MACRO> <NAME>XSLTPUBVAR</NAME> #define XSLTPUBVAR </MACRO> <MACRO> <NAME>XSLTCALL</NAME> #define XSLTCALL __cdecl </MACRO> <MACRO> <NAME>LIBXSLT_PUBLIC</NAME> #define LIBXSLT_PUBLIC XSLTPUBVAR </MACRO>