- From: <bugzilla@wiggum.w3.org>
- Date: Thu, 17 Aug 2006 09:12:55 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=3606
Summary: [XPath] delimiting tokens
Product: XPath / XQuery / XSLT
Version: Candidate Recommendation
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: normal
Priority: P2
Component: XPath
AssignedTo: chamberl@almaden.ibm.com
ReportedBy: mike@saxonica.com
QAContact: public-qt-comments@w3.org
For unrelated reasons, I was looking at test LocalNameFromQNameFunc018, which
contains the line:
declare default element namespace"http://www.example.com/QNameXSD";
This test is intended to succeed, and Saxon parses it successfully; but looking
at the spec, it seems this isn't allowed.
A2.2 (in XQuery) says:
(a) The non-delimiting terminal symbols are: ... namespace, ... StringLiteral,
...
(b) It is customary to separate consecutive terminal symbols by whitespace and
Comments, but this is required only when otherwise two non-delimiting symbols
would be adjacent to each other.
Is there any good reason why StringLiteral is classified as a non-delimiting
symbol?
Am I correct in saying that as the spec stands, the above line should be a
syntax error?
There are other oddities in the list of non-delimiting symbols as well. For
example, it includes Char. This suggests that in the production rule
[159] CommentContents ::= (Char+ - (Char* ('(:' |
':)') Char*))
the Char tokens must be separated by whitespace, whereas of course the opposite
is true. I think that symbols that are used only in ws:explicit rules have no
place in this list.
Also, the statement "There are two exceptions to this, that of "." and "-",
which do require a symbol separator if they follow a QName or NCName" isn't
quite complete: "." also requires a separator if it precedes or follows a
numeric literal.
I encountered this in XQuery, but it applies in principle to XPath also.
Received on Thursday, 17 August 2006 09:13:07 UTC