[Bug 30152] New: [xslt30ts] Copying accumulator values

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

            Bug ID: 30152
           Summary: [xslt30ts] Copying accumulator values
           Product: XPath / XQuery / XSLT
           Version: Proposed 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: ---

In test accumulator-063 et seq I attempted to create some tests for the rules
regarding copying of accumulator values in ยง18.2.10. For example -063 has the
code:

  <xsl:template match="b">
    <xsl:variable name="x">
      <xsl:copy-of select="." copy-accumulators="yes"/>
    </xsl:variable>
    <xsl:for-each select="$x/*">
      <b-acc>{accumulator-before('f:elementNr')}</b-acc>
    </xsl:for-each>
  </xsl:template>

Looking at this again, I don't think this has the intended effect. xsl:copy
creates a copy of the b element with copied accumulator values, but this
element is then attached to a document node constructed for the variable $x,
and this (under rule 11 of Constructing Complex Content) does not copy the
accumulator values to the new documnt node.

Although this might seem surprising, the alternative would be worse: consider

    <xsl:variable name="x">
      <a/>
      <xsl:copy-of select="." copy-accumulators="yes"/>
      <b/>
    </xsl:variable>

and ask what the accumulator value should be for element b.

I will rewrite the tests accordingly.

Since I misunderstood the effect of the spec here, others might also do so, and
a word of explanation in an erratum might not go amiss.

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

Received on Wednesday, 19 July 2017 15:21:59 UTC