Fast, Interpreted XML Parsing


I'm in a presentation on a paper called A High-Performance Interpretive Approach to Schema-Directed Parsing (here's the PDF for the paper). Last year these authors presented a fast, validating XML parser (called Screamer) that outperforms Xerces (validating) and Expat (non-validating) by considerable amounts.

The problem was that it compiled a custom parser for each XML schema. The fact that it required compiling code made it undeployable with products like DB2 (they work for IBM). This paper presents an interpreted version of Screamer, called iScreamer that is still fast, but doesn't require using a compiler. Instead it produces a parse plan (think bytecode) that a single interpreter can use to efficiently parse XML for a given schema.

The performance numbers show that iScreamer is about 20% slower than Screamer overall, but is still faster (40-50%) than Expat and it's validating. It's much faster than Xerces, the most popular validating parser.

I don't think you can get your hands on this parser without buying something else, but at least the techniques have been elucidated so that others can benefit from them.