"XOM is a read/write API that represents XML documents as trees of nodes. Where XOM diverges from these models is that it strives for absolute correctness and maximum simplicity. XOM is based on more than two years' experience with JDOM development, as well as the last year's effort writing Processing XML with Java. While documenting the various APIs I found lots of things to like and not like about all the APIs, and XOM is my effort to synthesize the best features of the existing APIs while eliminating the worst. It's closest in spirit to JDOM. I had originally intended to fork JDOM, but it rapidly became apparent that very little actual JDOM code would be left when I was done and that starting from scratch would give me a flexibility I wouldn't have by using the existing JDOM code base. There is one non-public class hidden deep in the bowels of the API that uses some JDOM code (taken from, not coincidentally, the single JDOM class I was most personally responsible for) but otherwise, XOM was written starting with a blank screen," says Elliotte Rusty Harold about this new XML API: