| Index: third_party/libxslt/libxslt/xsltInternals.h
|
| diff --git a/third_party/libxslt/libxslt/xsltInternals.h b/third_party/libxslt/libxslt/xsltInternals.h
|
| deleted file mode 100644
|
| index 47125b3651005cfc7dc9986af7a72ae47e246451..0000000000000000000000000000000000000000
|
| --- a/third_party/libxslt/libxslt/xsltInternals.h
|
| +++ /dev/null
|
| @@ -1,1982 +0,0 @@
|
| -/*
|
| - * Summary: internal data structures, constants and functions
|
| - * Description: Internal data structures, constants and functions used
|
| - * by the XSLT engine.
|
| - * They are not part of the API or ABI, i.e. they can change
|
| - * without prior notice, use carefully.
|
| - *
|
| - * Copy: See Copyright for the status of this software.
|
| - *
|
| - * Author: Daniel Veillard
|
| - */
|
| -
|
| -#ifndef __XML_XSLT_INTERNALS_H__
|
| -#define __XML_XSLT_INTERNALS_H__
|
| -
|
| -#include <libxml/tree.h>
|
| -#include <libxml/hash.h>
|
| -#include <libxml/xpath.h>
|
| -#include <libxml/xmlerror.h>
|
| -#include <libxml/dict.h>
|
| -#include <libxml/xmlstring.h>
|
| -#include <libxslt/xslt.h>
|
| -#include "xsltexports.h"
|
| -#include "xsltlocale.h"
|
| -#include "numbersInternals.h"
|
| -
|
| -#ifdef __cplusplus
|
| -extern "C" {
|
| -#endif
|
| -
|
| -/* #define XSLT_DEBUG_PROFILE_CACHE */
|
| -
|
| -/**
|
| - * XSLT_IS_TEXT_NODE:
|
| - *
|
| - * check if the argument is a text node
|
| - */
|
| -#define XSLT_IS_TEXT_NODE(n) ((n != NULL) && \
|
| - (((n)->type == XML_TEXT_NODE) || \
|
| - ((n)->type == XML_CDATA_SECTION_NODE)))
|
| -
|
| -
|
| -/**
|
| - * XSLT_MARK_RES_TREE_FRAG:
|
| - *
|
| - * internal macro to set up tree fragments
|
| - */
|
| -#define XSLT_MARK_RES_TREE_FRAG(n) \
|
| - (n)->name = (char *) xmlStrdup(BAD_CAST " fake node libxslt");
|
| -
|
| -/**
|
| - * XSLT_IS_RES_TREE_FRAG:
|
| - *
|
| - * internal macro to test tree fragments
|
| - */
|
| -#define XSLT_IS_RES_TREE_FRAG(n) \
|
| - ((n != NULL) && ((n)->type == XML_DOCUMENT_NODE) && \
|
| - ((n)->name != NULL) && ((n)->name[0] == ' '))
|
| -
|
| -/**
|
| - * XSLT_REFACTORED_KEYCOMP:
|
| - *
|
| - * Internal define to enable on-demand xsl:key computation.
|
| - * That's the only mode now but the define is kept for compatibility
|
| - */
|
| -#define XSLT_REFACTORED_KEYCOMP
|
| -
|
| -/**
|
| - * XSLT_FAST_IF:
|
| - *
|
| - * Internal define to enable usage of xmlXPathCompiledEvalToBoolean()
|
| - * for XSLT "tests"; e.g. in <xsl:if test="/foo/bar">
|
| - */
|
| -#define XSLT_FAST_IF
|
| -
|
| -/**
|
| - * XSLT_REFACTORED:
|
| - *
|
| - * Internal define to enable the refactored parts of Libxslt.
|
| - */
|
| -/* #define XSLT_REFACTORED */
|
| -/* ==================================================================== */
|
| -
|
| -/**
|
| - * XSLT_REFACTORED_VARS:
|
| - *
|
| - * Internal define to enable the refactored variable part of libxslt
|
| - */
|
| -#define XSLT_REFACTORED_VARS
|
| -
|
| -#ifdef XSLT_REFACTORED
|
| -
|
| -extern const xmlChar *xsltXSLTAttrMarker;
|
| -
|
| -
|
| -/* TODO: REMOVE: #define XSLT_REFACTORED_EXCLRESNS */
|
| -
|
| -/* TODO: REMOVE: #define XSLT_REFACTORED_NSALIAS */
|
| -
|
| -/**
|
| - * XSLT_REFACTORED_XSLT_NSCOMP
|
| - *
|
| - * Internal define to enable the pointer-comparison of
|
| - * namespaces of XSLT elements.
|
| - */
|
| -/* #define XSLT_REFACTORED_XSLT_NSCOMP */
|
| -
|
| -/**
|
| - * XSLT_REFACTORED_XPATHCOMP:
|
| - *
|
| - * Internal define to enable the optimization of the
|
| - * compilation of XPath expressions.
|
| - */
|
| -#define XSLT_REFACTORED_XPATHCOMP
|
| -
|
| -#ifdef XSLT_REFACTORED_XSLT_NSCOMP
|
| -
|
| -extern const xmlChar *xsltConstNamespaceNameXSLT;
|
| -
|
| -/**
|
| - * IS_XSLT_ELEM_FAST:
|
| - *
|
| - * quick test to detect XSLT elements
|
| - */
|
| -#define IS_XSLT_ELEM_FAST(n) \
|
| - (((n) != NULL) && ((n)->ns != NULL) && \
|
| - ((n)->ns->href == xsltConstNamespaceNameXSLT))
|
| -
|
| -/**
|
| - * IS_XSLT_ATTR_FAST:
|
| - *
|
| - * quick test to detect XSLT attributes
|
| - */
|
| -#define IS_XSLT_ATTR_FAST(a) \
|
| - (((a) != NULL) && ((a)->ns != NULL) && \
|
| - ((a)->ns->href == xsltConstNamespaceNameXSLT))
|
| -
|
| -/**
|
| - * XSLT_HAS_INTERNAL_NSMAP:
|
| - *
|
| - * check for namespace mapping
|
| - */
|
| -#define XSLT_HAS_INTERNAL_NSMAP(s) \
|
| - (((s) != NULL) && ((s)->principal) && \
|
| - ((s)->principal->principalData) && \
|
| - ((s)->principal->principalData->nsMap))
|
| -
|
| -/**
|
| - * XSLT_GET_INTERNAL_NSMAP:
|
| - *
|
| - * get pointer to namespace map
|
| - */
|
| -#define XSLT_GET_INTERNAL_NSMAP(s) ((s)->principal->principalData->nsMap)
|
| -
|
| -#else /* XSLT_REFACTORED_XSLT_NSCOMP */
|
| -
|
| -/**
|
| - * IS_XSLT_ELEM_FAST:
|
| - *
|
| - * quick check whether this is an xslt element
|
| - */
|
| -#define IS_XSLT_ELEM_FAST(n) \
|
| - (((n) != NULL) && ((n)->ns != NULL) && \
|
| - (xmlStrEqual((n)->ns->href, XSLT_NAMESPACE)))
|
| -
|
| -/**
|
| - * IS_XSLT_ATTR_FAST:
|
| - *
|
| - * quick check for xslt namespace attribute
|
| - */
|
| -#define IS_XSLT_ATTR_FAST(a) \
|
| - (((a) != NULL) && ((a)->ns != NULL) && \
|
| - (xmlStrEqual((a)->ns->href, XSLT_NAMESPACE)))
|
| -
|
| -
|
| -#endif /* XSLT_REFACTORED_XSLT_NSCOMP */
|
| -
|
| -
|
| -/**
|
| - * XSLT_REFACTORED_MANDATORY_VERSION:
|
| - *
|
| - * TODO: Currently disabled to surpress regression test failures, since
|
| - * the old behaviour was that a missing version attribute
|
| - * produced a only a warning and not an error, which was incerrect.
|
| - * So the regression tests need to be fixed if this is enabled.
|
| - */
|
| -/* #define XSLT_REFACTORED_MANDATORY_VERSION */
|
| -
|
| -/**
|
| - * xsltPointerList:
|
| - *
|
| - * Pointer-list for various purposes.
|
| - */
|
| -typedef struct _xsltPointerList xsltPointerList;
|
| -typedef xsltPointerList *xsltPointerListPtr;
|
| -struct _xsltPointerList {
|
| - void **items;
|
| - int number;
|
| - int size;
|
| -};
|
| -
|
| -#endif
|
| -
|
| -/**
|
| - * XSLT_REFACTORED_PARSING:
|
| - *
|
| - * Internal define to enable the refactored parts of Libxslt
|
| - * related to parsing.
|
| - */
|
| -/* #define XSLT_REFACTORED_PARSING */
|
| -
|
| -/**
|
| - * XSLT_MAX_SORT:
|
| - *
|
| - * Max number of specified xsl:sort on an element.
|
| - */
|
| -#define XSLT_MAX_SORT 15
|
| -
|
| -/**
|
| - * XSLT_PAT_NO_PRIORITY:
|
| - *
|
| - * Specific value for pattern without priority expressed.
|
| - */
|
| -#define XSLT_PAT_NO_PRIORITY -12345789
|
| -
|
| -/**
|
| - * xsltRuntimeExtra:
|
| - *
|
| - * Extra information added to the transformation context.
|
| - */
|
| -typedef struct _xsltRuntimeExtra xsltRuntimeExtra;
|
| -typedef xsltRuntimeExtra *xsltRuntimeExtraPtr;
|
| -struct _xsltRuntimeExtra {
|
| - void *info; /* pointer to the extra data */
|
| - xmlFreeFunc deallocate; /* pointer to the deallocation routine */
|
| - union { /* dual-purpose field */
|
| - void *ptr; /* data not needing deallocation */
|
| - int ival; /* integer value storage */
|
| - } val;
|
| -};
|
| -
|
| -/**
|
| - * XSLT_RUNTIME_EXTRA_LST:
|
| - * @ctxt: the transformation context
|
| - * @nr: the index
|
| - *
|
| - * Macro used to access extra information stored in the context
|
| - */
|
| -#define XSLT_RUNTIME_EXTRA_LST(ctxt, nr) (ctxt)->extras[(nr)].info
|
| -/**
|
| - * XSLT_RUNTIME_EXTRA_FREE:
|
| - * @ctxt: the transformation context
|
| - * @nr: the index
|
| - *
|
| - * Macro used to free extra information stored in the context
|
| - */
|
| -#define XSLT_RUNTIME_EXTRA_FREE(ctxt, nr) (ctxt)->extras[(nr)].deallocate
|
| -/**
|
| - * XSLT_RUNTIME_EXTRA:
|
| - * @ctxt: the transformation context
|
| - * @nr: the index
|
| - *
|
| - * Macro used to define extra information stored in the context
|
| - */
|
| -#define XSLT_RUNTIME_EXTRA(ctxt, nr, typ) (ctxt)->extras[(nr)].val.typ
|
| -
|
| -/**
|
| - * xsltTemplate:
|
| - *
|
| - * The in-memory structure corresponding to an XSLT Template.
|
| - */
|
| -typedef struct _xsltTemplate xsltTemplate;
|
| -typedef xsltTemplate *xsltTemplatePtr;
|
| -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 */
|
| - const xmlChar *name; /* the local part of the name QName */
|
| - const xmlChar *nameURI; /* the URI part of the name QName */
|
| - const xmlChar *mode;/* the local part of the mode QName */
|
| - const xmlChar *modeURI;/* the URI part of the mode QName */
|
| - xmlNodePtr content; /* the template replacement value */
|
| - xmlNodePtr elem; /* the source element */
|
| -
|
| - /*
|
| - * TODO: @inheritedNsNr and @inheritedNs won't be used in the
|
| - * refactored code.
|
| - */
|
| - 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 */
|
| - void *params; /* xsl:param instructions */
|
| -
|
| - int templNr; /* Nb of templates in the stack */
|
| - int templMax; /* Size of the templtes stack */
|
| - xsltTemplatePtr *templCalledTab; /* templates called */
|
| - int *templCountTab; /* .. and how often */
|
| -};
|
| -
|
| -/**
|
| - * xsltDecimalFormat:
|
| - *
|
| - * Data structure of decimal-format.
|
| - */
|
| -typedef struct _xsltDecimalFormat xsltDecimalFormat;
|
| -typedef xsltDecimalFormat *xsltDecimalFormatPtr;
|
| -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;
|
| - const xmlChar *nsUri;
|
| -};
|
| -
|
| -/**
|
| - * xsltDocument:
|
| - *
|
| - * Data structure associated to a parsed document.
|
| - */
|
| -typedef struct _xsltDocument xsltDocument;
|
| -typedef xsltDocument *xsltDocumentPtr;
|
| -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 */
|
| - int preproc; /* pre-processing already done */
|
| - int nbKeysComputed;
|
| -};
|
| -
|
| -/**
|
| - * xsltKeyDef:
|
| - *
|
| - * Representation of an xsl:key.
|
| - */
|
| -typedef struct _xsltKeyDef xsltKeyDef;
|
| -typedef xsltKeyDef *xsltKeyDefPtr;
|
| -struct _xsltKeyDef {
|
| - struct _xsltKeyDef *next;
|
| - xmlNodePtr inst;
|
| - xmlChar *name;
|
| - xmlChar *nameURI;
|
| - xmlChar *match;
|
| - xmlChar *use;
|
| - xmlXPathCompExprPtr comp;
|
| - xmlXPathCompExprPtr usecomp;
|
| - xmlNsPtr *nsList; /* the namespaces in scope */
|
| - int nsNr; /* the number of namespaces in scope */
|
| -};
|
| -
|
| -/**
|
| - * xsltKeyTable:
|
| - *
|
| - * Holds the computed keys for key definitions of the same QName.
|
| - * Is owned by an xsltDocument.
|
| - */
|
| -typedef struct _xsltKeyTable xsltKeyTable;
|
| -typedef xsltKeyTable *xsltKeyTablePtr;
|
| -struct _xsltKeyTable {
|
| - struct _xsltKeyTable *next;
|
| - xmlChar *name;
|
| - xmlChar *nameURI;
|
| - xmlHashTablePtr keys;
|
| -};
|
| -
|
| -/*
|
| - * The in-memory structure corresponding to an XSLT Stylesheet.
|
| - * NOTE: most of the content is simply linked from the doc tree
|
| - * structure, no specific allocation is made.
|
| - */
|
| -typedef struct _xsltStylesheet xsltStylesheet;
|
| -typedef xsltStylesheet *xsltStylesheetPtr;
|
| -
|
| -typedef struct _xsltTransformContext xsltTransformContext;
|
| -typedef xsltTransformContext *xsltTransformContextPtr;
|
| -
|
| -/**
|
| - * xsltElemPreComp:
|
| - *
|
| - * The in-memory structure corresponding to element precomputed data,
|
| - * designed to be extended by extension implementors.
|
| - */
|
| -typedef struct _xsltElemPreComp xsltElemPreComp;
|
| -typedef xsltElemPreComp *xsltElemPreCompPtr;
|
| -
|
| -/**
|
| - * xsltTransformFunction:
|
| - * @ctxt: the XSLT transformation context
|
| - * @node: the input node
|
| - * @inst: the stylesheet node
|
| - * @comp: the compiled information from the stylesheet
|
| - *
|
| - * Signature of the function associated to elements part of the
|
| - * stylesheet language like xsl:if or xsl:apply-templates.
|
| - */
|
| -typedef void (*xsltTransformFunction) (xsltTransformContextPtr ctxt,
|
| - xmlNodePtr node,
|
| - xmlNodePtr inst,
|
| - xsltElemPreCompPtr comp);
|
| -
|
| -/**
|
| - * xsltSortFunc:
|
| - * @ctxt: a transformation context
|
| - * @sorts: the node-set to sort
|
| - * @nbsorts: the number of sorts
|
| - *
|
| - * Signature of the function to use during sorting
|
| - */
|
| -typedef void (*xsltSortFunc) (xsltTransformContextPtr ctxt, xmlNodePtr *sorts,
|
| - int nbsorts);
|
| -
|
| -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
|
| -#ifdef XSLT_REFACTORED
|
| - ,
|
| - XSLT_FUNC_OTHERWISE,
|
| - XSLT_FUNC_FALLBACK,
|
| - XSLT_FUNC_MESSAGE,
|
| - XSLT_FUNC_INCLUDE,
|
| - XSLT_FUNC_ATTRSET,
|
| - XSLT_FUNC_LITERAL_RESULT_ELEMENT,
|
| - XSLT_FUNC_UNKOWN_FORWARDS_COMPAT
|
| -#endif
|
| -} xsltStyleType;
|
| -
|
| -/**
|
| - * xsltElemPreCompDeallocator:
|
| - * @comp: the #xsltElemPreComp to free up
|
| - *
|
| - * Deallocates an #xsltElemPreComp structure.
|
| - */
|
| -typedef void (*xsltElemPreCompDeallocator) (xsltElemPreCompPtr comp);
|
| -
|
| -/**
|
| - * xsltElemPreComp:
|
| - *
|
| - * The basic structure for compiled items of the AST of the XSLT processor.
|
| - * This structure is also intended to be extended by extension implementors.
|
| - * TODO: This is somehow not nice, since it has a "free" field, which
|
| - * derived stylesheet-structs do not have.
|
| - */
|
| -struct _xsltElemPreComp {
|
| - xsltElemPreCompPtr next; /* next item in the global chained
|
| - list hold by xsltStylesheet. */
|
| - xsltStyleType type; /* type of the element */
|
| - xsltTransformFunction func; /* handling function */
|
| - xmlNodePtr inst; /* the node in the stylesheet's tree
|
| - corresponding to this item */
|
| -
|
| - /* end of common part */
|
| - xsltElemPreCompDeallocator free; /* the deallocator */
|
| -};
|
| -
|
| -/**
|
| - * xsltStylePreComp:
|
| - *
|
| - * The abstract basic structure for items of the XSLT processor.
|
| - * This includes:
|
| - * 1) compiled forms of XSLT instructions (xsl:if, xsl:attribute, etc.)
|
| - * 2) compiled forms of literal result elements
|
| - * 3) compiled forms of extension elements
|
| - */
|
| -typedef struct _xsltStylePreComp xsltStylePreComp;
|
| -typedef xsltStylePreComp *xsltStylePreCompPtr;
|
| -
|
| -#ifdef XSLT_REFACTORED
|
| -
|
| -/*
|
| -* Some pointer-list utility functions.
|
| -*/
|
| -XSLTPUBFUN xsltPointerListPtr XSLTCALL
|
| - xsltPointerListCreate (int initialSize);
|
| -XSLTPUBFUN void XSLTCALL
|
| - xsltPointerListFree (xsltPointerListPtr list);
|
| -XSLTPUBFUN void XSLTCALL
|
| - xsltPointerListClear (xsltPointerListPtr list);
|
| -XSLTPUBFUN int XSLTCALL
|
| - xsltPointerListAddSize (xsltPointerListPtr list,
|
| - void *item,
|
| - int initialSize);
|
| -
|
| -/************************************************************************
|
| - * *
|
| - * Refactored structures *
|
| - * *
|
| - ************************************************************************/
|
| -
|
| -typedef struct _xsltNsListContainer xsltNsListContainer;
|
| -typedef xsltNsListContainer *xsltNsListContainerPtr;
|
| -struct _xsltNsListContainer {
|
| - xmlNsPtr *list;
|
| - int totalNumber;
|
| - int xpathNumber;
|
| -};
|
| -
|
| -/**
|
| - * XSLT_ITEM_COMPATIBILITY_FIELDS:
|
| - *
|
| - * Fields for API compatibility to the structure
|
| - * _xsltElemPreComp which is used for extension functions.
|
| - * Note that @next is used for storage; it does not reflect a next
|
| - * sibling in the tree.
|
| - * TODO: Evaluate if we really need such a compatibility.
|
| - */
|
| -#define XSLT_ITEM_COMPATIBILITY_FIELDS \
|
| - xsltElemPreCompPtr next;\
|
| - xsltStyleType type;\
|
| - xsltTransformFunction func;\
|
| - xmlNodePtr inst;
|
| -
|
| -/**
|
| - * XSLT_ITEM_NAVIGATION_FIELDS:
|
| - *
|
| - * Currently empty.
|
| - * TODO: It is intended to hold navigational fields in the future.
|
| - */
|
| -#define XSLT_ITEM_NAVIGATION_FIELDS
|
| -/*
|
| - xsltStylePreCompPtr parent;\
|
| - xsltStylePreCompPtr children;\
|
| - xsltStylePreCompPtr nextItem;
|
| -*/
|
| -
|
| -/**
|
| - * XSLT_ITEM_NSINSCOPE_FIELDS:
|
| - *
|
| - * The in-scope namespaces.
|
| - */
|
| -#define XSLT_ITEM_NSINSCOPE_FIELDS xsltNsListContainerPtr inScopeNs;
|
| -
|
| -/**
|
| - * XSLT_ITEM_COMMON_FIELDS:
|
| - *
|
| - * Common fields used for all items.
|
| - */
|
| -#define XSLT_ITEM_COMMON_FIELDS \
|
| - XSLT_ITEM_COMPATIBILITY_FIELDS \
|
| - XSLT_ITEM_NAVIGATION_FIELDS \
|
| - XSLT_ITEM_NSINSCOPE_FIELDS
|
| -
|
| -/**
|
| - * _xsltStylePreComp:
|
| - *
|
| - * The abstract basic structure for items of the XSLT processor.
|
| - * This includes:
|
| - * 1) compiled forms of XSLT instructions (e.g. xsl:if, xsl:attribute, etc.)
|
| - * 2) compiled forms of literal result elements
|
| - * 3) various properties for XSLT instructions (e.g. xsl:when,
|
| - * xsl:with-param)
|
| - *
|
| - * REVISIT TODO: Keep this structure equal to the fields
|
| - * defined by XSLT_ITEM_COMMON_FIELDS
|
| - */
|
| -struct _xsltStylePreComp {
|
| - xsltElemPreCompPtr next; /* next item in the global chained
|
| - list hold by xsltStylesheet */
|
| - xsltStyleType type; /* type of the item */
|
| - xsltTransformFunction func; /* handling function */
|
| - xmlNodePtr inst; /* the node in the stylesheet's tree
|
| - corresponding to this item. */
|
| - /* Currently no navigational fields. */
|
| - xsltNsListContainerPtr inScopeNs;
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleBasicEmptyItem:
|
| - *
|
| - * Abstract structure only used as a short-cut for
|
| - * XSLT items with no extra fields.
|
| - * NOTE that it is intended that this structure looks the same as
|
| - * _xsltStylePreComp.
|
| - */
|
| -typedef struct _xsltStyleBasicEmptyItem xsltStyleBasicEmptyItem;
|
| -typedef xsltStyleBasicEmptyItem *xsltStyleBasicEmptyItemPtr;
|
| -
|
| -struct _xsltStyleBasicEmptyItem {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleBasicExpressionItem:
|
| - *
|
| - * Abstract structure only used as a short-cut for
|
| - * XSLT items with just an expression.
|
| - */
|
| -typedef struct _xsltStyleBasicExpressionItem xsltStyleBasicExpressionItem;
|
| -typedef xsltStyleBasicExpressionItem *xsltStyleBasicExpressionItemPtr;
|
| -
|
| -struct _xsltStyleBasicExpressionItem {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| -
|
| - const xmlChar *select; /* TODO: Change this to "expression". */
|
| - xmlXPathCompExprPtr comp; /* TODO: Change this to compExpr. */
|
| -};
|
| -
|
| -/************************************************************************
|
| - * *
|
| - * XSLT-instructions/declarations *
|
| - * *
|
| - ************************************************************************/
|
| -
|
| -/**
|
| - * xsltStyleItemElement:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:element
|
| - * name = { qname }
|
| - * namespace = { uri-reference }
|
| - * use-attribute-sets = qnames>
|
| - * <!-- Content: template -->
|
| - * </xsl:element>
|
| - */
|
| -typedef struct _xsltStyleItemElement xsltStyleItemElement;
|
| -typedef xsltStyleItemElement *xsltStyleItemElementPtr;
|
| -
|
| -struct _xsltStyleItemElement {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| -
|
| - const xmlChar *use;
|
| - int has_use;
|
| - const xmlChar *name;
|
| - int has_name;
|
| - const xmlChar *ns;
|
| - const xmlChar *nsPrefix;
|
| - int has_ns;
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleItemAttribute:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:attribute
|
| - * name = { qname }
|
| - * namespace = { uri-reference }>
|
| - * <!-- Content: template -->
|
| - * </xsl:attribute>
|
| - */
|
| -typedef struct _xsltStyleItemAttribute xsltStyleItemAttribute;
|
| -typedef xsltStyleItemAttribute *xsltStyleItemAttributePtr;
|
| -
|
| -struct _xsltStyleItemAttribute {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| - const xmlChar *name;
|
| - int has_name;
|
| - const xmlChar *ns;
|
| - const xmlChar *nsPrefix;
|
| - int has_ns;
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleItemText:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:text
|
| - * disable-output-escaping = "yes" | "no">
|
| - * <!-- Content: #PCDATA -->
|
| - * </xsl:text>
|
| - */
|
| -typedef struct _xsltStyleItemText xsltStyleItemText;
|
| -typedef xsltStyleItemText *xsltStyleItemTextPtr;
|
| -
|
| -struct _xsltStyleItemText {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| - int noescape; /* text */
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleItemComment:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:comment>
|
| - * <!-- Content: template -->
|
| - * </xsl:comment>
|
| - */
|
| -typedef xsltStyleBasicEmptyItem xsltStyleItemComment;
|
| -typedef xsltStyleItemComment *xsltStyleItemCommentPtr;
|
| -
|
| -/**
|
| - * xsltStyleItemPI:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:processing-instruction
|
| - * name = { ncname }>
|
| - * <!-- Content: template -->
|
| - * </xsl:processing-instruction>
|
| - */
|
| -typedef struct _xsltStyleItemPI xsltStyleItemPI;
|
| -typedef xsltStyleItemPI *xsltStyleItemPIPtr;
|
| -
|
| -struct _xsltStyleItemPI {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| - const xmlChar *name;
|
| - int has_name;
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleItemApplyImports:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:apply-imports />
|
| - */
|
| -typedef xsltStyleBasicEmptyItem xsltStyleItemApplyImports;
|
| -typedef xsltStyleItemApplyImports *xsltStyleItemApplyImportsPtr;
|
| -
|
| -/**
|
| - * xsltStyleItemApplyTemplates:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:apply-templates
|
| - * select = node-set-expression
|
| - * mode = qname>
|
| - * <!-- Content: (xsl:sort | xsl:with-param)* -->
|
| - * </xsl:apply-templates>
|
| - */
|
| -typedef struct _xsltStyleItemApplyTemplates xsltStyleItemApplyTemplates;
|
| -typedef xsltStyleItemApplyTemplates *xsltStyleItemApplyTemplatesPtr;
|
| -
|
| -struct _xsltStyleItemApplyTemplates {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| -
|
| - const xmlChar *mode; /* apply-templates */
|
| - const xmlChar *modeURI; /* apply-templates */
|
| - const xmlChar *select; /* sort, copy-of, value-of, apply-templates */
|
| - xmlXPathCompExprPtr comp; /* a precompiled XPath expression */
|
| - /* TODO: with-params */
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleItemCallTemplate:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:call-template
|
| - * name = qname>
|
| - * <!-- Content: xsl:with-param* -->
|
| - * </xsl:call-template>
|
| - */
|
| -typedef struct _xsltStyleItemCallTemplate xsltStyleItemCallTemplate;
|
| -typedef xsltStyleItemCallTemplate *xsltStyleItemCallTemplatePtr;
|
| -
|
| -struct _xsltStyleItemCallTemplate {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| -
|
| - xsltTemplatePtr templ; /* call-template */
|
| - const xmlChar *name; /* element, attribute, pi */
|
| - int has_name; /* element, attribute, pi */
|
| - const xmlChar *ns; /* element */
|
| - int has_ns; /* element */
|
| - /* TODO: with-params */
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleItemCopy:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:copy
|
| - * use-attribute-sets = qnames>
|
| - * <!-- Content: template -->
|
| - * </xsl:copy>
|
| - */
|
| -typedef struct _xsltStyleItemCopy xsltStyleItemCopy;
|
| -typedef xsltStyleItemCopy *xsltStyleItemCopyPtr;
|
| -
|
| -struct _xsltStyleItemCopy {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| - const xmlChar *use; /* copy, element */
|
| - int has_use; /* copy, element */
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleItemIf:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:if
|
| - * test = boolean-expression>
|
| - * <!-- Content: template -->
|
| - * </xsl:if>
|
| - */
|
| -typedef struct _xsltStyleItemIf xsltStyleItemIf;
|
| -typedef xsltStyleItemIf *xsltStyleItemIfPtr;
|
| -
|
| -struct _xsltStyleItemIf {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| -
|
| - const xmlChar *test; /* if */
|
| - xmlXPathCompExprPtr comp; /* a precompiled XPath expression */
|
| -};
|
| -
|
| -
|
| -/**
|
| - * xsltStyleItemCopyOf:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:copy-of
|
| - * select = expression />
|
| - */
|
| -typedef xsltStyleBasicExpressionItem xsltStyleItemCopyOf;
|
| -typedef xsltStyleItemCopyOf *xsltStyleItemCopyOfPtr;
|
| -
|
| -/**
|
| - * xsltStyleItemValueOf:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:value-of
|
| - * select = string-expression
|
| - * disable-output-escaping = "yes" | "no" />
|
| - */
|
| -typedef struct _xsltStyleItemValueOf xsltStyleItemValueOf;
|
| -typedef xsltStyleItemValueOf *xsltStyleItemValueOfPtr;
|
| -
|
| -struct _xsltStyleItemValueOf {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| -
|
| - const xmlChar *select;
|
| - xmlXPathCompExprPtr comp; /* a precompiled XPath expression */
|
| - int noescape;
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleItemNumber:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:number
|
| - * level = "single" | "multiple" | "any"
|
| - * count = pattern
|
| - * from = pattern
|
| - * value = number-expression
|
| - * format = { string }
|
| - * lang = { nmtoken }
|
| - * letter-value = { "alphabetic" | "traditional" }
|
| - * grouping-separator = { char }
|
| - * grouping-size = { number } />
|
| - */
|
| -typedef struct _xsltStyleItemNumber xsltStyleItemNumber;
|
| -typedef xsltStyleItemNumber *xsltStyleItemNumberPtr;
|
| -
|
| -struct _xsltStyleItemNumber {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| - xsltNumberData numdata; /* number */
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleItemChoose:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:choose>
|
| - * <!-- Content: (xsl:when+, xsl:otherwise?) -->
|
| - * </xsl:choose>
|
| - */
|
| -typedef xsltStyleBasicEmptyItem xsltStyleItemChoose;
|
| -typedef xsltStyleItemChoose *xsltStyleItemChoosePtr;
|
| -
|
| -/**
|
| - * xsltStyleItemFallback:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:fallback>
|
| - * <!-- Content: template -->
|
| - * </xsl:fallback>
|
| - */
|
| -typedef xsltStyleBasicEmptyItem xsltStyleItemFallback;
|
| -typedef xsltStyleItemFallback *xsltStyleItemFallbackPtr;
|
| -
|
| -/**
|
| - * xsltStyleItemForEach:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:for-each
|
| - * select = node-set-expression>
|
| - * <!-- Content: (xsl:sort*, template) -->
|
| - * </xsl:for-each>
|
| - */
|
| -typedef xsltStyleBasicExpressionItem xsltStyleItemForEach;
|
| -typedef xsltStyleItemForEach *xsltStyleItemForEachPtr;
|
| -
|
| -/**
|
| - * xsltStyleItemMessage:
|
| - *
|
| - * <!-- Category: instruction -->
|
| - * <xsl:message
|
| - * terminate = "yes" | "no">
|
| - * <!-- Content: template -->
|
| - * </xsl:message>
|
| - */
|
| -typedef struct _xsltStyleItemMessage xsltStyleItemMessage;
|
| -typedef xsltStyleItemMessage *xsltStyleItemMessagePtr;
|
| -
|
| -struct _xsltStyleItemMessage {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| - int terminate;
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleItemDocument:
|
| - *
|
| - * NOTE: This is not an instruction of XSLT 1.0.
|
| - */
|
| -typedef struct _xsltStyleItemDocument xsltStyleItemDocument;
|
| -typedef xsltStyleItemDocument *xsltStyleItemDocumentPtr;
|
| -
|
| -struct _xsltStyleItemDocument {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| - int ver11; /* assigned: in xsltDocumentComp;
|
| - read: nowhere;
|
| - TODO: Check if we need. */
|
| - const xmlChar *filename; /* document URL */
|
| - int has_filename;
|
| -};
|
| -
|
| -/************************************************************************
|
| - * *
|
| - * Non-instructions (actually properties of instructions/declarations) *
|
| - * *
|
| - ************************************************************************/
|
| -
|
| -/**
|
| - * xsltStyleBasicItemVariable:
|
| - *
|
| - * Basic struct for xsl:variable, xsl:param and xsl:with-param.
|
| - * It's currently important to have equal fields, since
|
| - * xsltParseStylesheetCallerParam() is used with xsl:with-param from
|
| - * the xslt side and with xsl:param from the exslt side (in
|
| - * exsltFuncFunctionFunction()).
|
| - *
|
| - * FUTURE NOTE: In XSLT 2.0 xsl:param, xsl:variable and xsl:with-param
|
| - * have additional different fields.
|
| - */
|
| -typedef struct _xsltStyleBasicItemVariable xsltStyleBasicItemVariable;
|
| -typedef xsltStyleBasicItemVariable *xsltStyleBasicItemVariablePtr;
|
| -
|
| -struct _xsltStyleBasicItemVariable {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| -
|
| - const xmlChar *select;
|
| - xmlXPathCompExprPtr comp;
|
| -
|
| - const xmlChar *name;
|
| - int has_name;
|
| - const xmlChar *ns;
|
| - int has_ns;
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleItemVariable:
|
| - *
|
| - * <!-- Category: top-level-element -->
|
| - * <xsl:param
|
| - * name = qname
|
| - * select = expression>
|
| - * <!-- Content: template -->
|
| - * </xsl:param>
|
| - */
|
| -typedef xsltStyleBasicItemVariable xsltStyleItemVariable;
|
| -typedef xsltStyleItemVariable *xsltStyleItemVariablePtr;
|
| -
|
| -/**
|
| - * xsltStyleItemParam:
|
| - *
|
| - * <!-- Category: top-level-element -->
|
| - * <xsl:param
|
| - * name = qname
|
| - * select = expression>
|
| - * <!-- Content: template -->
|
| - * </xsl:param>
|
| - */
|
| -typedef struct _xsltStyleItemParam xsltStyleItemParam;
|
| -typedef xsltStyleItemParam *xsltStyleItemParamPtr;
|
| -
|
| -struct _xsltStyleItemParam {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| -
|
| - const xmlChar *select;
|
| - xmlXPathCompExprPtr comp;
|
| -
|
| - const xmlChar *name;
|
| - int has_name;
|
| - const xmlChar *ns;
|
| - int has_ns;
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleItemWithParam:
|
| - *
|
| - * <xsl:with-param
|
| - * name = qname
|
| - * select = expression>
|
| - * <!-- Content: template -->
|
| - * </xsl:with-param>
|
| - */
|
| -typedef xsltStyleBasicItemVariable xsltStyleItemWithParam;
|
| -typedef xsltStyleItemWithParam *xsltStyleItemWithParamPtr;
|
| -
|
| -/**
|
| - * xsltStyleItemSort:
|
| - *
|
| - * Reflects the XSLT xsl:sort item.
|
| - * Allowed parents: xsl:apply-templates, xsl:for-each
|
| - * <xsl:sort
|
| - * select = string-expression
|
| - * lang = { nmtoken }
|
| - * data-type = { "text" | "number" | qname-but-not-ncname }
|
| - * order = { "ascending" | "descending" }
|
| - * case-order = { "upper-first" | "lower-first" } />
|
| - */
|
| -typedef struct _xsltStyleItemSort xsltStyleItemSort;
|
| -typedef xsltStyleItemSort *xsltStyleItemSortPtr;
|
| -
|
| -struct _xsltStyleItemSort {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| -
|
| - const xmlChar *stype; /* sort */
|
| - int has_stype; /* sort */
|
| - int number; /* sort */
|
| - const xmlChar *order; /* sort */
|
| - int has_order; /* sort */
|
| - int descending; /* sort */
|
| - const xmlChar *lang; /* sort */
|
| - int has_lang; /* sort */
|
| - xsltLocale locale; /* sort */
|
| - const xmlChar *case_order; /* sort */
|
| - int lower_first; /* sort */
|
| -
|
| - const xmlChar *use;
|
| - int has_use;
|
| -
|
| - const xmlChar *select; /* sort, copy-of, value-of, apply-templates */
|
| -
|
| - xmlXPathCompExprPtr comp; /* a precompiled XPath expression */
|
| -};
|
| -
|
| -
|
| -/**
|
| - * xsltStyleItemWhen:
|
| - *
|
| - * <xsl:when
|
| - * test = boolean-expression>
|
| - * <!-- Content: template -->
|
| - * </xsl:when>
|
| - * Allowed parent: xsl:choose
|
| - */
|
| -typedef struct _xsltStyleItemWhen xsltStyleItemWhen;
|
| -typedef xsltStyleItemWhen *xsltStyleItemWhenPtr;
|
| -
|
| -struct _xsltStyleItemWhen {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| -
|
| - const xmlChar *test;
|
| - xmlXPathCompExprPtr comp;
|
| -};
|
| -
|
| -/**
|
| - * xsltStyleItemOtherwise:
|
| - *
|
| - * Allowed parent: xsl:choose
|
| - * <xsl:otherwise>
|
| - * <!-- Content: template -->
|
| - * </xsl:otherwise>
|
| - */
|
| -typedef struct _xsltStyleItemOtherwise xsltStyleItemOtherwise;
|
| -typedef xsltStyleItemOtherwise *xsltStyleItemOtherwisePtr;
|
| -
|
| -struct _xsltStyleItemOtherwise {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| -};
|
| -
|
| -typedef struct _xsltStyleItemInclude xsltStyleItemInclude;
|
| -typedef xsltStyleItemInclude *xsltStyleItemIncludePtr;
|
| -
|
| -struct _xsltStyleItemInclude {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| - xsltDocumentPtr include;
|
| -};
|
| -
|
| -/************************************************************************
|
| - * *
|
| - * XSLT elements in forwards-compatible mode *
|
| - * *
|
| - ************************************************************************/
|
| -
|
| -typedef struct _xsltStyleItemUknown xsltStyleItemUknown;
|
| -typedef xsltStyleItemUknown *xsltStyleItemUknownPtr;
|
| -struct _xsltStyleItemUknown {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| -};
|
| -
|
| -
|
| -/************************************************************************
|
| - * *
|
| - * Extension elements *
|
| - * *
|
| - ************************************************************************/
|
| -
|
| -/*
|
| - * xsltStyleItemExtElement:
|
| - *
|
| - * Reflects extension elements.
|
| - *
|
| - * NOTE: Due to the fact that the structure xsltElemPreComp is most
|
| - * probably already heavily in use out there by users, so we cannot
|
| - * easily change it, we'll create an intermediate structure which will
|
| - * hold an xsltElemPreCompPtr.
|
| - * BIG NOTE: The only problem I see here is that the user processes the
|
| - * content of the stylesheet tree, possibly he'll lookup the node->psvi
|
| - * fields in order to find subsequent extension functions.
|
| - * In this case, the user's code will break, since the node->psvi
|
| - * field will hold now the xsltStyleItemExtElementPtr and not
|
| - * the xsltElemPreCompPtr.
|
| - * However the place where the structure is anchored in the node-tree,
|
| - * namely node->psvi, has beed already once been moved from node->_private
|
| - * to node->psvi, so we have a precedent here, which, I think, should allow
|
| - * us to change such semantics without headaches.
|
| - */
|
| -typedef struct _xsltStyleItemExtElement xsltStyleItemExtElement;
|
| -typedef xsltStyleItemExtElement *xsltStyleItemExtElementPtr;
|
| -struct _xsltStyleItemExtElement {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| - xsltElemPreCompPtr item;
|
| -};
|
| -
|
| -/************************************************************************
|
| - * *
|
| - * Literal result elements *
|
| - * *
|
| - ************************************************************************/
|
| -
|
| -typedef struct _xsltEffectiveNs xsltEffectiveNs;
|
| -typedef xsltEffectiveNs *xsltEffectiveNsPtr;
|
| -struct _xsltEffectiveNs {
|
| - xsltEffectiveNsPtr nextInStore; /* storage next */
|
| - xsltEffectiveNsPtr next; /* next item in the list */
|
| - const xmlChar *prefix;
|
| - const xmlChar *nsName;
|
| - /*
|
| - * Indicates if eclared on the literal result element; dunno if really
|
| - * needed.
|
| - */
|
| - int holdByElem;
|
| -};
|
| -
|
| -/*
|
| - * Info for literal result elements.
|
| - * This will be set on the elem->psvi field and will be
|
| - * shared by literal result elements, which have the same
|
| - * excluded result namespaces; i.e., this *won't* be created uniquely
|
| - * for every literal result element.
|
| - */
|
| -typedef struct _xsltStyleItemLRElementInfo xsltStyleItemLRElementInfo;
|
| -typedef xsltStyleItemLRElementInfo *xsltStyleItemLRElementInfoPtr;
|
| -struct _xsltStyleItemLRElementInfo {
|
| - XSLT_ITEM_COMMON_FIELDS
|
| - /*
|
| - * @effectiveNs is the set of effective ns-nodes
|
| - * on the literal result element, which will be added to the result
|
| - * element if not already existing in the result tree.
|
| - * This means that excluded namespaces (via exclude-result-prefixes,
|
| - * extension-element-prefixes and the XSLT namespace) not added
|
| - * to the set.
|
| - * Namespace-aliasing was applied on the @effectiveNs.
|
| - */
|
| - xsltEffectiveNsPtr effectiveNs;
|
| -
|
| -};
|
| -
|
| -#ifdef XSLT_REFACTORED
|
| -
|
| -typedef struct _xsltNsAlias xsltNsAlias;
|
| -typedef xsltNsAlias *xsltNsAliasPtr;
|
| -struct _xsltNsAlias {
|
| - xsltNsAliasPtr next; /* next in the list */
|
| - xmlNsPtr literalNs;
|
| - xmlNsPtr targetNs;
|
| - xmlDocPtr docOfTargetNs;
|
| -};
|
| -#endif
|
| -
|
| -#ifdef XSLT_REFACTORED_XSLT_NSCOMP
|
| -
|
| -typedef struct _xsltNsMap xsltNsMap;
|
| -typedef xsltNsMap *xsltNsMapPtr;
|
| -struct _xsltNsMap {
|
| - xsltNsMapPtr next; /* next in the list */
|
| - xmlDocPtr doc;
|
| - xmlNodePtr elem; /* the element holding the ns-decl */
|
| - xmlNsPtr ns; /* the xmlNs structure holding the XML namespace name */
|
| - const xmlChar *origNsName; /* the original XML namespace name */
|
| - const xmlChar *newNsName; /* the mapped XML namespace name */
|
| -};
|
| -#endif
|
| -
|
| -/************************************************************************
|
| - * *
|
| - * Compile-time structures for *internal* use only *
|
| - * *
|
| - ************************************************************************/
|
| -
|
| -typedef struct _xsltPrincipalStylesheetData xsltPrincipalStylesheetData;
|
| -typedef xsltPrincipalStylesheetData *xsltPrincipalStylesheetDataPtr;
|
| -
|
| -typedef struct _xsltNsList xsltNsList;
|
| -typedef xsltNsList *xsltNsListPtr;
|
| -struct _xsltNsList {
|
| - xsltNsListPtr next; /* next in the list */
|
| - xmlNsPtr ns;
|
| -};
|
| -
|
| -/*
|
| -* xsltVarInfo:
|
| -*
|
| -* Used at compilation time for parameters and variables.
|
| -*/
|
| -typedef struct _xsltVarInfo xsltVarInfo;
|
| -typedef xsltVarInfo *xsltVarInfoPtr;
|
| -struct _xsltVarInfo {
|
| - xsltVarInfoPtr next; /* next in the list */
|
| - xsltVarInfoPtr prev;
|
| - int depth; /* the depth in the tree */
|
| - const xmlChar *name;
|
| - const xmlChar *nsName;
|
| -};
|
| -
|
| -/**
|
| - * xsltCompilerNodeInfo:
|
| - *
|
| - * Per-node information during compile-time.
|
| - */
|
| -typedef struct _xsltCompilerNodeInfo xsltCompilerNodeInfo;
|
| -typedef xsltCompilerNodeInfo *xsltCompilerNodeInfoPtr;
|
| -struct _xsltCompilerNodeInfo {
|
| - xsltCompilerNodeInfoPtr next;
|
| - xsltCompilerNodeInfoPtr prev;
|
| - xmlNodePtr node;
|
| - int depth;
|
| - xsltTemplatePtr templ; /* The owning template */
|
| - int category; /* XSLT element, LR-element or
|
| - extension element */
|
| - xsltStyleType type;
|
| - xsltElemPreCompPtr item; /* The compiled information */
|
| - /* The current in-scope namespaces */
|
| - xsltNsListContainerPtr inScopeNs;
|
| - /* The current excluded result namespaces */
|
| - xsltPointerListPtr exclResultNs;
|
| - /* The current extension instruction namespaces */
|
| - xsltPointerListPtr extElemNs;
|
| -
|
| - /* The current info for literal result elements. */
|
| - xsltStyleItemLRElementInfoPtr litResElemInfo;
|
| - /*
|
| - * Set to 1 if in-scope namespaces changed,
|
| - * or excluded result namespaces changed,
|
| - * or extension element namespaces changed.
|
| - * This will trigger creation of new infos
|
| - * for literal result elements.
|
| - */
|
| - int nsChanged;
|
| - int preserveWhitespace;
|
| - int stripWhitespace;
|
| - int isRoot; /* whether this is the stylesheet's root node */
|
| - int forwardsCompat; /* whether forwards-compatible mode is enabled */
|
| - /* whether the content of an extension element was processed */
|
| - int extContentHandled;
|
| - /* the type of the current child */
|
| - xsltStyleType curChildType;
|
| -};
|
| -
|
| -/**
|
| - * XSLT_CCTXT:
|
| - *
|
| - * get pointer to compiler context
|
| - */
|
| -#define XSLT_CCTXT(style) ((xsltCompilerCtxtPtr) style->compCtxt)
|
| -
|
| -typedef enum {
|
| - XSLT_ERROR_SEVERITY_ERROR = 0,
|
| - XSLT_ERROR_SEVERITY_WARNING
|
| -} xsltErrorSeverityType;
|
| -
|
| -typedef struct _xsltCompilerCtxt xsltCompilerCtxt;
|
| -typedef xsltCompilerCtxt *xsltCompilerCtxtPtr;
|
| -struct _xsltCompilerCtxt {
|
| - void *errorCtxt; /* user specific error context */
|
| - /*
|
| - * used for error/warning reports; e.g. XSLT_ERROR_SEVERITY_WARNING */
|
| - xsltErrorSeverityType errSeverity;
|
| - int warnings; /* TODO: number of warnings found at
|
| - compilation */
|
| - int errors; /* TODO: number of errors found at
|
| - compilation */
|
| - xmlDictPtr dict;
|
| - xsltStylesheetPtr style;
|
| - int simplified; /* whether this is a simplified stylesheet */
|
| - /* TODO: structured/unstructured error contexts. */
|
| - int depth; /* Current depth of processing */
|
| -
|
| - xsltCompilerNodeInfoPtr inode;
|
| - xsltCompilerNodeInfoPtr inodeList;
|
| - xsltCompilerNodeInfoPtr inodeLast;
|
| - xsltPointerListPtr tmpList; /* Used for various purposes */
|
| - /*
|
| - * The XSLT version as specified by the stylesheet's root element.
|
| - */
|
| - int isInclude;
|
| - int hasForwardsCompat; /* whether forwards-compatible mode was used
|
| - in a parsing episode */
|
| - int maxNodeInfos; /* TEMP TODO: just for the interest */
|
| - int maxLREs; /* TEMP TODO: just for the interest */
|
| - /*
|
| - * In order to keep the old behaviour, applying strict rules of
|
| - * the spec can be turned off. This has effect only on special
|
| - * mechanisms like whitespace-stripping in the stylesheet.
|
| - */
|
| - int strict;
|
| - xsltPrincipalStylesheetDataPtr psData;
|
| -#ifdef XSLT_REFACTORED_XPATHCOMP
|
| - xmlXPathContextPtr xpathCtxt;
|
| -#endif
|
| - xsltStyleItemUknownPtr unknownItem;
|
| - int hasNsAliases; /* Indicator if there was an xsl:namespace-alias. */
|
| - xsltNsAliasPtr nsAliases;
|
| - xsltVarInfoPtr ivars; /* Storage of local in-scope variables/params. */
|
| - xsltVarInfoPtr ivar; /* topmost local variable/param. */
|
| -};
|
| -
|
| -#else /* XSLT_REFACTORED */
|
| -/*
|
| -* The old structures before refactoring.
|
| -*/
|
| -
|
| -/**
|
| - * _xsltStylePreComp:
|
| - *
|
| - * The in-memory structure corresponding to XSLT stylesheet constructs
|
| - * precomputed data.
|
| - */
|
| -struct _xsltStylePreComp {
|
| - xsltElemPreCompPtr next; /* chained list */
|
| - xsltStyleType type; /* type of the element */
|
| - xsltTransformFunction func; /* handling function */
|
| - xmlNodePtr inst; /* the instruction */
|
| -
|
| - /*
|
| - * Pre computed values.
|
| - */
|
| -
|
| - const xmlChar *stype; /* sort */
|
| - int has_stype; /* sort */
|
| - int number; /* sort */
|
| - const xmlChar *order; /* sort */
|
| - int has_order; /* sort */
|
| - int descending; /* sort */
|
| - const xmlChar *lang; /* sort */
|
| - int has_lang; /* sort */
|
| - xsltLocale locale; /* sort */
|
| - const xmlChar *case_order; /* sort */
|
| - int lower_first; /* sort */
|
| -
|
| - const xmlChar *use; /* copy, element */
|
| - int has_use; /* copy, element */
|
| -
|
| - int noescape; /* text */
|
| -
|
| - const xmlChar *name; /* element, attribute, pi */
|
| - int has_name; /* element, attribute, pi */
|
| - const xmlChar *ns; /* element */
|
| - int has_ns; /* element */
|
| -
|
| - const xmlChar *mode; /* apply-templates */
|
| - const xmlChar *modeURI; /* apply-templates */
|
| -
|
| - const xmlChar *test; /* if */
|
| -
|
| - xsltTemplatePtr templ; /* call-template */
|
| -
|
| - const xmlChar *select; /* sort, copy-of, value-of, apply-templates */
|
| -
|
| - int ver11; /* document */
|
| - const 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 */
|
| -};
|
| -
|
| -#endif /* XSLT_REFACTORED */
|
| -
|
| -
|
| -/*
|
| - * The in-memory structure corresponding to an XSLT Variable
|
| - * or Param.
|
| - */
|
| -typedef struct _xsltStackElem xsltStackElem;
|
| -typedef xsltStackElem *xsltStackElemPtr;
|
| -struct _xsltStackElem {
|
| - struct _xsltStackElem *next;/* chained list */
|
| - xsltStylePreCompPtr comp; /* the compiled form */
|
| - int computed; /* was the evaluation done */
|
| - const xmlChar *name; /* the local part of the name QName */
|
| - const xmlChar *nameURI; /* the URI part of the name QName */
|
| - const xmlChar *select; /* the eval string */
|
| - xmlNodePtr tree; /* the sequence constructor if no eval
|
| - string or the location */
|
| - xmlXPathObjectPtr value; /* The value if computed */
|
| - xmlDocPtr fragment; /* The Result Tree Fragments (needed for XSLT 1.0)
|
| - which are bound to the variable's lifetime. */
|
| - int level; /* the depth in the tree;
|
| - -1 if persistent (e.g. a given xsl:with-param) */
|
| - xsltTransformContextPtr context; /* The transformation context; needed to cache
|
| - the variables */
|
| - int flags;
|
| -};
|
| -
|
| -#ifdef XSLT_REFACTORED
|
| -
|
| -struct _xsltPrincipalStylesheetData {
|
| - /*
|
| - * Namespace dictionary for ns-prefixes and ns-names:
|
| - * TODO: Shared between stylesheets, and XPath mechanisms.
|
| - * Not used yet.
|
| - */
|
| - xmlDictPtr namespaceDict;
|
| - /*
|
| - * Global list of in-scope namespaces.
|
| - */
|
| - xsltPointerListPtr inScopeNamespaces;
|
| - /*
|
| - * Global list of information for [xsl:]excluded-result-prefixes.
|
| - */
|
| - xsltPointerListPtr exclResultNamespaces;
|
| - /*
|
| - * Global list of information for [xsl:]extension-element-prefixes.
|
| - */
|
| - xsltPointerListPtr extElemNamespaces;
|
| - xsltEffectiveNsPtr effectiveNs;
|
| -#ifdef XSLT_REFACTORED_XSLT_NSCOMP
|
| - /*
|
| - * Namespace name map to get rid of string comparison of namespace names.
|
| - */
|
| - xsltNsMapPtr nsMap;
|
| -#endif
|
| -};
|
| -
|
| -
|
| -#endif
|
| -/*
|
| - * Note that we added a @compCtxt field to anchor an stylesheet compilation
|
| - * context, since, due to historical reasons, various compile-time function
|
| - * take only the stylesheet as argument and not a compilation context.
|
| - */
|
| -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.
|
| - * NOTE: Not used in the refactored code.
|
| - */
|
| - xmlHashTablePtr nsAliases; /* the namespace alias hash tables */
|
| -
|
| - /*
|
| - * Attribute sets.
|
| - */
|
| - xmlHashTablePtr attributeSets;/* the attribute sets hash tables */
|
| -
|
| - /*
|
| - * Namespaces.
|
| - * TODO: Eliminate this.
|
| - */
|
| - xmlHashTablePtr nsHash; /* the set of namespaces in use:
|
| - ATTENTION: This is used for
|
| - execution of XPath expressions; unfortunately
|
| - it restricts the stylesheet to have distinct
|
| - prefixes.
|
| - TODO: We need to get rid of this.
|
| - */
|
| - void *nsDefs; /* ATTENTION TODO: This is currently used to store
|
| - xsltExtDefPtr (in extensions.c) and
|
| - *not* xmlNsPtr.
|
| - */
|
| -
|
| - /*
|
| - * 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 */
|
| -
|
| - /*
|
| - * dictionary: shared between stylesheet, context and documents.
|
| - */
|
| - xmlDictPtr dict;
|
| - /*
|
| - * precompiled attribute value templates.
|
| - */
|
| - void *attVTs;
|
| - /*
|
| - * if namespace-alias has an alias for the default stylesheet prefix
|
| - * NOTE: Not used in the refactored code.
|
| - */
|
| - const xmlChar *defaultAlias;
|
| - /*
|
| - * bypass pre-processing (already done) (used in imports)
|
| - */
|
| - int nopreproc;
|
| - /*
|
| - * all document text strings were internalized
|
| - */
|
| - int internalized;
|
| - /*
|
| - * Literal Result Element as Stylesheet c.f. section 2.3
|
| - */
|
| - int literal_result;
|
| - /*
|
| - * The principal stylesheet
|
| - */
|
| - xsltStylesheetPtr principal;
|
| -#ifdef XSLT_REFACTORED
|
| - /*
|
| - * Compilation context used during compile-time.
|
| - */
|
| - xsltCompilerCtxtPtr compCtxt; /* TODO: Change this to (void *). */
|
| -
|
| - xsltPrincipalStylesheetDataPtr principalData;
|
| -#endif
|
| - /*
|
| - * Forwards-compatible processing
|
| - */
|
| - int forwards_compatible;
|
| -
|
| - xmlHashTablePtr namedTemplates; /* hash table of named templates */
|
| -};
|
| -
|
| -typedef struct _xsltTransformCache xsltTransformCache;
|
| -typedef xsltTransformCache *xsltTransformCachePtr;
|
| -struct _xsltTransformCache {
|
| - xmlDocPtr RVT;
|
| - int nbRVT;
|
| - xsltStackElemPtr stackItems;
|
| - int nbStackItems;
|
| -#ifdef XSLT_DEBUG_PROFILE_CACHE
|
| - int dbgCachedRVTs;
|
| - int dbgReusedRVTs;
|
| - int dbgCachedVars;
|
| - int dbgReusedVars;
|
| -#endif
|
| -};
|
| -
|
| -/*
|
| - * The in-memory structure corresponding to an XSLT Transformation.
|
| - */
|
| -typedef enum {
|
| - XSLT_OUTPUT_XML = 0,
|
| - XSLT_OUTPUT_HTML,
|
| - XSLT_OUTPUT_TEXT
|
| -} xsltOutputType;
|
| -
|
| -typedef enum {
|
| - XSLT_STATE_OK = 0,
|
| - XSLT_STATE_ERROR,
|
| - XSLT_STATE_STOPPED
|
| -} xsltTransformState;
|
| -
|
| -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 source document; can be NULL if an RTF */
|
| - 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
|
| - * (XSLT 1.0 term: "Result Tree Fragment")
|
| - */
|
| - 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 */
|
| - int lasttsize; /* last text node size */
|
| - 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 */
|
| -
|
| - int parserOptions; /* parser options xmlParserOption */
|
| -
|
| - /*
|
| - * dictionary: shared between stylesheet, context and documents.
|
| - */
|
| - xmlDictPtr dict;
|
| - xmlDocPtr tmpDoc; /* Obsolete; not used in the library. */
|
| - /*
|
| - * all document text strings are internalized
|
| - */
|
| - int internalized;
|
| - int nbKeys;
|
| - int hasTemplKeyPatterns;
|
| - xsltTemplatePtr currentTemplateRule; /* the Current Template Rule */
|
| - xmlNodePtr initialContextNode;
|
| - xmlDocPtr initialContextDoc;
|
| - xsltTransformCachePtr cache;
|
| - void *contextVariable; /* the current variable item */
|
| - xmlDocPtr localRVT; /* list of local tree fragments; will be freed when
|
| - the instruction which created the fragment
|
| - exits */
|
| - xmlDocPtr localRVTBase; /* Obsolete */
|
| - int keyInitLevel; /* Needed to catch recursive keys issues */
|
| - int depth; /* Needed to catch recursions */
|
| - int maxTemplateDepth;
|
| - int maxTemplateVars;
|
| -};
|
| -
|
| -/**
|
| - * CHECK_STOPPED:
|
| - *
|
| - * Macro to check if the XSLT processing should be stopped.
|
| - * Will return from the function.
|
| - */
|
| -#define CHECK_STOPPED if (ctxt->state == XSLT_STATE_STOPPED) return;
|
| -
|
| -/**
|
| - * CHECK_STOPPEDE:
|
| - *
|
| - * Macro to check if the XSLT processing should be stopped.
|
| - * Will goto the error: label.
|
| - */
|
| -#define CHECK_STOPPEDE if (ctxt->state == XSLT_STATE_STOPPED) goto error;
|
| -
|
| -/**
|
| - * CHECK_STOPPED0:
|
| - *
|
| - * Macro to check if the XSLT processing should be stopped.
|
| - * Will return from the function with a 0 value.
|
| - */
|
| -#define CHECK_STOPPED0 if (ctxt->state == XSLT_STATE_STOPPED) return(0);
|
| -
|
| -/*
|
| - * The macro XML_CAST_FPTR is a hack to avoid a gcc warning about
|
| - * possible incompatibilities between function pointers and object
|
| - * pointers. It is defined in libxml/hash.h within recent versions
|
| - * of libxml2, but is put here for compatibility.
|
| - */
|
| -#ifndef XML_CAST_FPTR
|
| -/**
|
| - * XML_CAST_FPTR:
|
| - * @fptr: pointer to a function
|
| - *
|
| - * Macro to do a casting from an object pointer to a
|
| - * function pointer without encountering a warning from
|
| - * gcc
|
| - *
|
| - * #define XML_CAST_FPTR(fptr) (*(void **)(&fptr))
|
| - * This macro violated ISO C aliasing rules (gcc4 on s390 broke)
|
| - * so it is disabled now
|
| - */
|
| -
|
| -#define XML_CAST_FPTR(fptr) fptr
|
| -#endif
|
| -/*
|
| - * Functions associated to the internal types
|
| -xsltDecimalFormatPtr xsltDecimalFormatGetByName(xsltStylesheetPtr sheet,
|
| - xmlChar *name);
|
| - */
|
| -XSLTPUBFUN xsltStylesheetPtr XSLTCALL
|
| - xsltNewStylesheet (void);
|
| -XSLTPUBFUN xsltStylesheetPtr XSLTCALL
|
| - xsltParseStylesheetFile (const xmlChar* filename);
|
| -XSLTPUBFUN void XSLTCALL
|
| - xsltFreeStylesheet (xsltStylesheetPtr style);
|
| -XSLTPUBFUN int XSLTCALL
|
| - xsltIsBlank (xmlChar *str);
|
| -XSLTPUBFUN void XSLTCALL
|
| - xsltFreeStackElemList (xsltStackElemPtr elem);
|
| -XSLTPUBFUN xsltDecimalFormatPtr XSLTCALL
|
| - xsltDecimalFormatGetByName(xsltStylesheetPtr style,
|
| - xmlChar *name);
|
| -XSLTPUBFUN xsltDecimalFormatPtr XSLTCALL
|
| - xsltDecimalFormatGetByQName(xsltStylesheetPtr style,
|
| - const xmlChar *nsUri,
|
| - const xmlChar *name);
|
| -
|
| -XSLTPUBFUN xsltStylesheetPtr XSLTCALL
|
| - xsltParseStylesheetProcess(xsltStylesheetPtr ret,
|
| - xmlDocPtr doc);
|
| -XSLTPUBFUN void XSLTCALL
|
| - xsltParseStylesheetOutput(xsltStylesheetPtr style,
|
| - xmlNodePtr cur);
|
| -XSLTPUBFUN xsltStylesheetPtr XSLTCALL
|
| - xsltParseStylesheetDoc (xmlDocPtr doc);
|
| -XSLTPUBFUN xsltStylesheetPtr XSLTCALL
|
| - xsltParseStylesheetImportedDoc(xmlDocPtr doc,
|
| - xsltStylesheetPtr style);
|
| -XSLTPUBFUN xsltStylesheetPtr XSLTCALL
|
| - xsltLoadStylesheetPI (xmlDocPtr doc);
|
| -XSLTPUBFUN void XSLTCALL
|
| - xsltNumberFormat (xsltTransformContextPtr ctxt,
|
| - xsltNumberDataPtr data,
|
| - xmlNodePtr node);
|
| -XSLTPUBFUN xmlXPathError XSLTCALL
|
| - xsltFormatNumberConversion(xsltDecimalFormatPtr self,
|
| - xmlChar *format,
|
| - double number,
|
| - xmlChar **result);
|
| -
|
| -XSLTPUBFUN void XSLTCALL
|
| - xsltParseTemplateContent(xsltStylesheetPtr style,
|
| - xmlNodePtr templ);
|
| -XSLTPUBFUN int XSLTCALL
|
| - xsltAllocateExtra (xsltStylesheetPtr style);
|
| -XSLTPUBFUN int XSLTCALL
|
| - xsltAllocateExtraCtxt (xsltTransformContextPtr ctxt);
|
| -/*
|
| - * Extra functions for Result Value Trees
|
| - */
|
| -XSLTPUBFUN xmlDocPtr XSLTCALL
|
| - xsltCreateRVT (xsltTransformContextPtr ctxt);
|
| -XSLTPUBFUN int XSLTCALL
|
| - xsltRegisterTmpRVT (xsltTransformContextPtr ctxt,
|
| - xmlDocPtr RVT);
|
| -XSLTPUBFUN int XSLTCALL
|
| - xsltRegisterLocalRVT (xsltTransformContextPtr ctxt,
|
| - xmlDocPtr RVT);
|
| -XSLTPUBFUN int XSLTCALL
|
| - xsltRegisterPersistRVT (xsltTransformContextPtr ctxt,
|
| - xmlDocPtr RVT);
|
| -XSLTPUBFUN int XSLTCALL
|
| - xsltExtensionInstructionResultRegister(
|
| - xsltTransformContextPtr ctxt,
|
| - xmlXPathObjectPtr obj);
|
| -XSLTPUBFUN int XSLTCALL
|
| - xsltExtensionInstructionResultFinalize(
|
| - xsltTransformContextPtr ctxt);
|
| -XSLTPUBFUN int XSLTCALL
|
| - xsltFlagRVTs(
|
| - xsltTransformContextPtr ctxt,
|
| - xmlXPathObjectPtr obj,
|
| - void *val);
|
| -XSLTPUBFUN void XSLTCALL
|
| - xsltFreeRVTs (xsltTransformContextPtr ctxt);
|
| -XSLTPUBFUN void XSLTCALL
|
| - xsltReleaseRVT (xsltTransformContextPtr ctxt,
|
| - xmlDocPtr RVT);
|
| -/*
|
| - * Extra functions for Attribute Value Templates
|
| - */
|
| -XSLTPUBFUN void XSLTCALL
|
| - xsltCompileAttr (xsltStylesheetPtr style,
|
| - xmlAttrPtr attr);
|
| -XSLTPUBFUN xmlChar * XSLTCALL
|
| - xsltEvalAVT (xsltTransformContextPtr ctxt,
|
| - void *avt,
|
| - xmlNodePtr node);
|
| -XSLTPUBFUN void XSLTCALL
|
| - xsltFreeAVTList (void *avt);
|
| -
|
| -/*
|
| - * Extra function for successful xsltCleanupGlobals / xsltInit sequence.
|
| - */
|
| -
|
| -XSLTPUBFUN void XSLTCALL
|
| - xsltUninit (void);
|
| -
|
| -/************************************************************************
|
| - * *
|
| - * Compile-time functions for *internal* use only *
|
| - * *
|
| - ************************************************************************/
|
| -
|
| -#ifdef XSLT_REFACTORED
|
| -XSLTPUBFUN void XSLTCALL
|
| - xsltParseSequenceConstructor(
|
| - xsltCompilerCtxtPtr cctxt,
|
| - xmlNodePtr start);
|
| -XSLTPUBFUN int XSLTCALL
|
| - xsltParseAnyXSLTElem (xsltCompilerCtxtPtr cctxt,
|
| - xmlNodePtr elem);
|
| -#ifdef XSLT_REFACTORED_XSLT_NSCOMP
|
| -XSLTPUBFUN int XSLTCALL
|
| - xsltRestoreDocumentNamespaces(
|
| - xsltNsMapPtr ns,
|
| - xmlDocPtr doc);
|
| -#endif
|
| -#endif /* XSLT_REFACTORED */
|
| -
|
| -/************************************************************************
|
| - * *
|
| - * Transformation-time functions for *internal* use only *
|
| - * *
|
| - ************************************************************************/
|
| -XSLTPUBFUN int XSLTCALL
|
| - xsltInitCtxtKey (xsltTransformContextPtr ctxt,
|
| - xsltDocumentPtr doc,
|
| - xsltKeyDefPtr keyd);
|
| -XSLTPUBFUN int XSLTCALL
|
| - xsltInitAllDocKeys (xsltTransformContextPtr ctxt);
|
| -#ifdef __cplusplus
|
| -}
|
| -#endif
|
| -
|
| -#endif /* __XML_XSLT_H__ */
|
| -
|
|
|