|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: passing a function as a parameter to transform()
> On 13 May 2021, at 22:05, Graydon graydon@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Hello --
>
> Using Saxon 10.3 and XSLT 3.0 (from inside oXygen 23), can I pass a function
as
> a parameter to transform()?
>
> <xsl:sequence select="
> transform(map {
> 'stylesheet-location': 'tidy.xsl',
> 'source-node': $tableMerge,
> 'stylesheet-params': map {
> QName('', 'defaultLang'): $defaultLang,
> QName('', 'overrideStringMap'): $overrideStringMap,
> QName('', 'lang2key2autotextMap'): $lang2key2autotextMap,
> QName('local','getString') : local:getString(xs:string,xs:string)
> }
> })?output" />
>
> is syntactically acceptable.
yes, but you aren't passing a function, you are passing the result of calling
local:getString with parameters child::xs:string and child::xs:string. Unless
you have any child elements called xs:string, which is unlikely, the actual
parameter values are empty sequences, which is probably why the function is
complaining.
To pass the function itself, rather than the result of a function call, use
local:getString#2.
Michael Kay
Saxonica
>
> Inside tidy.xsl,
>
> <xsl:param as="xs:string" name="defaultLang" />
> <xsl:param as="map(*)" name="overrideStringMap" />
> <xsl:param as="map(*)" name="lang2key2autotextMap" />
> <xsl:param as="function(xs:string,xs:string) as xs:string"
name="local:getString" />
>
> is syntactically acceptable (though oXygen complains about the actual
function calls and not being able to find the function).
>
> If I run the transform, though, I get:
> Engine name: Saxon-EE 10.3 (External)
> Severity: error
> Description: An empty sequence is not allowed as the first argument of
local:getString()
>
> with a location that tells me the transform call parameter map is where the
error happens.
>
> Is there a way to do this? I can of course duplicate the function
definition but that seems improper.
>
> Thanks!
>
>
> --
> Graydon Saunders | graydonish@xxxxxxxxx
> CC&s oferC)ode, C0isses swC! mC&g.
> -- Deor ("That passed, so may this.")
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|

Cart








