Document Object Model (DOM), una specifica dell'interfaccia di programmazione sviluppata dal World Wide Web Consortium (W3C), consente a un programmatore di creare e modificare pagine HTML e documenti XML come oggetti di programma a tutti gli effetti. Attualmente, HTML (Hypertext Markup Language) e XML (Extensible Markup Language) sono modi per esprimere un documento in termini di struttura dati. In quanto oggetti di programma, tali documenti potranno avere i loro contenuti e dati "nascosti" all'interno dell'oggetto, contribuendo a garantire il controllo su chi può manipolare il documento. Come oggetti, i documenti possono portare con sé le procedure orientate agli oggetti chiamate metodi. DOM è uno sforzo strategico e aperto per specificare come fornire il controllo della programmazione sui documenti. È stato ispirato in parte dall'avvento delle nuove funzionalità HTML generalmente chiamate HTML dinamico e come un modo per incoraggiare un comportamento coerente del browser con le pagine Web ei loro elementi.
Il Document Object Model offre due livelli di implementazione dell'interfaccia: DOM Core, che supporta XML ed è la base per il livello successivo, e DOM HTML, che estende il modello ai documenti HTML. Ecco alcuni punti salienti:
- Qualsiasi elemento HTML o XML (con la possibilità di poche eccezioni) sarà individualmente indirizzabile tramite programmazione.
- La specifica sarà indipendente dalla lingua. La specifica, quando disponibile, verrà descritta utilizzando l'IDL (Interface Definition Language) dello standard aperto di settore CORBA.
- Inoltre, l'interfaccia sarà descritta in termini di linguaggio di programmazione Java e ECMAScript, un linguaggio di script standard del settore basato su JavaScript e JScript.
- DOM non deve essere confuso con COM (Component Object Model) o DCOM (Distributed Component Object Model) di Microsoft. COM e CORBA sono modi indipendenti dalla lingua per specificare oggetti e potrebbero essere usati per creare oggetti DOM (documenti) proprio come potrebbero fare linguaggi specifici come Java.
Lo stato di avanzamento della specifica del Document Object Model può essere seguito sul sito Web W3C.