[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Question for a code example of <xsl:evaluate> in

Subject: Re: 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
Re:  Question for a code example of <xsl:evaluate> in
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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.