Beispiel #1
0
/**
 * 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);
}
Beispiel #2
0
void
exsltDynRegister (void) {
    xsltRegisterExtModuleFunction ((const xmlChar *) "evaluate",
				   EXSLT_DYNAMIC_NAMESPACE,
				   exsltDynEvaluateFunction);
  xsltRegisterExtModuleFunction ((const xmlChar *) "map",
				   EXSLT_DYNAMIC_NAMESPACE,
				   exsltDynMapFunction);

}
Beispiel #3
0
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);
}
Beispiel #4
0
/**
 * 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);
}
Beispiel #5
0
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;
        }
    }
Beispiel #7
0
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;
}
Beispiel #9
0
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);
}
Beispiel #11
0
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);
}
Beispiel #12
0
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
}
Beispiel #13
0
static
void * registerFooExtensions(ATTRIBUTE_UNUSED xsltTransformContextPtr ctxt,
                             ATTRIBUTE_UNUSED const xmlChar *URI) {
    xsltRegisterExtModuleFunction(BAD_CAST "foo", EXT_NS, fooFunction);
    return((void *)EXT_DATA);
}