Saxon is distributed in three packages: Saxon-HE, Saxon-PE, and Saxon-EE, each of which is available for both the Java and .NET platforms. Saxon-HE is available under an open-source license and all its features are available to all users. Saxon-PE and Saxon-EE require activation by a license key. There is also a restricted license that works with Saxon-EE but restricts the capability to Schema Validation only; this is referred to below as Saxon-VE (Validation Edition). The functionality of these variants is summarized in the table below.
This table is not exhaustive. Other features described in this documentation may be specific to a particular Saxon edition. This is always indicated as part of the documentation.
Feature |
Saxon-HE |
Saxon-PE |
Saxon-EE |
Saxon-VE |
Basic XSLT |
yes |
yes |
yes |
yes |
Basic XQuery 1.0 including XQJ interface |
yes |
yes |
yes |
yes |
Schema-Aware XSLT |
no |
no |
yes |
no |
Schema-Aware XQuery |
no |
no |
yes |
no |
XQuery Updates 1.0 |
no |
no |
yes |
no |
XQuery 1.1 (subset) |
no |
yes |
yes |
no |
Schema Validation |
no |
no |
yes |
yes |
Java Code Generation from XQuery |
no |
no |
yes |
no |
Separate compilation of XQuery modules |
no |
no |
yes |
no |
Extensibility using integrated extension functions |
yes |
yes |
yes |
yes |
Extensibility using reflexive extension functions |
no |
yes |
yes |
no |
Extensibility using XSLT extension instructions |
no |
yes |
yes |
no |
Saxon Extension Functions (see Note 1) |
no |
yes |
yes |
no |
Saxon Extension Instructions in XSLT (see Note 2) |
no |
yes |
yes |
no |
Advanced Optimizer (see Note 3) |
no |
no |
yes |
no |
Built-in support for JDOM, XOM, and DOM4J (see Note 4) |
no |
yes |
yes |
yes |
Built-in localization support for date and number formatting (see Note 5) |
no |
yes |
yes |
yes |
Streaming Extensions for Large Documents |
no |
no |
yes |
no |
Binary Document Storage (PTree) |
no |
yes |
yes |
no |
Note 1: Extension functions in the Saxon namespace, together with EXSLT extension functions where available,
require Saxon-PE,
with a few exceptions such as saxon:stream()
that relate to functionality only available in Saxon-EE.
Details of these extensions, together with the Saxon edition they require, are in Extension functions
Note 2: This covers the availability of extension instructions in the Saxon namespace (for example,
saxon:assign
and saxon:while
); extension instructions in the SQL namespace (for example,
sql:connect
and sql:insert
; and the basic mechanisms for extending Saxon with new extension elements.
Note 3: This includes a number of optimizations, notable in the handling of joins.
Saxon-HE and Saxon-PE always implement joins using a nested-loop strategy, which takes increasingly
long as the documents become larger. Saxon-EE where possible uses a hash-join algorithm. This applies whether
the join is expressed as a path expression, an XQuery FLWOR expression, or a nested set of xsl:for-each
instructions in XSLT. In some of the queries in the XMark benchmark, the effect is to reduce query time on a
10Mb source document from 16 seconds to 45 milliseconds.
Note 4: Saxon-PE and Saxon-EE provide support for access to (and in some cases output of) DOM, JDOM, DOM4J, and XOM object models "out of the box", as well as allowing user-defined object models to be supported by writing an adapter. Saxon-HE supports DOM "out of the box", and allows user-written adapters; the adapters for JDOM, DOM4J and XOM are available as open-source code which can be compiled and integrated in the same way as a user-written adapter.
Note 5: All editions allow support for languages other than English in xsl:number
and format-date()
by means of a user-written adapters. Saxon-PE and Saxon-EE include adapters for a number
of European languages "out of the box". Currently these adapters are all available as open-source code, which means they
can also be used in conjunction with Saxon-HE.
For commercial information including prices, terms and conditions, maintenance and upgrade offerings, site licensing, and redistribution licensing, see the online store.