Third Party Source Components

These tables lists components in category B as described above. (Category B is 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.

B1 Generic Sorter

Origin

CERN (author Wolfgang Hoschek)

Description

Generic sort routines based on published algorithms

Approximate LOC

500

Saxon packages / modules

net.sf.saxon.sort.GenericSorter

Modifications

Minimal modifications needed to integrate the code

Availability of source

Currently available as part of Colt project, http://dsd.lbl.gov/~hoschek/colt/, module cern.colt.GenericSorting

Source version used

Unknown. Snapshot taken in 2004?

License

CERN License: see below

B2 Unicode Normalization

Origin

Unicode Consortium (author Mark Davis)

Description

Routines for Unicode character normalization

Approximate LOC

3500 (including data sets)

Saxon packages / modules

net.sf.saxon.sort.codenorm.*

Modifications

Core functionality unchanged; rewrote the module that loads the data tables from the Unicode character database; removed dependencies on ICU; fixed a few bugs

Availability of source

Specification of algorithm at http://unicode.org/reports/tr15/, code available via http://www.unicode.org/reports/tr15/Normalizer.html

Source version used

No version number. Snapshot taken in June 2005

License

Unicode license: see below:

B3 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 ExpressionParser, Tokenizer, Token

Modifications

Almost entirely rewritten with enhancements to handle XPath 2.0/3.0 and XQuery 1.0/3.0 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.

B4 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

Modifications

substantial modifications to implement the XSD and XPath regular expression syntax and semantics, to add Unicode support, 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 EXPath ZIP module

The implementation of the EXPath ZIP module included with the Saxon distribution is closely based on the prototype implementation by Florent Georges published on the EXPath site at http://expath.org/modules/zip/.

Origin

EXPath (author Florent Georges)

Description

Extension functions providing access to ZIP archives

Approximate LOC

2000

Saxon packages / modules

net.sf.saxon.option.expath.zip

Modifications

Minor modifications: conversion to use Saxon's integrated extension function mechanism, addition of error codes

Availability of source

Original source available from EXPath.org; modified source available as part of the Saxon open-source distribution at SourceForge.

Source version used

Version 0.1. Snapshot taken in November 2012.

License

Mozilla Public License 2.0