# 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.

See: Description

- Class Summary
  Class | Description
  --- | ---
  JAXPVariable | An object representing an XPath variable for use in 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.

## Package net.sf.saxon.xpath Description

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. (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`. However, for most applications the preferred interface is the s9api `XPathCompiler`

Michael H. Kay
Saxonica Limited
30 July 2010

Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.