For features in version 9.6 products, see the Saxon 9.6 Feature Matrix.
The table below lists product features and indicates which features are present in which product package.
Language Support | HE | PE | EE | EE‑T | EE‑Q | EE‑V |
XSLT 2.0 (Basic)
XSLT 2.0 (Basic)Provides a basic XSLT 2.0 processor as defined in section 21 of the XSLT 2.0 Recommendation: it is a conformance level that includes all features of the language other than those that involve schema processing. Further info: XSLT 2.0 conformance |
● |
● |
● |
● |
● |
● |
XSLT 2.0 (Schema Aware)
XSLT 2.0 (Schema Aware)Provides a schema-aware XSLT 2.0 processor as defined in section 21 of the XSLT 2.0 Recommendation, which includes all features of the language. Further info: XSLT 2.0 conformance |
|
|
● |
● |
|
|
XSLT 3.0 (Basic)
XSLT 3.0 (Basic)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 and XPath 3.1 features such as higher-order functions; with the notable exceptions of schema-awareness, streaming, and packages. Further info: XSLT 3.0 conformance |
|
● |
● |
● |
● |
● |
XSLT 3.0 (Schema Aware & Streaming)
XSLT 3.0 (Schema Aware & Streaming)A schema-aware XSLT 3.0 processor, which provides almost all features from the XSLT 3.0 specification - including try/catch, evaluate, iterate, accumulators, maps, named modes, content value templates, extended patterns, XPath 3.0 and XPath 3.1 features such as higher-order functions, features that enable streaming (processing of documents that are too large to fit in memory), and an implementation of packages (which allows stylesheet modules to be independently compiled and distributed). Further info: XSLT 3.0 conformance |
|
|
● |
● |
|
|
XPath 2.0 (Basic)
XPath 2.0 (Basic)Provides all XPath 2.0 features other than schema-awareness. Further info: XPath 2.0 conformance |
● |
● |
● |
● |
● |
● |
XPath 2.0 (Schema Aware)
XPath 2.0 (Schema Aware)Provides all XPath 2.0 features, including those that require schema processing: specifically, any use of source documents with type annotations, and any use of XPath expressions that contain the names of schema components such as element declarations and types, other than the built-in types. Further info: XPath 2.0 conformance |
|
|
● |
● |
● |
● |
XPath 3.0 (Basic)
XPath 3.0 (Basic)Provides all XPath 3.0 features other than schema-awareness and higher-order functions. Further info: XPath 3.0 conformance |
● |
● |
● |
● |
● |
● |
XPath 3.0 (Higher-Order Functions)
XPath 3.0 (Higher-Order Functions)Provides all XPath 3.0 features, other than schema-awareness. This includes features
that
require higher-order functions: specifically, the ability to use functions as values,
including dynamic function calls, inline functions, partial function application,
and
specific higher-order functions such as Further info: XPath 3.0 conformance |
|
● |
● |
● |
● |
● |
XPath 3.0 (Schema Aware)
XPath 3.0 (Schema Aware)Provides all XPath 3.0 features. This includes features that require schema processing
-
specifically, any use of source documents with type annotations, and any use of XPath
expressions that contain the names of schema components such as element declarations
and
types, other than the built-in types; and features that require higher-order functions
-
specifically, the ability to use functions as values, including dynamic function calls,
inline functions, partial function application, and specific higher-order functions
such
as Further info: XPath 3.0 conformance |
|
|
● |
● |
● |
● |
XPath 3.1 (Basic)
XPath 3.1 (Basic)Provides all XPath 3.1 features other than schema-awareness and higher-order functions. This includes an implementation of maps and arrays, and support for JSON. Further info: XPath 3.1 conformance |
● |
● |
● |
● |
● |
● |
XPath 3.1 (Higher-Order Functions)
XPath 3.1 (Higher-Order Functions)Provides all XPath 3.1 features, other than schema-awareness. This includes an implementation of maps and arrays, and support for JSON; and features that require higher-order functions - specifically, the ability to use functions as values, including dynamic function calls, inline functions, partial function application, and specific higher-order functions. Further info: XPath 3.1 conformance |
|
● |
● |
● |
● |
● |
XPath 3.1 (Schema Aware)
XPath 3.1 (Schema Aware)Provides all XPath 3.1 features. This includes features that require schema processing - specifically, any use of source documents with type annotations, and any use of XPath expressions that contain the names of schema components such as element declarations and types, other than the built-in types. It also includes an implementation of maps and arrays, and support for JSON, and features that require higher-order functions - specifically, the ability to use functions as values, including dynamic function calls, inline functions, partial function application, and specific higher-order functions. Further info: XPath 3.1 conformance |
|
|
● |
● |
● |
● |
XQuery 1.0 (Basic)
XQuery 1.0 (Basic)Provides the following features, as defined in section 5 of the XQuery 1.0 specification: Minimal Conformance; Full Axis Feature; Module Feature; and Serialization Feature. Further info: XQuery 1.0 conformance |
● |
● |
● |
● |
● |
● |
XQuery 1.0 (Schema Aware)
XQuery 1.0 (Schema Aware)Provides the following features, as defined in section 5 of the XQuery 1.0 specification: Minimal Conformance; Full Axis Feature; Module Feature; Serialization Feature; Schema Import Feature; and Schema Validation Feature. (That is, all optional features except the Static Typing feature.) Further info: XQuery 1.0 conformance |
|
|
● |
|
● |
|
XQuery 3.0 (Basic)
XQuery 3.0 (Basic)Provides the following features, as defined in section 5 of the XQuery 3.0 specification: Minimal Conformance (including try/catch and "group-by"); Module Feature; and Serialization Feature. Further info: XQuery 3.0 conformance |
● |
● |
● |
● |
● |
● |
XQuery 3.0 (Higher-Order Functions)
XQuery 3.0 (Higher-Order Functions)Provides the following features, as defined in section 5 of the XQuery 3.0 specification: Minimal Conformance (including try/catch and "group-by"); Module Feature; Serialization Feature; and Higher-Order Function Feature. Further info: XQuery 3.0 conformance |
|
● |
● |
● |
● |
● |
XQuery 3.0 (Schema Aware)
XQuery 3.0 (Schema Aware)Provides the following features, as defined in section 5 of the XQuery 3.0 specification: Minimal Conformance (including try/catch and "group-by"); Module Feature; Serialization Feature; Higher-Order Function Feature; Schema Aware Feature; and Typed Data Feature. (That is, all optional features except the Static Typing Feature.) Further info: XQuery 3.0 conformance |
|
|
● |
|
● |
|
XQuery 3.1 (Basic)
XQuery 3.1 (Basic)Provides the following features, as defined in section 5 of the XQuery 3.1 specification: Minimal Conformance (including try/catch and "group-by"); Module Feature; and Serialization Feature. Further info: XQuery 3.1 conformance |
● |
● |
● |
● |
● |
● |
XQuery 3.1 (Higher-Order Functions)
XQuery 3.1 (Higher-Order Functions)Provides the following features, as defined in section 5 of the XQuery 3.1 specification: Minimal Conformance (including try/catch and "group-by"); Module Feature; Serialization Feature; and Higher-Order Function Feature. Further info: XQuery 3.1 conformance |
|
● |
● |
● |
● |
● |
XQuery 3.1 (Schema Aware)
XQuery 3.1 (Schema Aware)Provides the following features, as defined in section 5 of the XQuery 3.1 specification:
Minimal Conformance (including try/catch and "group-by"); Module Feature; Serialization
Feature; Higher-Order Function Feature; Schema Aware Feature; and Typed Data Feature.
(That is, all optional features except the Static Typing Feature and Further info: XQuery 3.1 conformance |
|
|
● |
|
● |
|
XQuery Update 1.0
XQuery Update 1.0Saxon provides all the features defined in the XQuery Update 1.0 specification. The implementation allows XQuery Update 1.0 syntax to be mixed with XQuery 3.0 or 3.1 syntax. Further info: XQuery Update 1.0 conformance |
|
|
● |
|
● |
|
XML Schema 1.0 Validation
XML Schema 1.0 ValidationSaxon includes a complete implementation of XML Schema 1.0. This provides the ability to process XSD 1.0 schema documents and use them to validate instance documents. Note that Saxon does not expose the full PSVI, as required by the conformance rules in the XSD 1.0 Recommendation. Further info: XML Schema 1.0 conformance |
|
|
● |
● |
● |
● |
XML Schema 1.1 Validation
XML Schema 1.1 ValidationSaxon includes a complete implementation of XML Schema 1.1. This provides the ability to process schema documents that use the new features of XSD 1.1, and use them to validate instance documents. More specifically, in the language of section 2.4 of the specification, it is a General-Purpose Web-Aware Validator. Further info: XML Schema 1.1 conformance |
|
|
● |
● |
● |
● |
Performance Features | HE | PE | EE | EE‑T | EE‑Q | EE‑V |
Binary XML
Binary XMLSaxon'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. Further info: The PTree file format |
|
● |
● |
● |
● |
● |
Byte code generation
Byte code generationAllows code generation for XSLT, XQuery, and XPath. Available for both Java and .NET platforms, typically giving a 25% performance boost (at the cost of increased compile time). Further info: Compiling a Stylesheet |
|
|
● |
● |
● |
● |
Document projection
Document projectionThis 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. Further info: Document projection |
|
|
● |
|
● |
|
Export stylesheet packages
Export stylesheet packagesXSLT 3.0 packaging allows stylesheet modules to be independently compiled and distributed, and provides much more "software engineering" control over public and private interfaces, and the like. The ability to save packages in compiled form ("stylesheet export file", SEF) gives much faster loading of frequently used stylesheets, and also enables in-browser execution using Saxon-JS. Further info: Compiling a Stylesheet |
|
|
● |
● |
|
|
Import stylesheet packages
Import stylesheet packagesAllows the importing of stylesheet packages in compiled form. Possible with all editions, provided the package only uses features available in that edition. Further info: Compiling a Stylesheet |
● |
● |
● |
● |
● |
● |
Multi-threading (XPath)
Multi-threading (XPath)Takes advantage of multi-core CPUs by providing automatic parallel execution of the
|
|
|
● |
● |
● |
● |
Multi-threading (XSLT)
Multi-threading (XSLT)Takes advantage of multi-core CPUs by providing automatic parallel execution of the
|
|
|
● |
● |
|
|
Optimizer (Basic)
Optimizer (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. |
● |
● |
● |
● |
● |
● |
Optimizer (Advanced)
Optimizer (Advanced)The Advanced optimizer provides the wide range of static and dynamic optimizations featured in the Basic optimizer - including full pipelining of list operations, lazy evaluation of variables, elimination of redundant sorting operations, etc. - and additionally provides join optimization and inlining of variables and functions, where feasible. |
|
|
● |
● |
● |
|
Reading W3C schemas and DTDs
Reading W3C schemas and DTDsThe 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. |
● |
● |
● |
● |
● |
● |
Streaming (XPath)
Streaming (XPath)Provides Further info: Streaming of Large Documents |
|
|
● |
● |
● |
● |
Streaming (XSLT)
Streaming (XSLT)Allows large documents to be processed without holding the whole document in memory. Provides the streaming features of the XSLT 3.0 specification. Further info: Streaming of Large Documents |
|
|
● |
● |
|
|
Extensibility | HE | PE | EE | EE‑T | EE‑Q | EE‑V |
EXSLT extension functions
EXSLT extension functionsA selection of EXSLT extension functions are provided (in the modules Common, Dates and Times, Math, Random, and Sets), as listed in the documentation. Further info: EXSLT extensions |
|
● |
● |
● |
● |
● |
EXPath extension functions
EXPath extension functionsA selection of EXPath extension functions are provided (in the modules Archive, Binary, and File), as listed in the documentation. Further info: EXPath extensions |
|
● |
● |
● |
● |
● |
Extensibility using custom classes
Extensibility using custom classesAbility 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. Further info: Extensibility |
● |
● |
● |
● |
● |
● |
Extensibility using reflexion
Extensibility using reflexionAbility to access existing Java or .NET methods dynamically and invoke them as extension functions by means of dynamic loading and reflexion. Further info: Extensibility |
|
● |
● |
● |
● |
● |
Saxon extension functions (Basic)
Saxon extension functions (Basic)Extension functions, as listed in the documentation, in the Saxon namespace. The Basic level excludes extension functions that depend on streaming or schema-awareness. Many Saxon extension functions have over the years become superseded by facilities in the W3C standards or in EXPath libraries, but some such as the ability to access the line number of an element remain available only through this library. Further info: Saxon extension functions |
|
● |
● |
● |
● |
● |
Saxon extension functions (Advanced)
Saxon extension functions (Advanced)Extension functions, as listed in the documentation, in the Saxon namespace. The Advanced level includes those that depend on streaming or schema-awareness. Many Saxon extension functions have over the years become superseded by facilities in the W3C standards or in EXPath libraries, but some such as the ability to access the line number of an element remain available only through this library. Further info: Saxon extension functions |
|
|
● |
● |
● |
● |
SQL extension
SQL extensionXSLT extension instructions providing access to SQL databases. Available on the Java platform only (not .NET). Further info: Saxon SQL extension |
|
● |
● |
● |
● |
● |
XSLT element extensibility
XSLT element extensibilityAbility to implement XSLT extension instructions by implementing a Saxon-defined interface and registering the implementation with the Saxon Configuration. Further info: Writing XSLT extension instructions |
|
● |
● |
● |
● |
● |
Localization (Basic)
Localization (Basic)All the interfaces for developers are in English, but there is some localization support in transformation to enable dates and numbers to be formatted and collations performed in other languages (so end-user output can be localized, but developer output cannot). Further info: Unicode collation, Localizing numbers and dates |
● |
● |
● |
● |
● |
● |
Localization (Advanced)
Localization (Advanced)All the interfaces for developers are in English, but there is some localization support in transformation to enable dates and numbers to be formatted and collations performed in other languages (so end-user output can be localized, but developer output cannot). The Advanced level includes number and date formatting for a variety of languages, as well as support for the Unicode Collation Algorithm using features from the ICU - International Components for Unicode. The Advanced level also includes APIs which allow support for additional languages to be developed. Further info: Unicode collation, Localizing numbers and dates |
|
● |
● |
● |
● |
● |
Interfaces, APIs | HE | PE | EE | EE‑T | EE‑Q | EE‑V |
JAXP API
JAXP APIImplementations of the standard JAXP interfaces for XSLT transformation, XPath evaluation, and XML Schema validation. Applies to the Java platform only. Further info: JAXP API conformance |
● |
● |
● |
● |
● |
● |
S9API API
S9API APISaxon'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
Support for DOMAbility 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. Further info: Object models |
● |
● |
● |
● |
● |
● |
Support for JDOM, JDOM2, AXIOM, DOM4J, and XOM
Support for JDOM, JDOM2, AXIOM, DOM4J, and XOMAbility 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 that 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. Further info: Object models |
|
● |
● |
● |
● |
● |
XQJ API
XQJ APIImplementations of the standard XQJ interfaces for XQuery processing. Applies to the Java platform only. Note that the XQJ interfaces have been removed from the standard download of Saxon-HE because the Oracle specification license is not open source, but they are available on request. Further info: XQJ API conformance |
|
● |
● |
● |
● |
● |