SAXONICA |
There are a number of limitations when queries are compiled to Java code:
Collations are not fully supported (especially when supplied as dynamic values)
There is no type checking of the values supplied for external variables
Negative zero is not always handled correctly (for example by the abs() function)
Loop-lifted expressions are evaluated eagerly, which means that dynamic errors may occur that should be masked
Many native Saxon extensions are unsupported, including functions such as saxon:function()
and saxon:call()
, saxon:format-number()
and saxon:analyze-string()
.
XQuery Update is not supported.
not all calls to external (Java) functions are supported. In particular, calls that involve
collections and arrays may not work, as well as other calls where no static type information is available.
It's always possible to circumvent any restrictions by writing a Java wrapper around the desired target
method that takes Saxon values as its arguments and result type (that is, classes such as NodeInfo
,
ValueRepresentation
and SequenceIterator
.) There should be no difficulty passing
simple atomic values such as strings, numbers, and booleans.