[xquery-talk] functions in XQuery and XPath Data Model 3.0

James Fuller james.fuller.2007 at gmail.com
Sat Feb 25 11:05:14 PST 2012


On Sat, Feb 25, 2012 at 7:04 PM, Michael Kay <mike at saxonica.com> wrote:
> On 25/02/2012 12:14, James Fuller wrote:
>>
>> as http://www.w3.org/TR/xpath-datamodel-30/#other-items states the
>> xpath data model has matured and needs to add 'other types' ... which
>> have no xml serializations
>>
>> following on from this statement, I am wondering if the XQuery WG has
>> considered what could be returned in the following scenario:
>>
>> let $a := fn:position#0
>> return
>> fn:string($a)
>
> Actually fn:position#0 isn't allowed - we don't allow function items to be
> formed from functions that access the dynamic context, because there's too
> much scope for confusion about which dynamic context is used.

sure, cut n paste madness

> But if you substituted, say, root#1, we allow you to get the name of the
> function using function-name(root#1) and to get its arity using
> function-arity(root#1). That seems better to me that doing it by casting,
> which seems to rely on the purely accidental fact that all the properties of
> a function have distinct types.

sure, function-name() and function-arity() are great.

so I guess now a cast on a function will throw a err:XPTY0004 ?

thx, J


>
> Michael Kay
> Saxonica
>>
>>
>> it maybe nice to return the name of the function "fn:position" as a
>> string ... conversely,
>>
>> let $a := fn:position#0
>> return
>> fn:QName($a)
>>
>> would return the qname of the function.
>>
>> its probably a stretch to extend this to function arity eg.
>>
>> let $a := fn:position#0
>> return
>> xs:integer($a)
>>
>> which would return a value of 0.
>>
>> it may also be useful to expand the description of what functions are
>> in the data model via fully describing the term 'callable' here
>> http://www.w3.org/TR/xpath-datamodel-30/#other-items.
>>
>> James Fuller
>> _______________________________________________
>> talk at x-query.com
>> http://x-query.com/mailman/listinfo/talk
>>
>
> _______________________________________________
> talk at x-query.com
> http://x-query.com/mailman/listinfo/talk


More information about the talk mailing list