Loader class has been removed, and its methods have become instance-level methods
Configuration object. The
Configuration has a new method
setClassLoader() which can be used to set the
ClassLoader that Saxon
will use for all dynamic loading. There is another method of the same name on the
object, which applies locally to one transformation or query thread.
This is designed to help prevent problems that arise in environments such as Eclipse that
have their own customized class loader: when Eclipse loads a class using one class loader, and Saxon loads
it using a different class loader, the class hierarchy is not fixed up properly and a
info argument to the
MappingFunction.map() interface has been dropped.
Instead, mapping functions that require context information are now implemented as classes that can be
instantiated at run time and initialized with the relevant information. This is a cleaner design with better type
safety, better control over thread-safety, and less overhead for mapping iterators that don't require this
The code for wrapping a sequence (used with the XQuery -wrap option) has been refactored, so that it can now be used as a component on any push pipeline, and no longer requires the input sequence or output document to be built as an in-memory document.