I'm using Axiom, but I need to integrate with a library using DOM. What can I do?

There are currently two solutions:

  1. Axiom separates API and implementation. The default implementation is called LLOM (Linked List Object Model) and provided by the axiom-impl artifact. There is also a second implementation called DOOM (DOM over OM) that implements both the Axiom API and DOM. It is provided by the axiom-dom artifact. You can use this implementation to integrate with DOM based code. Note however that the DOM implementation provided by DOOM is not perfect. In particular it doesn't implement (all of) DOM 3.
  2. The Axiom API now has getSAXSource and getSAXResult methods that (as their names imply) return instances of JAXP's SAXSource and SAXResult classes. You can use these to transform an Axiom tree into DOM (using a standard implementation of DOM) and vice-versa. Note that since they use the SAX API, you will loose the deferred parsing capabilities of Axiom, but in many cases this will be acceptable.