[Bug 23391] [xslt 3.0] Streaming variables

https://www.w3.org/Bugs/Public/show_bug.cgi?id=23391

--- Comment #1 from Michael Kay <mike@saxonica.com> ---
Related note (posted in email today):

The current rules for

for $v in S return R

are

    • If R is not grounded and motionless, then roaming and free-ranging.
    • Otherwise, the posture and sweep of S.

Firstly, rule 1 is ambiguous.The intended reading is (not(grounded and
motionless)) rather than (not(grounded) and motionless).

But the requirement to be motionless seems unnecessary. It disallows, for
example

for $x in product/copy(.) return $x/price - $x/discount

Secondly, the rule as written allows

for $x in 1 to 3 return child::product

which should not be streamable.

Assuming we don't pursue the idea of binding variables to streamed nodes (see
bug 23391), I think the rules should be:

1. If R is not grounded, then roaming and free-ranging
2. Otherwise, the general streamability rules apply, where the two operands
are:
   * S (usage navigation)
   * R (usage transmission, higher-order)

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Wednesday, 13 November 2013 10:42:08 UTC