[Bug 29482] New: [xslt30ts] si-group-031

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

            Bug ID: 29482
           Summary: [xslt30ts] si-group-031
           Product: XPath / XQuery / XSLT
           Version: Candidate Recommendation
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XSLT 3.0 Test Suite
          Assignee: abel.online@xs4all.nl
          Reporter: mike@saxonica.com
        QA Contact: public-qt-comments@w3.org
  Target Milestone: ---

Raising this as a test bug though it could migrate to a spec bug.

si-group-031, which originates from a Saxon bug report by Martin Honnen, does
this within a streamable template:

        <xsl:for-each-group select="product" 
               group-adjacent="(position() - 1) idiv $block-size">
            <xsl:result-document href="product{current-grouping-key()}.xml">
                <xsl:copy select="$root">
                    <xsl:copy-of select="current-group()"/>
                </xsl:copy>
            </xsl:result-document>
        </xsl:for-each-group>

Saxon assesses this as non-streamable, and I think the analysis can be
justified as follows:

19.8.9.4 says current-group() is not streamable if the path in the construct
tree that connects it to the sequence constructor forming the body of the
for-each-group instruction is such that some child construct is a higher-order
operand of its parent

But the sequence constructor within xsl:copy[@select] is a higher-order operand
of the xsl:copy instruction, because the context item for evaluation of O is
different from the context item for evaluation of C.

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

Received on Thursday, 18 February 2016 23:51:16 UTC