Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Tools for working with EAD XML files.

Project Description

26th September 2013 (2013-09-26)


The EAD Toolbox provides a number of tools for working with Encoded Archival Description (EAD) XML documents.

Current capabilities include validation to the DTD, cross-walk to other metadata schemas, and extraction and display of subjects and named entities.

It also includes a web-based user interface for validating, cross-walking and extracting data from your own EAD files, provided via a Python WSGI compliant web application


John Harrison <> at the University of Liverpool

Latest Version

Latest version is available from PyPI:

Source code is under version control and available from:


All executable commands are self documenting, i.e. you can get help on how to use them with the -h or --help option. e.g.

ead-validate --help

At this time the only additional documentation that exists can be found in this README file!

Requirements / Dependencies



pip install eadtoolbox


I recommend that you use virtualenv to isolate your development environment from system Python and any packages that may be installed there.

  1. In GitHub, fork the repository

  2. Clone your fork:

    git clone<username>/ead-toolbox.git
  3. Install dependencies:

    pip install -r requirements.txt
  4. Install in develop / editable mode:

    pip install -e .



EAD Validation

To validate using the EAD 2002 DTD:

ead-validate FILE [FILE [...]]

The EAD Toolbox currently only supports validation using the EAD 2002 DTD. I hope to add validation using the XSD schema in the near future.

Web-based GUI

The features availble though the commnad-line can also be accessed, and made available to other users over a local network or the web, through the EAD Sandbox application. Run the application using the following command:

ead-sandbox [--hostname=HOSTNAME] [--port=PORT]

This will start a quick demonstration WSGI server (not recommended for production use) to serve the application, and also open the application in a new browser window/tab if possible. If you don’t want the browser window/tab, you can launch the application with the --no-browser option:

ead-sandbox --no-browser [--hostname=HOSTNAME] [--port=PORT]

Python API

EAD Validation

from lxml import etree
from eadtoolbox.validate import EAD2002DTDValidator
ead = etree.parse(open('eadfile.xml', 'r'))
validator = EAD2002DTDValidator()
if validator.validate(ead):
    print "VALID"
    print "INVALID"
    for e in validator.errors:
        print str(e)

Bugs, Feature requests etc.

Bug reports and feature requests can be submitted to the GitHub issue tracker:

If you’d like to contribute code, patches etc. please email the author, or submit a pull request on GitHub.

Release History

This version
History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(41.6 kB) Copy SHA256 Hash SHA256
Source None Sep 26, 2013

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers DreamHost DreamHost Log Hosting