JAXP interface (transformation, XPath, schema processing)

It is now possible to set the Configuration used by a TransformerFactory or DocumentBuilderFactory using the setAttribute() method with the attribute name CONFIGURATION. By reading this attribute on a TransformerFactory, and setting it on a DocumentBuilderFactory, it is possible to ensure that all documents use the same Configuration without introducing any compile-time dependencies on Saxon.

A wider range of JAXP-defined options is now supported on the DocumentBuilderFactory interface. For example, a request to perform XInclude processing is now accepted (though it will only work if the underlying XML parser is Xerces).

It is now possible to provide a user-written URI resolver for use by the XSLT unparsed-text() function. This must be an instance of net.sf.saxon.trans.UnparsedTextURIResolver, and it is set as a property of the Controller object (Saxon's implementation of the JAXP Transformer). One use case for this feature is to allow access to unparsed text files to be disabled when an untrusted stylesheet is run.

xsl:message

There have been some changes to the handling of xsl:message output in XSLT: