Actions
Bug #2771
closedXslt30Transformer#applyTemplates(Source source) always returns empty value if stylesheet has <xsl:result-document> element
Start date:
2016-06-03
Due date:
% Done:
0%
Estimated time:
Legacy ID:
Applies to branch:
9.7
Fix Committed on Branch:
Fixed in Maintenance Release:
Platforms:
Description
Given:
<!-- test.xsl -->
<xsl:stylesheet version="3.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="a">
<c>d</c>
</xsl:template>
<xsl:template match="whatever">
<xsl:result-document href="out.xml">
<e>f</e>
</xsl:result-document>
</xsl:template>
</xsl:stylesheet>
Then:
Xslt30Transformer transformer = compiler.compile(new StreamSource(new File("test.xsl"))).load30();
StreamSource source = new StreamSource(new StringReader("<a>b</a>"));
XdmValue xdmValue = transformer.applyTemplates(source);
Returns an empty value, even though I would expect it to return <c>d</c>@, because there's a template that matches the @<a>
element.
If I remove the <xsl:result-document>
element from the unmatched template, the code returns <c>d</c>
as expected.
Is this a bug in Saxon or am I doing something wrong?
I attached a set of files you can test this with.
Files
Please register to edit this issue
Actions