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 29502 - [xslt 3.0] Streamability of xsl:fork
Summary: [xslt 3.0] Streamability of xsl:fork
Status: CLOSED FIXED
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: XSLT 3.0 (show other bugs)
Version: Candidate Recommendation
Hardware: PC All
: 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: 2016-02-23 20:26 UTC by Michael Kay
Modified: 2016-04-14 20:13 UTC (History)
0 users

See Also:


Attachments

Description Michael Kay 2016-02-23 20:26:05 UTC
We give the rules as:

<quote>
19.8.4.20 Streamability of xsl:fork

The posture and sweep of xsl:fork are the first of the following that applies:

1. If there are no child xsl:sequence instructions (other than xsl:fallback), then grounded and motionless.

2. If there is a child xsl:for-each-group instruction, then the posture and the sweep of that instruction.

3. If there is a child xsl:sequence instructions whose posture is not grounded, then roaming and free-ranging.

4. Otherwise, the posture is grounded, and the sweep is the widest sweep of the xsl:sequence child instructions.
</quote>

[A] If there is an xsl:for-each-group instruction then rule 1 will always trigger and we never get to rule 2. Simplest fix: put rule 2 before rule 1.

[B] In 19.8.4.19 I suggest changing rule 4 to:

4. If there is an xsl:sort child element <add>and the instruction is not a child of xsl:fork</add>, then roaming and free-ranging.

[B] In 19.8.4.19 there is a typo: "... presence or absence of call on the current-group function".
Comment 1 Michael Kay 2016-04-14 16:19:38 UTC
The proposal was accepted.
Comment 2 Michael Kay 2016-04-14 20:13:51 UTC
The changes have been applied.