XOM -like dom4j and JDOM- is a Java-only XML object model, whereas DOM was designed to be used with various languages. That makes DOM less of a natural fit for
Java, and more awkward to use than it should be in some circumstances, because it doesn't use Java-specific language features that are not available in other languages. It's more of a personal preference which one to use.