X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=doc%2Fhtml%2Flibxslt-xsltInternals.html;h=9f58198587a72623ba3773aec8918b46c3a3737d;hb=26c586d2a2891c884c79f2a68b68f2a3c7499787;hp=1ca070ba1118929a442be03069ef5e4888521cd1;hpb=051989b9ec53e509cb6f961fcaa765c18f9967f7;p=platform%2Fupstream%2Flibxslt.git diff --git a/doc/html/libxslt-xsltInternals.html b/doc/html/libxslt-xsltInternals.html index 1ca070b..9f58198 100644 --- a/doc/html/libxslt-xsltInternals.html +++ b/doc/html/libxslt-xsltInternals.html @@ -1,684 +1,340 @@ - -xsltInternals

xsltInternals

xsltInternals —

Synopsis

-
-
-
-#define     XSLT_MAX_SORT
-#define     XSLT_PAT_NO_PRIORITY
-struct      xsltRuntimeExtra;
-typedef     xsltRuntimeExtraPtr;
-#define     XSLT_RUNTIME_EXTRA_LST          (ctxt, nr)
-#define     XSLT_RUNTIME_EXTRA_FREE         (ctxt, nr)
-#define     XSLT_RUNTIME_EXTRA              (ctxt, nr)
-struct      xsltTemplate;
-typedef     xsltTemplatePtr;
-struct      xsltDecimalFormat;
-typedef     xsltDecimalFormatPtr;
-struct      xsltDocument;
-typedef     xsltDocumentPtr;
-struct      xsltTransformContext;
-typedef     xsltTransformContextPtr;
-struct      xsltElemPreComp;
-typedef     xsltElemPreCompPtr;
-void        (*xsltTransformFunction)        (xsltTransformContextPtr ctxt,
-                                             xmlNodePtr node,
-                                             xmlNodePtr inst,
-                                             xsltElemPreCompPtr comp);
-void        (*xsltSortFunc)                 (xsltTransformContextPtr ctxt,
-                                             xmlNodePtr *sorts,
-                                             int nbsorts);
-enum        xsltStyleType;
-void        (*xsltElemPreCompDeallocator)   (xsltElemPreCompPtr comp);
-struct      xsltStylePreComp;
-typedef     xsltStylePreCompPtr;
-struct      xsltStackElem;
-typedef     xsltStackElemPtr;
-struct      xsltStylesheet;
-typedef     xsltStylesheetPtr;
-enum        xsltOutputType;
-enum        xsltTransformState;
-#define     CHECK_STOPPED
-#define     CHECK_STOPPEDE
-#define     CHECK_STOPPED0
-xsltStylesheetPtr xsltNewStylesheet         (void);
-xsltStylesheetPtr xsltParseStylesheetFile   (const xmlChar *filename);
-void        xsltFreeStylesheet              (xsltStylesheetPtr sheet);
-int         xsltIsBlank                     (xmlChar *str);
-void        xsltFreeStackElemList           (xsltStackElemPtr elem);
-xsltDecimalFormatPtr xsltDecimalFormatGetByName
-                                            (xsltStylesheetPtr sheet,
-                                             xmlChar *name);
-xsltStylesheetPtr xsltParseStylesheetProcess
-                                            (xsltStylesheetPtr ret,
-                                             xmlDocPtr doc);
-void        xsltParseStylesheetOutput       (xsltStylesheetPtr style,
-                                             xmlNodePtr cur);
-xsltStylesheetPtr xsltParseStylesheetDoc    (xmlDocPtr doc);
-xsltStylesheetPtr xsltParseStylesheetImportedDoc
-                                            (xmlDocPtr doc);
-xsltStylesheetPtr xsltLoadStylesheetPI      (xmlDocPtr doc);
-void        xsltNumberFormat                (xsltTransformContextPtr ctxt,
-                                             xsltNumberDataPtr data,
-                                             xmlNodePtr node);
-xmlXPathError xsltFormatNumberConversion    (xsltDecimalFormatPtr self,
-                                             xmlChar *format,
-                                             double number,
-                                             xmlChar **result);
-void        xsltParseTemplateContent        (xsltStylesheetPtr style,
-                                             xmlNodePtr templ);
-int         xsltAllocateExtra               (xsltStylesheetPtr style);
-int         xsltAllocateExtraCtxt           (xsltTransformContextPtr ctxt);
-

Description

- -

Details

XSLT_MAX_SORT

#define XSLT_MAX_SORT 15
-

-Max number of specified xsl:sort on an element.

- -


XSLT_PAT_NO_PRIORITY

#define XSLT_PAT_NO_PRIORITY -12345789
-

-Specific value for pattern without priority expressed.

- -


struct xsltRuntimeExtra

struct xsltRuntimeExtra {
-    void       *info;		/* pointer to the extra data */
-    xmlFreeFunc deallocate;	/* pointer to the deallocation routine */
-    void       *val;		/* data not needing deallocation */
-};
-

-Extra information added to the transformation context.

- -


xsltRuntimeExtraPtr

typedef xsltRuntimeExtra *xsltRuntimeExtraPtr;
-

- -


XSLT_RUNTIME_EXTRA_LST()

#define XSLT_RUNTIME_EXTRA_LST(ctxt, nr) (ctxt)->extras[(nr)].info
-

-Macro used to access extra information stored in the context

- -

ctxt : the transformation context -
nr : the index -

XSLT_RUNTIME_EXTRA_FREE()

#define XSLT_RUNTIME_EXTRA_FREE(ctxt, nr) (ctxt)->extras[(nr)].deallocate
-

-Macro used to free extra information stored in the context

- -

ctxt : the transformation context -
nr : the index -

XSLT_RUNTIME_EXTRA()

#define	XSLT_RUNTIME_EXTRA(ctxt, nr) (ctxt)->extras[(nr)].val
-

-Macro used to define extra information stored in the context

- -

ctxt : the transformation context -
nr : the index -

struct xsltTemplate

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 */
-};
-

-The in-memory structure corresponding to an XSLT Template.

- -


xsltTemplatePtr

typedef xsltTemplate *xsltTemplatePtr;
-

- -


struct xsltDecimalFormat

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;
-};
-

-Data structure of decimal-format.

- -


xsltDecimalFormatPtr

typedef xsltDecimalFormat *xsltDecimalFormatPtr;
-

- -


struct xsltDocument

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 */
-};
-

-Data structure associated to a parsed document.

- -


xsltDocumentPtr

typedef xsltDocument *xsltDocumentPtr;
-

- -


struct xsltTransformContext

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 */
-};
-

- -


xsltTransformContextPtr

typedef xsltTransformContext *xsltTransformContextPtr;
-

- -


struct xsltElemPreComp

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 */
-};
-

-The in-memory structure corresponding to element precomputed data, -designed to be extended by extension implementors.

- -


xsltElemPreCompPtr

typedef xsltElemPreComp *xsltElemPreCompPtr;
-

- -


xsltTransformFunction ()

void        (*xsltTransformFunction)        (xsltTransformContextPtr ctxt,
-                                             xmlNodePtr node,
-                                             xmlNodePtr inst,
-                                             xsltElemPreCompPtr comp);

-Signature of the function associated to elements part of the -stylesheet language like xsl:if or xsl:apply-templates.

- -

ctxt : the XSLT transformation context -
node : the input node -
inst : the stylesheet node -
comp : the compiled information from the stylesheet -

xsltSortFunc ()

void        (*xsltSortFunc)                 (xsltTransformContextPtr ctxt,
-                                             xmlNodePtr *sorts,
-                                             int nbsorts);

-Signature of the function to use during sorting

- -

ctxt : a transformation context -
sorts : the node-set to sort -
nbsorts : the number of sorts -

enum xsltStyleType

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;
-

- -


xsltElemPreCompDeallocator ()

void        (*xsltElemPreCompDeallocator)   (xsltElemPreCompPtr comp);

-Deallocates an xsltElemPreComp structure.

- -

comp : the xsltElemPreComp to free up -

struct xsltStylePreComp

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 */
-};
-

-The in-memory structure corresponding to XSLT stylesheet constructs -precomputed data.

- -


xsltStylePreCompPtr

typedef xsltStylePreComp *xsltStylePreCompPtr;
-

- -


struct xsltStackElem

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 */
-};
-

- -


xsltStackElemPtr

typedef xsltStackElem *xsltStackElemPtr;
-

- -


struct xsltStylesheet

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 */
-};
-

- -


xsltStylesheetPtr

typedef xsltStylesheet *xsltStylesheetPtr;
-

- -


enum xsltOutputType

typedef enum {
-    XSLT_OUTPUT_XML = 0,
-    XSLT_OUTPUT_HTML,
-    XSLT_OUTPUT_TEXT
-} xsltOutputType;
-

- -


enum xsltTransformState

typedef enum {
-    XSLT_STATE_OK = 0,
-    XSLT_STATE_ERROR,
-    XSLT_STATE_STOPPED
-} xsltTransformState;
-

- -


CHECK_STOPPED

#define CHECK_STOPPED if (ctxt->state == XSLT_STATE_STOPPED) return;
-

-Macro to check if the XSLT processing should be stopped. -Will return from the function.

- -


CHECK_STOPPEDE

#define CHECK_STOPPEDE if (ctxt->state == XSLT_STATE_STOPPED) goto error;
-

-Macro to check if the XSLT processing should be stopped. -Will goto the error: label.

- -


CHECK_STOPPED0

#define CHECK_STOPPED0 if (ctxt->state == XSLT_STATE_STOPPED) return(0);
-

-Macro to check if the XSLT processing should be stopped. -Will return from the function with a 0 value.

- -


xsltNewStylesheet ()

xsltStylesheetPtr xsltNewStylesheet         (void);

-Create a new XSLT Stylesheet

- -

Returns :the newly allocated xsltStylesheetPtr or NULL in case of error -

xsltParseStylesheetFile ()

xsltStylesheetPtr xsltParseStylesheetFile   (const xmlChar *filename);

-Load and parse an XSLT stylesheet

- -

filename : the filename/URL to the stylesheet -
Returns :a new XSLT stylesheet structure. -

xsltFreeStylesheet ()

void        xsltFreeStylesheet              (xsltStylesheetPtr sheet);

-Free up the memory allocated by sheet

- -

sheet : an XSLT stylesheet -

xsltIsBlank ()

int         xsltIsBlank                     (xmlChar *str);

-Check if a string is ignorable

- -

str : a string -
Returns :1 if the string is NULL or made of blanks chars, 0 otherwise -

xsltFreeStackElemList ()

void        xsltFreeStackElemList           (xsltStackElemPtr elem);

-Free up the memory allocated by elem

- -

elem : an XSLT stack element -

xsltDecimalFormatGetByName ()

xsltDecimalFormatPtr xsltDecimalFormatGetByName
-                                            (xsltStylesheetPtr sheet,
-                                             xmlChar *name);

-Find decimal-format by name

- -

sheet : the XSLT stylesheet -
name : the decimal-format name to find -
Returns :the xsltDecimalFormatPtr -

xsltParseStylesheetProcess ()

xsltStylesheetPtr xsltParseStylesheetProcess
-                                            (xsltStylesheetPtr ret,
-                                             xmlDocPtr doc);

-parse an XSLT stylesheet adding the associated structures

- -

ret : the XSLT stylesheet -
doc : and xmlDoc parsed XML -
Returns :the value of the 'ret' parameter if everything -went right, NULL if something went amiss. -

xsltParseStylesheetOutput ()

void        xsltParseStylesheetOutput       (xsltStylesheetPtr style,
-                                             xmlNodePtr cur);

-parse an XSLT stylesheet output element and record -information related to the stylesheet output

- -

style : the XSLT stylesheet -
cur : the "output" element -

xsltParseStylesheetDoc ()

xsltStylesheetPtr xsltParseStylesheetDoc    (xmlDocPtr doc);

-parse an XSLT stylesheet building the associated structures

- -

doc : and xmlDoc parsed XML -
Returns :a new XSLT stylesheet structure. -

xsltParseStylesheetImportedDoc ()

xsltStylesheetPtr xsltParseStylesheetImportedDoc
-                                            (xmlDocPtr doc);

-parse an XSLT stylesheet building the associated structures -except the processing not needed for imported documents.

- -

doc : and xmlDoc parsed XML -
Returns :a new XSLT stylesheet structure. -

xsltLoadStylesheetPI ()

xsltStylesheetPtr xsltLoadStylesheetPI      (xmlDocPtr doc);

-This function tries to locate the stylesheet PI in the given document -If found, and if contained within the document, it will extract -that subtree to build the stylesheet to process doc (doc itself will -be modified). If found but referencing an external document it will -attempt to load it and generate a stylesheet from it. In both cases, -the resulting stylesheet and the document need to be freed once the -transformation is done.

- -

doc : a document to process -
Returns :a new XSLT stylesheet structure or NULL if not found. -

xsltNumberFormat ()

void        xsltNumberFormat                (xsltTransformContextPtr ctxt,
-                                             xsltNumberDataPtr data,
-                                             xmlNodePtr node);

-Convert one number.

- -

ctxt : the XSLT transformation context -
data : the formatting informations -
node : the data to format -

xsltFormatNumberConversion ()

xmlXPathError xsltFormatNumberConversion    (xsltDecimalFormatPtr self,
-                                             xmlChar *format,
-                                             double number,
-                                             xmlChar **result);

-format-number() uses the JDK 1.1 DecimalFormat class: -

-http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html -

-Structure: -

- pattern := subpattern{;subpattern} - subpattern := {prefix}integer{.fraction}{suffix} - prefix := '\\u0000'..'\\uFFFD' - specialCharacters - suffix := '\\u0000'..'\\uFFFD' - specialCharacters - integer := '#'* '0'* '0' - fraction := '0'* '#'* -

- Notation: - X* 0 or more instances of X - (X | Y) either X or Y. - X..Y any character from X up to Y, inclusive. - S - T characters in S, except those in T -

-Special Characters: -

- Symbol Meaning - 0 a digit - # a digit, zero shows as absent - . placeholder for decimal separator - , placeholder for grouping separator. - ; separates formats. - - default negative prefix. - % multiply by 100 and show as percentage - ? multiply by 1000 and show as per mille - X any other characters can be used in the prefix or suffix - ' used to quote special characters in a prefix or suffix.

- -

self : the decimal format -
format : the format requested -
number : the value to format -
result : the place to ouput the result -
Returns :a possible XPath error -

xsltParseTemplateContent ()

void        xsltParseTemplateContent        (xsltStylesheetPtr style,
-                                             xmlNodePtr templ);

-parse a template content-model -Clean-up the template content from unwanted ignorable blank nodes -and process xslt:text

- -

style : the XSLT stylesheet -
templ : the container node (can be a document for literal results) -

xsltAllocateExtra ()

int         xsltAllocateExtra               (xsltStylesheetPtr style);

-Allocate an extra runtime information slot statically while compiling -the stylesheet and return its number

- -

style : an XSLT stylesheet -
Returns :the number of the slot -

xsltAllocateExtraCtxt ()

int         xsltAllocateExtraCtxt           (xsltTransformContextPtr ctxt);

-Allocate an extra runtime information slot at run-time -and return its number -This make sure there is a slot ready in the transformation context

- -

ctxt : an XSLT transformation context -
Returns :the number of the slot -
+ + +Module xsltInternals from libxslt
Action against software patentsGnome2 LogoRed Hat Logo
Made with Libxslt Logo

Module xsltInternals from libxslt

API Menu
API Indexes
Related links

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.

Table of Contents

#define CHECK_STOPPED
#define CHECK_STOPPED0
#define CHECK_STOPPEDE
#define XSLT_MAX_SORT
#define XSLT_PAT_NO_PRIORITY
#define XSLT_RUNTIME_EXTRA
#define XSLT_RUNTIME_EXTRA_FREE
#define XSLT_RUNTIME_EXTRA_LST
Structure xsltDecimalFormat
struct _xsltDecimalFormat +
Typedef xsltDecimalFormat * xsltDecimalFormatPtr
+
Structure xsltDocument
struct _xsltDocument +
Typedef xsltDocument * xsltDocumentPtr
+
Structure xsltElemPreComp
struct _xsltElemPreComp +
Typedef xsltElemPreComp * xsltElemPreCompPtr
+
Enum xsltOutputType
+
Structure xsltRuntimeExtra
struct _xsltRuntimeExtra +
Typedef xsltRuntimeExtra * xsltRuntimeExtraPtr
+
Structure xsltStackElem
struct _xsltStackElem +
Typedef xsltStackElem * xsltStackElemPtr
+
Structure xsltStylePreComp
struct _xsltStylePreComp +
Typedef xsltStylePreComp * xsltStylePreCompPtr
+
Enum xsltStyleType
+
Structure xsltStylesheet
struct _xsltStylesheet +
Typedef xsltStylesheet * xsltStylesheetPtr
+
Structure xsltTemplate
struct _xsltTemplate +
Typedef xsltTemplate * xsltTemplatePtr
+
Structure xsltTransformContext
struct _xsltTransformContext +
Typedef xsltTransformContext * xsltTransformContextPtr
+
Enum xsltTransformState
+
int	xsltAllocateExtra		(xsltStylesheetPtr style)
+
int	xsltAllocateExtraCtxt		(xsltTransformContextPtr ctxt)
+
xmlDocPtr	xsltCreateRVT		(xsltTransformContextPtr ctxt)
+
xsltDecimalFormatPtr	xsltDecimalFormatGetByName	(xsltStylesheetPtr sheet, 
xmlChar * name)
+
Function type: xsltElemPreCompDeallocator
+void	xsltElemPreCompDeallocator	(xsltElemPreCompPtr comp)
+
+
xmlXPathError	xsltFormatNumberConversion	(xsltDecimalFormatPtr self, 
xmlChar * format,
double number,
xmlChar ** result)
+
void	xsltFreeRVTs			(xsltTransformContextPtr ctxt)
+
void	xsltFreeStackElemList		(xsltStackElemPtr elem)
+
void	xsltFreeStylesheet		(xsltStylesheetPtr sheet)
+
int	xsltIsBlank			(xmlChar * str)
+
xsltStylesheetPtr	xsltLoadStylesheetPI	(xmlDocPtr doc)
+
xsltStylesheetPtr	xsltNewStylesheet	(void)
+
void	xsltNumberFormat		(xsltTransformContextPtr ctxt, 
xsltNumberDataPtr data,
xmlNodePtr node)
+
xsltStylesheetPtr	xsltParseStylesheetDoc	(xmlDocPtr doc)
+
xsltStylesheetPtr	xsltParseStylesheetFile	(const xmlChar * filename)
+
xsltStylesheetPtr	xsltParseStylesheetImportedDoc	(xmlDocPtr doc, 
xsltStylesheetPtr style)
+
void	xsltParseStylesheetOutput	(xsltStylesheetPtr style, 
xmlNodePtr cur)
+
xsltStylesheetPtr	xsltParseStylesheetProcess	(xsltStylesheetPtr ret, 
xmlDocPtr doc)
+
void	xsltParseTemplateContent	(xsltStylesheetPtr style, 
xmlNodePtr templ)
+
int	xsltRegisterPersistRVT		(xsltTransformContextPtr ctxt, 
xmlDocPtr RVT)
+
int	xsltRegisterTmpRVT		(xsltTransformContextPtr ctxt, 
xmlDocPtr RVT)
+
Function type: xsltSortFunc
+void	xsltSortFunc			(xsltTransformContextPtr ctxt, 
xmlNodePtr * sorts,
int nbsorts) +
+
Function type: xsltTransformFunction
+void	xsltTransformFunction		(xsltTransformContextPtr ctxt, 
xmlNodePtr node,
xmlNodePtr inst,
xsltElemPreCompPtr comp) +
+

Description

+

Macro: CHECK_STOPPED

#define CHECK_STOPPED

Macro to check if the XSLT processing should be stopped. Will return from the function.

+

Macro: CHECK_STOPPED0

#define CHECK_STOPPED0

Macro to check if the XSLT processing should be stopped. Will return from the function with a 0 value.

+

Macro: CHECK_STOPPEDE

#define CHECK_STOPPEDE

Macro to check if the XSLT processing should be stopped. Will goto the error: label.

+

Macro: XSLT_MAX_SORT

#define XSLT_MAX_SORT

Max number of specified xsl:sort on an element.

+

Macro: XSLT_PAT_NO_PRIORITY

#define XSLT_PAT_NO_PRIORITY

Specific value for pattern without priority expressed.

+

Macro: XSLT_RUNTIME_EXTRA

#define XSLT_RUNTIME_EXTRA

Macro used to define extra information stored in the context

+

Macro: XSLT_RUNTIME_EXTRA_FREE

#define XSLT_RUNTIME_EXTRA_FREE

Macro used to free extra information stored in the context

+

Macro: XSLT_RUNTIME_EXTRA_LST

#define XSLT_RUNTIME_EXTRA_LST

Macro used to access extra information stored in the context

+

Structure xsltDecimalFormat

Structure xsltDecimalFormat
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 + xmlChar * decimalPoint + xmlChar * grouping + xmlChar * percent + xmlChar * permille + xmlChar * zeroDigit +}

Structure xsltDocument

Structure xsltDocument
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 +}

Structure xsltElemPreComp

Structure xsltElemPreComp
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 +}

Enum xsltOutputType

Enum xsltOutputType {
+    XSLT_OUTPUT_XML = 0
+    XSLT_OUTPUT_HTML = 1
+    XSLT_OUTPUT_TEXT = 2
+}
+

Structure xsltRuntimeExtra

Structure xsltRuntimeExtra
struct _xsltRuntimeExtra { + void * info : pointer to the extra data + xmlFreeFunc deallocate : pointer to the deallocation routine + void * val : data not needing deallocation +}

Structure xsltStackElem

Structure xsltStackElem
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 locat + xmlXPathObjectPtr value : The value if computed +}

Structure xsltStylePreComp

Structure xsltStylePreComp
struct _xsltStylePreComp { + xsltElemPreCompPtr next : chained list + xsltStyleType type : type of the element + xsltTransformFunction func : handling function + xmlNodePtr inst : * 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-template + 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 +}

Enum xsltStyleType

Enum xsltStyleType {
+    XSLT_FUNC_COPY = 1
+    XSLT_FUNC_SORT = 2
+    XSLT_FUNC_TEXT = 3
+    XSLT_FUNC_ELEMENT = 4
+    XSLT_FUNC_ATTRIBUTE = 5
+    XSLT_FUNC_COMMENT = 6
+    XSLT_FUNC_PI = 7
+    XSLT_FUNC_COPYOF = 8
+    XSLT_FUNC_VALUEOF = 9
+    XSLT_FUNC_NUMBER = 10
+    XSLT_FUNC_APPLYIMPORTS = 11
+    XSLT_FUNC_CALLTEMPLATE = 12
+    XSLT_FUNC_APPLYTEMPLATES = 13
+    XSLT_FUNC_CHOOSE = 14
+    XSLT_FUNC_IF = 15
+    XSLT_FUNC_FOREACH = 16
+    XSLT_FUNC_DOCUMENT = 17
+    XSLT_FUNC_WITHPARAM = 18
+    XSLT_FUNC_PARAM = 19
+    XSLT_FUNC_VARIABLE = 20
+    XSLT_FUNC_WHEN = 21
+    XSLT_FUNC_EXTENSION = 22
+}
+

Structure xsltStylesheet

Structure xsltStylesheet
struct _xsltStylesheet { + struct _xsltStylesheet * parent + struct _xsltStylesheet * next + struct _xsltStylesheet * imports + xsltDocumentPtr docList : * General data on the style sheet docume + xmlDocPtr doc : the parsed XML stylesheet + xmlHashTablePtr stripSpaces : the hash table of the strip-space and p + int stripAll : strip-space * (1) preserve-space * (-1) + xmlHashTablePtr cdataSection : * Global variable or parameters. * + xsltStackElemPtr variables : * Template descriptions. * + xsltTemplatePtr templates : the ordered list of templates + void * templatesHash : hash table or wherever compiled templat + 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-instructio + void * commentMatch : * Namespace aliases. * + xmlHashTablePtr nsAliases : * Attribute sets. * + xmlHashTablePtr attributeSets : * Namespaces. * + xmlHashTablePtr nsHash : the set of namespaces in use + void * nsDefs : * Key definitions. * + void * keys : * Output related stuff. * + xmlChar * method : the output method + xmlChar * methodURI : associated namespace if any + xmlChar * version : version string + xmlChar * encoding : encoding string + int omitXmlDeclaration : * 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 : * 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 : * Extensions. * + xmlHashTablePtr extInfos : the extension data + int extrasNr : * For keeping track of nested includes * + xsltDocumentPtr includes : points to last nested include +}

Structure xsltTemplate

Structure xsltTemplate
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 compu + 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 Profi + int nbCalls : the number of time the template was cal + unsigned long time : the time spent in this template +}

Structure xsltTransformContext

Structure xsltTransformContext
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 : * 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 curren + xmlDocPtr output : the resulting document + xmlNodePtr insert : the insertion node + xmlXPathContextPtr xpathCtxt : the XPath context + xsltTransformState 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 : * handling of temporary Result Value Tre + xmlDocPtr tmpRVT : list of RVT without persistance + xmlDocPtr persistRVT : list of persistant RVTs + int ctxtflags : * Speed optimization when coalescing tex + const xmlChar * lasttext : last text node content + unsigned int lasttsize : last text node size + unsigned int lasttuse : * Per Context Debugging * + int debugStatus : the context level debug status + unsigned long * traceCode : pointer to the variable holding the mas +}

Enum xsltTransformState

Enum xsltTransformState {
+    XSLT_STATE_OK = 0
+    XSLT_STATE_ERROR = 1
+    XSLT_STATE_STOPPED = 2
+}
+

Function: xsltAllocateExtra

int	xsltAllocateExtra		(xsltStylesheetPtr style)
+

Allocate an extra runtime information slot statically while compiling the stylesheet and return its number

+
style:an XSLT stylesheet
Returns:the number of the slot

Function: xsltAllocateExtraCtxt

int	xsltAllocateExtraCtxt		(xsltTransformContextPtr ctxt)
+

Allocate an extra runtime information slot at run-time and return its number This make sure there is a slot ready in the transformation context

+
ctxt:an XSLT transformation context
Returns:the number of the slot

Function: xsltCreateRVT

xmlDocPtr	xsltCreateRVT		(xsltTransformContextPtr ctxt)
+

Create a result value tree

+
ctxt:an XSLT transformation context
Returns:the result value tree or NULL in case of error

Function: xsltDecimalFormatGetByName

xsltDecimalFormatPtr	xsltDecimalFormatGetByName	(xsltStylesheetPtr sheet, 
xmlChar * name)
+

Find decimal-format by name

+
sheet:the XSLT stylesheet
name:the decimal-format name to find
Returns:the xsltDecimalFormatPtr

Function type: xsltElemPreCompDeallocator

Function type: xsltElemPreCompDeallocator
+void	xsltElemPreCompDeallocator	(xsltElemPreCompPtr comp)
+

Deallocates an #xsltElemPreComp structure.

comp:the #xsltElemPreComp to free up

+

Function: xsltFormatNumberConversion

xmlXPathError	xsltFormatNumberConversion	(xsltDecimalFormatPtr self, 
xmlChar * format,
double number,
xmlChar ** result)
+

format-number() uses the JDK 1.1 DecimalFormat class: http://java.sun.com/products/jdk/1.1/docs/api/java.text.DecimalFormat.html Structure: pattern := subpattern{;subpattern} subpattern := {prefix}integer{.fraction}{suffix} prefix := '\\u0000'..'\\uFFFD' - specialCharacters suffix := '\\u0000'..'\\uFFFD' - specialCharacters integer := '#'* '0'* '0' fraction := '0'* '#'* Notation: X* 0 or more instances of X (X | Y) either X or Y. X..Y any character from X up to Y, inclusive. S - T characters in S, except those in T Special Characters: Symbol Meaning 0 a digit # a digit, zero shows as absent . placeholder for decimal separator , placeholder for grouping separator. ; separates formats. - default negative prefix. % multiply by 100 and show as percentage ? multiply by 1000 and show as per mille X any other characters can be used in the prefix or suffix ' used to quote special characters in a prefix or suffix.

+
self:the decimal format
format:the format requested
number:the value to format
result:the place to ouput the result
Returns:a possible XPath error

Function: xsltFreeRVTs

void	xsltFreeRVTs			(xsltTransformContextPtr ctxt)
+

Free all the registered result value tree of the transformation

+
ctxt:an XSLT transformation context

Function: xsltFreeStackElemList

void	xsltFreeStackElemList		(xsltStackElemPtr elem)
+

Free up the memory allocated by @elem

+
elem:an XSLT stack element

Function: xsltFreeStylesheet

void	xsltFreeStylesheet		(xsltStylesheetPtr sheet)
+

Free up the memory allocated by @sheet

+
sheet:an XSLT stylesheet

Function: xsltIsBlank

int	xsltIsBlank			(xmlChar * str)
+

Check if a string is ignorable

+
str:a string
Returns:1 if the string is NULL or made of blanks chars, 0 otherwise

Function: xsltLoadStylesheetPI

xsltStylesheetPtr	xsltLoadStylesheetPI	(xmlDocPtr doc)
+

This function tries to locate the stylesheet PI in the given document If found, and if contained within the document, it will extract that subtree to build the stylesheet to process @doc (doc itself will be modified). If found but referencing an external document it will attempt to load it and generate a stylesheet from it. In both cases, the resulting stylesheet and the document need to be freed once the transformation is done.

+
doc:a document to process
Returns:a new XSLT stylesheet structure or NULL if not found.

Function: xsltNewStylesheet

xsltStylesheetPtr	xsltNewStylesheet	(void)
+

Create a new XSLT Stylesheet

+
Returns:the newly allocated xsltStylesheetPtr or NULL in case of error

Function: xsltNumberFormat

void	xsltNumberFormat		(xsltTransformContextPtr ctxt, 
xsltNumberDataPtr data,
xmlNodePtr node)
+

Convert one number.

+
ctxt:the XSLT transformation context
data:the formatting informations
node:the data to format

Function: xsltParseStylesheetDoc

xsltStylesheetPtr	xsltParseStylesheetDoc	(xmlDocPtr doc)
+

parse an XSLT stylesheet building the associated structures

+
doc:and xmlDoc parsed XML
Returns:a new XSLT stylesheet structure.

Function: xsltParseStylesheetFile

xsltStylesheetPtr	xsltParseStylesheetFile	(const xmlChar * filename)
+

Load and parse an XSLT stylesheet

+
filename:the filename/URL to the stylesheet
Returns:a new XSLT stylesheet structure.

Function: xsltParseStylesheetImportedDoc

xsltStylesheetPtr	xsltParseStylesheetImportedDoc	(xmlDocPtr doc, 
xsltStylesheetPtr style)
+

parse an XSLT stylesheet building the associated structures except the processing not needed for imported documents.

+
doc:an xmlDoc parsed XML
style:pointer to parent stylesheet
Returns:a new XSLT stylesheet structure.

Function: xsltParseStylesheetOutput

void	xsltParseStylesheetOutput	(xsltStylesheetPtr style, 
xmlNodePtr cur)
+

parse an XSLT stylesheet output element and record information related to the stylesheet output

+
style:the XSLT stylesheet
cur:the "output" element

Function: xsltParseStylesheetProcess

xsltStylesheetPtr	xsltParseStylesheetProcess	(xsltStylesheetPtr ret, 
xmlDocPtr doc)
+

parse an XSLT stylesheet adding the associated structures

+
ret:the XSLT stylesheet
doc:and xmlDoc parsed XML
Returns:the value of the 'ret' parameter if everything went right, NULL if something went amiss.

Function: xsltParseTemplateContent

void	xsltParseTemplateContent	(xsltStylesheetPtr style, 
xmlNodePtr templ)
+

parse a template content-model Clean-up the template content from unwanted ignorable blank nodes and process xslt:text

+
style:the XSLT stylesheet
templ:the container node (can be a document for literal results)

Function: xsltRegisterPersistRVT

int	xsltRegisterPersistRVT		(xsltTransformContextPtr ctxt, 
xmlDocPtr RVT)
+

Register the result value tree for destruction at the end of the processing

+
ctxt:an XSLT transformation context
RVT:a result value tree
Returns:0 in case of success and -1 in case of error.

Function: xsltRegisterTmpRVT

int	xsltRegisterTmpRVT		(xsltTransformContextPtr ctxt, 
xmlDocPtr RVT)
+

Register the result value tree for destruction at the end of the context

+
ctxt:an XSLT transformation context
RVT:a result value tree
Returns:0 in case of success and -1 in case of error.

Function type: xsltSortFunc

Function type: xsltSortFunc
+void	xsltSortFunc			(xsltTransformContextPtr ctxt, 
xmlNodePtr * sorts,
int nbsorts) +

Signature of the function to use during sorting

ctxt:a transformation context
sorts:the node-set to sort
nbsorts:the number of sorts

+

Function type: xsltTransformFunction

Function type: xsltTransformFunction
+void	xsltTransformFunction		(xsltTransformContextPtr ctxt, 
xmlNodePtr node,
xmlNodePtr inst,
xsltElemPreCompPtr comp) +

Signature of the function associated to elements part of the stylesheet language like xsl:if or xsl:apply-templates.

ctxt:the XSLT transformation context
node:the input node
inst:the stylesheet node
comp:the compiled information from the stylesheet

+

Daniel Veillard