This package provides an API for executing XPath expressions directly from a Java application. The API can be used either in a free-standing Java application (that is, where there is no XSLT stylesheet), or it can be used from within Java extension functions called from XPath expressions within a stylesheet.

The API itself is defined by JAXP 1.3, in interfaces such as `javax.xml.xpath.XPath`. This package is therefore dependent on JAXP 1.3. J2SE 5.0 (also known as JDK 1.5) includes JAXP 1.3 as a standard component, but JDK 1.4 does not. To run the code in this package under JDK 1.4, you therefore need to install JAXP 1.3 separately. You can get this from https://jaxp.dev.java.net/. At the time of writing it is reached via a link labelled "Unbundled EA Build".

This package (net.sf.saxon.xpath) is distributed in a separate JAR file, `saxon8-xpath.jar` to avoid making the whole of Saxon dependent on JAXP 1.3.

The interfaces provided by Saxon extend the JAXP 1.3 interfaces in various ways. There are three reasons for this:

- Saxon supports XPath 2.0 rather than 1.0

- The package retains support for some interfaces that were provided before JAXP 1.3 came along. (These might disappear in the course of time).

- There are methods that allow an escape into Saxon's more low-level APIs, needed by anyone doing serious software integration.

An alternative XPath interface, which is not dependent on JAXP 1.3, is available in the package `net.sf.saxon.sxpath`.

Michael H. Kay
Saxonica Limited
9 February 2005