| /* | |
| * Summary: interface for the extension support | |
| * Description: This provide the API needed for simple and module | |
| * extension support. | |
| * | |
| * Copy: See Copyright for the status of this software. | |
| * | |
| * Author: Daniel Veillard | |
| */ | |
| #ifndef __XML_XSLT_EXTENSION_H__ | |
| #define __XML_XSLT_EXTENSION_H__ | |
| #include <libxml/xpath.h> | |
| #include "xsltexports.h" | |
| #include "xsltInternals.h" | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| /** | |
| * Extension Modules API. | |
| */ | |
| /** | |
| * xsltInitGlobals: | |
| * | |
| * Initialize the global variables for extensions | |
| * | |
| */ | |
| XSLTPUBFUN void XSLTCALL | |
| xsltInitGlobals (void); | |
| /** | |
| * xsltStyleExtInitFunction: | |
| * @ctxt: an XSLT stylesheet | |
| * @URI: the namespace URI for the extension | |
| * | |
| * A function called at initialization time of an XSLT extension module. | |
| * | |
| * Returns a pointer to the module specific data for this transformation. | |
| */ | |
| typedef void * (*xsltStyleExtInitFunction) (xsltStylesheetPtr style, | |
| const xmlChar *URI); | |
| /** | |
| * xsltStyleExtShutdownFunction: | |
| * @ctxt: an XSLT stylesheet | |
| * @URI: the namespace URI for the extension | |
| * @data: the data associated to this module | |
| * | |
| * A function called at shutdown time of an XSLT extension module. | |
| */ | |
| typedef void (*xsltStyleExtShutdownFunction) (xsltStylesheetPtr style, | |
| const xmlChar *URI, | |
| void *data); | |
| /** | |
| * xsltExtInitFunction: | |
| * @ctxt: an XSLT transformation context | |
| * @URI: the namespace URI for the extension | |
| * | |
| * A function called at initialization time of an XSLT extension module. | |
| * | |
| * Returns a pointer to the module specific data for this transformation. | |
| */ | |
| typedef void * (*xsltExtInitFunction) (xsltTransformContextPtr ctxt, | |
| const xmlChar *URI); | |
| /** | |
| * xsltExtShutdownFunction: | |
| * @ctxt: an XSLT transformation context | |
| * @URI: the namespace URI for the extension | |
| * @data: the data associated to this module | |
| * | |
| * A function called at shutdown time of an XSLT extension module. | |
| */ | |
| typedef void (*xsltExtShutdownFunction) (xsltTransformContextPtr ctxt, | |
| const xmlChar *URI, | |
| void *data); | |
| XSLTPUBFUN int XSLTCALL | |
| xsltRegisterExtModule (const xmlChar *URI, | |
| xsltExtInitFunction initFunc, | |
| xsltExtShutdownFunction shutdownFunc); | |
| XSLTPUBFUN int XSLTCALL | |
| xsltRegisterExtModuleFull | |
| (const xmlChar * URI, | |
| xsltExtInitFunction initFunc, | |
| xsltExtShutdownFunction shutdownFunc, | |
| xsltStyleExtInitFunction styleInitFunc, | |
| xsltStyleExtShutdownFunction styleShutdownFunc); | |
| XSLTPUBFUN int XSLTCALL | |
| xsltUnregisterExtModule (const xmlChar * URI); | |
| XSLTPUBFUN void * XSLTCALL | |
| xsltGetExtData (xsltTransformContextPtr ctxt, | |
| const xmlChar *URI); | |
| XSLTPUBFUN void * XSLTCALL | |
| xsltStyleGetExtData (xsltStylesheetPtr style, | |
| const xmlChar *URI); | |
| #ifdef XSLT_REFACTORED | |
| XSLTPUBFUN void * XSLTCALL | |
| xsltStyleStylesheetLevelGetExtData( | |
| xsltStylesheetPtr style, | |
| const xmlChar * URI); | |
| #endif | |
| XSLTPUBFUN void XSLTCALL | |
| xsltShutdownCtxtExts (xsltTransformContextPtr ctxt); | |
| XSLTPUBFUN void XSLTCALL | |
| xsltShutdownExts (xsltStylesheetPtr style); | |
| XSLTPUBFUN xsltTransformContextPtr XSLTCALL | |
| xsltXPathGetTransformContext | |
| (xmlXPathParserContextPtr ctxt); | |
| /* | |
| * extension functions | |
| */ | |
| XSLTPUBFUN int XSLTCALL | |
| xsltRegisterExtModuleFunction | |
| (const xmlChar *name, | |
| const xmlChar *URI, | |
| xmlXPathFunction function); | |
| XSLTPUBFUN xmlXPathFunction XSLTCALL | |
| xsltExtModuleFunctionLookup (const xmlChar *name, | |
| const xmlChar *URI); | |
| XSLTPUBFUN int XSLTCALL | |
| xsltUnregisterExtModuleFunction | |
| (const xmlChar *name, | |
| const xmlChar *URI); | |
| /* | |
| * extension elements | |
| */ | |
| typedef xsltElemPreCompPtr (*xsltPreComputeFunction) | |
| (xsltStylesheetPtr style, | |
| xmlNodePtr inst, | |
| xsltTransformFunction function); | |
| XSLTPUBFUN xsltElemPreCompPtr XSLTCALL | |
| xsltNewElemPreComp (xsltStylesheetPtr style, | |
| xmlNodePtr inst, | |
| xsltTransformFunction function); | |
| XSLTPUBFUN void XSLTCALL | |
| xsltInitElemPreComp (xsltElemPreCompPtr comp, | |
| xsltStylesheetPtr style, | |
| xmlNodePtr inst, | |
| xsltTransformFunction function, | |
| xsltElemPreCompDeallocator freeFunc); | |
| XSLTPUBFUN int XSLTCALL | |
| xsltRegisterExtModuleElement | |
| (const xmlChar *name, | |
| const xmlChar *URI, | |
| xsltPreComputeFunction precomp, | |
| xsltTransformFunction transform); | |
| XSLTPUBFUN xsltTransformFunction XSLTCALL | |
| xsltExtElementLookup (xsltTransformContextPtr ctxt, | |
| const xmlChar *name, | |
| const xmlChar *URI); | |
| XSLTPUBFUN xsltTransformFunction XSLTCALL | |
| xsltExtModuleElementLookup | |
| (const xmlChar *name, | |
| const xmlChar *URI); | |
| XSLTPUBFUN xsltPreComputeFunction XSLTCALL | |
| xsltExtModuleElementPreComputeLookup | |
| (const xmlChar *name, | |
| const xmlChar *URI); | |
| XSLTPUBFUN int XSLTCALL | |
| xsltUnregisterExtModuleElement | |
| (const xmlChar *name, | |
| const xmlChar *URI); | |
| /* | |
| * top-level elements | |
| */ | |
| typedef void (*xsltTopLevelFunction) (xsltStylesheetPtr style, | |
| xmlNodePtr inst); | |
| XSLTPUBFUN int XSLTCALL | |
| xsltRegisterExtModuleTopLevel | |
| (const xmlChar *name, | |
| const xmlChar *URI, | |
| xsltTopLevelFunction function); | |
| XSLTPUBFUN xsltTopLevelFunction XSLTCALL | |
| xsltExtModuleTopLevelLookup | |
| (const xmlChar *name, | |
| const xmlChar *URI); | |
| XSLTPUBFUN int XSLTCALL | |
| xsltUnregisterExtModuleTopLevel | |
| (const xmlChar *name, | |
| const xmlChar *URI); | |
| /* These 2 functions are deprecated for use within modules. */ | |
| XSLTPUBFUN int XSLTCALL | |
| xsltRegisterExtFunction (xsltTransformContextPtr ctxt, | |
| const xmlChar *name, | |
| const xmlChar *URI, | |
| xmlXPathFunction function); | |
| XSLTPUBFUN int XSLTCALL | |
| xsltRegisterExtElement (xsltTransformContextPtr ctxt, | |
| const xmlChar *name, | |
| const xmlChar *URI, | |
| xsltTransformFunction function); | |
| /* | |
| * Extension Prefix handling API. | |
| * Those are used by the XSLT (pre)processor. | |
| */ | |
| XSLTPUBFUN int XSLTCALL | |
| xsltRegisterExtPrefix (xsltStylesheetPtr style, | |
| const xmlChar *prefix, | |
| const xmlChar *URI); | |
| XSLTPUBFUN int XSLTCALL | |
| xsltCheckExtPrefix (xsltStylesheetPtr style, | |
| const xmlChar *URI); | |
| XSLTPUBFUN int XSLTCALL | |
| xsltCheckExtURI (xsltStylesheetPtr style, | |
| const xmlChar *URI); | |
| XSLTPUBFUN int XSLTCALL | |
| xsltInitCtxtExts (xsltTransformContextPtr ctxt); | |
| XSLTPUBFUN void XSLTCALL | |
| xsltFreeCtxtExts (xsltTransformContextPtr ctxt); | |
| XSLTPUBFUN void XSLTCALL | |
| xsltFreeExts (xsltStylesheetPtr style); | |
| XSLTPUBFUN xsltElemPreCompPtr XSLTCALL | |
| xsltPreComputeExtModuleElement | |
| (xsltStylesheetPtr style, | |
| xmlNodePtr inst); | |
| /* | |
| * Extension Infos access. | |
| * Used by exslt initialisation | |
| */ | |
| XSLTPUBFUN xmlHashTablePtr XSLTCALL | |
| xsltGetExtInfo (xsltStylesheetPtr style, | |
| const xmlChar *URI); | |
| /** | |
| * Test module http://xmlsoft.org/XSLT/ | |
| */ | |
| XSLTPUBFUN void XSLTCALL | |
| xsltRegisterTestModule (void); | |
| XSLTPUBFUN void XSLTCALL | |
| xsltDebugDumpExtensions (FILE * output); | |
| #ifdef __cplusplus | |
| } | |
| #endif | |
| #endif /* __XML_XSLT_EXTENSION_H__ */ | |