The Ælfred XML Parser

version 7.0

This page describes the Saxon version of the Ælfred XML Parser.

This was distributed with releases of Saxon until Saxon version 7.1. Saxon versions from 7.2 onwards no longer include a built-in XML parser. This decision was taken because Saxon is now dependent on JDK 1.4, which includes its own XML parser, and therefore the original reason for bundling a parser with Saxon has disappeared.

Nevertheless, the Ælfred parser offered some advantages over the Crimson parser included with JDK 1.4, and it is therefore now available as a free-standing download.

This version branched some while ago from the version developed by David Brownell (see here), which is now packaged in the GNU XML library. David Brownell's version has added considerably more functionality (such as validation) and has grown correspondingly larger.

The parser implements SAX2 and JAXP 1.1 parser interfaces. It has no DOM support, and no support for validation: in fact, it is about as stripped-down as an XML parser can get.


Follow this link to download the software.

The download includes the JAR file saxon-aelfred.jar, a ZIP file containing the source code, and this documentation.

Technical Details

The SAX2 interface is available through class net.sf.saxon.aelfred.SAXDriver, which implements the interface org.xml.sax.XMLReader.

The JAXP 1.1 interface is available through class net.sf.saxon.aelfred.SAXParserFactoryImpl, which implements the interface javax.xml.parsers.SAXParserFactory.

The SAX2 and JAXP libraries are not included in the package; these must be installed separately. They are available automatically if you use JDK 1.4.

The package can be used independently of Saxon.

The JAR file includes no manifest, so placing the JAR file on your classpath will not make this the default JAXP parser. To invoke this parser via JAXP, you must explicitly set the system property javax.xml.parsers.SAXParserFactory to the value net.sf.saxon.aelfred.SAXParserFactoryImpl.

Ælfred supports the following character encodings:

ISO-8859-1, 8859_1, ISO8859_1
ISO-10646-UCS-2, UTF-16, UTF-16BE, UTF-16LE

Terms and Conditions

Ælfred was originally developed by David Megginson at Microstar (which no longer exists), and placed more or less in the public domain.

This is a modified version of the Ælfred XML parser from Microstar. I have taken a few of David Brownell's updates, repackaged it, and fixed a few bugs. All cahnges are clearly documented in the source code.

The result is distributed under the terms of Microstar's original terms and conditions, which are as follows:

AElfred, Version 1.2
Microstar's Java-Based XML Parser
Copyright (c) 1997, 1998 by Microstar Software Ltd.
Home Page:

AElfred is free for both commercial and non-commercial use and redistribution, provided that Microstar's copyright and disclaimer are retained intact. You are free to modify AElfred for your own use and to redistribute AElfred with your modifications, provided that the modifications are clearly documented.


This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of merchantability or fitness for a particular purpose. Please use it AT YOUR OWN RISK.

David Brownell added the following statement:

 * Copyright (c) 1999-2000 by David Brownell.  All Rights Reserved.
 * This program is open source software; you may use, copy, modify, and
 * redistribute it under the terms of the LICENSE with which it was
 * originally distributed.
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * LICENSE for more details.

The version included with Saxon is David Brownell's code of 26 Feb 2000, modified as follows:

Michael H. Kay
28 November 2002