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 20 extern "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 * Flags for memory management of RVTs 39 */ 40 41 /** 42 * XSLT_RVT_LOCAL: 43 * 44 * RVT is destroyed after the current instructions ends. 45 */ 46 #define XSLT_RVT_LOCAL ((void *)1) 47 48 /** 49 * XSLT_RVT_FUNC_RESULT: 50 * 51 * RVT is part of results returned with func:result. The RVT won't be 52 * destroyed after exiting a template and will be reset to XSLT_RVT_LOCAL or 53 * XSLT_RVT_VARIABLE in the template that receives the return value. 54 */ 55 #define XSLT_RVT_FUNC_RESULT ((void *)2) 56 57 /** 58 * XSLT_RVT_GLOBAL: 59 * 60 * RVT is part of a global variable. 61 */ 62 #define XSLT_RVT_GLOBAL ((void *)3) 63 64 /* 65 * Interfaces for the variable module. 66 */ 67 68 XSLTPUBFUN int XSLTCALL 69 xsltEvalGlobalVariables (xsltTransformContextPtr ctxt); 70 XSLTPUBFUN int XSLTCALL 71 xsltEvalUserParams (xsltTransformContextPtr ctxt, 72 const char **params); 73 XSLTPUBFUN int XSLTCALL 74 xsltQuoteUserParams (xsltTransformContextPtr ctxt, 75 const char **params); 76 XSLTPUBFUN int XSLTCALL 77 xsltEvalOneUserParam (xsltTransformContextPtr ctxt, 78 const xmlChar * name, 79 const xmlChar * value); 80 XSLTPUBFUN int XSLTCALL 81 xsltQuoteOneUserParam (xsltTransformContextPtr ctxt, 82 const xmlChar * name, 83 const xmlChar * value); 84 85 XSLTPUBFUN void XSLTCALL 86 xsltParseGlobalVariable (xsltStylesheetPtr style, 87 xmlNodePtr cur); 88 XSLTPUBFUN void XSLTCALL 89 xsltParseGlobalParam (xsltStylesheetPtr style, 90 xmlNodePtr cur); 91 XSLTPUBFUN void XSLTCALL 92 xsltParseStylesheetVariable (xsltTransformContextPtr ctxt, 93 xmlNodePtr cur); 94 XSLTPUBFUN void XSLTCALL 95 xsltParseStylesheetParam (xsltTransformContextPtr ctxt, 96 xmlNodePtr cur); 97 XSLTPUBFUN xsltStackElemPtr XSLTCALL 98 xsltParseStylesheetCallerParam (xsltTransformContextPtr ctxt, 99 xmlNodePtr cur); 100 XSLTPUBFUN int XSLTCALL 101 xsltAddStackElemList (xsltTransformContextPtr ctxt, 102 xsltStackElemPtr elems); 103 XSLTPUBFUN void XSLTCALL 104 xsltFreeGlobalVariables (xsltTransformContextPtr ctxt); 105 XSLTPUBFUN xmlXPathObjectPtr XSLTCALL 106 xsltVariableLookup (xsltTransformContextPtr ctxt, 107 const xmlChar *name, 108 const xmlChar *ns_uri); 109 XSLTPUBFUN xmlXPathObjectPtr XSLTCALL 110 xsltXPathVariableLookup (void *ctxt, 111 const xmlChar *name, 112 const xmlChar *ns_uri); 113 #ifdef __cplusplus 114 } 115 #endif 116 117 #endif /* __XML_XSLT_VARIABLES_H__ */ 118 119