SAXONICA

Saxon Documentation
Full Contents
About Saxon
Changes in this Release
Notices
Using XSLT 2.0
Using XQuery
| Introduction
| Running XQuery from the Command Line
| Running Queries from a Java Application
| Using XQuery Update
| Calling XQuery Functions from Java
| Result Format
» | Compiling Queries to Java code
| Extensibility
| Extensions
| Use Cases
Handling Source Documents
XML Schema Processing
XPath API for Java
Saxon on .NET
Extensibility
Saxon Extensions
Sample Saxon Applications
The Saxon SQL Extension
XSLT Elements
XPath 2.0 Expression Syntax
Function Library
Standards Conformance

# Limitations

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.

Next