A new method Xslt30Transformer.transform() has been added, supporting the traditional style of XSLT invocation in which a source document acts as both the global context item and the initial match selection.
The mechanism for creating a MessageListener has
changed, to accommodate multi-threaded transformations.
Instead of calling
XsltController.setMessageEmitter() to provide a destination for messages, applications
should call XsltController.setMessageFactory() to
provide a factory object that is called on each invocation
xsl:message to supply a destination for that particular message. The old interface remains supported
provided that multithreading is disabled (which is always the case in Saxon-HE).
In s9api, Steps.path() now returns a
Step<? extends XdmNode> rather than
Step<? extends XdmItem>. This
reduces the need for unsafe casting operations.