Related link: http://www.cafeconleche.org/#news2004June10
Elliotte Rusty Harold has announced the first alpha release of XOM, a tree-based API for processing XML with Java. He has described it as “closest in spirit to JDOM” and representing an “effort to synthesize the best features of the existing APIs while eliminating the worst”.
He writes: “the API is now considered to be complete and frozen. Code you write to XOM today should not require recompilation against any future 1.x release”. The changes in the release include bug fixes and performance improvements, the addition of support for the XInclude second candidate recommendation, and “some modifications to base URI handling to more consistently provide absolute URIs”.
In a slide from a related What’s Wrong with XML APIs (and how
to fix them) presentation, Harold lists some
high-level design principles that guided him in
development of XOM:
Principle of Least Surprise
As simple as it can be and no
Use Java idioms where they fit
There’s exactly one way to do it
Start small and grow as necessary
He says that he took a “Less is more” (”easy
to learn, easy to use, fast enough, and small
enough”) approach to XOM, that, for example,
“deliberately eschews the many convenience
methods that make the JDOM API so cluttered”. He
details some of the other differences between XOM
and JDOM in another slide from the presentation and
in the first section of his XOM FAQ
(which includes a list of XOM features that have
no equivalent in JDOM).