123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- /*
- * 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__ */
|