This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
For the test <test>map:merge(map:entry("foo", 1 to 5))</test> is the assertion <assert-type>function(xs:anyURI) as item()*</assert-type> meant to be <assert-type>function(xs:anyAtomicType) as item()*</assert-type> or am I missing something?
This does look odd. But the Path 3.1 spec, under 2.5.5.8 Map Test, says: "Because of the rules for subtyping of function types according to their signature, it follows that the item type function(A) as item()*, where A is an atomic type, also matches any map, regardless of the type of the keys actually found in the map. For example, a map whose keys are all strings can be supplied where the required type is function(xs:integer) as item()*; a call on the map that treats it as a function with an integer argument will always succeed, and will always return an empty sequence." e.g. $M instance of function(xs:anyURI) as item()* returns true() for any map $M. So I think that if <assert-type>map(*)</assert-type> passes then so should <assert-type>function(xs:anyURI) as item()*</assert-type>
Strange but true. Thanks.