User: Password:
   Keep me logged in.
Register  |  I forgot my password

Login  |  Register

Efficient Java Tools  - Listing Details

ID:225
Title:SAXON: The XSLT and XQuery Processor
Pagerank:7
Short Description:
Listing Thumbnail

The Open Source SAXON XSLT processor developed by Michael Kay of Saxonica Limited. It also provides information about commercial versions of the Saxon product available from Saxonica.

The Saxon package is a collection of tools for processing XML documents. Saxon continues its tradition of implementing new W3C drafts as soon as they become available.

Description:

SAXON's main components are:

  • An XSLT 2.0 processor, which can be used from the command line, or invoked from an application, using a supplied API. This can also be used to run XSLT 1.0 stylesheets.

  • An XPath 2.0 processor accessible to applications via a supplied API.

  • An XQuery 1.0 processor that can be used from the command line, or invoked from an application by use of a supplied API.

  • An XML Schema 1.0 processor. This can be used on its own to validate a schema for correctness, or to validate a source document against the definitions in a schema. It is also used to support the schema-aware functionality of the XSLT and XQuery processors. Like the other tools, it can be run from the command line, or invoked from an application.

  • On the Java platform, when using XSLT, XPath, or XML schema validation, Saxon offers a choice of APIs. If you need portability across different vendor's tools, you can use the JAXP API for XSLT, XPath, and XML Schema processing, and the XQJ interface for XQuery. On the other hand, if you want a more integrated and complete API offering access to all Saxon's facilities, the s9api interface is recommended. You can also dive down deeper into the Saxon internals if you need to: there has been no particular attempt to make interfaces private, and all public interfaces are documented in the JavaDoc. Clearly, the deeper you go, the greater the risk of interfaces changing in future releases.

  • On the .NET platform, Saxon offers an API that enables close integration with other services available from .NET, notably the XML-related classes in the System.Xml namespace. It isn't possible to use Saxon as a transparent plug-in replacement for the System.Xml.Xsl processor, because the API for the Microsoft engine using concrete classes rather than abstract interfaces. However, it is possible to use it as a functional replacement with minor changes to your application code.

Editions:

  • Saxon-HE (home edition) is an open source product available under the Mozilla Public License. It provides implementations of XSLT 2.0, XQuery 1.0, and XPath 2.0 at the basic level of conformance defined by W3C. It is available for both Java and .NET.
  • Saxon-PE (professional edition) is a commercial product available at modest prices from Saxonica Limited. It adds a number of features to Saxon-HE, including support for Saxon extensions and extensibility mechanisms, support for new features defined in XQuery 1.1 including higher-order functions, and easier configuration of features such as localization for different languages, and support for external object models such as JDOM, XOM, and DOM4J.
  • Saxon-EE (enterprise edition) is the fully-featured commercial product, essentially a renaming of the previous Saxon-SA to reflect the fact that it now offers much more than just schema-awareness. As well as a fully conformant XSD 1.0 schema processor, and support for schema-aware XSLT and XQuery processing, it offers many other features including streaming in XSLT and XQuery, support for XQuery updates, and advanced query optimizer, compilation of XQuery code to Java bytecode, and much more. For full details, see the Saxonica web site.

Saxon-HE does not offer all the capabilities that were present in Saxon-B. Most notably, support for Saxon extension functions and other extensions is dropped, as is the capability for writing extension functions that rely on dynamic loading of Java or .NET code (a new facility for "integrated extension functions" is however available). Users whose code relies on these features of Saxon-B should either purchase the Professional Edition product or stick with Saxon-B: the latest release of Saxon-B is 9.1.0.8, and although there are no plans to develop it further or maintain it, it will remain available indefinitely.


Highlights


  • Saxon 9.2 requires JDK 1.5
  • Saxon 9.2 comes in three editions: Home, Professional, and Enterprise, replacing the previous split between Basic and Schema-Aware.
  • Home Edition (HE) includes most of what was in Saxon-B, with the exception of Saxon extensions and extensibility features
  • Professional Edition (PE) includes everything that was in Saxon-B, plus some additional features previously only available in Saxon-SA, such as XQuery 1.1 support and higher-order functions
  • Enteprise Edition (EE) is the successor to Saxon-SA, and includes all the capability of Saxon-SA plus new features introduced in Saxon 9.2.
  • Configuration information can now be specified in an optional configuration file
  • A new mechanism for creating "integrated extension functions" is defined, removing the reliance on Java reflection and the dependency on ad-hoc rules for conversions between XPath types and Java classes
  • Separate compilation of query modules in now possible (Saxon-EE only)
  • Support for XQuery Updates is aligned with the Candidate Recommendation
  • Selected features from the draft XQuery 1.1 Recommendation are implemented, notably Higher Order Functions
  • A number of Saxon extension functions have been reimplemented to use higher order functions, leading to a slight change in interface
  • More features from XML Schema 1.1 have been implemented, including "open content", and the ability for an element to belong to multiple substitution groups.
Category:XML
Link Owner:
Date Added:May 05, 2010 07:27:50 PM
Number Hits:25
URL:    http://saxon.sourceforge.net/
Ratings
You must be logged in to leave a rating.
Average rating: (0 votes)
Reviews

No Reviews Yet.


You must be logged in to leave a Comment.