[xquery-talk] Type promotion (or URI promotion) in EBV calculation?

Martin Probst martin at x-hive.com
Mon Jan 23 13:53:53 PST 2006


Hi all,

this should probably go as a comment to the working group, but I wanted
to make sure it is an issue before spamming the Bugzilla again (plus
it's currently down...).

The question is if in the calculation of the effective boolean value
type promotion should be used. The problem is the following:
> if (namespace-uri($foo)) then ... else ...
This gives an error after the last changes to the EBV calculation as
namespace-uri() returns an xs:anyURI, which is not an xs:string, and as
such an error. However functions like namespace-uri() also return a
value (empty xs:anyURI) if there is no namespace uri, so one has to use
fn:string-length() or compare to the empty URI etc.

I can understand that full type promotion might not be wanted in EBV
calculation, but the difference between xs:anyURI and xs:string might
not be very obvious to users and generally just clutters the language.
URI promotion is a workaround for that, and I think it should be used in
that place too (as in many other places).

What do you think?

Martin



More information about the talk mailing list