/** * xsltRegisterAllExtras: * * Registers the built-in extensions */ void xsltRegisterAllExtras (void) { xsltRegisterExtModuleFunction((const xmlChar *) "node-set", XSLT_LIBXSLT_NAMESPACE, xsltFunctionNodeSet); xsltRegisterExtModuleFunction((const xmlChar *) "node-set", XSLT_SAXON_NAMESPACE, xsltFunctionNodeSet); xsltRegisterExtModuleFunction((const xmlChar *) "node-set", XSLT_XT_NAMESPACE, xsltFunctionNodeSet); xsltRegisterExtModuleElement((const xmlChar *) "debug", XSLT_LIBXSLT_NAMESPACE, NULL, (xsltTransformFunction) xsltDebug); xsltRegisterExtModuleElement((const xmlChar *) "output", XSLT_SAXON_NAMESPACE, xsltDocumentComp, (xsltTransformFunction) xsltDocumentElem); xsltRegisterExtModuleElement((const xmlChar *) "write", XSLT_XALAN_NAMESPACE, xsltDocumentComp, (xsltTransformFunction) xsltDocumentElem); xsltRegisterExtModuleElement((const xmlChar *) "document", XSLT_XT_NAMESPACE, xsltDocumentComp, (xsltTransformFunction) xsltDocumentElem); xsltRegisterExtModuleElement((const xmlChar *) "document", XSLT_NAMESPACE, xsltDocumentComp, (xsltTransformFunction) xsltDocumentElem); }
void exsltDynRegister (void) { xsltRegisterExtModuleFunction ((const xmlChar *) "evaluate", EXSLT_DYNAMIC_NAMESPACE, exsltDynEvaluateFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "map", EXSLT_DYNAMIC_NAMESPACE, exsltDynMapFunction); }
void exsltCommonRegister (void) { xsltRegisterExtModuleFunction((const xmlChar *) "node-set", EXSLT_COMMON_NAMESPACE, exsltNodeSetFunction); xsltRegisterExtModuleFunction((const xmlChar *) "object-type", EXSLT_COMMON_NAMESPACE, exsltObjectTypeFunction); xsltRegisterExtModuleElement((const xmlChar *) "document", EXSLT_COMMON_NAMESPACE, (xsltPreComputeFunction) xsltDocumentComp, (xsltTransformFunction) xsltDocumentElem); }
/** * exsltRegexpRegister: * * Registers the EXSLT - Regexp module */ void PLUGINPUBFUN exslt_org_regular_expressions_init (void) { xsltRegisterExtModuleFunction ((const xmlChar *) "match", (const xmlChar *) EXSLT_REGEXP_NAMESPACE, exsltRegexpMatchFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "replace", (const xmlChar *) EXSLT_REGEXP_NAMESPACE, exsltRegexpReplaceFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "test", (const xmlChar *) EXSLT_REGEXP_NAMESPACE, exsltRegexpTestFunction); }
void exsltStrRegister (void) { xsltRegisterExtModuleFunction ((const xmlChar *) "tokenize", EXSLT_STRINGS_NAMESPACE, exsltStrTokenizeFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "split", EXSLT_STRINGS_NAMESPACE, exsltStrSplitFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "encode-uri", EXSLT_STRINGS_NAMESPACE, exsltStrEncodeUriFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "decode-uri", EXSLT_STRINGS_NAMESPACE, exsltStrDecodeUriFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "padding", EXSLT_STRINGS_NAMESPACE, exsltStrPaddingFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "align", EXSLT_STRINGS_NAMESPACE, exsltStrAlignFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "concat", EXSLT_STRINGS_NAMESPACE, exsltStrConcatFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "replace", EXSLT_STRINGS_NAMESPACE, exsltStrReplaceFunction); }
void SetFunction(const Stroka& name, const Stroka& uri, TxmlXPathFunction fn) { InitError(); if (xsltRegisterExtModuleFunction(BAD_CAST ~name, BAD_CAST ~uri, (xmlXPathFunction)fn) < 0) { ythrow yexception() << "cannot register xsl function " << uri << ':' << name << ": " << ErrorMessage; } }
void exsltCryptoRegister (void) { xsltRegisterExtModuleFunction ((const xmlChar *) "md4", EXSLT_CRYPTO_NAMESPACE, exsltCryptoMd4Function); xsltRegisterExtModuleFunction ((const xmlChar *) "md5", EXSLT_CRYPTO_NAMESPACE, exsltCryptoMd5Function); xsltRegisterExtModuleFunction ((const xmlChar *) "sha1", EXSLT_CRYPTO_NAMESPACE, exsltCryptoSha1Function); xsltRegisterExtModuleFunction ((const xmlChar *) "rc4_encrypt", EXSLT_CRYPTO_NAMESPACE, exsltCryptoRc4EncryptFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "rc4_decrypt", EXSLT_CRYPTO_NAMESPACE, exsltCryptoRc4DecryptFunction); }
int xsltp_extension_init(void) { xsltp_log_debug0("init"); xsltRegisterExtModuleFull((const xmlChar *) XSLTP_EXTENSION_STRING_NS, xsltp_extension_ext_init, xsltp_extension_ext_shutdown, xsltp_extension_style_ext_init, xsltp_extension_style_ext_shutdown); #ifdef HAVE_GLIB xsltRegisterExtModuleFunction((const xmlChar *) "uc", (const xmlChar *) XSLTP_EXTENSION_STRING_NS, xsltp_extension_string_uc); xsltRegisterExtModuleFunction((const xmlChar *) "lc", (const xmlChar *) XSLTP_EXTENSION_STRING_NS, xsltp_extension_string_lc); #endif xsltRegisterExtModuleFunction((const xmlChar *) "join", (const xmlChar *) XSLTP_EXTENSION_STRING_NS, xsltp_extension_string_join); xsltRegisterExtModuleFunction((const xmlChar *) "ltrim", (const xmlChar *) XSLTP_EXTENSION_STRING_NS, xsltp_extension_string_ltrim); xsltRegisterExtModuleFunction((const xmlChar *) "rtrim", (const xmlChar *) XSLTP_EXTENSION_STRING_NS, xsltp_extension_string_rtrim); xsltRegisterExtModuleFunction((const xmlChar *) "trim", (const xmlChar *) XSLTP_EXTENSION_STRING_NS, xsltp_extension_string_trim); return 1; }
int registerBasicFunctions(xsltTransformContextPtr ctxt, const xmlChar *URI, int fromR) { struct Entries { const char *name; xmlXPathEvalFunc fun; }; struct Entries entries[] = { {"init", RXSLT_init}, {"call", RXSLT_call}, {"callI", RXSLT_callI}, {"eval", RXSLT_eval}, {"source", RXSLT_source}, {"register", RXSLT_register}, {"exists", RXSLT_exists}, {"library", RXSLT_library}, {"nullEval", RXSLT_nullEval}, {"evalWithOutput", RXSLT_evalWithOutput}, {"length", RXSLT_length}, {"as", RXSLT_as}, {"class", RXSLT_class} }; int n = sizeof(entries)/sizeof(entries[0]), i; if(fromR || R_alreadyInitialized) entries[0].fun = RXSLT_noop; #ifdef XSLT_DEBUG fprintf(stderr, "registering %d functions for %s\n", (fromR ? n-1 : n), R_URI);fflush(stderr); #endif for(i = 0 ; i < n; i++) { #ifdef XSLT_DEBUG fprintf(stderr, "registering %s\n", entries[i].name);fflush(stderr); #endif if(ctxt) xsltRegisterExtFunction(ctxt, entries[i].name, R_URI, entries[i].fun); else xsltRegisterExtModuleFunction((const xmlChar *) entries[i].name, (const xmlChar *) R_URI, entries[i].fun); } xsltRegisterExtElement(ctxt, "eval", R_URI, REvalFunctionDefn); return(n); }
void PLUGINPUBFUN xmlsoft_org_xslt_testplugin_init(void) { xsltRegisterExtModuleFull((const xmlChar *) XSLT_TESTPLUGIN_URL, xsltExtInitTest, xsltExtShutdownTest, xsltExtStyleInitTest, xsltExtStyleShutdownTest); xsltRegisterExtModuleFunction((const xmlChar *) "testplugin", (const xmlChar *) XSLT_TESTPLUGIN_URL, xsltExtFunctionTest); xsltRegisterExtModuleElement((const xmlChar *) "testplugin", (const xmlChar *) XSLT_TESTPLUGIN_URL, xsltExtElementPreCompTest, xsltExtElementTest); }
USER_OBJECT_ RXSLT_registerFunction(USER_OBJECT_ name, USER_OBJECT_ fun, USER_OBJECT_ uri, USER_OBJECT_ symbol, USER_OBJECT_ context) { xsltTransformContextPtr ctxt = NULL; xmlXPathEvalFunc sym; if(GET_LENGTH(context)) { ctxt = (xsltTransformContextPtr) R_ExternalPtrAddr(context); } if(!ctxt) ctxt = getTransformCtxt(); if(!ctxt) { PROBLEM "NULL value for xslTransformContext. One cannot register an R function with XSLT when not applying an XSL style sheet." ERROR; } if(GET_LENGTH(symbol) < 1) { sym = RXSLT_genericFunctionCall; } else { sym = (xmlXPathEvalFunc) R_ExternalPtrAddr(symbol); } RXSLT_addFunction(CHAR_DEREF(STRING_ELT(name, 0)), fun); /* XXX check for memory leaks */ /* Register the S function in a hashtable with this name and function. */ #ifdef XSLT_DEBUG fprintf(stderr, "Registering function (%s) %s with context %p\n", CHAR_DEREF(STRING_ELT(uri, 0)), CHAR_DEREF(STRING_ELT(name, 0)), ctxt);fflush(stderr); #endif if(ctxt) xsltRegisterExtFunction(ctxt, CHAR_DEREF(STRING_ELT(name, 0)), CHAR_DEREF(STRING_ELT(uri, 0)), sym); else xsltRegisterExtModuleFunction((const xmlChar *) CHAR_DEREF(STRING_ELT(name, 0)), (const xmlChar *) CHAR_DEREF(STRING_ELT(uri, 0)), sym); return(NULL_USER_OBJECT); }
void exsltMathRegister (void) { xsltRegisterExtModuleFunction ((const xmlChar *) "min", EXSLT_MATH_NAMESPACE, exsltMathMinFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "max", EXSLT_MATH_NAMESPACE, exsltMathMaxFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "highest", EXSLT_MATH_NAMESPACE, exsltMathHighestFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "lowest", EXSLT_MATH_NAMESPACE, exsltMathLowestFunction); /* register other math functions */ xsltRegisterExtModuleFunction ((const xmlChar *) "constant", EXSLT_MATH_NAMESPACE, exsltMathConstantFunction); #ifdef HAVE_STDLIB_H xsltRegisterExtModuleFunction ((const xmlChar *) "random", EXSLT_MATH_NAMESPACE, exsltMathRandomFunction); #endif #if HAVE_MATH_H xsltRegisterExtModuleFunction ((const xmlChar *) "abs", EXSLT_MATH_NAMESPACE, exsltMathAbsFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "sqrt", EXSLT_MATH_NAMESPACE, exsltMathSqrtFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "power", EXSLT_MATH_NAMESPACE, exsltMathPowerFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "log", EXSLT_MATH_NAMESPACE, exsltMathLogFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "sin", EXSLT_MATH_NAMESPACE, exsltMathSinFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "cos", EXSLT_MATH_NAMESPACE, exsltMathCosFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "tan", EXSLT_MATH_NAMESPACE, exsltMathTanFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "asin", EXSLT_MATH_NAMESPACE, exsltMathAsinFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "acos", EXSLT_MATH_NAMESPACE, exsltMathAcosFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "atan", EXSLT_MATH_NAMESPACE, exsltMathAtanFunction); xsltRegisterExtModuleFunction ((const xmlChar *) "atan2", EXSLT_MATH_NAMESPACE, exsltMathAtan2Function); xsltRegisterExtModuleFunction ((const xmlChar *) "exp", EXSLT_MATH_NAMESPACE, exsltMathExpFunction); #endif }
static void * registerFooExtensions(ATTRIBUTE_UNUSED xsltTransformContextPtr ctxt, ATTRIBUTE_UNUSED const xmlChar *URI) { xsltRegisterExtModuleFunction(BAD_CAST "foo", EXT_NS, fooFunction); return((void *)EXT_DATA); }