Action against software patentsGnome2 LogoW3C logoRed Hat Logo
Made with Libxslt Logo

The XSLT C library for Gnome

Module xsltInternals from libxslt

API Menu
Related links
API Indexes

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)
void	xsltCompileAttr			(xsltStylesheetPtr style, 
xmlAttrPtr attr)
xmlDocPtr	xsltCreateRVT		(xsltTransformContextPtr ctxt)
xsltDecimalFormatPtr	xsltDecimalFormatGetByName	(xsltStylesheetPtr sheet, 
xmlChar * name)
Function type: xsltElemPreCompDeallocator
void	xsltElemPreCompDeallocator	(xsltElemPreCompPtr comp)
xmlChar *	xsltEvalAVT		(xsltTransformContextPtr ctxt, 
void * avt,
xmlNodePtr node)
xmlXPathError	xsltFormatNumberConversion	(xsltDecimalFormatPtr self, 
xmlChar * format,
double number,
xmlChar ** result)
void	xsltFreeAVTList			(void * avt)
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 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 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. * 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 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-template 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 }

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 : * dictionnary: shared between stylesheet xmlDictPtr dict : * precompiled attribute value templates. void * attVTs : * if namespace-alias has an alias for th const xmlChar * defaultAlias }

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 int parserOptions : * dictionnary: shared between stylesheet xmlDictPtr dict }

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: xsltCompileAttr

void	xsltCompileAttr			(xsltStylesheetPtr style, 
xmlAttrPtr attr)

Precompile an attribute in a stylesheet, basically it checks if it is an attrubute value template, and if yes establish some structures needed to process it at transformation time.

style:a XSLT process context
attr:the attribute coming from the stylesheet.

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: xsltEvalAVT

xmlChar *	xsltEvalAVT		(xsltTransformContextPtr ctxt, 
void * avt,
xmlNodePtr node)

Process the given AVT, and return the new string value.

ctxt:the XSLT transformation context
avt:the prevompiled attribute value template info
node:the node hosting the attribute
Returns:the computed string value or NULL, must be deallocated by the caller.

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: xsltFreeAVTList

void	xsltFreeAVTList			(void * avt)

Free up the memory associated to the attribute value templates

avt:pointer to an list of AVT structures

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