[Bug 26513] New: [XSLT30] Access to context item within streamed xsl:for-each-group

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

            Bug ID: 26513
           Summary: [XSLT30] Access to context item within streamed
                    xsl:for-each-group
           Product: XPath / XQuery / XSLT
           Version: Working 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:for-each-group select="x" group-by="@y">
  <a b="{@b}"/>
  <xsl:copy-of select="current-group()"/>
  <a b="{@b}"/>
</xsl:for-each-group>

This is streamable according to current rules.

During evaluation of xsl:for-each-group, the context item is the FIRST item in
the group. So both references to @b access the b attribute of the FIRST x
element. Clearly, after processing current-group(), we are no longer positioned
on the first x element so we can only achieve this by remembering details of
the x element (or perhaps by evaluating the post-descent instructions before we
process the group, and remembering the result). So it can't be done without
buffering.

I think we should (somehow) ban inspection access to the context item in the
post-descent phase of a streaming xsl:for-each-group.

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

Received on Sunday, 3 August 2014 14:13:50 UTC