# Changes to XQuery API

Saxon now implements the early release draft of XQJ (dated May 2006). Note that this is a preliminary version of this API specification, and is subject to change. This interface, and its Saxon implementation, are provided in a separate JAR file saxon8-xqj.jar. It is dependent on some classes in JAXP 1.3, which means that it is simplest to use this with J2SE 5.0, although it can in principle work on the JDK 1.4 platform.

Although this is still a preliminary specification, there is likely to be increasing emphasis on the XQJ API in future releases at the expense of the current proprietary API for XQuery applications.

Areas where the implementation is known to be incomplete include:

- reporting of warnings;

- access to Saxon-specific configuration properties

Some extensions have also been implemented. Specifically, the code for mapping Java objects to XPath items will accept any JAXP Source object and return the corresponding document node, and it will also accept an XMLStreamReader (StAX parser) as the source of a document node.

Because it is required by XQJ, Saxon now provides the ability to read query and transformation results using the `XMLStreamReader` interface (also known as StAX).

Other XQuery changes

A new method is provided in `StaticQueryContext` to allow the static type of the context item to be specified. This information, if supplied, will be used when type-checking and optimizing the query, and an error will be reported at run-time if the actual context item does not conform to this type.

Next