21#define PATH_MAX _MAX_PATH
26#define WITH_XSLT_DEBUG_EXTENSIONS
97 "xsltNewExtDef : malloc failed\n");
117 if (extensiond ==
NULL)
137 while (extensiond !=
NULL) {
139 extensiond = extensiond->
next;
166 "xsltNewExtModule : malloc failed\n");
169 cur->initFunc = initFunc;
170 cur->shutdownFunc = shutdownFunc;
171 cur->styleInitFunc = styleInitFunc;
172 cur->styleShutdownFunc = styleShutdownFunc;
209 if (extModule ==
NULL)
214 "xsltNewExtData : malloc failed\n");
217 cur->extModule = extModule;
218 cur->extData = extData;
263 "xsltNewExtElement : malloc failed\n");
266 cur->precomp = precomp;
292typedef void (*exsltRegisterFunction) (
void);
322 exsltRegisterFunction regfunc;
357 if (ext_name ==
NULL) {
363 if ((
'/' == *
i) || (
'\\' == *
i) || (
'.' == *
i) || (
'-' == *
i))
369 while (
i > ext_name && *(
i - 1) ==
'_') {
377 if (
NULL == ext_directory) {
378 ext_directory =
BAD_CAST LIBXSLT_DEFAULT_PLUGINS_PATH();
379 if (
NULL == ext_directory)
382#ifdef WITH_XSLT_DEBUG_EXTENSIONS
385 "LIBXSLT_PLUGINS_PATH is %s\n", ext_directory);
392#ifdef WITH_XSLT_DEBUG_EXTENSIONS
394 "Attempting to load plugin: %s for URI: %s\n",
395 module_filename, URI);
400#ifdef WITH_XSLT_DEBUG_EXTENSIONS
402 "xmlCheckFilename failed for plugin: %s\n", module_filename);
410 m = xmlModuleOpen(module_filename, 0);
413#ifdef WITH_XSLT_DEBUG_EXTENSIONS
415 "xmlModuleOpen failed for plugin: %s\n", module_filename);
427 rc = xmlModuleSymbol(
m, (
const char *) regfunc_name, &vregfunc);
443#ifdef WITH_XSLT_DEBUG_EXTENSIONS
445 "xmlModuleSymbol failed for plugin: %s, regfunc: %s\n",
446 module_filename, regfunc_name);
455 return (
NULL == regfunc) ? -1 : 0;
511#ifdef WITH_XSLT_DEBUG_EXTENSIONS
513 "Registering extension namespace '%s'.\n", URI);
516#ifdef XSLT_REFACTORED
526 while (def !=
NULL) {
542#ifdef XSLT_REFACTORED
588 const xmlChar * URI, xmlXPathFunction function)
593 (URI ==
NULL) || (function ==
NULL))
596 xmlXPathRegisterFuncNS(ctxt->
xpathCtxt,
name, URI, function);
625 (URI ==
NULL) || (function ==
NULL))
667 void *userData =
NULL;
674#ifdef WITH_XSLT_DEBUG_EXTENSIONS
676 "Not registered extension module: %s\n", URI);
688#ifdef WITH_XSLT_DEBUG_EXTENSIONS
690 "Not registered extension module: %s\n", URI);
706#ifdef WITH_XSLT_DEBUG_EXTENSIONS
708 "Initializing module with *no* callback: %s\n", URI);
711#ifdef WITH_XSLT_DEBUG_EXTENSIONS
713 "Initializing module with callback: %s\n", URI);
724 if (dataContainer ==
NULL)
728 (
void *) dataContainer) < 0)
731 "Failed to register module '%s'.\n", URI);
733 if (
module->styleShutdownFunc)
739 return(dataContainer);
766#ifdef XSLT_REFACTORED
773 tmpStyle = tmpStyle->
parent;
777 if (dataContainer !=
NULL) {
783 return(dataContainer->
extData);
791 while (tmpStyle !=
NULL) {
795 if (dataContainer !=
NULL) {
796 return(dataContainer->
extData);
806 if (dataContainer !=
NULL)
807 return (dataContainer->
extData);
811#ifdef XSLT_REFACTORED
840 return(dataContainer->
extData);
845 if (dataContainer !=
NULL)
846 return (dataContainer->
extData);
866 if ((ctxt ==
NULL) || (URI ==
NULL))
887#ifdef WITH_XSLT_DEBUG_EXTENSIONS
889 "Not registered extension module: %s\n", URI);
896#ifdef WITH_XSLT_DEBUG_EXTENSIONS
898 "Initializing module: %s\n", URI);
901 extData =
module->initFunc(ctxt, URI);
910 "Failed to register module data: %s\n",
913 module->shutdownFunc(ctxt, URI, extData);
919 return (
data->extData);
945 if ((styleData ==
NULL) || (ctxt ==
NULL) || (URI ==
NULL) ||
947#ifdef WITH_XSLT_DEBUG_EXTENSIONS
949 "xsltInitCtxtExt: NULL param or error\n");
955#ifdef WITH_XSLT_DEBUG_EXTENSIONS
957 "xsltInitCtxtExt: no module or no initFunc\n");
963 if (ctxtData !=
NULL) {
964#ifdef WITH_XSLT_DEBUG_EXTENSIONS
966 "xsltInitCtxtExt: already initialized\n");
972 if (extData ==
NULL) {
973#ifdef WITH_XSLT_DEBUG_EXTENSIONS
975 "xsltInitCtxtExt: no extData\n");
979 if (ctxtData ==
NULL) {
993 "Failed to register module data: %s\n", URI);
995 module->shutdownFunc(ctxt->
ctxt, URI, extData);
1000#ifdef WITH_XSLT_DEBUG_EXTENSIONS
1039#ifdef WITH_XSLT_DEBUG_EXTENSIONS
1067#ifdef WITH_XSLT_DEBUG_EXTENSIONS
1069 "Shutting down module : %s\n", URI);
1071 module->shutdownFunc(ctxt, URI,
data->extData);
1113#ifdef WITH_XSLT_DEBUG_EXTENSIONS
1115 "Shutting down module : %s\n", URI);
1160#ifdef XSLT_REFACTORED
1171 xsltPointerListPtr
list = XSLT_CCTXT(
style)->inode->extElemNs;
1173 for (
i = 0;
i <
list->number;
i++) {
1257 if ((URI ==
NULL) || (initFunc ==
NULL))
1269 if ((
module->initFunc == initFunc) &&
1270 (
module->shutdownFunc == shutdownFunc))
1277 styleInitFunc, styleShutdownFunc);
1369 if ((ctxt ==
NULL) || (ctxt->context ==
NULL))
1371 return (ctxt->context->extra);
1386 xmlXPathFunction function)
1418 xmlXPathFunction
ret;
1511 "xsltNewExtElement : malloc failed\n");
1540 comp->
func = function;
1542 comp->
free = freeFunc;
1545 style->preComps = comp;
1728 return (
ext->transform);
1768 return (
ext->precomp);
1949 return data->extData;
1981 "xsltExtFunctionTest: not initialized,"
1982 " calling xsltGetExtData\n");
1986 "xsltExtElementTest: not initialized\n");
1990 if (tctxt ==
NULL) {
1992 "xsltExtFunctionTest: failed to get the transformation context\n");
1999 "xsltExtFunctionTest: failed to get module data\n");
2004 "xsltExtFunctionTest: got wrong module data\n");
2007#ifdef WITH_XSLT_DEBUG_FUNCTION
2009 "libxslt:test() called with %d args\n", nargs);
2028 "xsltExtElementTest: no transformation context\n");
2033 "xsltExtElementPreCompTest: not initialized,"
2034 " calling xsltStyleGetExtData\n");
2038 "xsltExtElementPreCompTest: not initialized\n");
2046 "xsltExtElementPreCompTest: no instruction\n");
2073 "xsltExtElementTest: not initialized,"
2074 " calling xsltGetExtData\n");
2078 "xsltExtElementTest: not initialized\n");
2084 "xsltExtElementTest: no transformation context\n");
2089 "xsltExtElementTest: no current node\n");
2094 "xsltExtElementTest: no instruction\n");
2099 "xsltExtElementTest: no insertion point\n");
2103 "libxslt:test element test worked");
2121 "xsltExtInitTest: not initialized,"
2122 " calling xsltStyleGetExtData\n");
2126 "xsltExtInitTest: not initialized\n");
2132 "xsltExtInitTest: already initialized\n");
2137 "Registered test module : %s\n", URI);
2156 "xsltExtShutdownTest: not initialized\n");
2161 "xsltExtShutdownTest: wrong data\n");
2165 "Unregistered test module : %s\n", URI);
2183 "xsltExtInitTest: already initialized\n");
2188 "Registered test module : %s\n", URI);
2207 "xsltExtShutdownTest: not initialized\n");
2212 "xsltExtShutdownTest: wrong data\n");
2216 "Unregistered test module : %s\n", URI);
2247 xmlModuleClose(payload);
2328 "Registered XSLT Extensions\n--------------------------\n");
2330 fprintf(output,
"No registered extension functions\n");
2332 fprintf(output,
"Registered Extension Functions:\n");
2339 fprintf(output,
"\nNo registered extension elements\n");
2341 fprintf(output,
"\nRegistered Extension Elements:\n");
2348 fprintf(output,
"\nNo registered extension modules\n");
2350 fprintf(output,
"\nRegistered Extension Modules:\n");
int xsltUnregisterExtModuleElement(const xmlChar *name, const xmlChar *URI)
int xsltUnregisterExtModule(const xmlChar *URI)
int xsltCheckExtURI(xsltStylesheetPtr style, const xmlChar *URI)
static xmlChar * testData
static void xsltExtStyleShutdownTest(xsltStylesheetPtr style ATTRIBUTE_UNUSED, const xmlChar *URI, void *data)
int xsltUnregisterExtModuleFunction(const xmlChar *name, const xmlChar *URI)
int xsltRegisterExtFunction(xsltTransformContextPtr ctxt, const xmlChar *name, const xmlChar *URI, xmlXPathFunction function)
static xmlHashTablePtr xsltModuleHash
int xsltInitCtxtExts(xsltTransformContextPtr ctxt)
static void xsltShutdownExt(void *payload, void *vctxt, const xmlChar *URI)
int xsltCheckExtPrefix(xsltStylesheetPtr style, const xmlChar *URI)
static xmlMutexPtr xsltExtMutex
static void xsltExtFunctionTest(xmlXPathParserContextPtr ctxt, int nargs ATTRIBUTE_UNUSED)
void xsltDebugDumpExtensions(FILE *output)
static xsltExtModulePtr xsltNewExtModule(xsltExtInitFunction initFunc, xsltExtShutdownFunction shutdownFunc, xsltStyleExtInitFunction styleInitFunc, xsltStyleExtShutdownFunction styleShutdownFunc)
int xsltRegisterExtElement(xsltTransformContextPtr ctxt, const xmlChar *name, const xmlChar *URI, xsltTransformFunction function)
xsltPreComputeFunction xsltExtModuleElementPreComputeLookup(const xmlChar *name, const xmlChar *URI)
static void xsltFreeExtModuleEntry(void *payload, const xmlChar *name ATTRIBUTE_UNUSED)
static xsltExtElementPtr xsltNewExtElement(xsltPreComputeFunction precomp, xsltTransformFunction transform)
static int xsltExtModuleRegisterDynamic(const xmlChar *URI ATTRIBUTE_UNUSED)
static xsltExtDataPtr xsltStyleInitializeStylesheetModule(xsltStylesheetPtr style, const xmlChar *URI)
void * xsltGetExtData(xsltTransformContextPtr ctxt, const xmlChar *URI)
static void * xsltExtInitTest(xsltTransformContextPtr ctxt, const xmlChar *URI)
static void xsltUnregisterAllExtModuleElement(void)
int xsltRegisterExtModuleFull(const xmlChar *URI, xsltExtInitFunction initFunc, xsltExtShutdownFunction shutdownFunc, xsltStyleExtInitFunction styleInitFunc, xsltStyleExtShutdownFunction styleShutdownFunc)
static void * xsltExtStyleInitTest(xsltStylesheetPtr style ATTRIBUTE_UNUSED, const xmlChar *URI)
static void xsltDebugDumpExtModulesCallback(void *function ATTRIBUTE_UNUSED, void *data, const xmlChar *URI, const xmlChar *not_used ATTRIBUTE_UNUSED, const xmlChar *not_used2 ATTRIBUTE_UNUSED)
static xmlHashTablePtr xsltTopLevelsHash
static void xsltFreeExtData(xsltExtDataPtr ext)
int xsltRegisterExtModuleTopLevel(const xmlChar *name, const xmlChar *URI, xsltTopLevelFunction function)
void xsltRegisterTestModule(void)
static xmlChar * testStyleData
static void xsltUnregisterAllExtModules(void)
int xsltRegisterExtModule(const xmlChar *URI, xsltExtInitFunction initFunc, xsltExtShutdownFunction shutdownFunc)
void xsltFreeCtxtExts(xsltTransformContextPtr ctxt)
static void xsltUnregisterAllExtModuleFunction(void)
xsltExtModule * xsltExtModulePtr
static void xsltFreeExtDefList(xsltExtDefPtr extensiond)
static void xsltFreeElemPreComp(xsltElemPreCompPtr comp)
static xsltExtDataPtr xsltNewExtData(xsltExtModulePtr extModule, void *extData)
xsltTransformFunction xsltExtModuleElementLookup(const xmlChar *name, const xmlChar *URI)
xsltElemPreCompPtr xsltPreComputeExtModuleElement(xsltStylesheetPtr style, xmlNodePtr inst)
static xsltExtDefPtr xsltNewExtDef(const xmlChar *prefix, const xmlChar *URI)
xsltExtElement * xsltExtElementPtr
xsltTransformContextPtr xsltXPathGetTransformContext(xmlXPathParserContextPtr ctxt)
void xsltShutdownExts(xsltStylesheetPtr style)
static void xsltShutdownCtxtExt(void *payload, void *vctxt, const xmlChar *URI)
xsltExtData * xsltExtDataPtr
static void xsltFreeExtDef(xsltExtDefPtr extensiond)
xsltElemPreCompPtr xsltNewElemPreComp(xsltStylesheetPtr style, xmlNodePtr inst, xsltTransformFunction function)
static void xsltFreeExtDataEntry(void *payload, const xmlChar *name ATTRIBUTE_UNUSED)
static xmlHashTablePtr xsltFunctionsHash
void xsltInitElemPreComp(xsltElemPreCompPtr comp, xsltStylesheetPtr style, xmlNodePtr inst, xsltTransformFunction function, xsltElemPreCompDeallocator freeFunc)
int xsltRegisterExtModuleElement(const xmlChar *name, const xmlChar *URI, xsltPreComputeFunction precomp, xsltTransformFunction transform)
static void xsltUnregisterAllExtModuleTopLevel(void)
static void xsltHashScannerModuleFree(void *payload ATTRIBUTE_UNUSED, void *data ATTRIBUTE_UNUSED, const xmlChar *name ATTRIBUTE_UNUSED)
xmlXPathFunction xsltExtModuleFunctionLookup(const xmlChar *name, const xmlChar *URI)
xsltTransformFunction xsltExtElementLookup(xsltTransformContextPtr ctxt, const xmlChar *name, const xmlChar *URI)
static xsltElemPreCompPtr xsltExtElementPreCompTest(xsltStylesheetPtr style, xmlNodePtr inst, xsltTransformFunction function)
static void xsltInitCtxtExt(void *payload, void *data, const xmlChar *URI)
static xmlHashTablePtr xsltElementsHash
void xsltCleanupGlobals(void)
static void xsltFreeExtElement(xsltExtElementPtr ext)
static void xsltExtElementTest(xsltTransformContextPtr ctxt, xmlNodePtr node, xmlNodePtr inst, xsltElemPreCompPtr comp ATTRIBUTE_UNUSED)
static void xsltFreeExtModule(xsltExtModulePtr ext)
static void xsltExtShutdownTest(xsltTransformContextPtr ctxt, const xmlChar *URI, void *data)
void xsltInitGlobals(void)
static xmlHashTablePtr xsltExtensionsHash
static void xsltFreeExtElementEntry(void *payload, const xmlChar *name ATTRIBUTE_UNUSED)
xmlHashTablePtr xsltGetExtInfo(xsltStylesheetPtr style, const xmlChar *URI)
static void xsltDebugDumpExtensionsCallback(void *function ATTRIBUTE_UNUSED, void *data, const xmlChar *name, const xmlChar *URI, const xmlChar *not_used ATTRIBUTE_UNUSED)
void xsltShutdownCtxtExts(xsltTransformContextPtr ctxt)
xsltExtDef * xsltExtDefPtr
int xsltRegisterExtModuleFunction(const xmlChar *name, const xmlChar *URI, xmlXPathFunction function)
void * xsltStyleGetExtData(xsltStylesheetPtr style, const xmlChar *URI)
void xsltFreeExts(xsltStylesheetPtr style)
int xsltRegisterExtPrefix(xsltStylesheetPtr style, const xmlChar *prefix, const xmlChar *URI)
int xsltUnregisterExtModuleTopLevel(const xmlChar *name, const xmlChar *URI)
xsltTopLevelFunction xsltExtModuleTopLevelLookup(const xmlChar *name, const xmlChar *URI)
while(CdLookupNextInitialFileDirent(IrpContext, Fcb, FileContext))
static const WCHAR *const ext[]
void(* xsltStyleExtShutdownFunction)(xsltStylesheetPtr style, const xmlChar *URI, void *data)
void(* xsltTopLevelFunction)(xsltStylesheetPtr style, xmlNodePtr inst)
void *(* xsltExtInitFunction)(xsltTransformContextPtr ctxt, const xmlChar *URI)
void *(* xsltStyleExtInitFunction)(xsltStylesheetPtr style, const xmlChar *URI)
void(* xsltExtShutdownFunction)(xsltTransformContextPtr ctxt, const xmlChar *URI, void *data)
xsltElemPreCompPtr(* xsltPreComputeFunction)(xsltStylesheetPtr style, xmlNodePtr inst, xsltTransformFunction function)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLuint GLenum GLenum transform
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
xsltStylesheetPtr xsltNextImport(xsltStylesheetPtr cur)
_Check_return_opt_ _CRTIMP int __cdecl fprintf(_Inout_ FILE *_File, _In_z_ _Printf_format_string_ const char *_Format,...)
_Check_return_ char *__cdecl getenv(_In_z_ const char *_VarName)
XMLPUBVAR xmlMallocFunc xmlMalloc
XMLPUBVAR xmlFreeFunc xmlFree
XMLPUBFUN int XMLCALL xmlHashUpdateEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, void *userdata, xmlHashDeallocator f)
XMLPUBFUN int XMLCALL xmlHashAddEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, void *userdata)
XMLPUBFUN void XMLCALL xmlHashFree(xmlHashTablePtr table, xmlHashDeallocator f)
XMLPUBFUN void *XMLCALL xmlHashLookup(xmlHashTablePtr table, const xmlChar *name)
#define XML_CAST_FPTR(fptr)
XMLPUBFUN int XMLCALL xmlHashRemoveEntry2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, xmlHashDeallocator f)
XMLPUBFUN xmlHashTablePtr XMLCALL xmlHashCreate(int size)
XMLPUBFUN void XMLCALL xmlHashScanFull(xmlHashTablePtr table, xmlHashScannerFull f, void *data)
XMLPUBFUN int XMLCALL xmlHashAddEntry(xmlHashTablePtr table, const xmlChar *name, void *userdata)
XMLPUBFUN int XMLCALL xmlHashRemoveEntry(xmlHashTablePtr table, const xmlChar *name, xmlHashDeallocator f)
XMLPUBFUN void *XMLCALL xmlHashLookup2(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2)
XMLPUBFUN void XMLCALL xmlHashScan(xmlHashTablePtr table, xmlHashScanner f, void *data)
XMLPUBFUN xmlNodePtr XMLCALL xmlAddChild(xmlNodePtr parent, xmlNodePtr cur)
XMLPUBFUN xmlNodePtr XMLCALL xmlNewComment(const xmlChar *content)
xsltElemPreCompDeallocator free
xsltTransformFunction func
xsltExtModulePtr extModule
struct _xsltExtDef * next
xsltPreComputeFunction precomp
xsltTransformFunction transform
xsltExtInitFunction initFunc
xsltExtShutdownFunction shutdownFunc
xsltStyleExtInitFunction styleInitFunc
xsltStyleExtShutdownFunction styleShutdownFunc
xsltTransformContextPtr ctxt
struct _xsltStylesheet * parent
xmlHashTablePtr extElements
xmlHashTablePtr extFunctions
xmlXPathContextPtr xpathCtxt
XMLPUBFUN void XMLCALL xmlMutexUnlock(xmlMutexPtr tok)
XMLPUBFUN xmlMutexPtr XMLCALL xmlNewMutex(void)
XMLPUBFUN void XMLCALL xmlFreeMutex(xmlMutexPtr tok)
XMLPUBFUN void XMLCALL xmlMutexLock(xmlMutexPtr tok)
XMLPUBFUN int XMLCALL xmlCheckFilename(const char *path)
XMLPUBFUN xmlChar *XMLCALL xmlStrcat(xmlChar *cur, const xmlChar *add)
XMLPUBFUN const xmlChar *XMLCALL xmlStrstr(const xmlChar *str, const xmlChar *val)
XMLPUBFUN int XMLCALL xmlStrPrintf(xmlChar *buf, int len, const char *msg,...) LIBXML_ATTR_FORMAT(3
XMLPUBFUN xmlChar *XMLCALL xmlStrdup(const xmlChar *cur)
XMLPUBFUN int XMLCALL xmlStrEqual(const xmlChar *str1, const xmlChar *str2)
#define LIBXML_MODULE_EXTENSION
xsltTransformContext * xsltTransformContextPtr
xsltElemPreComp * xsltElemPreCompPtr
xsltStylesheet * xsltStylesheetPtr
void(* xsltElemPreCompDeallocator)(xsltElemPreCompPtr comp)
void(* xsltTransformFunction)(xsltTransformContextPtr ctxt, xmlNodePtr node, xmlNodePtr inst, xsltElemPreCompPtr comp)
void xsltFreeLocales(void)
void xsltTransformError(xsltTransformContextPtr ctxt, xsltStylesheetPtr style, xmlNodePtr node, const char *msg,...)
xmlGenericErrorFunc xsltGenericError
xmlGenericErrorFunc xsltGenericDebug
void * xsltGenericDebugContext
void * xsltGenericErrorContext