JAXP interface (transformation, XPath, schema processing)

The classes that deliver the JAXP 1.3 XPath API have been moved to a separate JAR file, saxon8-xpath.jar. This need not be on the classpath (and therefore jaxp-api.jar need not be on the classpath) unless the application actually needs to use the free-standing JAXP XPath API.

To allow applications to use XPath expressions without requiring installation of JAXP 1.3, a new simple (but non-standard) XPath API has been introduced in package net.sf.saxon.sxpath. This is part of the standard saxon8.jar distribution. It is based on the design principles of the JAXP 1.3 API, but removes some features: it does not support variables or functions, and does not allow the result type to be set (you can control the result type by using casts or constructor functions within the XPath expression itself).

All references to JAXP 1.3 classes such as javax.xml.namespace.QName have been removed from the main body of the saxon8.jar code, to remove installation problems under JDK 1.4. Many of these references were not really needed, for example they were used to represent error codes within the XPathException object.

The Saxon class StandaloneContext, which can be used to set up the static context in the lower-level native API for evaluating XPath expressions, now allows the default namespace for elements and types to be set, by means of a new method setDefaultElementNamespace().