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

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.

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.

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.

XSLT 2.0 (Schema-Aware)

 

 

 

 

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

XPath 2.0 (Schema-Aware)

 

 

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

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 1.1

 

 

 

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, 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 a subset of the new features in the current working draft of XSD 1.1, and use them to validate instance documents. Implemented features include assertions, conditional type assignment, open content, and the new rules for restriction of complex types and for unique particle attribution. These features are subject to change as the W3C specification develops.

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.

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.

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).

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.

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.

XSLT Element Extensibility

 

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

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.

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.

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.

Streaming of large documents

 

 

This feature provides 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.

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.

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.

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.

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.

JAXP API

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

XQJ API

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

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.

Configuration file

 

Ability to define a Saxon configuration in a configuration file.