# The XSLT C library for GNOME

## Module variables from libxslt

API Menu

- Main Menu
- Developer Menu
- API Menu
- ChangeLog

Related links

- Mail archive
- XML libxml2
- FTP
- Windows binaries
- Solaris binaries
- MacOsX binaries
- Bug Tracker
- lxml Python bindings
- Perl XSLT bindings
- XSLT with PHP
- Apache module
- Pascal bindings
- Xsldbg Debugger

API Indexes

- Alphabetic
- Constructors
- Functions/Types
- Modules
- Symbols

interface for the variable matching and lookup.

## Table of Contents

    #define XSLT_REGISTER_VARIABLE_LOOKUP

    #define XSLT_RVT_FUNC_RESULT

    #define XSLT_RVT_GLOBAL

    #define XSLT_RVT_LOCAL

    int	xsltAddStackElemList		(xsltTransformContextPtr ctxt,
    					 xsltStackElemPtr elems)

    int	xsltEvalGlobalVariables		(xsltTransformContextPtr ctxt)

    int	xsltEvalOneUserParam		(xsltTransformContextPtr ctxt,
    					 const xmlChar * name,
    					 const xmlChar * value)

    int	xsltEvalUserParams		(xsltTransformContextPtr ctxt,
    					 const char ** params)

    void	xsltFreeGlobalVariables		(xsltTransformContextPtr ctxt)

    void	xsltParseGlobalParam		(xsltStylesheetPtr style,
    					 xmlNodePtr cur)

    void	xsltParseGlobalVariable		(xsltStylesheetPtr style,
    					 xmlNodePtr cur)

    xsltStackElemPtr	xsltParseStylesheetCallerParam	(xsltTransformContextPtr ctxt,
    							 xmlNodePtr inst)

    void	xsltParseStylesheetParam	(xsltTransformContextPtr ctxt,
    					 xmlNodePtr cur)

    void	xsltParseStylesheetVariable	(xsltTransformContextPtr ctxt,
    					 xmlNodePtr inst)

    int	xsltQuoteOneUserParam		(xsltTransformContextPtr ctxt,
    					 const xmlChar * name,
    					 const xmlChar * value)

    int	xsltQuoteUserParams		(xsltTransformContextPtr ctxt,
    					 const char ** params)

    xmlXPathObjectPtr	xsltVariableLookup	(xsltTransformContextPtr ctxt,
    						 const xmlChar * name,
    						 const xmlChar * ns_uri)

    xmlXPathObjectPtr	xsltXPathVariableLookup	(void * ctxt,
    						 const xmlChar * name,
    						 const xmlChar * ns_uri)

## Description

### Macro: XSLT_REGISTER_VARIABLE_LOOKUP

    #define XSLT_REGISTER_VARIABLE_LOOKUP

Registering macro, not general purpose at all but used in different modules.

### Macro: XSLT_RVT_FUNC_RESULT

    #define XSLT_RVT_FUNC_RESULT

RVT is part of results returned with func:result. The RVT won't be destroyed after exiting a template and will be reset to XSLT_RVT_LOCAL or XSLT_RVT_VARIABLE in the template that receives the return value.

### Macro: XSLT_RVT_GLOBAL

    #define XSLT_RVT_GLOBAL

RVT is part of a global variable.

### Macro: XSLT_RVT_LOCAL

    #define XSLT_RVT_LOCAL

RVT is destroyed after the current instructions ends.

### Function: xsltAddStackElemList

    int	xsltAddStackElemList		(xsltTransformContextPtr ctxt,
    					 xsltStackElemPtr elems)

Push an element list onto the stack.

`ctxt`: | xn XSLT transformation context
`elems`: | a stack element list
`Returns`: | 0 in case of success, -1 in case of failure.

### Function: xsltEvalGlobalVariables

    int	xsltEvalGlobalVariables		(xsltTransformContextPtr ctxt)

Evaluates all global variables and parameters of a stylesheet. For internal use only. This is called at start of a transformation.

`ctxt`: | the XSLT transformation context
`Returns`: | 0 in case of success, -1 in case of error

### Function: xsltEvalOneUserParam

    int	xsltEvalOneUserParam		(xsltTransformContextPtr ctxt,
    					 const xmlChar * name,
    					 const xmlChar * value)

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.

`ctxt`: | the XSLT transformation context
`name`: | a null terminated string giving the name of the parameter
`value`: | a null terminated string giving the XPath expression to be evaluated
`Returns`: | 0 in case of success, -1 in case of error.

### Function: xsltEvalUserParams

    int	xsltEvalUserParams		(xsltTransformContextPtr ctxt,
    					 const char ** params)

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.

`ctxt`: | the XSLT transformation context
`params`: | a NULL terminated array of parameters name/value tuples
`Returns`: | 0 in case of success, -1 in case of error

### Function: xsltFreeGlobalVariables

    void	xsltFreeGlobalVariables		(xsltTransformContextPtr ctxt)

Free up the data associated to the global variables its value.

`ctxt`: | the XSLT transformation context

### Function: xsltParseGlobalParam

    void	xsltParseGlobalParam		(xsltStylesheetPtr style,
    					 xmlNodePtr cur)

parse an XSLT transformation param declaration and record its value.

`style`: | the XSLT stylesheet
`cur`: | the "param" element

### Function: xsltParseGlobalVariable

    void	xsltParseGlobalVariable		(xsltStylesheetPtr style,
    					 xmlNodePtr cur)

Parses a global XSLT 'variable' declaration at compilation time and registers it

`style`: | the XSLT stylesheet
`cur`: | the "variable" element

### Function: xsltParseStylesheetCallerParam

    xsltStackElemPtr	xsltParseStylesheetCallerParam	(xsltTransformContextPtr ctxt,
    							 xmlNodePtr inst)

Processes an xsl:with-param instruction at transformation time. The value is computed, but not recorded. NOTE that this is also called with an *xsl:param* element from exsltFuncFunctionFunction().

`ctxt`: | the XSLT transformation context
`inst`: | the xsl:with-param instruction element
`Returns`: | the new xsltStackElemPtr or NULL

### Function: xsltParseStylesheetParam

    void	xsltParseStylesheetParam	(xsltTransformContextPtr ctxt,
    					 xmlNodePtr cur)

Registers a local XSLT 'param' declaration at transformation time and evaluates its value.

`ctxt`: | the XSLT transformation context
`cur`: | the XSLT 'param' element

### Function: xsltParseStylesheetVariable

    void	xsltParseStylesheetVariable	(xsltTransformContextPtr ctxt,
    					 xmlNodePtr inst)

Registers a local XSLT 'variable' instruction at transformation time and evaluates its value.

`ctxt`: | the XSLT transformation context
`inst`: | the xsl:variable instruction element

### Function: xsltQuoteOneUserParam

    int	xsltQuoteOneUserParam		(xsltTransformContextPtr ctxt,
    					 const xmlChar * name,
    					 const xmlChar * value)

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.

`ctxt`: | the XSLT transformation context
`name`: | a null terminated string giving the name of the parameter
`value`: | a null terminated string giving the parameter value
`Returns`: | 0 in case of success, -1 in case of error.

### Function: xsltQuoteUserParams

    int	xsltQuoteUserParams		(xsltTransformContextPtr ctxt,
    					 const char ** params)

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.

`ctxt`: | the XSLT transformation context
`params`: | a NULL terminated arry of parameters names/values tuples
`Returns`: | 0 in case of success, -1 in case of error.

### Function: xsltVariableLookup

    xmlXPathObjectPtr	xsltVariableLookup	(xsltTransformContextPtr ctxt,
    						 const xmlChar * name,
    						 const xmlChar * ns_uri)

Search in the Variable array of the context for the given variable value.

`ctxt`: | the XSLT transformation context
`name`: | the variable name
`ns_uri`: | the variable namespace URI
`Returns`: | the value or NULL if not found

### Function: xsltXPathVariableLookup

    xmlXPathObjectPtr	xsltXPathVariableLookup	(void * ctxt,
    						 const xmlChar * name,
    						 const xmlChar * ns_uri)

This is the entry point when a varibale is needed by the XPath interpretor.

`ctxt`: | a void * but the the XSLT transformation context actually
`name`: | the variable name
`ns_uri`: | the variable namespace URI
`Returns`: | the value or NULL if not found

Daniel Veillard