[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]
[xml] registering a extension module in libxslt
- From: Stefan Kost <kost imn htwk-leipzig de>
- To: xml gnome org
- Subject: [xml] registering a extension module in libxslt
- Date: Fri, 26 Mar 2004 11:43:19 +0100
hi all,
below is a code snippet, when executing it and loading the stylesheet the
extension module initialisation gets not triggered and later I get:
libxslt-error: xsltValueOf: text copy failed
[gitk-core:gitkerrors.c:95] : libxml-error: xmlXPathCompOpEval: function gettext
not found
[gitk-core:gitkerrors.c:95] : libxml-error: Unregistered function
The URI does definitely match (it uses the same constant definition).
I had a look at the libxslt source, but e.g. things like
xsltRegisterExtFunction() are not called verbatim anymore (params come from hashes).
@daniel could you please extend the example at
http://xmlsoft.org/XSLT/extensions.html
with example calls to xsltRegisterExtModule() and xsltRegisterExtFunction() and
a xslt snipped that is using the extension?
Many thanks
Stefan
--------------
...
if(xsltRegisterExtModule(I18N_NS_URL,xsltExtInit_i18n,xsltExtShutdown_i18n)) {
gitk_err("failed to register extension modules (i18n)");
result=FALSE;
}
...
if(!(xsl_i18n=xsltParseStylesheetFile(XSL_PATH"i18n.xsl"))) {
gitk_err("failed to load stylesheet (i18n.xsl)");
result=FALSE;
}
...
void *xsltExtInit_i18n(xsltTransformContextPtr ctxt, const xmlChar *URI) {
gitk_log_intro();
gitk_log1(">>>>>>>>>> URI=\"%s\"",URI);
if(xsltRegisterExtFunction(
ctxt,"gettext",URI,xmlXPathEvalFunc_i18n_gettext)
) {
gitk_err("failed to register extension function (i18n)");
}
gitk_log_outro();
return(NULL);
}
void xsltExtShutdown_i18n(xsltTransformContextPtr ctxt,const xmlChar *URI,void
*data) {
}
void xmlXPathEvalFunc_i18n_gettext(xmlXPathParserContextPtr ctxt, int nargs) {
gitk_log_intro();
gitk_log1(">>>>>>>>>> nargs=%d",nargs);
gitk_log_outro();
}
-----------------
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:giml="http://gitk.sourceforge.net/"
xmlns:i18n="<I18N_NS_URL>"
xmlns="http://gitk.sourceforge.net/"
exclude-result-prefixes="giml">
<xsl:output method="xml" doctype-system="http://gitk.sourceforge.net/giml.dtd"/>
<xsl:template match="i18n:text">
<xsl:value-of select="i18n:gettext(.)"/>
</xsl:template>
...
--
\|/ Stefan Kost
<@ @> private business
+-oOO-(_)-OOo------------------------------------------------------ - - - - -
| __ Address Simildenstr. 5 HTWK Leipzig, Fb IMN, Postfach 301166
| /// 04277 Leipzig 04251 Leipzig
| __ /// Germany Germany
| \\\/// Phone +49341 2253538 +49341 30766101
| \__/ EMail st_kost_at_gmx.net kost_at_imn.htwk-leipzig.de
| WWW www.sonicpulse.de www.imn.htwk-leipzig.de/~kost/about.html
===-=-=--=---=---------------------------------- - - - - -
begin:vcard
fn:Stefan Kost
n:Kost;Stefan
org:HTWK Leipzig;FB. IMN
adr:;;Postfach 301166;Leipzig;;04251;Germany
email;internet:kost imn htwk-leipzig de
title:Dipl. Informatiker
tel;work:+49341 30766440
tel;home:+49341 2253538
tel;cell:+49178 3183742
x-mozilla-html:FALSE
url:http://www.imn.htwk-leipzig.de/~kost/about.html
version:2.1
end:vcard
[Date Prev][Date Next] [Thread Prev][Thread Next]
[Thread Index]
[Date Index]
[Author Index]