Saxon 9.5 Product/Feature Matrix, Server processing

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.

Other terms used are: Basic, Adv (Advanced) or SA (Schema Aware)

The product packages referred to are:


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

XPath 2.0

Basic

Basic

SA

SA

SA

SA

At the Basic level, the processor provides 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. The SA level provides all the facilities defined in the XPath 2.0 Recommendation, including those that require schema processing.

for more details see: XPath 2.0 conformance

XPath 3.0*

 

Basic

SA

SA

SA

SA

The term basic XPath 3.0 processor is used here to refer to all XPath features that do not involve schema-awareness. Saxon 9.5 is a complete implementation of the XPath 3.0 Proposed Recommendation. These features are subject to change in the unlikely event that changes are made before the final recommendation. It provides higher-order functions. The function library is extended with support for trigonometric functions. Some functions such as format-date are transferred from the XSLT specification into the XPath/XQuery function library.

for more details see: XPath 3.0 conformance

XQuery 1.0

Basic

Basic

SA

Basic

SA

Basic

At the Basic level 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. The SA level provides, in addition, the schema import feature, and the schema validation feature (that is, all optional features except the static typing feature).

for more details see: XQuery 1.0 conformance

XQuery 3.0*

 

Basic

SA

Basic

SA

Basic

Saxon 9.5 is a complete implementation of the XQuery 3.0 Proposed Recommendation, with the exception of some aspects of HTML5 serialization. These features are subject to change in the unlikely event that changes are made before the final recommendation. New features in XQuery 3.0 include higher-order functions, try/catch and "group by". At the Basic level Saxon implements all optional features except Schema Awareness and Static Typing. At the SA level Saxon implements all optional features except Static Typing.

for more details see: XQuery 3.0 conformance

XQuery Update 1.0

 

 

Support for all the features defined in the current specification of XQuery Updates.

for more details see: XQuery Update 1.0 conformance

XQuery Update 3.0*

 

 

Saxon 9.5 is a complete implementation of the XQuery Update 3.0 Working Draft.

XML Schema 1.0

 

 

Saxon Enterprise Edition includes a complete implementation of XML Schema 1.0. 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).

for more details see: XML Schema 1.0 conformance

XML Schema 1.1

 

 

Saxon includes a complete implementation of the XSD 1.1 Recommendation of 5 April 2012, namely the ability to process schema documents that use the new features in the XSD 1.1 Recommendation, and use them to validate instance documents.

for more details see: XML Schema 1.1 conformance

XSLT 2.0

Basic

Basic

SA

SA

Basic

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. The SA level provides a schema-aware XSLT 2.0 processor as defined in section 21 of the XSLT 2.0 Recommendation.

for more details see: XSLT 2.0 conformance

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.

for more details see: XSLT 2.0 conformance

XSLT 3.0*

 

Basic

Adv

Adv

Basic

Basic

The Basic level provides selected features from the XSLT 3.0 specification including try/catch, evaluate, iterate, accumulators, maps, named modes, content value templates, and extended patterns, as well as XPath 3.0 features such as higher order functions. The Advanced level is an implementation of additional features of the XSLT 3.0 specification, notably those that enable streaming (processing of documents that are too large to fit in memory). The main feature that is not implemented, is packaging. XSLT 3.0 is currently a working draft and is subject to change.

for more details see: XSLT 3.0 conformance

 

 

 

 

 

 

Performance Features

 

 

 

 

 

 

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.

Byte code generation

 

 

Replaces compiled stylesheet and compiled queries in earlier versions. Available for both Java and .NET platforms, typically giving a 25% performance boost.

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.

Optimizer

Basic

Basic

Adv

Adv

Adv

Basic

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. The Advanced optimizer available with Saxon-EE provides, in addition, join optimization and inlining of variables and functions, where appropriate.

 

 

 

 

 

 

Extensibility

 

 

 

 

 

 

EXSLT and EXPath extension functions

 

A selection of EXSLT and EXPath 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.

Saxon extension functions

 

Basic

Adv

Adv

Adv

Adv

Extension functions, as listed in the documentation, in the Saxon namespace. The Basic level excludes extension functions that depend on streaming; these are included at the Advanced level. 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).

XSLT Element Extensibility

 

 

 

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

 

 

 

 

 

 

Localisation

Adv

Basic

Adv

Adv

Adv

Adv

All the interfaces for developers are in English, but there is some localisation support in transformation to enable dates and numbers to be formatted in other Western European languages. So end-user output can be localised, but developer output cannot. Number and date formatting is currently available in several European languages. The Advanced facility includes APIs which allow support for additional languages to be developed.

 

 

 

 

 

 

Interfaces, APIs

 

 

 

 

 

 

JAXP API

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

for more details see: JAXP conformance

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.

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, JDOM2, AXIOM, DOM4J, and XOM

 

Ability to use a JDOM, JDOM2, AXIOM, 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.

Note: XQJ interfaces have been removed from the standard download of Saxon-HE due to licensing issues, but are available on request.

for more details see: XQJ conformance

 

 

 

 

 

 

Reading W3C schemas and DTDs

The W3C web server now routinely rejects requests for commonly-referenced files such as the DTD for XHTML, causing parsing failures. In response to this, Saxon now includes copies of these documents within the issued JAR file, and recognizes requests for these documents, satisfying the request using the local copy.

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

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