- From: <bugzilla@wiggum.w3.org>
- Date: Thu, 11 May 2006 08:08:39 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=3273
Summary: [FS] technical: 2.3.1 Formal values: () in Values
Product: XPath / XQuery / XSLT
Version: Candidate Recommendation
Platform: All
OS/Version: All
Status: NEW
Severity: normal
Priority: P2
Component: Formal Semantics
AssignedTo: simeon@us.ibm.com
ReportedBy: jmdyck@ibiblio.org
QAContact: public-qt-comments@w3.org
2.3.1 Formal values
[7 (Formal)] Value ::= Item | (Value "," Value) | ("(" ")")
Presumably, the Value () represents the empty sequence. (I don't think
the FS actually says so; maybe it should.) The odd thing is that this
production allows Values with () *within* them. E.g., Value derives
1 of type xs:integer, (), (), "a" of type xs:string
Since an item (in a sequence) can't be the empty sequence, what is the
point of such a Value? (Please note that I'm talking about Values, not
Exprs.)
At first, I thought it was just a mistake in the production, so I was
going to suggest an (editorial) change to:
Value ::= "(" ")" | Item ("," Item)*
But then I noticed the example in 8.2.3.2, which actually shows a Value
with embedded ()'s. The following Note ("while preserving the structure
of the sequence") appears to indicate that the embedded ()'s are
essential to the workings of the 'test' judgment (though as far as I
can tell, they aren't).
Moreover, the inference rule 4.3.1 / DEv / rule 1 appears happy to
construct such values. E.g., I can use it to conclude that
dynEnv |- 1, () => 1 of type xs:integer, ()
I would have expected the resulting Value to be just
1 of type xs:integer
So maybe it's more than an editorial matter.
(On a related note, the corresponding STA rule allows me to conclude:
statEnv |- 1, () : xs:integer, empty
but presumably the Type should be just xs:integer.)
Received on Thursday, 11 May 2006 08:08:49 UTC