Java API changes
NodeInfo interface has changed:
generateId() method, rather than returning a String, now appends the generated
ID value to a
FastStringBuffer supplied by the caller. This is for performance reasons:
generateId() is often recursive and was causing many String concatenation operations.
hashCode() methods on
NodeInfo are now
defined to support tests on node
equals() delivers the same result as
Note: third party implementations
NodeInfo should be changed to support this definition. Users of the
NodeInfo interface should be aware
that third-party implementations of the interface may not have been updated to support this change.
A number of methods on the
Controller interface have changed to reflect the fact that
there is a difference between XSLT and XQuery in the handling of the initial context item/node, and the
context item used for evaluating global variables. These can now be set independently using the methods
setGlobalVariableContext. (The difference is that in XSLT,
global variables are evaluated with the context node set to the root of the tree containing the initial context item,
whereas in XQuery, the initial context item is used directly.) Note that although the
standard XSLT and XQuery interfaces follow the rules of their respective languages, it is possible by
low-level API calls to achieve effects not permitted by the language specs, such as defining an initial
context item in XSLT that is not a node.
systemId passed in the constructor to a
StreamResult may now be a
relative URI, which is interpreted relative to the current directory.
NodeOverNodeInfo interface which provides a DOM wrapper to the Saxon
tree structure, the
isEqualNode() method has been enhanced to bring it closer
to the DOM specification, by invoking the
saxon:deep-equal() function with
I have re-instated the ability to determine the effective boolean value of an external object, that is, an
value returned by an extension function that wraps a Java object. The effective boolean value is true if
and only if the Java object reference is non-null.