## Package net.sf.saxon.xpath

This package provides an API for executing XPath expressions directly from a Java application.

See:
Description

Class Summary
JAXPVariable: An object representing an XPath variable for use in the JAXP XPath API.
NamespaceContextImpl: This class bridges between the JAXP 1.3 NamespaceContext interface and Saxon's equivalent NamespaceResolver interface.
StandaloneContext: A StandaloneContext provides a context for parsing an XPath expression in a context other than a stylesheet.
XPathEvaluator: XPathEvaluator provides a simple API for standalone XPath processing (that is, executing XPath expressions in the absence of an XSLT stylesheet).
XPathExpressionImpl: XPathExpression represents a compiled XPath expression that can be repeatedly evaluated.
XPathFactoryImpl: Saxon implementation of the JAXP 1.3 XPathFactory
XPathFunctionCall: This class is an expression that calls an external function supplied using the JAXP XPathFunction interface
XPathFunctionLibrary: The XPathFunctionLibrary is a FunctionLibrary that supports binding of XPath function calls to instances of the JAXP XPathFunction interface returned by an XPathFunctionResolver.

## Package net.sf.saxon.xpath Description

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