Re: [xsl] Question for a code example of <xsl:evaluate> in which the target expression calls a user-defined xsl:function

Subject: Re: [xsl] Question for a code example of <xsl:evaluate> in which the target expression calls a user-defined xsl:function
From: "Martin Honnen martin.honnen@xxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 2 Sep 2019 21:03:17 -0000
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 B 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-0 01.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