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 DOM 3.
  2. Starting with version 1.2.8, Axiom has OMSource and OMResult classes which are implementations of JAXP's Source and Result classes. You can use these to transform an Axiom tree into DOM (using a standard implementation of DOM) and vice-versa. These two classes are based on SAXSource and SAXResult, which means that you loose the deferred parsing capabilities of Axiom, but in many cases this will be acceptable.