- From: <bugzilla@jessica.w3.org>
- Date: Tue, 05 Feb 2013 11:10:03 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=20874
Bug ID: 20874
Summary: [XSLT 3.0] doubled curlies in AVTs and TVTs
Classification: Unclassified
Product: XPath / XQuery / XSLT
Version: Member-only Editors Drafts
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P2
Component: XSLT 3.0
Assignee: mike@saxonica.com
Reporter: mike@saxonica.com
QA Contact: public-qt-comments@w3.org
We currently describe the way curly brackets are escaped in a different way
from the way XQuery does it, and there is one practical consequence of the
difference: we have a rule that when the expression ends in "}", this must be
separated from the delimiting "}" by a space, while XQuery has no such rule.
The point is a little academic, since the result of the expression is always
atomized, and the only expressions that can end in "}" (map constructors and
function literals) cannot be atomized. But other expressions ending in "}"
might be introduced in the future.
When AVTs were introduced in 1.0, it was feasible to scan the text looking for
the closing "}" delimiter, taking care to avoid catching a "}" that appeared
inside a string literal, and then pass the text found within the braces to the
XPath parser. The syntax of XPath has become too complicated for this to be a
feasible approach anymore; you need to parse the XPath expression and then
check whether the character that follows it is a closing "}". This makes the
rule that a final "}" in the XPath expression must be separated by whitespace
from the delimiting "}" nothing more than a nuisance, so I propose that we
change it.
I would suggest introducing a grammar similar to that used in XQuery:
CVT ::= ((Char - '{}') | '{{' | '}}' | ('{' Expr '}') )*
Test case cvt-016 is affected.
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Tuesday, 5 February 2013 11:10:08 UTC