Compiling Queries to Java code

Saxon-SA (from release 8.9) provides the capability to compile a query to Java source code. The Java source code can then be compiled to byte code in a class file, which can be executed in the same way as any other Java program.

This is achieved by adding a code-generation phase to the existing query analysis phase. The query analyzer generates an optimized expression tree in memory. In interpreted execution, the run time system evaluates this expression tree directly. With compiled execution, the expression tree is compiled to Java code. The Java code makes calls on the Saxon run-time to perform operations such as navigating the source tree and serializing the output.

The following sections discuss Java code generation in more detail.