1/*
2 * Summary: interface for the variable matching and lookup.
3 * Description: interface for the variable matching and lookup.
4 *
5 * Copy: See Copyright for the status of this software.
6 *
7 * Author: Daniel Veillard
8 */
9
10#ifndef __XML_XSLT_VARIABLES_H__
11#define __XML_XSLT_VARIABLES_H__
12
13#include <libxml/xpath.h>
14#include <libxml/xpathInternals.h>
15#include "xsltexports.h"
16#include "xsltInternals.h"
17#include "functions.h"
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23
24/**
25 * XSLT_REGISTER_VARIABLE_LOOKUP:
26 *
27 * Registering macro, not general purpose at all but used in different modules.
28 */
29
30#define XSLT_REGISTER_VARIABLE_LOOKUP(ctxt)			\
31    xmlXPathRegisterVariableLookup((ctxt)->xpathCtxt,		\
32	       xsltXPathVariableLookup,	(void *)(ctxt));	\
33    xsltRegisterAllFunctions((ctxt)->xpathCtxt);		\
34    xsltRegisterAllElement(ctxt);				\
35    (ctxt)->xpathCtxt->extra = ctxt
36
37/*
38 * Interfaces for the variable module.
39 */
40
41XSLTPUBFUN int XSLTCALL
42		xsltEvalGlobalVariables		(xsltTransformContextPtr ctxt);
43XSLTPUBFUN int XSLTCALL
44		xsltEvalUserParams		(xsltTransformContextPtr ctxt,
45						 const char **params);
46XSLTPUBFUN int XSLTCALL
47		xsltQuoteUserParams		(xsltTransformContextPtr ctxt,
48						 const char **params);
49XSLTPUBFUN int XSLTCALL
50		xsltEvalOneUserParam		(xsltTransformContextPtr ctxt,
51						 const xmlChar * name,
52						 const xmlChar * value);
53XSLTPUBFUN int XSLTCALL
54		xsltQuoteOneUserParam		(xsltTransformContextPtr ctxt,
55						 const xmlChar * name,
56						 const xmlChar * value);
57
58XSLTPUBFUN void XSLTCALL
59		xsltParseGlobalVariable		(xsltStylesheetPtr style,
60						 xmlNodePtr cur);
61XSLTPUBFUN void XSLTCALL
62		xsltParseGlobalParam		(xsltStylesheetPtr style,
63						 xmlNodePtr cur);
64XSLTPUBFUN void XSLTCALL
65		xsltParseStylesheetVariable	(xsltTransformContextPtr ctxt,
66						 xmlNodePtr cur);
67XSLTPUBFUN void XSLTCALL
68		xsltParseStylesheetParam	(xsltTransformContextPtr ctxt,
69						 xmlNodePtr cur);
70XSLTPUBFUN xsltStackElemPtr XSLTCALL
71		xsltParseStylesheetCallerParam	(xsltTransformContextPtr ctxt,
72						 xmlNodePtr cur);
73XSLTPUBFUN int XSLTCALL
74		xsltAddStackElemList		(xsltTransformContextPtr ctxt,
75						 xsltStackElemPtr elems);
76XSLTPUBFUN void XSLTCALL
77		xsltFreeGlobalVariables		(xsltTransformContextPtr ctxt);
78XSLTPUBFUN xmlXPathObjectPtr XSLTCALL
79		xsltVariableLookup		(xsltTransformContextPtr ctxt,
80						 const xmlChar *name,
81						 const xmlChar *ns_uri);
82XSLTPUBFUN xmlXPathObjectPtr XSLTCALL
83		xsltXPathVariableLookup		(void *ctxt,
84						 const xmlChar *name,
85						 const xmlChar *ns_uri);
86#ifdef __cplusplus
87}
88#endif
89
90#endif /* __XML_XSLT_VARIABLES_H__ */
91
92