Java MARC Events - James

James is a free Java package that provides an event model for MARC records through Java callbacks. James is inspired by the Simple API for XML (SAX). Using James you can write programs that involve MARC records without knowing the details of the MARC record structure.

James provides a sequential model to access a collection of MARC records in tape format. The goal of James is to provide a generic application interface to records that conform to the ISO-2709 exchange format. The MARCHandler interface provides methods to get information about the record label (record position 00-23), control fields (001-009) and data fields (010-999), including indicator values, tag names, subfield codes and data. The character encoding of the original records is preserved. Field data is returned in character arrays. The optional ErrorHandler interface provides methods to handle error messages. The current release of James does not support character conversions.

Included with James are two sample programs. The com.bpeters.samples.TaggedPrinter program converts MARC records to a tagged display format and the com.bpeters.samples.XMLPrinter program builds a JDOM document out of MARC records and writes the JDOM document as XML to a file.

The current version of James is beta 1. The release contains binary and source distributions. James is published under the terms of the GNU General Public License as published by the Free Software Foundation. Downloads and additional information can be found at http://www.bpeters.com