This package contains an XML DOM which has been slightly enhanced to include knowledge about XHTML, and yet remain usable wherever an XML DOM is required. It supports use of node types which may only appear in XML documents, and are disallowed in HTML, such as text using CDATA delimiters, processing instructions, and entity references.

That is, it understands which elements may be found in the XHTML namespace, and implements the HTMLElement subtype of Element, but it does not attempt to enforce the HTML-specific name normalization rules or to implement most of the sixty specialized HTML DOM element subtypes. XHTML elements are not fundamentally coupled with XHTML documents, but (in conformance with the XML Namespaces and XHTML specifications) may be used in any document. Applications have the responsibility to enforce the appropriate structural rules, as for example by creating only documents which validate using the "transitional" XHTML DTD.