[Bug 24455] New: [xslt 3.0] Streamability of grouping variable references

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

            Bug ID: 24455
           Summary: [xslt 3.0] Streamability of grouping variable
                    references
           Product: XPath / XQuery / XSLT
           Version: Last Call drafts
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XSLT 3.0
          Assignee: mike@saxonica.com
          Reporter: mike@saxonica.com
        QA Contact: public-qt-comments@w3.org

Consider:

<xsl:stream ...>
  <xsl:for-each-group select="/a/b/copy-of()" group-adjacent="c"
                      bind-group="g">
    <xsl:value-of select="$g/x"/>
    <xsl:value-of select="$g/y"/>
  </xsl:for-each-group>
</xsl:stream>

I get an error saying there are two downward selections ($g/x and $g/y)

This is because the variable reference $g is classified as consuming. See
19.8.7.10:

If all the following conditions are satisfied:
* V is a reference to a variable declared in a bind-group attribute of a
containing xsl:for-each-group instruction F
* The path in the construct tree that connects V to the sequence constructor
forming the body of F is such that no child construct is a higher-order operand
of its parent
* The focus-setting container of V is F
then the sweep and posture of V are the sweep and posture of the select
expression of F.

The select expression of xsl:for-each-group is grounded and consuming, so the
variable reference is also considered grounded and consuming.

In fact, if the select expression is grounded, the grouping variable should be
motionless.

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

Received on Friday, 31 January 2014 12:35:27 UTC