SAXONICA

Saxon Documentation
Full Contents
About Saxon
Changes in this Release
Conditions of Use
Using XSLT 2.0
Using XQuery
| Introduction
| Running XQuery from the Command Line
| Invoking XQuery using the XQJ API
| Invoking XQuery from an application
| 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

# Java Code Generation from the Command Line

The compilation is normally run from the command line, using the command:

java com.saxonica.CompileQuery [options] filename...

where filename is a list of XQuery source files to be compiled. It is also possible to use wildcards, for example `*.xq` to compile all the queries in a directory.

The options are as follows:

Option | Meaning
-package package-name | Name of the Java package to use for the generated class(es). By default, the class(es) will not be in any package.
-class class-name | The name of the class to be generated, excluding any package name. Use only when compiling a single query. By default, a class name is constructed from the last part of the input filename, using an algorithm that strips punctuation and adds capitalization according to Java conventions.
-jdir directory | Directory to hold the generated Java source code. If the source code is generated in a package, then subdirectories will be created as necessary to represent the package structure.
-e | Explain: show the structure of the optimized query
-servlet | Generate the Java code in the form of a servlet
-superclass | Full name of the class to act as the superclass of the generated class. Only needed if you want to customize the behavior. Typically a user-defined subclass of `com.saxonica.deploy.CompiledUserQuery` or `com.saxonica.deploy.CompiledQueryServlet`.
-t | Display progress information
-sa | Query is schema-aware

The Java code is generated in the requested file, and it must then be compiled using the Java compiler in the normal way. The classes referenced by the generated code are all in `saxon8sa.jar`, which must be on the compiler classpath.

Next