|
Subject: Re: [xsl] Question for a code example of <xsl:evaluate> in which the target expression calls a user-defined xsl:function From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Mon, 2 Sep 2019 21:33:26 -0000 |
Thanks Martin,
> So what happened with your "attempts to call such an existing
> xsl:function", any error?
Severity: fatal
Description: Static error in XPath expression supplied to xsl:evaluate:
Function {http://my.namespace}doSomething#1 not found.
In the target text, among other things there is this:
$ops := Q {http://my.namespace}doSomething#1 ('myArgument'),
And I have an existing xsl:function:
<xsl:function name="f:doSomething">
<xsl:param name="pmyArgument" as="xs:string+"/>
. . . . . .
Thanks,
Dimitre
On Mon, Sep 2, 2019 at 2:03 PM Martin Honnen martin.honnen@xxxxxx <
xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
> On 02.09.2019 22:55, Dimitre Novatchev dnovatchev@xxxxxxxxx wrote:
> > I need to call an existing xsl:function from within the xpath
> > (target-expression ) attribute of <xsl:evaluate>.
> >
> > 1. Is this possible / allowed? From reading the W3C XSLT 3.0 Spec it
> > seems so -- https://www.w3.org/TR/xslt-30/#dynamic-xpath has a bullet
> > in the list of available function signatures, saying :
> >
> > "All user-defined functions present in the containing package provided
> > their visibility is not hidden or private;"
> >
> > However, my attempts to call such an existing xsl:function from within
> > the target-expression were not successful.
> >
> > 2. Could someone provide a working code example of doing this?
>
> The test suite has the code sample
>
> https://github.com/w3c/xslt30-test/blob/master/tests/insn/evaluate/evaluate-001.xsl
> with
>
> <?xml version="1.0"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> version="3.0"
> xmlns:my="http://www.example.com/my-functions"
> exclude-result-prefixes="my">
>
> <!-- PURPOSE test xsl:evaluate with a literal argument calling a
> stylesheet function -->
>
>
> <xsl:template name="main">
> <out>
> <xsl:evaluate xpath="'my:f()'"/>
> </out>
> </xsl:template>
>
> <xsl:function name="my:f" visibility="public">
> <xsl:sequence select="$p"/>
> </xsl:function>
>
> <xsl:param name="p" select="42"/>
>
> </xsl:stylesheet>
>
> for instance, runs fine for me within oXygen and Saxon 9.8 EE using the
> "main" template as the entry point.
>
>
> So what happened with your "attempts to call such an existing
> xsl:function", any error?
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Question for a code examp, Martin Honnen martin | Thread | Re: [xsl] Question for a code examp, Dimitre Novatchev dn |
| Re: [xsl] Question for a code examp, Martin Honnen martin | Date | Re: [xsl] Question for a code examp, Dimitre Novatchev dn |
| Month |