[Bug 29805] [XSLT30] Allow xsl:source-document/@use-accumulators to be present when streamable=no

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

--- Comment #3 from Abel Braaksma <abel.braaksma@xs4all.nl> ---
Perhaps that is the way to go (re: comment#2), but how does that relate to the
following? This example also requires keeping two copies around.

<xsl:variable name="x" select="doc('one.xml')"/>

<xsl:template name="xsl:initial-template">
   <!-- applies accumulators selectively -->
   <xsl:source-document streamable="yes" href='one.xml' use-accumulators="a b
c">
      <!-- copies accumulators, other accumulators are invalid -->
      <xsl:apply-templates select="copy-of(.)" />
   </xsl:source-document>
   <!-- same document, but all accumulators are applicable -->
   <xsl:apply-templates select="$x" />
</xsl:template>

<!-- matches only $x? -->
<xsl:template match="x[accumulator-before('foo') = 'test']">
   <xsl:value-of select="accumulator-after('bar')" />
</xsl:template>

<!-- matches both $x and copy-of?-->
<xsl:template match="x[accumulator-before('a') = 'test']">
   <!-- error on copy-of, succeeds on $x? -->
   <xsl:value-of select="accumulator-after('bar')" />
</xsl:template>


The above is how the current rules are written up. That is, fn:copy-of() by
default copies the accumulators and disallows other accumulators to apply.

Perhaps we could copy the accumulators of @use-accumulators, but at the same
time allow non-streaming accumulators to apply to all non-streaming nodes?

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

Received on Thursday, 8 September 2016 08:35:38 UTC