Le Modèle d'Objet de Document (DOM) est une interface de programmation d'applications (API : Applications Programming Interface) qui définit la structure logique, les modes de gestion et d'accès des documents XML, HTML (Hyper-Text Markup Language) et CSS (Cascading StyleSheet). permettant, donc, un accès dynamique à des documents et la mise à jour de leur contenu, de leur structure et de leur style par l'intermédiaire de programmes ou de scripts.
Les langages de programmation tels que Java, C++ ou ASP (Active Server Pages) s'appuient sur le DOM afin de traiter des documents XML. Développé par le W3C (World Wide Web Consortium), le modèle d'objet est universel, indépendant d'un quelconque langage ou plateforme. Seule l'implémentation, l'application capable d'exécuter des opérations à partir du DOM, est à la charge d'un fournisseur tel que Sun Microsystems, Microsoft, ou autre.
Les documents XML sont hiérarchisés selon une structure arborescente, avec un élément racine auquel sont reliés un ou plusieurs éléments enfants dont eux-mêmes peuvent être les parents d'autres enfants, et cela jusqu'à un niveau quelconque.
Les éléments également appelés noeuds possèdent chacun un type défini dans le DOM, ainsi l'élément racine serait le noeud Document, le commentaire, un noeud Comment ou encore l'attribut, un noeud Attribute, etc..
Un élément peut être composé d'un ou plusieurs noeuds, comme d'autres éléments, des instructions de traitement, ou encore du texte, mais aussi des attributs. Le DOM est un modèle complet représentant un document XML dans ses moindres détails, chaque élément de ce document possèdant une représentation spécifique dans le modèle d'objet.
Le modèle d'objet spécifié par le W3C indique douze types de noeuds différents.
Le modèle d'objet de document fournit tout une panoplie d'outils destinés à construire ou déconstruire un document XML. Pour cela, le DOM met à disposition des interfaces, des méthodes et des propriétés permettant de gérer l'ensemble des composants présents dans un document XML.
Le DOM spécifie diverses méthodes et propriétés permettant notamment, de créer (createNode,...), modifier (replaceChild,...), supprimer (remove,...) ou d'extraire des données (get,...) de n'importe quel élément ou contenu d'un document XML.
De même, le DOM définit les types de relation entre chaque noeud, et des directions de déplacement dans une arborescence XML. Les propriétés parentNode, childNodes, firstChild, lastChild, previousSibling et nextSibling permettent de retourner respectivement le père, les enfants, le premier enfant, le dernier enfant, le frère précédent et le frère suivant du noeud courant.
Le modèle d'objet de document offre donc au programmeur les moyens de traiter un document XML dans sa totalité. Néanmoins, s'il définit certaines règles structurelles, il ne peut se substituer aux spécifications XML régissant la syntaxe et la structure fondamentale d'un document XML.