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 29804 - [XSLT30] xsl:merge-source, drop the requirement that @use-accumulators and @streamable=yes must both be present/absent: XTSE3195
Summary: [XSLT30] xsl:merge-source, drop the requirement that @use-accumulators and @s...
Status: RESOLVED FIXED
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: XSLT 3.0 (show other bugs)
Version: Candidate Recommendation
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: 2016-09-02 16:47 UTC by Abel Braaksma
Modified: 2016-09-09 21:40 UTC (History)
0 users

See Also:


Attachments

Description Abel Braaksma 2016-09-02 16:47:45 UTC
(I raised this bug following the discussion thread in https://lists.w3.org/Archives/Public/public-xsl-wg/2016Sep/0003.html.)

In light of yesterday's discussion at the telcon, it was briefly mentioned that the presence of one attribute being dependent on the presence of another attribute is unfortunate.

For the same reasons we introduced xsl:source-document (i.e. to flip the streamable attribute painlessly), I propose we lift the following restriction (section 15.3) on xsl:merge-source:

"[ERR XTSE3195] If the for-each-item is present then the for-each-stream and use-accumulators attributes must both be absent. If the use-accumulators attribute is present then the for-each-stream attribute must be present. If the for-each-stream attribute is present then the for-each-item attribute must be absent. If the for-each-stream attribute is present, the only permitted value (and the default value) of the streamable attribute is yes."

Proposal:
- allow streamable="no" and the presence of for-each-stream, in which case it simply returns a document, much like a non-streaming processor would in this case.

- allow the presence of use-accumulators whether or not for-each-stream is present. It would restrict the applicability of accumulators.

- retain that for-each-item and for-each-stream are mutually exclusive.
Comment 1 Abel Braaksma 2016-09-02 18:09:25 UTC
We may also wish to rename for-each-stream to for-each-source, for the same reasons we renamed xsl:stream to xsl:source-document. If accepted, such change should change the default of @streamable to "no".

(this would have the effect and advantage that I think we'd end up with zero instructions or attributes that are solely meaningful with streaming, which is then always flippable through the @streamable attribute)
Comment 2 Michael Kay 2016-09-09 21:40:14 UTC
The changes were agreed and have been applied.