This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 24537 - Ambiguous rule #4 in union, intersect, except expressions streamability
Summary: Ambiguous rule #4 in union, intersect, except expressions streamability
Status: CLOSED FIXED
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: XSLT 3.0 (show other bugs)
Version: Last Call drafts
Hardware: PC Windows NT
: P2 normal
Target Milestone: ---
Assignee: Michael Kay
QA Contact: Mailing list for public feedback on specs from XSL and XML Query WGs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-02-05 22:41 UTC by Abel Braaksma
Modified: 2014-02-24 14:58 UTC (History)
0 users

See Also:


Attachments

Description Abel Braaksma 2014-02-05 22:41:04 UTC
nder 19.8.7.4 Streamability of union, intersect, and except expressions (http://www.w3.org/TR/xslt-30/#streamability-of-union-expressions), the 4th numbered item in the list, we write:

"If both operands are striding or crawling, then crawling and the wider of the sweeps of the two operands (Example: * | */*)."

Does this mean 

a) if both operands are striding or both operands are crawling
b) if one of the operands is striding and the other crawling
c) if the operands are either striding or crawling or both

I think we can rule out (b), and I think it should be (c) (based on the example given).
Comment 1 Michael Kay 2014-02-06 17:58:09 UTC
It's intended to mean 

if (every operand O satisfies (O is crawling or O is striding))

I think a different reading would be hard to justify, and I guess the example was added just in case there was any doubt. It's a bit difficult to find a more rigorous wording that isn't turgid to read, but I'll go with

if the first operand is striding or crawling and the second operand is also striding or crawling, then...