Sequential Processing With Context
To address the dissatisfaction with the existing SAX interface I've created an alternate interface.
Rather than having the XML parser calling client methods, the client iterates over the tokens (start element, characters etc.) that are generated by the XML parser.