### ----------------------------------------------------
### -- LibXSLT
### -- Licenses: Artistic-2.0
### -- Authors: David Warring
### -- File: etc/libxslt-api.xml
### ----------------------------------------------------
### -- Chunk 5 of 8
SLT copy-of instruction'/>
      <arg name='castedComp' type='xsltElemPreCompPtr' info='precomputed information of the XSLT copy-of instruction'/>
    </function>
    <function name='xsltCopyTextString' file='transform'>
      <info>Adds @string to a newly created or an existent text node child of @target.</info>
      <return type='xmlNodePtr' info='the text node, where the text content of @cur is copied to. NULL in case of API or internal errors.'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
      <arg name='target' type='xmlNodePtr' info='the element where the text will be attached'/>
      <arg name='string' type='const xmlChar *' info='the text string'/>
      <arg name='noescape' type='int' info='should disable-escaping be activated for this text node.'/>
    </function>
    <function name='xsltCreateRVT' file='xsltInternals'>
      <info>Creates a Result Value Tree (the XSLT 1.0 term for this is &quot;Result Tree Fragment&quot;)</info>
      <return type='xmlDocPtr' info='the result value tree or NULL in case of API or internal errors.'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
    </function>
    <function name='xsltDebug' file='extra'>
      <info>Process an debug node</info>
      <return type='void'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT processing context'/>
      <arg name='node' type='xmlNodePtr' info='The current node'/>
      <arg name='inst' type='xmlNodePtr' info='the instruction in the stylesheet'/>
      <arg name='comp' type='xsltElemPreCompPtr' info='precomputed information'/>
    </function>
    <function name='xsltDebugDumpExtensions' file='extensions'>
      <info>Dumps a list of the registered XSLT extension functions and elements</info>
      <return type='void'/>
      <arg name='output' type='FILE *' info='the FILE * for the output, if NULL stdout is used'/>
    </function>
    <function name='xsltDebugGetDefaultTrace' file='xsltutils'>
      <info>Get the current default debug tracing level mask</info>
      <return type='xsltDebugTraceCodes' info='the current default debug tracing level mask'/>
    </function>
    <function name='xsltDebugSetDefaultTrace' file='xsltutils'>
      <info>Set the default debug tracing level mask</info>
      <return type='void'/>
      <arg name='val' type='xsltDebugTraceCodes' info='tracing level mask'/>
    </function>
    <function name='xsltDecimalFormatGetByName' file='xsltInternals'>
      <info>Find decimal-format by name</info>
      <return type='xsltDecimalFormatPtr' info='the xsltDecimalFormatPtr'/>
      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
      <arg name='name' type='xmlChar *' info='the decimal-format name to find'/>
    </function>
    <function name='xsltDecimalFormatGetByQName' file='xsltInternals'>
      <info>Find decimal-format by QName</info>
      <return type='xsltDecimalFormatPtr' info='the xsltDecimalFormatPtr'/>
      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
      <arg name='nsUri' type='const xmlChar *' info='the namespace URI of the QName'/>
      <arg name='name' type='const xmlChar *' info='the local part of the QName'/>
    </function>
    <function name='xsltDefaultSortFunction' file='xsltutils'>
      <info>reorder the current node list accordingly to the set of sorting requirement provided by the arry of nodes.</info>
      <return type='void'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
      <arg name='sorts' type='xmlNodePtr *' info='array of sort nodes'/>
      <arg name='nbsorts' type='int' info='the number of sorts in the array'/>
    </function>
    <function name='xsltDoSortFunction' file='xsltutils'>
      <info>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.</info>
      <return type='void'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
      <arg name='sorts' type='xmlNodePtr *' info='array of sort nodes'/>
      <arg name='nbsorts' type='int' info='the number of sorts in the array'/>
    </function>
    <functype name='xsltDocLoaderFunc' file='documents'>
      <info>An xsltDocLoaderFunc is a signature for a function which can be registered to load document not provided by the compilation or transformation API themselve, for example when an xsl:import, xsl:include is found at compilation time or when a document() call is made at runtime.</info>
      <return type='xmlDocPtr' info='the pointer to the document (which will be modified and freed by the engine later), or NULL in case of error.'/>
      <arg name='URI' type='const xmlChar *' info='the URI of the document to load'/>
      <arg name='dict' type='xmlDictPtr' info='the dictionary to use when parsing that document'/>
      <arg name='options' type='int' info='parsing options, a set of xmlParserOption'/>
      <arg name='ctxt' type='void *' info='the context, either a stylesheet or a transformation context'/>
      <arg name='type' type='xsltLoadType' info='the xsltLoadType indicating the kind of loading required'/>
    </functype>
    <function name='xsltDocumentComp' file='preproc'>
      <info>Pre process an XSLT-1.1 document element</info>
      <return type='xsltElemPreCompPtr' info='a precompiled data structure for the element'/>
      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
      <arg name='inst' type='xmlNodePtr' info='the instruction in the stylesheet'/>
      <arg name='function' type='xsltTransformFunction' info='unused'/>
    </function>
    <function name='xsltDocumentElem' file='transform'>
      <info>Process an EXSLT/XSLT-1.1 document element</info>
      <return type='void'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT processing context'/>
      <arg name='node' type='xmlNodePtr' info='The current node'/>
      <arg name='inst' type='xmlNodePtr' info='the instruction in the stylesheet'/>
      <arg name='castedComp' type='xsltElemPreCompPtr' info='precomputed information'/>
    </function>
    <function name='xsltDocumentFunction' file='functions'>
      <info>Implement the document() XSLT function node-set document(object, node-set?)</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xsltDocumentSortFunction' file='xsltutils'>
      <info>reorder the current node list @list accordingly to the document order This function is slow, obsolete and should not be used anymore.</info>
      <return type='void'/>
      <arg name='list' type='xmlNodeSetPtr' info='the node set'/>
    </function>
    <functype name='xsltDropCallCallback' file='xsltutils'>
      <info></info>
      <return type='void'/>
    </functype>
    <functype name='xsltElemPreCompDeallocator' file='xsltInternals'>
      <info>Deallocates an #xsltElemPreComp structure.</info>
      <return type='void'/>
      <arg name='comp' type='xsltElemPreCompPtr' info='the #xsltElemPreComp to free up'/>
    </functype>
    <function name='xsltElement' file='transform'>
      <info>Process the xslt element node on the source node</info>
      <return type='void'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='a XSLT process context'/>
      <arg name='node' type='xmlNodePtr' info='the node in the source tree.'/>
      <arg name='inst' type='xmlNodePtr' info='the xslt element node'/>
      <arg name='castedComp' type='xsltElemPreCompPtr' info='precomputed information'/>
    </function>
    <function name='xsltElementAvailableFunction' file='functions'>
      <info>Implement the element-available() XSLT function boolean element-available(string)</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xsltEvalAVT' file='xsltInternals'>
      <info>Process the given AVT, and return the new string value.</info>
      <return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
      <arg name='avt' type='void *' info='the prevompiled attribute value template info'/>
      <arg name='node' type='xmlNodePtr' info='the node hosting the attribute'/>
    </function>
    <function name='xsltEvalAttrValueTemplate' file='templates'>
      <info>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.</info>
      <return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
      <arg name='inst' type='xmlNodePtr' info='the instruction (or LRE) in the stylesheet holding the attribute with an AVT'/>
      <arg name='name' type='const xmlChar *' info='the attribute QName'/>
      <arg name='ns' type='const xmlChar *' info='the attribute namespace URI'/>
    </function>
    <function name='xsltEvalGlobalVariables' file='variables'>
      <info>Evaluates all global variables and parameters of a stylesheet. For internal use only. This is called at start of a transformation.</info>
      <return type='int' info='0 in case of success, -1 in case of error'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
    </function>
    <function name='xsltEvalOneUserParam' file='variables'>
      <info>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&apos;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.</info>
      <return type='int' info='0 in case of success, -1 in case of error.'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
      <arg name='name' type='const xmlChar *' info='a null terminated string giving the name of the parameter'/>
      <arg name='value' type='const xmlChar *' info='a null terminated string giving the XPath expression to be evaluated'/>
    </function>
    <function name='xsltEvalStaticAttrValueTemplate' file='templates'>
      <info>Check if an attribute value template has a static value, i.e. the attribute value does not contain expressions contained in curly braces ({})</info>
      <return type='const xmlChar *' info='the static string value or NULL, must be deallocated by the caller.'/>
      <arg name='style' type='xsltStylesheetPtr' info='the XSLT stylesheet'/>
      <arg name='inst' type='xmlNodePtr' info='the instruction (or LRE) in the stylesheet holding the attribute with an AVT'/>
      <arg name='name' type='const xmlChar *' info='the attribute Name'/>
      <arg name='ns' type='const xmlChar *' info='the attribute namespace URI'/>
      <arg name='found' type='int *' info='indicator whether the attribute is present'/>
    </function>
    <function name='xsltEvalTemplateString' file='templates'>
      <info>Processes the sequence constructor of the given instruction on @contextNode and converts the resulting tree to a string. This is needed by e.g. xsl:comment and xsl:processing-instruction.</info>
      <return type='xmlChar *' info='the computed string value or NULL; it&apos;s up to the caller to free the result.'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
      <arg name='contextNode' type='xmlNodePtr' info='the current node in the source tree'/>
      <arg name='inst' type='xmlNodePtr' info='the XSLT instruction (xsl:comment, xsl:processing-instruction)'/>
    </function>
    <function name='xsltEvalUserParams' file='variables'>
      <info>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.</info>
      <return type='int' info='0 in case of success, -1 in case of error'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
      <arg name='params' type='const char **' info='a NULL terminated array of parameters name/value tuples'/>
    </function>
    <function name='xsltEvalXPathPredicate' file='templates'>
      <info>Process the expression using XPath and evaluate the result as an XPath predicate</info>
      <return type='int' info='1 is the predicate was true, 0 otherwise'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
      <arg name='comp' type='xmlXPathCompExprPtr' info='the XPath compiled expression'/>
      <arg name='nsList' type='xmlNsPtr *' info='the namespaces in scope'/>
      <arg name='nsNr' type='int' info='the number of namespaces in scope'/>
    </function>
    <function name='xsltEvalXPathString' file='templates'>
      <info>Process the expression using XPath and get a string</info>
      <return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
      <arg name='comp' type='xmlXPathCompExprPtr' info='the compiled XPath expression'/>
    </function>
    <function name='xsltEvalXPathStringNs' file='templates'>
      <info>Process the expression using XPath, allowing to pass a namespace mapping context and get a string</info>
      <return type='xmlChar *' info='the computed string value or NULL, must be deallocated by the caller.'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
      <arg name='comp' type='xmlXPathCompExprPtr' info='the compiled XPath expression'/>
      <arg name='nsNr' type='int' info='the number of namespaces in the list'/>
      <arg name='nsList' type='xmlNsPtr *' info='the list of in-scope namespaces to use'/>
    </function>
    <function name='xsltExtElementLookup' file='extensions'>
      <info>Looks up an extension element. @ctxt can be NULL to search only in module elements.</info>
      <return type='xsltTransformFunction' info='the element callback or NULL if not found'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT process context'/>
      <arg name='name' type='const xmlChar *' info='the element name'/>
      <arg name='URI' type='const xmlChar *' info='the element namespace URI'/>
    </function>
    <functype name='xsltExtInitFunction' file='extensions'>
      <info>A function called at initialization time of an XSLT extension module.</info>
      <return type='void *' info='a pointer to the module specific data for this transformation.'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
      <arg name='URI' type='const xmlChar *' info='the namespace URI for the extension'/>
    </functype>
    <function name='xsltExtModuleElementLookup' file='extensions'>
      <info>Looks up an extension module element</info>
      <return type='xsltTransformFunction' info='the callback function if found, NULL otherwise.'/>
      <arg name='name' type='const xmlChar *' info='the element name'/>
      <arg name='URI' type='const xmlChar *' info='the element namespace URI'/>
    </function>
    <function name='xsltExtModuleElementPreComputeLookup' file='extensions'>
      <info>Looks up an extension module element pre-computation function</info>
      <return type='xsltPreComputeFunction' info='the callback function if found, NULL otherwise.'/>
      <arg name='name' type='const xmlChar *' info='the element name'/>
      <arg name='URI' type='const xmlChar *' info='the element namespace URI'/>
    </function>
    <function name='xsltExtModuleFunctionLookup' file='extensions'>
      <info>Looks up an extension module function</info>
      <return type='xmlXPathFunction' info='the function if found, NULL otherwise.'/>
      <arg name='name' type='const xmlChar *' info='the function name'/>
      <arg name='URI' type='const xmlChar *' info='the function namespace URI'/>
    </function>
    <function name='xsltExtModuleTopLevelLookup' file='extensions'>
      <info>Looks up an extension module top-level element</info>
      <return type='xsltTopLevelFunction' info='the callback function if found, NULL otherwise.'/>
      <arg name='name' type='const xmlChar *' info='the top-level element name'/>
      <arg name='URI' type='const xmlChar *' info='the top-level element namespace URI'/>
    </function>
    <functype name='xsltExtShutdownFunction' file='extensions'>
      <info>A function called at shutdown time of an XSLT extension module.</info>
      <return type='void'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
      <arg name='URI' type='const xmlChar *' info='the namespace URI for the extension'/>
      <arg name='data' type='void *' info='the data associated to this module'/>
    </functype>
    <function name='xsltExtensionInstructionResultFinalize' file='xsltInternals'>
      <info>Finalizes the data (e.g. result tree fragments) created within a value-returning process (e.g. EXSLT&apos;s function). Tree fragments marked as being returned by a function are set to normal state, which means that the fragment garbage collector will free them after the function-calling process exits.</info>
      <return type='int' info='0 in case of success and -1 in case of API or internal errors.  This function is unsupported in newer releases of libxslt.'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
    </function>
    <function name='xsltExtensionInstructionResultRegister' file='xsltInternals'>
      <info>Marks the result of a value-returning extension instruction in order to avoid it being garbage collected before the extension instruction exits. Note that one still has to additionally register any newly created tree fragments (via xsltCreateRVT()) with xsltRegisterLocalRVT().</info>
      <return type='int' info='0 in case of success and -1 in case of error.  It isn&apos;t necessary to call this function in newer releases of libxslt.'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
      <arg name='obj' type='xmlXPathObjectPtr' info='an XPath object to be inspected for result tree fragments'/>
    </function>
    <function name='xsltFindDocument' file='documents'>
      <info>Try to find a document within the XSLT transformation context. This will not find document infos for temporary Result Tree Fragments.</info>
      <return type='xsltDocumentPtr' info='the desired xsltDocumentPtr or NULL in case of error'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
      <arg name='doc' type='xmlDocPtr' info='a parsed XML document'/>
    </function>
    <function name='xsltFindElemSpaceHandling' file='imports'>
      <info>Find strip-space or preserve-space information for an element respect the import precedence or the wildcards</info>
      <return type='int' info='1 if space should be stripped, 0 if not, and 2 if everything should be CDTATA wrapped.'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
      <arg name='node' type='xmlNodePtr' info='an XML node'/>
    </function>
    <function name='xsltFindTemplate' file='imports'>
      <info>Finds the named template, apply import precedence rule. REVISIT TODO: We&apos;ll change the nameURI fields of templates to be in the string dict, so if the specified @nameURI is in the same dict, then use pointer comparison. Check if this can be done in a sane way. Maybe this function is not needed internally at transformation-time if we hard-wire the called templates to the caller.</info>
      <return type='xsltTemplatePtr' info='the xsltTemplatePtr or NULL if not found'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
      <arg name='name' type='const xmlChar *' info='the template name'/>
      <arg name='nameURI' type='const xmlChar *' info='the template name URI'/>
    </function>
    <function name='xsltFlagRVTs' file='xsltInternals'>
      <info>Updates ownership information of RVTs in @obj according to @val.  @val = XSLT_RVT_FUNC_RESULT for the result of an extension function, so its RVTs won&apos;t be destroyed after leaving the returning scope. @val = XSLT_RVT_LOCAL for the result of an extension function to reset the state of its RVTs after it was returned to a new scope. @val = XSLT_RVT_GLOBAL for parts of global variables.</info>
      <return type='int' info='0 in case of success and -1 in case of error.'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
      <arg name='obj' type='xmlXPathObjectPtr' info='an XPath object to be inspected for result tree fragments'/>
      <arg name='val' type='void *' info='the flag value'/>
    </function>
    <function name='xsltForEach' file='transform'>
      <info>Process the xslt for-each node on the source node</info>
      <return type='void'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
      <arg name='contextNode' type='xmlNodePtr' info='the &quot;current node&quot; in the source tree'/>
      <arg name='inst' type='xmlNodePtr' info='the element node of the xsl:for-each instruction'/>
      <arg name='castedComp' type='xsltElemPreCompPtr' info='the compiled information of the instruction'/>
    </function>
    <function name='xsltFormatNumberConversion' file='xsltInternals'>
      <info>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     := &apos;\\u0000&apos;..&apos;\\uFFFD&apos; - specialCharacters suffix     := &apos;\\u0000&apos;..&apos;\\uFFFD&apos; - specialCharacters integer    := &apos;#&apos;* &apos;0&apos;* &apos;0&apos; fraction   := &apos;0&apos;* &apos;#&apos;*  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 &apos;      used to quote special characters in a prefix or suffix.</info>
      <return type='xmlXPathError' info='a possible XPath error'/>
      <arg name='self' type='xsltDecimalFormatPtr' info='the decimal format'/>
      <arg name='format' type='xmlChar *' info='the format requested'/>
      <arg name='number' type='double' info='the value to format'/>
      <arg name='result' type='xmlChar **' info='the place to output the result'/>
    </function>
    <function name='xsltFormatNumberFunction' file='functions'>
      <info>Implement the format-number() XSLT function string format-number(number, string, string?)</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xsltFreeAVTList' file='xsltInternals'>
      <info>Free up the memory associated to the attribute value templates</info>
      <return type='void'/>
      <arg name='avt' type='void *' info='pointer to an list of AVT structures'/>
    </function>
    <function name='xsltFreeAttributeSetsHashes' file='attributes'>
      <info>Free up the memory used by attribute sets</info>
      <return type='void'/>
      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
    </function>
    <function name='xsltFreeCompMatchList' file='pattern'>
      <info>Free up the memory allocated by all the elements of @comp</info>
      <return type='void'/>
      <arg name='comp' type='xsltCompMatchPtr' info='an XSLT comp list'/>
    </function>
    <function name='xsltFreeCtxtExts' file='extensions'>
      <info>Free the XSLT extension data</info>
      <return type='void'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
    </function>
    <function name='xsltFreeDocumentKeys' file='keys'>
      <info>Free the keys associated to a document</info>
      <return type='void'/>
      <arg name='idoc' type='xsltDocumentPtr' info='a XSLT document'/>
    </function>
    <function name='xsltFreeDocuments' file='documents'>
      <info>Free up all the space used by the loaded documents</info>
      <return type='void'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
    </function>
    <function name='xsltFreeExts' file='extensions'>
      <info>Free up the memory used by XSLT extensions in a stylesheet</info>
      <return type='void'/>
      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
    </function>
    <function name='xsltFreeGlobalVariables' file='variables'>
      <info>Free up the data associated to the global variables its value.</info>
      <return type='void'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='the XSLT transformation context'/>
    </function>
    <function name='xsltFreeKeys' file='keys'>
      <info>Free up the memory used by XSLT keys in a stylesheet</info>
      <return type='void'/>
      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
    </function>
    <function name='xsltFreeLocale' file='xsltlocale'>
      <info>Frees a locale created with xsltNewLocale</info>
      <return type='void'/>
      <arg name='locale' type='xsltLocale' info='the locale to free'/>
    </function>
    <function name='xsltFreeLocales' file='xsltlocale'>
      <info>Cleanup function for the locale support on shutdown</info>
      <return type='void'/>
    </function>
    <function name='xsltFreeNamespaceAliasHashes' file='namespaces'>
      <info>Free up the memory used by namespaces aliases</info>
      <return type='void'/>
      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
    </function>
    <function name='xsltFreeRVTs' file='xsltInternals'>
      <info>Frees all registered result value trees (Result Tree Fragments) of the transformation. Internal function; should not be called by user-code.</info>
      <return type='void'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT transformation context'/>
    </function>
    <function name='xsltFreeSecurityPrefs' file='security'>
      <info>Free up a security preference block</info>
      <return type='void'/>
      <arg name='sec' type='xsltSecurityPrefsPtr' info='the security block to free'/>
    </function>
    <function name='xsltFreeStackElemList' file='xsltInternals'>
      <info>Free up the memory allocated by @elem</info>
      <return type='void'/>
      <arg name='elem' type='xsltStackElemPtr' info='an XSLT stack element'/>
    </function>
    <function name='xsltFreeStyleDocuments' file='documents'>
      <info>Frees the node-trees (and xsltDocument structures) of all stylesheet-modules of the stylesheet-level represented by the given @style.</info>
      <return type='void'/>
      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet (representing a stylesheet-level)'/>
    </function>
    <function name='xsltFreeStylePreComps' file='preproc'>
      <info>Free up the memory allocated by all precomputed blocks</info>
      <return type='void'/>
      <arg name='style' type='xsltStylesheetPtr' info='an XSLT transformation context'/>
    </function>
    <function name='xsltFreeStylesheet' file='xsltInternals'>
      <info>Free up the memory allocated by @style</info>
      <return type='void'/>
      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
    </function>
    <function name='xsltFreeTemplateHashes' file='pattern'>
      <info>Free up the memory used by xsltAddTemplate/xsltGetTemplate mechanism</info>
      <return type='void'/>
      <arg name='style' type='xsltStylesheetPtr' info='an XSLT stylesheet'/>
    </function>
    <function name='xsltFreeTransformContext' file='transform'>
      <info>Free up the memory allocated by @ctxt</info>
      <return type='void'/>
      <arg name='ctxt' type='xsltTransformContextPtr' info='an XSLT parser context'/>
    </function>
    <function name='xsltFunctionAvailableFunction' file='functions'>
      <info>Implement the function-available() XSLT function boolean function-available(string)</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xsltFunctionNodeSet' file='extra'>
      <info>Implement the node-set() XSLT function node-set node-set(result-tree)  This function is available in libxslt, saxon or xt namespace.</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xsltGenerateIdFunction' file='functions'>
      <info>Implement the generate-id() XSLT function string generate-id(node-set?)</info>
      <return type='void'/>
      <arg name='ctxt' type='xmlXPathParserContextPtr' info='the XPath Parser context'/>
      <arg name='nargs' type='int' info='the number of arguments'/>
    </function>
    <function name='xsltGetCNsProp' file='xsltutils'>
      <info>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.</info>
      <return type='const xmlChar *' info='the attribute value or NULL if not found. The string is allocated in the stylesheet dictionary.'/>
      <arg name='style' type='xsltStylesheetPtr' info='the stylesheet'/>
      <arg name='node' type='xmlNodePtr' info='the node'/>
      <arg name='name' type='const xmlChar *' info='the attribute name'/>
      <arg name='nameSpace' type='const xmlChar *' info='the URI of the namespace'/>
    </function>
    <function name='xsltGetDebuggerStatus' file='xsltutils'>
      <info>Get xslDebugStatus.</info>
      <return type='int' info='the value of xslDebugStatus.'/>
    </function>
    <function name='xsltGetDefaultSecurityPrefs' file='security'>
      <info>Get the default security preference application-wide</info>
      <return type='x