This is probably not all that important, but I found got different output when running this transform with Saxon 8.7.3 than with Saxon 6.5.5.
Saxon 8 output
and Saxon 6 output nothing. I think Saxon 6 is doing the right thing because a default template for mode="test" processed the "/" node and it should not capture the test param and pass it on. It seems like in Saxon 8 the default template that processes "/" is passing on any params it sees to its children which doesn't seem to be correct.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:apply-templates select="document('')" mode="test">
<xsl:with-param name="test" select="'test'"/>
<xsl:template match="*" mode="test">
This is a change in the language specification between XSLT 1.0 and XSLT 2.0. Saxon 6.x is doing what XSLT 1.0 says, Saxon 8.x is doing what XSLT 2.0 says.
See list item 4 under
Log in to post a comment.