Third party source components

These tables list components in Category B as described above: open source code that has been integrated at source level, without the involvement of the original author.

Unlike contributed code, this code was not written specifically for inclusion in Saxon, but was originally published under some other license.

B2 XPath parser

Origin

James Clark (www.jclark.com)

Description

Top-down parser and lexical tokenizer for XPath

Approximate LOC

1000 (including data sets)

Saxon packages / modules

net.sf.saxon.expr.*, modules XPathParser, Tokenizer, Token. Used in both the Java and C# products.

Modifications

Almost entirely rewritten over the years, with enhancements to handle XPath 2.0/3.0/3.1 and XQuery 1.0/3.0/3.1 syntax, improved error reporting, etc.

Availability of source

Derives from James Clark's xt product, which in its original form is at http://www.jclark.com/xml/xt-old.html. Package com.jclark.xsl.expr, modules ExprParser and ExprTokenizer

Source version used

Unknown. Snapshot taken in 1999.

License

James Clark (see below). Apparently copyright has since been transferred to the Thai Open Source Center Ltd.

B3 Apache Jakarta Regexp engine

Saxon includes a regular expression engine derived from the Apache Jakarta Regexp project, which was originally developed by Jonathan Locke. It has been extensively modified to make the syntax and semantics conform to the W3C specifications, to fully support Unicode, to improve performance, and to integrate with Saxon.

Origin

Apache (author Jonathan Locke)

Description

Regular Expression engine

Approximate LOC

2600

Saxon packages / modules

Package net.sf.saxon.regex, classes RECompiler, REProgram, REMatcher. Used in both the Java and C# products.

Modifications

Substantial modifications to implement the XSD and XPath regular expression syntax and semantics, to add Unicode support, to improve performance, and to integrate with the rest of the Saxon code.

Availability of source

http://jakarta.apache.org/regexp/

Source version used

Version 1.5

License

Apache License, version 2.0

B4 Immutable hash trie

Saxon implements XPath maps using an immutable hash trie map. The implementation is derived from code published on GitHub by Michael Froh. The published GitHub code carries no licensing conditions, but the author has given permission for Saxonica to release the code under the Mozilla Public License 2.0.

Origin

Github Gist (author Michael Froh, msfroh)

Description

Implementation of immutable hash trie maps

Approximate LOC

500

Saxon packages / modules

Package com.saxonica.functions.trie, classes ImmutableMap and ImmutableHashTrieMap. Used in the Java product only (SaxonCS uses the class ImmutableDictionary from the Nuget package System.Collections.Immutable).

Modifications

Minor modifications to integrate with Saxon code, especially by removing dependencies on some utility classes also published by the author.

Availability of source

https://gist.github.com/msfroh

Source version used

Version dated 2012-06-02

License

Mozilla Public License, version 2.0