Saxonica.com
Saxonica products

Saxonica undertakes the development of the Saxon XSLT, XQuery, and XML Schema processor.

This technology is available in two versions: the basic edition Saxon-B, available as an open source product from SourceForge, and the schema-aware edition Saxon-SA available on a commercial license from this site.

For current version information, please see the download page.

Saxon-SA includes an XML Schema processor, and schema-aware XSLT, XQuery, and XPath processors. Saxon-B has no support for XML Schema. In addition, Saxon-SA offers a number of advanced facilities designed to improve performance and functionality, especially for large and critical applications. These are summarized in the table below.

Saxon-SA is activated by a license key. The software itself, and the license key are different depending on whether you want to run on the Java platform or the .NET platform. In both cases, a number of different purchase options are available to suit different users' requirements. The features available in each of these options are summarized in the table below:

Feature

Saxon-B

Saxon-SA

all

SA001 (Full)

SA030 (XSLT)

SA040 (XQuery)

SA050 (Schema)

Basic XSLT (see Note 1)

yes

yes

yes

yes

yes

Basic XPath

yes

yes

yes

yes

yes

Basic XQuery (see Note 2)

yes

yes

yes

yes

yes

Schema-Aware XSLT

no

yes

yes

no

no

Schema-Aware XPath

no

yes

yes

yes

yes

Schema-Aware XQuery

no

yes

no

yes

no

Schema Validation

no

yes

yes

yes

yes

JAXP API

yes

yes

yes

yes

yes

XQJ API

yes

yes

yes

yes

yes

S9API API

yes

yes

yes

yes

yes

Advanced Optimizer (see Note 3)

no

yes

yes

yes

no

Compile queries to Java (see Note 4)

no

yes

no

yes

no

Serial Processing of Large Documents (see Note 5)

no

yes

yes

no

no

Advanced Extension Functions (see Note 6)

no

yes

yes

yes

no

Binary Document Storage (PTree) (see Note 7)

no

yes

yes

yes

no

Note 1

The term basic XSLT 2.0 processor is defined in the draft XSLT 2.0 specifications: it is a conformance level that requires support for all features of the language other than those that involve schema processing. The term basic XPath 2.0 processor is used to mean the subset of XPath 2.0 that is available in a basic XSLT 2.0 processor (though it is not constrained to be used from XSLT: there is also a free-standing Java API).

Note 2

The basic XQuery 1.0 processor provides "minumal conformance" to the XQuery specification (that is, all non-optional features defined in the W3C Recommendation), plus the following optional features: Full Axis Feature, Module Feature, Serialization Feature. The Schema-Aware XQuery 1.0 processor additionally supports the optional features: Schema Import, Schema Validation.

Note 3

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.

Note 4

Saxon-SA allows XQuery queries to be compiled to Java code. The Java code can then be compiled and executed to run the query. There are few restrictions imposed, for example collations are not supported. This facility typically reduces execution times between 20% and 50%, though the effect depends on the nature of the query.

Note 5

This facility allows documents that are too large to fit in memory to be transformed using XSLT, provided that the stylesheet uses a carefully-defined subset of XSLT language constructs.

Note 6

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 7

The PTree format is a persistent representation of an XML document that typically takes about the same amount of space on disk as the original XML, but can be loaded in a fraction of the time.

Further Information

In each case Saxon has a high level of conformance to the most recent W3C specifications. Full conformance details are provided in the product documentation.

For product prices, see the online store. This also provides information about upgrades from earlier releases.

Saxonica will also accept corporate purchase orders. Prices are the same as those for online purchase, except that a handling charge of GBP 50 is added for any order whose total value is GBP 500 or less. For information about site licenses, redistribution licenses, or any other special requirements, please contact Saxonica directly.