Le Modèle d’objet de document (DOM) est une spécification d’une interface pour accéder aux documents HTML ou XML. Il est défini par le World Wide Web Consortium.
Une implémentation qui répond à cette spécification consiste en un ensemble de classes ainsi que leurs méthodes et attributs en termes de programmation orientée objet. Il permet aux programmes informatiques de modifier dynamiquement le contenu, la structure et la disposition d’un document.
Désignation
Le terme « Modèle d’objet de document » est en fait un mauvais nom, puisque DOM n’est pas défini comme un modèle, mais comme une interface pour l’accès défini aux données et est également désigné par le W3C. Le libellé de la désignation, en revanche, met l’accent sur le modèle d’objet bien défini sur lequel repose l’interface, dont la validité est une condition préalable à la validité de l’interface construite sur celle-ci. À un niveau plus élevé d’abstraction, une interface est aussi un modèle, à savoir pour la façon dont les objets ou les données sont accessibles.
Historique
Le DOM a été créé à l’origine sous l’impression d’au moins deux développements qui ont façonné de façon significative le monde informatique dans le passé récent. Tous deux reposent sur la nécessité de pouvoir accéder aux données structurées dans les documents HTML et XML de manière simple et uniforme.
Au milieu des années 1990, alors que le World Wide Web est devenu de plus en plus populaire, le langage de script JavaScript a été inventé, et les navigateurs Web populaires depuis ont inclus des interprètes qui exécutent de tels scripts. JavaScript définit des moyens rudimentaires pour accéder au document HTML et gérer les événements. Plus tard, différents fabricants de navigateurs ont inventé différents modèles dynamiques HTML (DMHTML) qui ont permis un changement plus complet dans la structure et l’apparence du document pendant que le document est affiché dans le navigateur. Les premières normes DOM du W3C sont donc des tentatives de fusion, standardisation et finalement remplacer les différentes techniques propriétaires JavaScript et DHTML qui ont émergé pendant les guerres de navigateur. Cela a réussi, de sorte que DOM joue aujourd’hui un rôle central dans la programmation JavaScript.
Parallèlement, le XML est apparu comme un format d’échange général pour la représentation lisible par l’homme des données structurées, après le succès du HTML. Le traitement des documents XML nécessite une interface de programmation compréhensible, puissante et multilingue. Le DOM offre ceci et définit également des interfaces supplémentaires pour un traitement confortable des documents XML.
Bases du DOM basées sur un exemple
Le code HTML suivant définit un tableau avec l’élément de tableau et divers sous-éléments:
<table>
<thead>
<tr>
<th>Prénom</th>
<th>Nom</th>
</tr>
</tête>
<tbody>
<tr>
<td>Donald</td>
<td>Duck</td>
</tr>
</corps>
</table>
Traitement d’un document
Dans la première étape, un document existant est lu par le programme et un objet document est généré. Sur la base de cet objet, le contenu, la structure et la présentation sont accessibles en utilisant les méthodes de l’API.
En particulier, DOM permet
la navigation entre les noeuds individuels d’un document,
générer, déplacer et effacer des nœuds;
lire, modifier et supprimer le texte.
À la fin du traitement, un nouveau document XML ou HTML peut être généré à partir de l’objet document par ce qu’on appelle la sérialisation.
Normalisation des DOM
Le DOM est une norme du W3C depuis 1998 et a été mis à jour et élargi plusieurs fois depuis. Il existe plusieurs versions (niveaux) chacune avec différents modules:
Niveau DOM 0
Ce niveau n’a jamais été formellement spécifié. Le niveau 0 fait référence aux techniques JavaScript pour accéder aux documents HTML. Ceux-ci ont été introduits par les navigateurs Web tels que Internet Explorer et Netscape Navigator avant la normalisation des DOM.
Niveau 1
DOM Core définit le déplacement dans l’arborescence DOM, manipulant les nœuds, y compris l’insertion de nouveaux éléments et de paramètres.
DOM HTML est l’extension pour accéder aux documents HTML. Il standardise et complète la pratique déjà courante basée sur les spécifications JavaScript de Netscape et Microsoft JScript.
DOM Niveau 2
DOM Core : comprend l’extension de la prise en charge de l’espace de noms XML
DOM HTML: Extension aux documents XHTML, adaptation à DOM 2 Core
DOM Style et DOM CSS permettent la lecture dynamique, l’ajout et la modification du formatage ou de la mise en page du document via des feuilles de style, en particulier les feuilles de style Cascading (CSS).
DOM Views permet d’accéder à des informations provenant de types spécifiques de reproduction du document (par exemple, la représentation graphique dans le navigateur Web). Ceci est principalement utilisé avec DOM CSS pour découvrir les valeurs de propriété CSS réelles de certains éléments (par exemple, « Quelle couleur d’arrière-plan est cette rubrique ? »).
DOM Events standardise le traitement des événements dans le document, comme les actions des utilisateurs. Utilisé principalement en lien avec JavaScript lors de l’affichage des documents HTML dans les navigateurs Web. Basé sur les modèles de la gestion des événements du Netscape Navigator et Internet Explorer pour les documents HTML.
DOM Traversal et DOM Gamme: Exécuter à travers l’arbre des nœuds en utilisant certains critères de sélection, travailler avec les zones du document qui incluent certains éléments et nœuds de texte
Niveau 3
DOM 3 Core: Amélioration complète, y compris amélioration de la manipulation des exceptions et de la manipulation des codes de caractères
DOM 3 Charger et enregistrer permet la sérialisation de documents ou de parties de documents, ainsi que l’analyse de documents XML dans des chaînes de caractères en objets de documents. En outre, les documents XML peuvent être envoyés et récupérés via HTTP, comme c’est possible avec la technologie XMLHttpRequest plus familière.
DOM 3 XPath permet la sélection des nœuds en fonction des expressions XPath.
DOM 3 Événements élargit DOM 2 événements, y compris des événements clavier.
La validation DOM 3 vous permet de vérifier si le document DOM reste valide après un changement dynamique (ajout ou suppression de nœuds).
DOM 3 Vues et Formatage vous permet d’accéder et de modifier dynamiquement le contenu, la structure et le style.
DOM 3 Schémas abstraits
