Asiakirjan kohteen malli

Dokumenttiobject Model (DOM) on HTML- tai XML-asiakirjojen käyttöliittymän eritelmä. Sen määrittelee World Wide Web Consortium.

Tätä eritelmää vastaava toteutus koostuu useista luokista sekä niiden tavoista ja ominaisuuksista objektilähtöisen ohjelmoinnin kannalta. Sen avulla tietokoneohjelmat voivat dynaamisesti muuttaa asiakirjan sisältöä, rakennetta ja ulkoasua.

 

Nimi

Termi „Document Object Model“ on itse asiassa harhaanjohtava, koska DOM ei ole määritelty mallina, vaan käyttöliittymänä määriteltyihin tietoihin ja on myös nimetty W3C. Nimeyksen sanamuodossa sitä vastoin korostetaan hyvin määriteltyä esinemallia, johon rajapinta perustuu ja jonka voimassaolo on edellytys sille rakennetun rajapinnan voimassaololle. Korkeammalla abstraktiotasolla rajapinta on myös malli, eli miten esineitä tai tietoja käytetään.
Historia
DOM luotiin alun perin vaikutelmalla ainakin kaksi kehitystä, jotka ovat merkittävästi muokanneet tietokonemaailman viime aikoina. Molemmat perustuvat tarpeeseen päästä käsiksi jäsenneltyihin tietoihin HTML- ja XML-asiakirjoissa yksinkertaisella ja yhdenmukaisella tavalla.
1990-luvun puolivälissä, kun World Wide Web tuli yhä suositumpi, skriptikieli JavaScript keksittiin, ja suosittuja web-selaimissa on ollut tulkkeja, jotka suorittavat tällaisia skriptejä. JavaScript määritteli alkeellisia tapoja käyttää HTML-dokumenttia ja käsitellä tapahtumia. Myöhemmin eri selainvalmistajat keksivät erilaisia dynaamisia HTML (DHTML) malleja, jotka mahdollistivat laajemman muutoksen asiakirjan rakenteessa ja ulkonäössä, kun asiakirja on selaimessa. W3C:n ensimmäiset DOM-standardit ovat siis yrityksiä yhdistää, standardoida ja lopulta korvata erilaisia JavaScript- ja DHTML-tekniikoita, jotka syntyivät selainsotien aikana. Tämä on onnistunut niin, että DOM on nykyään keskeinen rooli JavaScript-ohjelmointi.

Samaan aikaan XML nousi yleiseksi vaihtoformaatiksi strukturoitujen tietojen ihmisten luettavaksi esittämiselle HTML:n menestyksen jälkeen. XML-asiakirjojen käsittelyssä tarvittiin ymmärrettävä, tehokas ja monikielinen ohjelmointirajapinta. DOM tarjoaa tämän ja määrittelee myös muita rajapintoja mukava käsitellä XML-asiakirjoja.

 

Esimerkkiin perustuva DOM:n perusteet

Seuraavassa HTML-koodissa määritellään taulukko, jossa on taulukkoelementti ja eri osaelementtejä:
<taulukko>
  <tehdas>
    <tr>
      <th>Etunimi </th>
      <th>Nimi </th>
    </tr>
  </tehdas>
  <keho>
    <tr>
      <td>Donald </td>
      <td>Ankka </td>
    </tr>
  </keho>
</taulukko>

 

Asiakirjan käsittely

Ensimmäisessä vaiheessa ohjelma lukee olemassa olevan asiakirjan ja luodaan asiakirjakohde. Tämän objektin perusteella sisältö, rakenne ja esitystapa ovat käytettävissä API:n menetelmillä.
Erityisesti DOM mahdollistaa

navigointi asiakirjan yksittäisten solmukohtien välillä,
Luodaan, siirretään ja poistetaan solmuja; ja
lue, muokkaa ja poista tekstisisältö.
Käsittelyn lopussa asiakirjasta voidaan luoda uusi XML- tai HTML-asiakirja niin kutsutulla serialisoinnilla.

 

DOM:n standardointi

DOM on ollut W3C:n standardi vuodesta 1998, ja sitä on päivitetty ja laajennettu useita kertoja sen jälkeen. On olemassa useita versioita (tasoja), joissa kussakin on eri moduulit:
DOM-taso 0
Tätä tasoa ei koskaan virallisesti määritelty. Taso 0 viittaa JavaScript-käytettäviin HTML-asiakirjojen käyttötekniikoihin. Nämä otettiin käyttöön verkkoselaimissa kuten Internet Explorer ja Netscape Navigator ennen standardointia DOM.

Taso 1
DOM Ydin määrittelee liikkuvat DOM-puussa, manipuloimalla solmuja, mukaan lukien lisäämällä uusia elementtejä ja asetuksia.
DOM HTML on laajennus HTML-dokumentteihin. Se standardoi ja täydentää jo yleistä käytäntöä perustuen JavaScript-eritelmiin Netscape ja Microsoft JScript.
Taso 2
DOM-ydin: Sisältää XML-nimiavaruustuen laajentamisen
DOM HTML: Laajennus XHTML-asiakirjoihin, sopeutuminen DOM 2 Core
DOM Tyyli ja DOM CSS mahdollistavat asiakirjan muotoilun tai ulkoasun dynaamisen lukemisen, lisäämisen ja muuttamisen tyyliarkkien avulla, erityisesti Cascading Style Sheets (CSS).
DOM Näkymät mahdollistaa pääsyn tietyntyyppisiin asiakirjan jäljennöksiin (esimerkiksi graafinen esitys selaimessa). Tätä käytetään pääasiassa yhdessä DOM CSS:n kanssa tiettyjen elementtien todellisen CSS-ominaisuuden selvittämiseksi (esim.
DOM Events standardisoi asiakirjan tapahtumien käsittelyä, kuten käyttäjän toimia. Käytetään ensisijaisesti JavaScriptin yhteydessä, kun HTML-dokumentteja näytetään selaimissa. Perustuu Netscape Navigatorin ja HTML-dokumenttien Internet Explorerin tapahtumien käsittelyn malleihin.
DOM Traversal ja DOM Range: Aja solmun läpi käyttäen tiettyjä valintaperusteita, työskennellä alueilla asiakirjassa, jotka sisältävät tiettyjä elementtejä ja teksti solmuja
DOM-taso 3
DOM 3 Ydin: Kattava parannus, mukaan lukien parempi poikkeuskäsittely ja luonnekoodien käsittely
DOM 3 Lataa ja Tallenna mahdollistaa asiakirjojen tai asiakirjojen osien serialisoinnin sekä XML-dokumenttien jäsentämisen jonoihin asiakirjakohteiksi. Lisäksi XML-asiakirjat voidaan lähettää ja hakea HTTP:n kautta, kuten on mahdollista tutummalla XMLHttpRequest -tekniikalla.
DOM 3 XPath mahdollistaa solmukohdan valinnan XPath-ilmaisujen perusteella.
DOM 3 Tapahtumat laajentaa DOM 2 tapahtumia, mukaan lukien näppäimistö tapahtumia.
DOM 3 Validation avulla voit tarkistaa, onko DOM-asiakirja edelleen voimassa dynaamisen muutoksen jälkeen (lisää tai poista solmuja).
DOM 3 Näkymät ja muotoilun avulla voit dynaamisesti käyttää ja muuttaa sisältöä, rakennetta ja tyyliä.
DOM 3 Abstraktit järjestelmät