Extensibility mechanisms

In the IntegratedFunctionCall class, there is no longer any need to implement the copyLocalData method, and if it is implemented, the method will never be called. The method definition is retained in the interface to avoid invalidating existing implementations, but it will be dropped in a future release.

In the ExtensionFunctionCall class, there is no longer any need to implement the CopyLocalData method, and if it is implemented, the method will never be called. The method definition is retained in the interface to avoid invalidating existing implementations, but it will be dropped in a future release.

The reason for this change is that the object is no longer copied during operations such as function inlining; since it is no longer implemented as a node in the expression tree, this copying was found to be unnecessary.

From 12.4, the conversions available between XPath and Java types include a mapping from xs:string to net.sf.saxon.str.UnicodeString in both directions.