SAXONICA

Saxon Documentation
Full Contents
About Saxon
| Introduction
| Getting Started
| What is Saxon?
| Prerequisites
» | Product Packages
| Installation
| Historical Note
| Technical Support
Changes in this Release
Conditions of Use
Using XSLT 2.0
Using XQuery
Handling Source Documents
XML Schema Processing
The XPath API
Standards Conformance
Extensibility
Saxon Extensions
Sample Saxon Applications
The Saxon SQL Extension
XSLT Elements
XPath 2.0 Expression Syntax
Function Library
XSLT Patterns

# Product Packages

Saxon is distributed in two packages: Saxon-B and Saxon-SA. Saxon-B is available under an open-source license and all its features are available to all users. Saxon-SA requires activation by a license key, and it is possible to purchase various subsets of the functionality. These are summarized in the table below.

Feature | Saxon-B | Saxon-SA
| all | SA001 (Full) | SA030 (XSLT) | SA040 (XQuery) | SA050 (Schema)
Basic XSLT | yes | yes | yes | yes | yes
Basic XQuery | yes | yes | yes | yes | yes
Schema-Aware XSLT | no | yes | yes | no | no
Schema-Aware XQuery | no | yes | no | yes | no
Schema Validation | no | yes | yes | yes | yes
Advanced Extension Functions (see Note 1) | no | yes | yes | yes | no
Advanced Optimizer (see Note 2) | no | yes | yes | yes | no
Serial Processing of Large Documents | no | yes | yes | no | no
Binary Document Storage (PTree) | no | yes | yes | yes | no

Note 1: Extension functions in this category include `saxon:try()`, which provides the ability to catch run-time errors; `saxon:function()` which provides higher-order functions; `saxon:analyze-string()` and `saxon:for-each-group()` which provide XQuery users with an equivalent to the `xsl:analyze-string` and `xsl:for-each-group` instructions in XSLT; and `saxon:index()` and `saxon:find()` which provide a "manual" indexing capability for XQuery, similar to the `xsl:key` construct in XSLT.

Note 2: Saxon-B always implements joins using a nested-loop strategy, which takes increasingly long as the documents become larger. Saxon-SA where possible uses a hash-join algorithm. This applies whether the join is expressed as a path expression, an XQuery FLWOR expression, or a nested set of `xsl:for-each` instructions in XSLT. In some of the queries in the XMark benchmark, the effect is to reduce query time on a 10Mb source document from 16 seconds to 45 milliseconds.

For product prices, see the online store.

Next