[Bug 8006] [UPD] : wrong static typing rule for transform expression?


Michael Kay <mike@saxonica.com> changed:

           What    |Removed                     |Added
                 CC|                            |mike@saxonica.com

--- Comment #1 from Michael Kay <mike@saxonica.com>  2009-10-22 15:51:07 ---
Personal response:

The rule given in the prose (2.4.5, rule 1b) is "The result of evaluating the
source expression must be a single node", and the error if it isn't is a type
error. It's a principle of static typing that all type errors are detected

It's true that the second example query would fail static typing. The vast
majority of queries that people write would fail static typing, but fortunately
not many implementations enforce static typing. I think your comment amounts to
saying that static typing creates significant usability problems, which is
something the working group already knows. We all have different ideas for the
solution to that problem, but making the required type of an expression in the
static semantics looser than the rules for its dynamic type isn't one of them.

Section 4.5.6 includes the analogous example

insert node <x/> into //a

which is a static type error because //a isn't known to return a single node.

The absence of such a rule for "rename" would appear to be an oversight. This
is also a type error, and with static typing enabled, potential type errors are
always reported as static errors.

Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.

Received on Thursday, 22 October 2009 15:51:09 UTC