When attempting to perform with Saxon 6.5.2 the following
transformation:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:template match="/">
<xsl:variable name="vData" select="/"/>
<xsl:value-of select="$vData/root/data[not(. <
/root/data)]"/> </xsl:template> </xsl:stylesheet>
I get:
java.lang.UnsupportedOperationException: Cannot create
intensional node-set with context dependencies:
Following on from my previous message, yes, I think it is the same bug.
Saxon isn't detecting that $vData is a single-document node-set, which
means that it can't take "/root/data" out of the predicate (because "/"
might refer to different documents on different occasions). This is
basically the same situation as described in the original bug report.
Evaluating /root/data outside the predicate and putting it in a variable
would certainly do no harm.
Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list