- From: <bugzilla@jessica.w3.org>
- Date: Sat, 18 Jun 2016 09:25:14 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29697
Bug ID: 29697
Summary: [XSLT30]With nested xsl:merge, should the
current-merge-group() of outer merge be available for
a merge group selection of inner merge?
Product: XPath / XQuery / XSLT
Version: Candidate Recommendation
Hardware: PC
OS: Windows NT
Status: NEW
Severity: normal
Priority: P2
Component: XSLT 3.0
Assignee: mike@saxonica.com
Reporter: martin.honnen@gmx.de
QA Contact: public-qt-comments@w3.org
Target Milestone: ---
Created attachment 1645
--> https://www.w3.org/Bugs/Public/attachment.cgi?id=1645&action=edit
sample input data for test case
The following code has two nested xsl:merge, where an xsl:merge-source/@select
of the inner xsl:merge tries to select the current-merge-group() of the outer
xsl:merge:
<xsl:template match="root">
<xsl:copy>
<xsl:merge>
<xsl:merge-source select="item">
<xsl:merge-key select="foo"/>
</xsl:merge-source>
<xsl:merge-action>
<group key="{current-merge-key()}">
<xsl:merge>
<xsl:merge-source
select="current-merge-group()">
<xsl:merge-key
select="bar"></xsl:merge-key>
</xsl:merge-source>
<xsl:merge-action>
<nested-group
key="{current-merge-key()}">
<xsl:copy-of select="current-merge-group()/value"/>
</nested-group>
</xsl:merge-action>
</xsl:merge>
</group>
</xsl:merge-action>
</xsl:merge>
</xsl:copy>
</xsl:template>
This works fine with Exselt, however Saxon (tested with 9.7.0.5 EE) complains
Error in xsl:merge-source/@select on line 18 column 57 of test2016061801.xsl:
XTDE3480: There is no current merge group
So with Saxon I have to use a variable, as in
<xsl:merge>
<xsl:merge-source select="item">
<xsl:merge-key select="foo"/>
</xsl:merge-source>
<xsl:merge-action>
<group key="{current-merge-key()}">
<xsl:variable name="group"
select="current-merge-group()"/>
<xsl:merge>
<xsl:merge-source
select="$group">
<xsl:merge-key
select="bar"></xsl:merge-key>
</xsl:merge-source>
<xsl:merge-action>
<nested-group
key="{current-merge-key()}">
<xsl:copy-of select="current-merge-group()/value"/>
</nested-group>
</xsl:merge-action>
</xsl:merge>
</group>
</xsl:merge-action>
</xsl:merge>
So I would like a clarification whether with nested xsl:merge the
current-merge-group() of an outer xsl:merge should be accessible with an
xsl:merge-source of a inner xsl:merge.
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Saturday, 18 June 2016 09:25:17 UTC