SAXONICA |
Saxon is distributed in two packages: Saxon-B and Saxon-SA, each of which is available for both the Java and .NET platforms. 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 including XQJ interface |
yes |
yes |
yes |
yes |
yes |
Schema-Aware XSLT |
no |
yes |
yes |
no |
no |
Schema-Aware XQuery |
no |
yes |
no |
yes |
no |
XQuery Updates |
no |
yes |
no |
yes |
no |
Schema Validation |
no |
yes |
yes |
yes |
yes |
Java Code Generation |
no |
yes |
no |
yes |
no |
Advanced Extension Functions (see Note 1) |
no |
yes |
yes |
yes |
no |
Advanced Optimizer (see Note 2) |
no |
yes |
yes |
yes |
no |
Streaming Extensions for 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 some of these products, it is also possible for existing users to purchase an upgrade license.
For product prices, see the online store.