This page attempts to survey the landscape of available XML object models and compare and contrast their features. The information in this table is correct to the best of our knowledge and we will try and keep this information as up to date as possible. If you think there's anything wrong, please let us know here.
|Feature||WC3 DOM||DOM4J 1.5||JDOM 1.0||XOM 1.O|
|Based on Java Interfaces||Yes||Yes||No||No|
|Supports Java 2 Collections||No||Yes||Yes||No|
|Can use any SAX parser and XMLFilter||Yes (usually)||Yes||Yes||Yes|
|Convert to and from DOM trees||Yes||Yes||Yes||Yes|
|Implements DOM interfaces||Yes||Yes (optional)||No||No|
|Integrated XPath API support||No||Yes||No||No|
|Bundled XPath implementation||No||Yes||Optional||No|
|Support for JAXP/TrAX for XSLT integration||Yes||Yes||Yes||Yes|
|Capable of processing a continuous XML streams||Don't know||Yes||No||Yes|
|Capable of processing massive documents||Don't know||Yes||No||Yes|
|XML Schema Data Type support||No||Yes||No||Don't know|
|XInclude support||Don't know||No||No||Yes|
|Canonical XML support||Don't know||No||No||Yes|
Dennis Sosnoski has published an interesting article on IBM's developerWorks which compares the performance of a variety of XML document models for the Java platform including dom4j. You can find the very interesting results here.
Also you might find these new Performance Benchmarks interesting comparing dom4j and Jaxen against Xerces and Xalan.