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.

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

B5 Apache Commons Blake3 hashing

Saxon's implementation of BLAKE3, used to support the XPath 4.0 fn:hash function, is derived from the implementation in Apache Commons.

Origin

Apache. Adapted from the ISC-licensed O(1) Cryptography library by Matt Sicker and ported from the reference public domain implementation by Jack O'Connor.

Description

BLAKE3 hashing algorithm

Approximate LOC

560

Saxon packages / modules

Package com.saxonica.functions.qt4, class Blake3. Used in both the Java and C# products.

Modifications

Very minor modifications to enable transpilation of the source code to C#.

Availability of source

https://commons.apache.org/proper/commons-codec/jacoco/org.apache.commons.codec.digest/Blake3.java.html

Source version used

Snapshot taken on 2024-10-25

License

Apache License, version 2.0

B6 JSON numeric canonicalization

Formatting of floating point numbers into the format mandated by the JSON canonicalization spec.

Origin

Cloned from https://github.com/erdtman/java-json-canonicalization. The package has full support for JSON Canonicalization (RFC8785). The only part Saxon uses is the double-to-string conversion, but this is the majority of the code.

Copyright 2006-2018 WebPKI.org (http://webpki.org). Apache License.

Description

JSON Canonical number representation

Approximate LOC

2100

Saxon packages / modules

Package net.sf.saxon.serialize.jcs. Included in both the Java and C# products; however, the C# version is inactive.

Modifications

Very minor modifications to enable transpilation of the source code to C#. Changes listed in the net.sf.saxon.serialize.jcs package-info.java file.

Availability of source

https://github.com/erdtman/java-json-canonicalization

Source version used

Snapshot taken on 2025-12-12

License

Apache License, version 2.0