2 * Summary: interface for the extension support
3 * Description: This provide the API needed for simple and module
6 * Copy: See Copyright for the status of this software.
8 * Author: Daniel Veillard
11 #ifndef __XML_XSLT_EXTENSION_H__
12 #define __XML_XSLT_EXTENSION_H__
14 #include <libxml/xpath.h>
15 #include "xsltexports.h"
16 #include "xsltInternals.h"
23 * Extension Modules API.
29 * Initialize the global variables for extensions
33 XSLTPUBFUN
void XSLTCALL
34 xsltInitGlobals (void);
37 * xsltStyleExtInitFunction:
38 * @ctxt: an XSLT stylesheet
39 * @URI: the namespace URI for the extension
41 * A function called at initialization time of an XSLT extension module.
43 * Returns a pointer to the module specific data for this transformation.
45 typedef void * (*xsltStyleExtInitFunction
) (xsltStylesheetPtr style
,
49 * xsltStyleExtShutdownFunction:
50 * @ctxt: an XSLT stylesheet
51 * @URI: the namespace URI for the extension
52 * @data: the data associated to this module
54 * A function called at shutdown time of an XSLT extension module.
56 typedef void (*xsltStyleExtShutdownFunction
) (xsltStylesheetPtr style
,
61 * xsltExtInitFunction:
62 * @ctxt: an XSLT transformation context
63 * @URI: the namespace URI for the extension
65 * A function called at initialization time of an XSLT extension module.
67 * Returns a pointer to the module specific data for this transformation.
69 typedef void * (*xsltExtInitFunction
) (xsltTransformContextPtr ctxt
,
73 * xsltExtShutdownFunction:
74 * @ctxt: an XSLT transformation context
75 * @URI: the namespace URI for the extension
76 * @data: the data associated to this module
78 * A function called at shutdown time of an XSLT extension module.
80 typedef void (*xsltExtShutdownFunction
) (xsltTransformContextPtr ctxt
,
84 XSLTPUBFUN
int XSLTCALL
85 xsltRegisterExtModule (const xmlChar
*URI
,
86 xsltExtInitFunction initFunc
,
87 xsltExtShutdownFunction shutdownFunc
);
88 XSLTPUBFUN
int XSLTCALL
89 xsltRegisterExtModuleFull
91 xsltExtInitFunction initFunc
,
92 xsltExtShutdownFunction shutdownFunc
,
93 xsltStyleExtInitFunction styleInitFunc
,
94 xsltStyleExtShutdownFunction styleShutdownFunc
);
96 XSLTPUBFUN
int XSLTCALL
97 xsltUnregisterExtModule (const xmlChar
* URI
);
99 XSLTPUBFUN
void * XSLTCALL
100 xsltGetExtData (xsltTransformContextPtr ctxt
,
103 XSLTPUBFUN
void * XSLTCALL
104 xsltStyleGetExtData (xsltStylesheetPtr style
,
106 #ifdef XSLT_REFACTORED
107 XSLTPUBFUN
void * XSLTCALL
108 xsltStyleStylesheetLevelGetExtData(
109 xsltStylesheetPtr style
,
110 const xmlChar
* URI
);
112 XSLTPUBFUN
void XSLTCALL
113 xsltShutdownCtxtExts (xsltTransformContextPtr ctxt
);
115 XSLTPUBFUN
void XSLTCALL
116 xsltShutdownExts (xsltStylesheetPtr style
);
118 XSLTPUBFUN xsltTransformContextPtr XSLTCALL
119 xsltXPathGetTransformContext
120 (xmlXPathParserContextPtr ctxt
);
123 * extension functions
125 XSLTPUBFUN
int XSLTCALL
126 xsltRegisterExtModuleFunction
127 (const xmlChar
*name
,
129 xmlXPathFunction function
);
130 XSLTPUBFUN xmlXPathFunction XSLTCALL
131 xsltExtModuleFunctionLookup (const xmlChar
*name
,
133 XSLTPUBFUN
int XSLTCALL
134 xsltUnregisterExtModuleFunction
135 (const xmlChar
*name
,
141 typedef xsltElemPreCompPtr (*xsltPreComputeFunction
)
142 (xsltStylesheetPtr style
,
144 xsltTransformFunction function
);
146 XSLTPUBFUN xsltElemPreCompPtr XSLTCALL
147 xsltNewElemPreComp (xsltStylesheetPtr style
,
149 xsltTransformFunction function
);
150 XSLTPUBFUN
void XSLTCALL
151 xsltInitElemPreComp (xsltElemPreCompPtr comp
,
152 xsltStylesheetPtr style
,
154 xsltTransformFunction function
,
155 xsltElemPreCompDeallocator freeFunc
);
157 XSLTPUBFUN
int XSLTCALL
158 xsltRegisterExtModuleElement
159 (const xmlChar
*name
,
161 xsltPreComputeFunction precomp
,
162 xsltTransformFunction transform
);
163 XSLTPUBFUN xsltTransformFunction XSLTCALL
164 xsltExtElementLookup (xsltTransformContextPtr ctxt
,
167 XSLTPUBFUN xsltTransformFunction XSLTCALL
168 xsltExtModuleElementLookup
169 (const xmlChar
*name
,
171 XSLTPUBFUN xsltPreComputeFunction XSLTCALL
172 xsltExtModuleElementPreComputeLookup
173 (const xmlChar
*name
,
175 XSLTPUBFUN
int XSLTCALL
176 xsltUnregisterExtModuleElement
177 (const xmlChar
*name
,
183 typedef void (*xsltTopLevelFunction
) (xsltStylesheetPtr style
,
186 XSLTPUBFUN
int XSLTCALL
187 xsltRegisterExtModuleTopLevel
188 (const xmlChar
*name
,
190 xsltTopLevelFunction function
);
191 XSLTPUBFUN xsltTopLevelFunction XSLTCALL
192 xsltExtModuleTopLevelLookup
193 (const xmlChar
*name
,
195 XSLTPUBFUN
int XSLTCALL
196 xsltUnregisterExtModuleTopLevel
197 (const xmlChar
*name
,
201 /* These 2 functions are deprecated for use within modules. */
202 XSLTPUBFUN
int XSLTCALL
203 xsltRegisterExtFunction (xsltTransformContextPtr ctxt
,
206 xmlXPathFunction function
);
207 XSLTPUBFUN
int XSLTCALL
208 xsltRegisterExtElement (xsltTransformContextPtr ctxt
,
211 xsltTransformFunction function
);
214 * Extension Prefix handling API.
215 * Those are used by the XSLT (pre)processor.
218 XSLTPUBFUN
int XSLTCALL
219 xsltRegisterExtPrefix (xsltStylesheetPtr style
,
220 const xmlChar
*prefix
,
222 XSLTPUBFUN
int XSLTCALL
223 xsltCheckExtPrefix (xsltStylesheetPtr style
,
225 XSLTPUBFUN
int XSLTCALL
226 xsltCheckExtURI (xsltStylesheetPtr style
,
228 XSLTPUBFUN
int XSLTCALL
229 xsltInitCtxtExts (xsltTransformContextPtr ctxt
);
230 XSLTPUBFUN
void XSLTCALL
231 xsltFreeCtxtExts (xsltTransformContextPtr ctxt
);
232 XSLTPUBFUN
void XSLTCALL
233 xsltFreeExts (xsltStylesheetPtr style
);
235 XSLTPUBFUN xsltElemPreCompPtr XSLTCALL
236 xsltPreComputeExtModuleElement
237 (xsltStylesheetPtr style
,
240 * Extension Infos access.
241 * Used by exslt initialisation
244 XSLTPUBFUN xmlHashTablePtr XSLTCALL
245 xsltGetExtInfo (xsltStylesheetPtr style
,
249 * Test module http://xmlsoft.org/XSLT/
251 XSLTPUBFUN
void XSLTCALL
252 xsltRegisterTestModule (void);
253 XSLTPUBFUN
void XSLTCALL
254 xsltDebugDumpExtensions (FILE * output
);
261 #endif /* __XML_XSLT_EXTENSION_H__ */