[Bug 4273] [FS] data on element()

http://www.w3.org/Bugs/Public/show_bug.cgi?id=4273





------- Comment #21 from tim@cbcl.co.uk  2007-11-05 08:30 -------
That makes sense.  

So the static type of fn:data(complex type of element-only) = empty-sequence(),
but applying fn:data() a value of such a type would raise a dynamic error.

Would that require a change in the definition of error XPST0005?

err:XPST0005

    During the analysis phase, it is a static error if the static type assigned
to an expression other than the expression () or data(()) is empty-sequence().

Recalling that optimizations are allowed to avoid errors, I'm a bit concerned
that statically typing a call to fn:data() might introduce some strange
behaviour.  e.g. An optimizer might use the identity:

count( $seq ) = 0 when $seq has type empty-sequence()

Is this a valid concern?

Received on Monday, 5 November 2007 08:30:53 UTC