interface for the XSLT attribute handling this module handles the specificities of attribute and attribute groups processing. Daniel Veillard interface for the document handling implements document loading and cache (multiple document() reference for the same resources must be equal. Daniel Veillard interface for the extension support This provide the API needed for simple and module extension support. Daniel Veillard interface for the non-standard features implement some extension outside the XSLT namespace but not EXSLT with is in a different library. Daniel Veillard interface for the XSLT functions not from XPath a set of extra functions coming from XSLT but not in XPath Daniel Veillard and Bjorn Reese <breese@users.sourceforge.net> interface for the XSLT import support macros and fuctions needed to implement and access the import tree Daniel Veillard interface for the key matching used in key() and template matches. implementation of the key mechanims. Daniel Veillard interface for the XSLT namespace handling set of function easing the processing and generation of namespace nodes in XSLT. Daniel Veillard Implementation of the XSLT number functions Implementation of the XSLT number functions Bjorn Reese <breese@users.sourceforge.net> and Daniel Veillard interface for the pattern matching used in template matches. the implementation of the lookup of the right template for a given node must be really fast in order to keep decent performances. Daniel Veillard precomputing stylesheets this is the compilation phase, where most of the stylesheet is "compiled" into faster to use data. Daniel Veillard interface for the libxslt security framework the libxslt security framework allow to restrict the access to new resources (file or URL) from the stylesheet at runtime. Daniel Veillard interface for the template processing This set of routine encapsulates XPath calls and Attribute Value Templates evaluation. Daniel Veillard the XSLT engine transformation part. This module implements the bulk of the actual Daniel Veillard interface for the variable matching and lookup. interface for the variable matching and lookup. Daniel Veillard Interfaces, constants and types related to the XSLT engine Interfaces, constants and types related to the XSLT engine Daniel Veillard internal data structures, constants and functions 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. Daniel Veillard macros for marking symbols as exportable/importable. macros for marking symbols as exportable/importable. Igor Zlatkovic <igor@zlatkovic.com> set of utilities for the XSLT engine interfaces for the utilities module of the XSLT engine. things like message handling, profiling, and other generally useful routines. Daniel Veillard Macro to check if the XSLT processing should be stopped. Will return from the function. Macro to check if the XSLT processing should be stopped. Will return from the function with a 0 value. Macro to check if the XSLT processing should be stopped. Will goto the error: label. Checks that the element pertains to XSLT namespace. Checks the value of an element in XSLT namespace. Check that a node is a 'real' one: document, element, text or attribute. The XSLT "vendor" URL for this processor. The XSLT "vendor" string for this processor. The default version of XSLT supported. A macro to import intergers from the stylesheet cascading order. A macro to import pointers from the stylesheet cascading order. This is the libxslt namespace for specific extensions. Max number of specified xsl:sort on an element. The XSLT specification namespace. This is Norm's namespace for SAXON extensions. The set of options to pass to an xmlReadxxx when loading files for XSLT consumption. Specific value for pattern without priority expressed. Registering macro, not general purpose at all but used in different modules. Registering macro, not general purpose at all but used in different modules. Macro used to define extra information stored in the context Macro used to free extra information stored in the context Macro used to access extra information stored in the context This is Michael Kay's Saxon processor namespace for extensions. Macro to flag that a problem was detected internally. Sampling precision for profiling Macro to flag unimplemented blocks. Control the type of xsl debugtrace messages emitted. This is the Apache project XALAN processor namespace for extensions. This is James Clark's XT processor namespace for extensions. Add template "call" to call stack Drop the topmost item off the call stack If either cur or node are a breakpoint, or xslDebugStatus in state where debugging must occcur at this time then transfer control to the xslDebugBreak function add a key definition to a stylesheet add the new element list at this level of the stack. Register the XSLT pattern associated to @cur Allocate an extra runtime information slot statically while compiling the stylesheet and return its number 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 Apply the xsl:use-attribute-sets Process the xslt apply-imports node on the source node Process the apply-templates node on the source node, if params are passed they are pushed on the variable stack but not popped, it's left to the caller to handle them after return (they may be reused). Strip the unwanted ignorable spaces from the input tree Apply the stylesheet to the document NOTE: This may lead to a non-wellformed output XML wise ! Apply the stylesheet to the document and allow the user to provide its own transformation context. Process the apply-templates node on the source node Do a copy of an attribute list with attribute template processing Process the given attribute and return the new processed copy. Process the given node and return the new string value. Process the given string, allowing to pass a namespace mapping context and return the new string value. Process the xslt attribute node on the source node Used for to correct the calibration for xsltTimestamp() Process the xslt call-template node on the source node Check if the given prefix is one of the declared extensions Check if the resource is allowed to be read Check if the resource is allowed to be written, if necessary makes some preliminary work like creating directories Process the xslt choose node on the source node Unregister all global variables set up by the XSLT library Cleanup the state of the templates used by the stylesheet and the ones it imports. Process the xslt comment node on the source node Compile the XSLT pattern and generates a list of precompiled form suitable for fast matching. [1] Pattern ::= LocationPathPattern | Pattern '|' LocationPathPattern reorder the current node list accordingly to the set of sorting requirement provided by the array of nodes. Process the xslt copy node on the source node Do a copy of an namespace node. If @node is non-NULL the new namespaces are added automatically. This handles namespaces aliases Do a copy of an namespace list. If @node is non-NULL the new namespaces are added automatically. This handles namespaces aliases Process the xslt copy-of node on the source node Create a text node Create a result value tree Process an debug node Dumps a list of the registered XSLT extension functions and elements Get the current default debug tracing level mask Set the default debug tracing level mask Find decimal-format by name reorder the current node list accordingly to the set of sorting requirement provided by the arry of nodes. reorder the current node list accordingly to the set of sorting requirement provided by the arry of nodes. This is a wrapper function, the actual function used is specified using xsltSetCtxtSortFunc() to set the context specific sort function, or xsltSetSortFunc() to set the global sort function. If a sort function is set on the context, this will get called. Otherwise the global sort function is called. Pre process an XSLT-1.1 document element Process an EXSLT/XSLT-1.1 document element Implement the document() XSLT function node-set document(object, node-set?) reorder the current node list @list accordingly to the document order Deallocates an #xsltElemPreComp structure. Process the xslt element node on the source node Implement the element-available() XSLT function boolean element-available(string) Evaluate a attribute value template, i.e. the attribute value can contain expressions contained in curly braces ({}) and those are substituted by they computed value. Evaluate the global variables of a stylesheet. This need to be done on parsed stylesheets before starting to apply transformations This is normally called from xsltEvalUserParams to process a single parameter from a list of parameters. The @value is evaluated as an XPath expression and the result is stored in the context's global variable/parameter hash table. To have a parameter treated literally (not as an XPath expression) use xsltQuoteUserParams (or xsltQuoteOneUserParam). For more details see description of xsltProcessOneUserParamInternal. Check if an attribute value template has a static value, i.e. the attribute value does not contain expressions contained in curly braces ({}) Evaluate a template string value, i.e. the parent list is interpreter as template content and the resulting tree string value is returned This is needed for example by xsl:comment and xsl:processing-instruction Evaluate the global variables of a stylesheet. This needs to be done on parsed stylesheets before starting to apply transformations. Each of the parameters is evaluated as an XPath expression and stored in the global variables/parameter hash table. If you want your parameter used literally, use xsltQuoteUserParams. Process the expression using XPath and evaluate the result as an XPath predicate Process the expression using XPath and get a string Process the expression using XPath, allowing to pass a namespace mapping context and get a string Looks up an extension element. @ctxt can be NULL to search only in module elements. A function called at initialization time of an XSLT extension module. Looks up an extension module element Looks up an extension module element pre-computation function Looks up an extension module function Looks up an extension module top-level element A function called at shutdown time of an XSLT extension module. Try to find a document within the XSLT transformation context Find strip-space or preserve-space informations for an element respect the import precedence or the wildcards Finds the named template, apply import precedence rule. Process the xslt for-each node on the source node 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. Implement the format-number() XSLT function string format-number(number, string, string?) Free up the memory used by attribute sets Free up the memory allocated by all the elements of @comp Free the XSLT extension data Free the keys associated to a document Free up all the space used by the loaded documents Free up the memory used by XSLT extensions in a stylesheet Free up the data associated to the global variables its value. Free up the memory used by XSLT keys in a stylesheet Free up the memory used by namespaces aliases Free all the registered result value tree of the transformation Free up a security preference block Free up the memory allocated by @elem Free up all the space used by the loaded documents Free up the memory allocated by all precomputed blocks Free up the memory allocated by @sheet Free up the memory used by xsltAddTemplate/xsltGetTemplate mechanism Free up the memory allocated by @ctxt Implement the function-available() XSLT function boolean function-available(string) Implement the node-set() XSLT function node-set node-set(result-tree) This function is available in libxslt, saxon or xt namespace. Implement the generate-id() XSLT function string generate-id(node-set?) Get xslDebugStatus. Get the default security preference application-wide Retrieve the data associated to the extension module in this given transformation. looks up URI in extInfos of the stylesheet Lookup a key Find the right namespace value for this prefix, if needed create and add a new namespace decalaration on the node Handle namespace aliases Similar to xmlGetNsProp() but with a slightly different semantic Search and get the value of an attribute associated to a node This attribute has to be anchored in the namespace specified, or has no namespace and the element is in that namespace. This does the entity substitution. This function looks in DTD attribute declaration for #FIXED or default declaration values unless DTD use has been turned off. This function should be called after the transformation completed to extract template processing profiling informations if availble. The informations are returned as an XML document tree like <?xml version="1.0"?> <profile> <template rank="1" match="*" name="" mode="" calls="6" time="48" average="8"/> <template rank="2" match="item2|item3" name="" mode="" calls="10" time="30" average="3"/> <template rank="3" match="item1" name="" mode="" calls="5" time="17" average="3"/> </profile> The caller will need to free up the returned tree with xmlFreeDoc() This function analyzes @name, if the name contains a prefix, the function seaches the associated namespace in scope for it. It will also replace @name value with the NCName, the old value being freed. Errors in the prefix lookup are signalled by setting @name to NULL. NOTE: the namespace returned is a pointer to the place where it is defined and hence has the same lifespan as the document holding it. Lookup the security option to get the callback checking function Find the right namespace value for this URI, if needed create and add a new namespace decalaration on the node Finds the template applying to this node, if @style is non-NULL it means one needs to look for the next imported template in scope. Read one UTF8 Char from @utf Function copied from libxml2 xmlGetUTF8Char() ... to discard ultimately and use the original API Provides the default state for XInclude processing Process the xslt if node on the source node Initialize the set of modules with registered stylesheet data Computes all the keys tables for the current input document. Should be done before global varibales are initialized. Initializes an existing #xsltElemPreComp structure. This is usefull when extending an #xsltElemPreComp to store precomputed data. This function MUST be called on any extension element precomputed data struct. Check if a string is ignorable Implement the key() XSLT function node-set key(string, object) Try to load a document (not a stylesheet) within the XSLT transformation context Try to load a stylesheet document within the XSLT transformation context 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. Process and xsl:message construct Read the stylesheet-prefix and result-prefix attributes, register them as well as the corresponding namespace. Checks whether that stylesheet requires white-space stripping Register a new document, apply key computations Creates and initializes an #xsltElemPreComp Create a new security preference block Register a new document, apply key computations Create a new XSLT Stylesheet Create a new XSLT TransformContext Find the next stylesheet in import precedence. This is a hashtable scanner function to normalize the compiled steps of an imported stylesheet. Process the xslt number node on the source node Convert one number. parse an XSLT transformation param declaration and record its value. parse an XSLT transformation variable declaration and record its value. parse an XSLT stylesheet attribute-set element parse an XSLT transformation param declaration, compute its value but doesn't record it. parse an XSLT stylesheet building the associated structures Load and parse an XSLT stylesheet parse an XSLT stylesheet import element parse an XSLT stylesheet building the associated structures except the processing not needed for imported documents. parse an XSLT stylesheet include element parse an XSLT stylesheet output element and record information related to the stylesheet output parse an XSLT transformation param declaration and record its value. parse an XSLT stylesheet adding the associated structures parse an XSLT transformation variable declaration and record its value. parse a template content-model Clean-up the template content from unwanted ignorable blank nodes and process xslt:text Precomputes an extension module element Display the context of an error. Process the xslt processing-instruction node on the source node Apply the stylesheet to the document and dump the profiling to the given output. This is normally called from xsltQuoteUserParams to process a single parameter from a list of parameters. The @value is stored in the context's global variable/parameter hash table. Similar to xsltEvalUserParams, but the values are treated literally and are * *not* evaluated as XPath expressions. This should be done on parsed stylesheets before starting to apply transformations. Registers all default XSLT elements in this context Registers the built-in extensions Registers all default XSLT functions in this context Registers an extension element Registers an extension function Register an XSLT extension module to the library. Registers an extension module element. Register an XSLT extension module to the library. Registers an extension module function. Registers an extension module top-level element. Registers an extension namespace Registers the built-in extensions. This function is deprecated, use xsltRegisterAllExtras instead. Register the result value tree for destruction at the end of the processing Registers the test module Register the result value tree for destruction at the end of the context resolve the references between attribute sets. Apply the stylesheet to the document and generate the output according to @output @SAX and @IObuf. It's an error to specify both @SAX and @IObuf. NOTE: This may lead to a non-wellformed output XML wise ! NOTE: This may also result in multiple files being generated NOTE: using IObuf, the result encoding used will be the one used for creating the output buffer, use the following macro to read it from the stylesheet XSLT_GET_IMPORT_PTR(encoding, style, encoding) NOTE: using SAX, any encoding specified in the stylesheet will be lost since the interface uses only UTF8 Apply the stylesheet to the document and generate the output according to @output @SAX and @IObuf. It's an error to specify both @SAX and @IObuf. NOTE: This may lead to a non-wellformed output XML wise ! NOTE: This may also result in multiple files being generated NOTE: using IObuf, the result encoding used will be the one used for creating the output buffer, use the following macro to read it from the stylesheet XSLT_GET_IMPORT_PTR(encoding, style, encoding) NOTE: using SAX, any encoding specified in the stylesheet will be lost since the interface uses only UTF8 Save the profiling informations on @output Save the result @result obtained by applying the @style stylesheet to an I/O output channel @buf Save the result @result obtained by applying the @style stylesheet to an open file descriptor This does not close the descriptor. Save the result @result obtained by applying the @style stylesheet to an open FILE * I/O. This does not close the FILE @file Save the result @result obtained by applying the @style stylesheet to a file or @URL Save the result @result obtained by applying the @style stylesheet to a file or @URL Function used to always allow an operation User provided function to check the value of a string like a file path or an URL ... Function used to always forbid an operation Change the default parser option passed by the XSLT engine to the parser when using document() loading. Set the security preference for a specific transformation Function to set the handler for XSLT sorting for the specified context. If the handler is NULL, then the global sort function will be called This function allow to plug a debugger into the XSLT library @block points to a block of memory containing the address of @no callback routines. This function sets the value of xslDebugStatus. Set the default security preference application-wide Function to reset the handler and the error context for out of context error messages. This simply means that @handler will be called for subsequent error messages while not parsing or validating. And @ctx will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * than stderr by setting @ctx to this file handle and @handler to NULL. Function to reset the handler and the error context for out of context error messages. This simply means that @handler will be called for subsequent error messages while not parsing nor validating. And @ctx will be passed as first argument to @handler One can simply force messages to be emitted to another FILE * than stderr by setting @ctx to this file handle and @handler to NULL. Update the security option to use the new callback checking function Function to reset the global handler for XSLT sorting. If the handler is NULL, the default sort function will be used. Function to reset the handler and the error context for out of context error messages specific to a given XSLT transromation. This simply means that @handler will be called for subsequent error messages while running the transformation. Set whether XInclude should be processed on document being loaded by default Shutdown the set of modules loaded Shutdown the set of modules loaded function attached to xsl:sort nodes, but this should not be called directly Signature of the function to use during sorting A function called at initialization time of an XSLT extension module. A function called at shutdown time of an XSLT extension module. Retrieve the data associated to the extension module in this given stylesheet. Precompute an XSLT stylesheet element Implement the system-property() XSLT function object system-property(string) Process the given node and return the new string value. Test wether the node matches one of the patterns in the list Process the xslt text node on the source node Used for gathering profiling data Display and format an error messages, gives file, line, position and extra parameters, will use the specific transformation context if available Signature of the function associated to elements part of the stylesheet language like xsl:if or xsl:apply-templates. Implement the unparsed-entity-uri() XSLT function string unparsed-entity-uri(string) Unregister an XSLT extension module from the library. Unregisters an extension module element Unregisters an extension module function Unregisters an extension module top-level element Process the xslt value-of node on the source node Search in the Variable array of the context for the given variable value. This is the entry point when a function is needed by the XPath interpretor. Provides the XSLT transformation context from the XPath transformation context. This is useful when an XPath function in the extension module is called by the XPath interpreter and that the XSLT context is needed for example to retrieve the associated data pertaining to this XSLT transformation. This is the entry point when a varibale is needed by the XPath interpretor.