# Package net.sf.saxon.xpath

This package is Saxon's implementation of the JAXP API designed for executing XPath 1.0 expressions directly from a Java application. Saxon extends the interface to handle XPath 2.0, though if the application makes extensive use of XPath 2.0 features, then the s9api interface offers a better fit to the XPath 2.0 data model. 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`. These interfaces are included in Java Standard Edition from JDK 1.5 onwards.

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 was released. (Most of these extensions have been deprecated for several releases, and most removed in Saxon 9.6).

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

For most applications the preferred interface is the s9api `XPathCompiler`

- Class Summary
  Class | Description
  --- | ---
  JAXPVariableReference | This class represents a variable in an XPath expression compiled using the JAXP XPath API.
  JAXPXPathStaticContext | A JAXPXPathStaticContext provides a context for parsing an XPath expression in a context other than a stylesheet.
  XPathEvaluator | XPathEvaluator implements the JAXP API for standalone XPath processing (that is, executing XPath expressions in the absence of an XSLT stylesheet).
  XPathExpressionImpl | The JAXP XPathExpression interface 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.