Extensibility mechanisms
Some performance improvements have been made to the code for calling Java extension functions. Thanks to Wolfgang Hoschek for providing these.
The ability to define user-written functions as memo functions is now available in XQuery as well as XSLT.
In XQuery this is achieved by preceding the function decilaration with declare option saxon:memo-function 'true'
.
The effect is that the function caches its results, so if it is called again with the same arguments it returns the remembered
result.
The use of external object types in namespace http://saxon.sf.net/java-type
now reflects the
Java type hierarchy. For example, if a variable is declared to accept a type of jt:java.util.List
, then
a value of type jt:java.util.ArrayList
will be accepted, but a value of type jt:java.util.HashMap
will not. The same applies to the new namespace http://saxon.sf.net/.net-type
used for
external .NET types.