W3C home > Mailing lists > Public > public-qt-comments@w3.org > June 2015

[Bug 28833] New: [XSLT30] Streamability of fn:current and varrefs should be roaming in higher-order operands

From: <bugzilla@jessica.w3.org>
Date: Sun, 21 Jun 2015 14:32:54 +0000
To: public-qt-comments@w3.org
Message-ID: <bug-28833-523@http.www.w3.org/Bugs/Public/>

            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



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

Note that the issue does not arise in an inspection context:


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

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 16:57:54 UTC