XOM 1.0

Elliot Rusty Harold's XOM 1.0 is finally released.  XOM is an XML object model with some interesting features:

XOM is fairly unique in that it is a dual streaming/tree-based API. Individual nodes in the tree can be processed while the document is still being built. The enables XOM programs to operate almost as fast as the underlying parser can supply data. You don't need to wait for the document to be completely parsed before you can start working with it.

XOM is very memory efficient. If you read an entire document into memory, XOM uses as little memory as possible. More importantly, XOM allows you to filter documents as they're built so you don't have to build the parts of the tree you aren't interested in. For instance, you can skip building text nodes that only represent boundary white space, if such white space is not significant in your application. You can even process a document piece by piece and throw away each piece when you're done with it. XOM has successfully processed gigabyte sized documents without breaking a sweat.

Most importantly,

XOM strives for correctness, simplicity, and performance, in that order. XOM is very easy to learn and easy to use. It works very straight-forwardly, and has a very shallow learning curve. Assuming you're already familiar with XML, you should be able to get up and running with XOM very quickly.

Since I've implemented quite a number of XML object models myself so I am looking forward to browsing through its innards.