<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" "http://openweb.eu.org/dtd/docbkx42/docbookx.dtd">
<article lang="fr" role="intro" id="dom">
  <articleinfo>
    <title>Le Document Object Model</title>
    <titleabbrev>DOM</titleabbrev>
    <pubdate>2003-03-21</pubdate>
    <date>2003-03-21</date>
    <author>
      <firstname>Tristan</firstname>
      <surname>Nitot</surname>
      <email>tristan.nitot@openweb.eu.org</email>
    </author>
    <legalnotice>
      <para>Cet article est sous licence <ulink url="http://creativecommons.org/licenses/by-sa/1.0/legalcode">Creative Commons Attribution-ShareAlike</ulink>.</para>
    </legalnotice>
    <subjectset>
      <subject role="technologie">
        <subjectterm>dom</subjectterm>
      </subject>
    </subjectset>
  </articleinfo>
  <section id="definition">
    <title>Une définition</title>
    <para>Le <acronym>DOM</acronym> est l'interface programmatique (<acronym>API</acronym>) qui permet au développeur web d'accéder et de manipuler le contenu d'une page web, aussi appelée document. Il fournit une représentation structurée et orientée objet des éléments et du contenu d'une page avec les méthodes permettant de modifier les propriétés de ces objets. Il fournit aussi des méthodes permettant l'ajout et la suppression de tels objets, permettant ainsi au développeur web de créer du contenu dynamique en modifiant le contenu, la structure et le style du document.</para>
    <para>Le <acronym>DOM</acronym> fournit aussi une interface de gestion des événements, pour capturer les actions du navigateur et de son utilisateur, et d'y réagir.</para>
  </section>
  <section id="javascript">
    <title>
      <acronym>DOM</acronym> et JavaScript/ECMAScript</title>
    <para>Le <acronym>DOM</acronym> étant une <acronym>API</acronym>, il est utilisé depuis un langage de programmation qui s'exécute dans le navigateur. Il s'agit le plus souvent de JavaScript ou de <ulink url="/articles/introduction_ecmascript/">son équivalent standardisé <acronym>ECMAScript</acronym></ulink>, mais le <acronym>DOM</acronym> a été conçu pour être indépendant de tout langage.</para>
  </section>
  <section id="versions">
    <title>Les différentes versions</title>
    <para>Il existe plusieurs versions du <acronym>DOM</acronym>. Toutes sont standardisées par le <acronym>W3C</acronym>&#160;:</para>
    <orderedlist>
    <listitem>
        <para>le <ulink url="http://www.w3.org/TR/REC-DOM-Level-1/"><acronym>DOM</acronym>Level 1</ulink> (Core + <acronym>HTML</acronym>) est daté du 1er octobre 1998&#160;;</para>
      </listitem>
      <listitem>
        <para>le <acronym>DOM</acronym> Level 2, plus complexe, est divisé en plusieurs parties&#160;:<ulink url="http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/">Core</ulink>, <ulink url="http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/">Events</ulink>, <ulink url="http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/">Style</ulink>, <ulink url="http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113/">Views</ulink> et <ulink url="http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/">Traversal and range</ulink>, finalisées simultanément le 13 novembre 2000. La spécification <ulink url="http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109/"><acronym>DOM</acronym> Level 2 <acronym>HTML</acronym></ulink> a été finalisée en janvier 2003&#160;;</para>
      </listitem>
      <listitem>
        <para>le <acronym>DOM</acronym> level 3 est en cours de conception par le <acronym>W3C</acronym>.</para>
      </listitem>
    </orderedlist>
    <para>Il existe aussi ce que l'on appelle abusivement le <acronym>DOM</acronym> Level 0, qui est un ensemble d'<acronym>API</acronym> qui existaient déjà dans les navigateurs avant même que le <acronym>W3C</acronym> n'ait standardisé <acronym>DOM</acronym> Level 1. <acronym>DOM</acronym> Level 0 n'est donc pas un standard.</para>
  </section>
</article>
