Hi,
I have this script where I use the lookup operator to perform a unary lookup:
xquery version "3.1"; declare namespace array = "http://www.w3.org/2005/xpath-functions/array"; let $array := [] return ( empty($array!?*), (: returns false :) empty( for $i in 1 to array:size($array) return $array($i) ) (: returns true :) )
I'm curious that the first expression returns false even though it should be equivalent to the second expression, if I read the XQuery spec [1] right:
If the context item is an array:
If the KeySpecifier is a wildcard
("*
"), the UnaryLookup operator is
equivalent to the following expression:
for $k in 1 to array:size(.) return .($k)
But maybe I'm missing something. I'd be glad if you could help.
Best regards,
Sebastian Zimmer
[1]
https://www.w3.org/TR/2017/REC-xquery-31-20170321/#id-unary-lookup
Cologne Center for
eHumanities
DH Center at the University of Cologne
@CCeHum