- From: <bugzilla@wiggum.w3.org>
- Date: Wed, 26 Sep 2007 20:53:35 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=5083
Summary: Namespace declaration attributes in direct element
constructors
Product: XPath / XQuery / XSLT
Version: Recommendation
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: normal
Priority: P2
Component: XQuery
AssignedTo: chamberl@almaden.ibm.com
ReportedBy: mike@saxonica.com
QAContact: public-qt-comments@w3.org
Consider the query
<a xmlns="a-strange-uri{1,2}"/>
I think this is legal, and it places element a in the namespace
"a-strange-uri{1,2}".
Now consider the query
<a xmlns="a-strange-uri{1,-}"/>
I think this is not legal, on the curious grounds that '1,-' is not a valid
XPath expression.
Although the text in 3.4.1.2 says "The value of a namespace declaration
attribute must be a URILiteral;" (where one has to assume that "value" means
the thing after the = sign including the delimiting quotes), the grammar treats
the value as a DirAttributeValue. So we must assume that it must be both a
URILiteral and a DirAttributeValue, and this requires that anything between
curly braces is a valid XPath expression, even though it will never be
evaluated as an XPath expression. This can give rise to some surprising error
messages.
To make matters even worse, it seems that the prefix actually being declared is
in-scope within all these spurious XPath expressions, thus:
<a xmlns:b="zzz{a:xyz}" xmlns:a="zzz{b:xyz}"/>
is legal only because the prefixes used within the curly braces are both in
scope.
Although it's not nice to change the grammar at this stage of the game, I feel
the only clean solution is to remove the requirement that the value of a
namespace declaration attribute should be a DirAttributeValue. The grammar
would thus become something like:
DirAttributeList ::= (Attribute | Namespace)*
Attribute ::= S QName S? "=" S? DirAttributeValue /* where QName is suitably
restricted */
Namespace ::= S QName S? "=" S? UriLiteral /* where QName is suitably
restricted */
Received on Wednesday, 26 September 2007 20:53:45 UTC