Saxon Product/Feature Matrix

The table below lists product features in the first column and indicates (with a tick or check-mark) which features are present in which product package.

The product packages referred to are:


Feature HE PE EE EE-T EE-Q EE-V Description

XPath 2.0 (Basic)

The term basic XPath 2.0 processor is used here to refer to all XPath features that do not involve schema-awareness. This is not a conformance level defined in the W3C XPath specification, but it corresponds to the subset of XPath used in a Basic XSLT Processor, and also in an XQuery processor that supports minimal conformance plus the Full Axis Feature.

XPath 2.0 (Schema-Aware)

 

 

 

Provides all the facilities defined in the XPath 2.0 Recommendation, including those that require schema processing.

XPath 3.0*

 

Provides higher-order functions.

XQuery 1.0 (Basic)

This supports the following features defined in Section 5 of the W3C XQuery 1.0 specification: minimal conformance plus the full axis feature, the module feature, and the serialization feature.

XQuery 1.0 (Schema-Aware)

 

 

 

 

This supports the following features defined in Section 5 of the W3C XQuery 1.0 specification: minimal conformance the full axis feature, the module feature, the serialization feature, the schema import feature, and the schema validation feature (that is, all optional features except the static typing feature).

XQuery 3.0*

 

 

 

Support for a subset of the features defined in the current working draft of XQuery 1.1, as defined in the documentation. These features are subject to change as the W3C specification develops. Implemented features include higher-order functions, try/catch and a subset of "group by".

XQuery Update

 

 

 

 

Support for all the features defined in the current Candidate Recommendation of XQuery Updates. These features are subject to change if the W3C specification changes.

XSD 1.0 (Validation)

 

 

This supports the ability to process XSD 1.0 schema documents and use them to validate instance documents. (Note: it does not support the full PSVI, as required by the conformance rules in the W3C Recommendation).

XSD 1.1 (Validation)

 

 

This supports the ability to process XSD schema documents that use the new features in the current working draft of XSD 1.1, and use them to validate instance documents. All significant new functions are implemented. XSD 1.1 is currently at Candidate Recommendation.

XSLT 2.0 (Basic)

The term basic XSLT 2.0 processor is defined in section 21 of the XSLT 2.0 Recommendation: it is a conformance level that requires support for all features of the language other than those that involve schema processing.

XSLT 2.0 (All XSD types)

 

 

 

Support for all XSD-defined built-in types, including those not supported in a Basic XSLT Processor: for example xs:int, xs:NCName, xs:ID.

XSLT 2.0 (Schema-Aware)

 

 

 

 

Provides a schema-aware XSLT 2.0 processor as defined in section 21 of the XSLT 2.0 Recommendation.

XSLT 3.0* (except Streaming facility)

 

 

 

Selected features from the XSLT 3.0 specification (e.g. try/catch).

XSLT 3.0* (Streaming facilities)

 

 

 

 

Implementation of selected features of the XSLT 3.0 specification plus some Saxon extensions to enable processing of documents that are too large to fit in memory. Some of the extensions are available only in XSLT, some also in XQuery. Schema validation in streaming mode is also supported.

Advanced optimizer

 

 

 

The advanced optimizer provided with Saxon Enterprise Edition goes beyond the basic optimizer by providing a range of powerful compile-time rewrites, including join optimization, inlining of functions and variables, extraction of global variables, and xsl:choose optimization.

Binary XML

 

Saxon's PTree format is a serialized binary representation of Saxon's internal tree format. It occupies around the same amount of disk space as the original XML, but is faster to serialize and faster to reparse.

Compiled queries

 

 

 

 

Saxon-EE can compile XQuery 1.0 queries to Java source code. This typically gives a 25% performance boost, though results can vary. There are some restrictions, for example collations are not supported. This facility is available on the Java platform only.

Compiled stylesheets

 

 

 

 

Saxon-EE can save a serialized representation of the compiled stylesheet on disk. This can be subsequently loaded from disk for execution (by any Saxon edition provided the stylesheet only uses facilities supported in that edition). Note that this feature does not normally deliver performance benefits. There are some restrictions, described in the documentation.

There is a currently-unresolved bug in Saxon 9.3 that prevents stylesheets compiled under Saxon-EE being executed under Saxon-PE or Saxon-HE, as was supported in Saxon 9.2.

This facility is obsolescent, and is likely to be superseded by new features in a future release.

Configuration file

 

Ability to define a Saxon configuration in a configuration file.

Document projection

 

 

 

 

This feature performs static analysis of a query and uses this to filter a document during loading, so that the only parts held in memory are those parts needed to answer the query. For simple queries on large documents this can give substantial memory savings.

EXSLT extension functions

 

A selection of EXSLT extension functions, as listed in the documentation. Note that although these are only available with Saxon-PE or higher, the implementation is open source and can therefore be extended.

Extensibility using custom classes

Ability to write extension functions (for use in XSLT, XQuery, or XPath) by implementing a Saxon-defined interface and registering the implementation with the Saxon Configuration.

Extensibility using reflexion

 

Ability to access existing Java or .NET methods dynamically and invoke them as extension functions by means of dynamic loading and reflexion.

JAXP API

Implementations of the standard JAXP interfaces for XSLT transformation, XPath evaluation, and XML Schema validation. Applies to the Java platform only.

Optimizer

The basic optimizer provided with all Saxon editions provides a wide range of static and dynamic optimizations including full pipelining of list operations, lazy evaluation of variables, elimination of redundant sorting operations, etc.

S9API API

Saxon's native interface for processing XSLT, XQuery, XPath, and XML Schema. Available in slightly different forms on the Java and .NET platforms.

Saxon extension functions

 

Extension functions, as listed in the documentation, in the Saxon namespace, with the exception of extension functions that depend on streaming. Useful extensions include try/catch, dynamic XPath evaluation, and the ability to get the line and column number of an element in the source document.

SQL extension

 

XSLT extension instructions providing access to SQL databases. Note that although these are only available with Saxon-PE or higher, the implementation is open source and can therefore be extended. Available on the Java platform only (not .NET).

Support for DOM

Ability to use a DOM (Document Object Model) for the input and output of transformations and queries. On the .NET platform this includes the System.XML DOM classes.

Support for JDOM, DOM4J, and XOM

 

Ability to use a JDOM, DOM4J, and XOM for the input or output of transformations and queries. Applies to the Java platform only. Note: The code for these interfaces is open source and can be compiled to work with Saxon-HE, but it does not come packaged with the Saxon-HE download.

XQJ API

 

 

Implementations of the standard XQJ interfaces for XQuery processing. Applies to the Java platform only.

XSLT Element Extensibility

 

 

 

Ability to implement XSLT extension instructions by implementing a Saxon-defined interface and registering the implementation with the Saxon Configuration.

HE PE EE EE-T EE-Q EE-V

* NB: W3C specification version 3.0 was formerly known as version 2.1