DOM (Document Object Model) è una API (Application Program Interface) definita dal W3C in due versioni successive: Level 1 e Level 2. Lo scopo è quello di definire un metodo univoco (soprattutto per gli script) per accedere a documenti in linguaggio di mark-up; il metodo consiste nel trasformare i tag innestati in altrettanti oggetti.
Ecco lo schema completo a 4 livelli della gerarchia DOM (fissato già nel Level 1):
Tipo del nodo
Node (Root)
DocumentFragment 11
Document 9
Attr 2
Element 1
DocumentType 10
Notation 12
Entity 6
EntityReference 5
ProcessingInstruction 7
CharacterData
Comment 8
Text 3
CDATA section 4
In realtà la gerarchia, coerentemente col fatto che DOM è una API, è composta di interfacce, non di classi. Volendo si potrebbe dichiarare proprie classi, con attributi e metodi comprendenti anche quelli delle interfacce DOM.
Esistono due modi di utilizzare la gerarchia: un primo approccio tende a non specificare ulteriormente il livello Node, trattando ogni parte del documento con la sola interfaccia di livello massimo (in fondo tutto è nodo, a parte i meta - oggetti ausiliari NodeList e NodeNamedMap). L'approccio completo dichiara invece tutte le interfacce specifiche.
Nell'insieme delle interfacce vengono spesso distinte le interfacce fondamentali (utilizzabili anche per l'HTML: Document, Attr, Element, CharacterData) e quelle estese (tutte le altre, specifiche per XML).