- From: <bugzilla@jessica.w3.org>
- Date: Sun, 21 Jun 2015 14:32:54 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=28833
Bug ID: 28833
Summary: [XSLT30] Streamability of fn:current and varrefs
should be roaming in higher-order operands
Product: XPath / XQuery / XSLT
Version: Last Call drafts
Hardware: PC
OS: Windows NT
Status: NEW
Severity: normal
Priority: P2
Component: XSLT 3.0
Assignee: mike@saxonica.com
Reporter: abel.braaksma@xs4all.nl
QA Contact: public-qt-comments@w3.org
Originally reported internally to the XSLWG here:
https://lists.w3.org/Archives/Member/w3c-xsl-wg/2015Jun/0043.html (member only)
We have, under GSR 2.d.i:
* If o is a higher-order operand of C, then roaming and free-ranging.
However, I know of at least two places where the position is higher-order, but
the GSR do not apply, leading to a gap in the analysis:
1) Map expressions
2) Path expressions
Consider:
row/current()/cell
Here fn:current is in a higher-order position. It points to the current node
which is disjoint from the <row> element. The expression requires free-ranging
tree-walking to reach the <cell> element under fn:current, after <row> was
visited.
Note that the issue does not arise in an inspection context:
row[current()]/cell
Perhaps a clearer example on how this can go horribly wrong is;
<xsl:apply-templates select="row/current()" />
At risk are, I think, the following:
1) variable references bound to a node
2) let $a := copy-of(b) return current()
3) function() { current() } (: or disallowed by function closure rules? :)
4) ForExpr, QuantifiedExpr are *not* at risk, they are described as having
higher-order operands
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Sunday, 21 June 2015 14:32:57 UTC