- From: <bugzilla@wiggum.w3.org>
- Date: Mon, 17 Oct 2005 22:23:30 +0000
- To: public-qt-comments@w3.org
- Cc:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=2348
Summary: [xqueryx] lost parenthesis
Product: XPath / XQuery / XSLT
Version: Last Call drafts
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: normal
Priority: P2
Component: XQueryX
AssignedTo: jim.melton@acm.org
ReportedBy: davidc@nag.co.uk
QAContact: public-qt-comments@w3.org
The "natural" XqueryX encoding of the Xquery
<a/>/(for $x in 1 return $x)
is translated by the stylesheet to
<a></a>/
for $x in 1
return $x
which is a syntax error. As xqx:parenthesizedExpr does not cause () to be added
and (unlike xqx:addOp etc) xqx:filterExpr does not put a () group around its
argument.
To be specific about the xqueryx, it's included at the end of this message.
A workaround would be to use xqx:sequenceExpr instead of xqx:parenthesizedExpr
as that always translates to () but parenthesizedExpr is more natural here
(and corresponds to the production in the EBNF for this expression).
I accept that this will probably be deferred until the next round, but I wanted
to post it now anyway so it didn't get lost.
I think simplest fix would be to add a template for
xqx:filterExpr/xqx:parenthesizedExpr that adds ().
David
<xqx:module xmlns:xqx="http://www.w3.org/2005/XQueryX">
<xqx:mainModule>
<xqx:queryBody>
<xqx:pathExpr>
<xqx:stepExpr>
<xqx:filterExpr>
<xqx:elementConstructor>
<xqx:tagName>a</xqx:tagName>
</xqx:elementConstructor>
</xqx:filterExpr>
</xqx:stepExpr>
<xqx:stepExpr>
<xqx:filterExpr>
<xqx:parenthesizedExpr>
<xqx:flworExpr>
<xqx:forClause>
<xqx:forClauseItem>
<xqx:typedVariableBinding>
<xqx:varName>x</xqx:varName>
</xqx:typedVariableBinding>
<xqx:forExpr>
<xqx:integerConstantExpr>
<xqx:value>1</xqx:value>
</xqx:integerConstantExpr>
</xqx:forExpr>
</xqx:forClauseItem>
</xqx:forClause>
<xqx:returnClause>
<xqx:pathExpr>
<xqx:stepExpr>
<xqx:filterExpr>
<xqx:varRef>
<xqx:name>x</xqx:name>
</xqx:varRef>
</xqx:filterExpr>
</xqx:stepExpr>
</xqx:pathExpr>
</xqx:returnClause>
</xqx:flworExpr>
</xqx:parenthesizedExpr>
</xqx:filterExpr>
</xqx:stepExpr>
</xqx:pathExpr>
</xqx:queryBody>
</xqx:mainModule>
</xqx:module>
Received on Monday, 17 October 2005 22:23:33 UTC