For features in version 9.8 products, see the Saxon 9.8 Feature Matrix.
For features in version 9.7 products, see the Saxon 9.7 Feature Matrix.
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.
XSLT Features | HE | PE | EE | EE‑T | EE‑Q | EE‑V | JS |
XSLT 3.0 Basic Processor
XSLT 3.0 Basic ProcessorProvides all mandatory features from the XSLT 3.0 specification (including try/catch, iterate, accumulators, maps, named modes, content value templates, and extended patterns). Further info: XSLT 3.0 conformance |
● |
● |
● |
● |
● |
● |
● |
XSLT 3.0 Schema Awareness
XSLT 3.0 Schema AwarenessProvides a schema-aware XSLT 3.0 processor. Further info: XSLT 3.0 conformance |
|
|
● |
● |
|
|
|
XSLT 3.0 Serialization
XSLT 3.0 SerializationProvides the serialization feature. Further info: XSLT 3.0 conformance |
● |
● |
● |
● |
● |
● |
|
XSLT 3.0 Compatibility
XSLT 3.0 CompatibilityProvides XSLT 1.0 compatibility mode. Further info: XSLT 3.0 conformance |
● |
● |
● |
● |
● |
● |
● |
XSLT 3.0 Streaming
XSLT 3.0 StreamingIncludes additional features of the XSLT 3.0 specification, that enable streaming (processing of documents that are too large to fit in memory). Further info: XSLT 3.0 conformance |
|
|
● |
● |
|
|
|
XSLT 3.0 Dynamic Evaluation
XSLT 3.0 Dynamic EvaluationProvides use of the XSLT 3.0 instruction Further info: XSLT 3.0 conformance |
|
● |
● |
● |
● |
● |
● |
XSLT 3.0 XPath 3.1 Feature
XSLT 3.0 XPath 3.1 FeatureProvides full use of XPath 3.1 features, including XPath 3.1 functions, and maps and arrays. Further info: XSLT 3.0 conformance |
● |
● |
● |
● |
● |
● |
● |
XSLT 3.0 Higher-Order Functions
XSLT 3.0 Higher-Order FunctionsProvides higher-order functions: specifically, the ability to use functions as values, including dynamic function calls, inline functions, partial function application, and the XPath 3.1 higher-order functions. Further info: XSLT 3.0 conformance |
|
● |
● |
● |
● |
● |
|
XPath Features | HE | PE | EE | EE‑T | EE‑Q | EE‑V | JS |
XPath 3.1 Basic
XPath 3.1 BasicProvides all XPath 3.1 features which do not require schema-awareness or higher-order functions. This includes an implementation of maps and arrays, and support for JSON. Further info: XPath 3.1 conformance |
● |
● |
● |
● |
● |
● |
● |
XPath 3.1 Schema Aware
XPath 3.1 Schema AwareProvides schema-awareness: 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 3.1 conformance |
|
|
● |
● |
● |
● |
|
XPath 3.1 Higher-Order Functions
XPath 3.1 Higher-Order FunctionsProvides 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 Features | HE | PE | EE | EE‑T | EE‑Q | EE‑V | JS |
XQuery 3.1 Minimal Conformance
XQuery 3.1 Minimal ConformanceProvides Minimal Conformance (including try/catch and "group-by") as defined in section 5 of the XQuery 3.1 specification. Further info: XQuery 3.1 conformance |
● |
● |
● |
● |
● |
● |
|
XQuery 3.1 Schema Aware
XQuery 3.1 Schema AwareProvides the Schema Aware feature. Further info: XQuery 3.1 conformance |
|
|
● |
|
● |
|
|
XQuery 3.1 Typed Data
XQuery 3.1 Typed DataProvides the Typed Data feature. Further info: XQuery 3.1 conformance |
|
|
● |
|
● |
|
|
XQuery 3.1 Static Typing
XQuery 3.1 Static TypingSaxon does not implement the Static Typing feature. Further info: XQuery 3.1 conformance |
|
|
|
|
|
|
|
XQuery 3.1 Modules
XQuery 3.1 ModulesProvides the Module feature. Further info: XQuery 3.1 conformance |
● |
● |
● |
● |
● |
● |
|
XQuery 3.1 Serialization
XQuery 3.1 SerializationProvides the Serialization feature. Further info: XQuery 3.1 conformance |
● |
● |
● |
● |
● |
● |
|
XQuery 3.1 Higher-Order Functions
XQuery 3.1 Higher-Order FunctionsProvides the Higher-Order Function feature. 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.1 syntax. Further info: XQuery Update 1.0 conformance |
|
|
● |
|
● |
|
|
XML Schema Features | HE | PE | EE | EE‑T | EE‑Q | EE‑V | JS |
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. Also includes Saxon extension functions to provide access to a compiled schema. 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. Also includes Saxon extension functions to provide access to a compiled schema. Further info: XML Schema 1.1 conformance |
|
|
● |
● |
● |
● |
|
Performance Features | HE | PE | EE | EE‑T | EE‑Q | EE‑V | JS |
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 hot-spot code generation for XSLT, XQuery, XPath, and XML Schema. Available for both Java and .NET platforms, typically giving a 25% performance boost. 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, inlining of variables and functions, just-in-time compilation of template rules, and optimized searching of large sets of template rules, 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 | JS |
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 (Java and .NET)
Extensibility using reflexion (Java and .NET)Ability to access existing Java or .NET methods dynamically and invoke them as extension functions by means of dynamic loading and reflexion. Further info: Extensibility |
|
● |
● |
● |
● |
● |
|
Extensibility using reflexion (JavaScript)
Extensibility using reflexion (JavaScript)Ability to access existing JavaScript objects and functions dynamically. |
|
|
|
|
|
|
● |
Event handling extensions
Event handling extensionsAbility to write template rules which respond to user interaction events in the browser. |
|
|
|
|
|
|
● |
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. 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:
Further info: Saxon extension functions |
|
|
● |
● |
● |
● |
|
SQL extension
SQL extensionXSLT extension functions and 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)Run-time localization support for formatting of dates and numbers, and sorting and comparison of strings, building on the capabilities of the Java Virtual Machine. Further info: Unicode collation, Localizing numbers and dates |
● |
● |
● |
● |
● |
● |
|
Localization (Advanced)
Localization (Advanced)Run-time localization support for formatting of dates and numbers, and sorting and comparison of strings, building on the capabilities of the ICU-J library. The Advanced level also includes APIs which allow additional languages to be supported. Further info: Unicode collation, Localizing numbers and dates |
|
● |
● |
● |
● |
● |
|
Interfaces, APIs | HE | PE | EE | EE‑T | EE‑Q | EE‑V | JS |
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 |
● |
● |
● |
● |
● |
● |
● |
Optimized support for DOM
Optimized support for DOMIndexing of a supplied DOM tree to provide fast navigation (the Domino Model). Further info: Domino Tree Model |
|
|
● |
● |
● |
● |
|
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 |
|
● |
● |
● |
● |
● |
|