Saxon XSLT

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Saxon is an XSLT and XQuery processor created by Michael Kay. There are open-source and also closed-source commercial versions. Versions exist for Java and .NET.

The current version, as of December 2010, is 9.3.[1]

Contents

[edit] Versions

The original development line of Saxon ended with the version 6 series. This is a series of XSLT 1.0 processors. The current version, 6.5.5, is not undergoing further development aside from maintenance. The 6 series is only available for the Java programming language.

The current development line, Saxon 9, implements the XSLT 2.0 and XQuery 1.0 specifications. Saxon 9 is capable of processing XSLT 1.0 files as well.

From 2004 until 2009 Saxon was available into two separate forms: Saxon-B and Saxon-SA. Both of these were built on similar codebases. Saxon-B was open-source software released under the Mozilla Public License, while Saxon-SA was a closed-source commercial product.

The difference between Saxon-B and Saxon-SA was that B was "basic" while SA was "schema-aware". These terms are references to terms in the XSLT 2.0 and XQuery 1.0 specification. A processor that is "schema-aware" is able to use a W3C XML Schema to define the data types of the various elements in the source XML document(s). These data types can then be used in XPath 2.0 and XSLT 2.0 commands. A "basic" XSLT 2.0 processor is unable to use data typing information.

With the release of version 9.2 in August 2009, the packaging changed to create three versions: home edition (HE), professional edition (PE), and enterprise edition (EE). The home edition is open source and free, the other versions are available under commercial licenses. The renaming from SA to EE was done to emphasize that the commercial product by now included many additional features beyond schema awareness, including a more advanced optimizer and the capability for streamed processing of XSLT and XQuery, enabling very large source documents to be processed without correspondingly large amounts of memory.

Saxon offers strict conformance to the XSLT 2.0, XPath 2.0, and XQuery 1.0 W3C Recommendations, and also implements XML Schema 1.0.

The Saxon source code is written in Java. During 2005-6 M. David Peterson and others demonstrated that Saxon could be cross-compiled to run on .NET using the IKVM.NET cross-compiler, launching Saxon.NET as a separate product independent of the original developer. With the release of Saxon 8.7, Michael Kay adopted this technology and from that release onwards, all versions have been released simultaneously for Java and .NET. The .NET version of the product omits features that are specific to the Java platform (such as integration with JDOM. Dom4j, and XOM, and instead provides features that integrate with the XML processing capabilities of the .NET platform.

Michael Kay, the author of Saxon, was the editor of the XSLT 2.0 specification.

[edit] Features

This table shows which features are available to which versions of Saxon. The Java and .NET versions are identical, so they share the same features.

A more detailed feature matrix, updated for version 9.2. can be found on the Saxonica web site.

Feature Saxon 6.5.5 Saxon-B 9.x Saxon-SA 9.x
XSLT 1.0 support Yes Via backward-compatible behavior Via backward-compatible behavior
XPath 1.0 support Yes Via XPath 1.0 compatibility mode Via XPath 1.0 compatibility mode
XSLT 2.0 support No, forward-compatible behavior applies Yes Yes
XPath 2.0 support No Yes Yes
XQuery 1.0 support No Yes Yes
XML Schema 1.0 support No No Yes
Serialization feature support Yes Yes Yes
XML:id 1.0 support No Yes Yes
XML stylesheet Processing Instruction support Yes Yes Yes
Advanced extension functions No No Yes
Advanced optimizer No No Yes
Streaming No No Yes
Java Code Generation No No Yes

[edit] References

  1. ^ Saxon XSLT official website

[edit] External links

Personal tools
Namespaces
Variants
Actions
Navigation
Interaction
Toolbox
Print/export
Languages