This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.
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.
The WG agreed to make this change.
Change applied (draft N).