xsl-list
[Top] [All Lists]

Re: [xsl] [XPath 3.0] Partial function application plus arity?

2012-11-06 17:27:37

Now, I would like to provide concat() a value for the first argument and leave 
undefined two arguments. So I tried this:

-----------
XPath #4
-----------
let $concat3 := concat#3('Section') return $concat3(': ', 1)

But that generates this error:

    Required item type of target of dynamic
    function call is function(); supplied value
    has item type xs:string

What is that error message saying?

I suspect the processor has decided that $concat3 will always be a string 
(because the result of concat#3 is always a string), and you can't do X(y,z) if 
X is a string.


This is what Saxon (9.4) says, which I hope is more helpful:

XPTY0004: Error in dynamic function call. Number of arguments required = 3; number supplied = 1

Saxon is complaining here about concat#3('Section') - concat#3 expects three arguments (or place-holders) and you've only supplied one.

What is the correct way of expressing the desired XPath?

let $concat3 := concat#3('Section', ?, ?) return $concat3(': ', 1)


Michael Kay
Saxonica

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>