# External Object Models

Note that the support modules for JDOM, XOM, and DOM4J are not packaged with Saxon-HE, but they can be built from source code if required.

Saxon's JDOM interface now supports use of the `id()` and `idref()` functions.

The DOM interface now supports the `unparsed-entity-uri()` and `unparsed-entity-system-id()` functions.

The DOM interface now filters out zero-length text nodes. (It also treats nodes whose nodeValue is null as if it were a zero-length string: this was a bug fix also applied to the 9.1 branch.)

The XOM interface (`XOMObjectModel`) and the JDOM interface (`JDOMObjectModel`) both now implement the new `TreeModel` interface, which means they can be set as the desired tree model for example in a s9api `DocumentBuilder` or `XdmDestination`. In fact, they can even be set as the selected tree model in a `Controller`, in which case the selected model will be used for temporary trees constructed within a query or transformation.

Next