S9API interface
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
of 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.