Saxon XSLT
Encyclopedia
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.
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.
A more detailed feature matrix, updated for version 9.2. can be found on the Saxonica web site.
XSLT
XSLT is a declarative, XML-based language used for the transformation of XML documents. The original document is not changed; rather, a new document is created based on the content of an existing one. The new document may be serialized by the processor in standard XML syntax or in another format,...
and XQuery
XQuery
- Features :XQuery provides the means to extract and manipulate data from XML documents or any data source that can be viewed as XML, such as relational databases or office documents....
processor created by Michael Kay
Michael Kay (software engineer)
Michael H. Kay FBCS is the editor of the W3C specification of the XSLT 2.0 language for performing XML transformations, and the developer of the Saxon XSLT and XQuery processing software....
. There are open-source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
and also closed-source
Proprietary software
Proprietary software is computer software licensed under exclusive legal right of the copyright holder. The licensee is given the right to use the software under certain conditions, while restricted from other uses, such as modification, further distribution, or reverse engineering.Complementary...
commercial versions. Versions exist for Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
and .NET
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...
.
The current version, as of December 2010, is 9.3.
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
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
software released under the Mozilla Public License
Mozilla Public License
The Mozilla Public License is a free and open source software license. Version 1.0 was developed by Mitchell Baker when she worked as a lawyer at Netscape Communications Corporation and version 1.1 at the Mozilla Foundation...
, 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
XPath
XPath is a language for selecting nodes from an XML document. In addition, XPath may be used to compute values from the content of an XML document...
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
IKVM.NET
IKVM.NET is an implementation of Java for Mono and the Microsoft .NET Framework. IKVM is free software, distributed under a permissive free software licence.IKVM.NET includes the following components:* A Java Virtual Machine implemented in .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
JDOM
JDOM is an open source Java-based document object model for XML that was designed specifically for the Java platform so that it can take advantage of its language features. JDOM integrates with Document Object Model and Simple API for XML , supports XPath and XSLT. It uses external parsers to...
. Dom4j
Dom4j
dom4j is an open source Java library for working with XML, XPath and XSLT. It is compatible with DOM, SAX and JAXP standards.The library is distributed under an BSD-style license.- Versions :...
, and XOM
XML Object Model
XOM is a XML document object model for processing XML with Java that strives for correctness and simplicity.-External links:* by Bill Venners, July 28, 2003* * * *...
, and instead provides features that integrate with the XML processing capabilities of the .NET platform.
Michael Kay
Michael Kay (software engineer)
Michael H. Kay FBCS is the editor of the W3C specification of the XSLT 2.0 language for performing XML transformations, and the developer of the Saxon XSLT and XQuery processing software....
, the author of Saxon, was the editor of the XSLT 2.0 specification.
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 Processing Instruction A Processing Instruction is an SGML and XML node type, which may occur anywhere in the document, intended to carry instructions to the application.... 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 |
External links
- Saxon-B homepage
- Saxonica homepage, for Saxon-SA
- Saxon XQuery Tools
- AntillesXML (GUI for Saxon) (german)