Ohjelmointirajapinnat


Document Object Model Level 1 (DOM1)

W3C Recommendation - lokakuu 1998

DOM1-määrittely esittelee alustasta ja ohjelmointikielestä riippumattoman, puumaisen (olio)rajapinnan XML- ja HTML- dokumenttien käsittelyyn. Näiden rajapintojen avulla ohjelmat voivat lukea ja muokata dokumenttien sisältöä ja rakennetta sekä liikkua dokumentin rakenteissa. Määrittely koostuu kahdesta päämoduulista:

DOM sopii käytettäväksi silloin kun dokumenttia ei voida käsitellä suoraviivaisesti solmujen esiintymisjärjestyksessä, vaan rakenteessa voidaan liikkua edestakaisin hyvinkin laajalla alueella. Esimerkiksi editorit ovat sovelluksia, joissa tällainen käsittelytapa on tarpeellinen. DOM-rakenteet ovat usein raskaita ja saattavat - dokumentin koosta riippuen - kuluttaa suuriakin määriä muistia. Mikäli nämä rajoitukset häiritsevät, kannattaa selvittää riittäisikö kevyempi SAX -rajapinta DOM:n sijasta.

DOM1-määrittelyn rajapinnat on kuvattu IDL-kielellä, ja ne on sen jälkeen sovitettu ECMA Script ja Java -kielille. W3C:n ulkopuoliset tahot ovat sovittaneet DOM1- rajapintoja myös muille kielille, kuten C++:lle ja Pythonille.

DOM ei määrittele miten rajapinnat pitäisi toteuttaa tai millainen merkitys (semantiikka) dokumentin rakenteilla on - se ainoastaan tarjoaa keinot käsitellä tätä rakennetta ja sisältöä. DOM:n ensimmäinen taso ei myöskään määrittele esimerkiksi keinoja rakennemäärittelyn käsittelyyn. Rakennemäärittelyihin liittyvät rajapinnat määritellään toivottavasti tulevassa DOM:n kolmannen tason määrittelyssä.

Kenelle tarkoitettu: Ohjelmoijille, jotka rakentavat omaa sovellustaan jonkin XML-sovelluksen päälle.

Määrittely:Document Object Model (DOM) Level 1 Specification

Muita läheisiä määrittelyjä:DOM2 , SAX


Document Object Model Level 2 (DOM2)

W3C Recommendation - marraskuu 2000 ja W3C Working Draft - marraskuu 2000

DOM2 rakentuu DOM1 :n päälle ja laajentaa ensimmäisen tason rajapintoja XML-dokumenttien rakenteiden peruskäsittelyn ulkopuolelle (tarkempi selitys DOM:sta ja sen perusperiaatteista löytyy DOM1:n kuvauksesta). DOM2 on paljon laajempi määrittely kuin DOM1 ja tarjoaa paljon enemmän toimintamahdollisuuksia, jotka ovat tarpeen korkeamman tason sovelluksia - kuten esimerkiksi XML-editoreja - tehtäessä. Määrittelyn koostuu kuudesta osiosta:

DOM2 ei vaadi, että DOM2-yhteensopivan sovelluksen on toteutettava kaikki kuvatut rajapinnat. Ainoastaan Core-osion perusrajapinnat on toteuttava - kaikki loput osiot ovat vapaaehtoisia. DOM2 tarjoaa myös rajapinnan sovelluksien toteuttamien ominaisuuksien selvittämiseen.

Kenelle tarkoitettu: Ohjelmoijille, jotka rakentavat omaa sovellustaan jonkin XML-sovelluksen päälle.

Määrittelyt:

Muita läheisiä määrittelyjä:DOM1 , SAX


SAX 2.0: The Simple API for XML (SAX)

Julkaistu toukokuussa 2000

SAX on tapahtumapohjainen rajapinta XML-dokumenttien käsittelyyn. Oikeastaan SAX:sta on olemassa kaksi versiota: SAX1 ja SAX2. Vanhempana versiona SAX1 on huomattavasti paremmin tuettu (itse asiassa se on osoittautunut hyvin suosituksi rajapinnaksi) kuin SAX2, mutta olettaisin sovellusten varsin nopeasti päivittävän rajapintansa SAX2:ksi. SAX2 rakentuu SAX1:n päälle ja lisää siihen mm. tuen nimiavaruuksille sekä rajapinnan ominaisuuksien tunnistamiseen. SAX2 on myös laajennettava, joten siihen on (juuri ominaisuuksien tunnistamisen ansiosta) mahdollista lisätä omia rajapintoja rikkomatta alkuperäistä määrittelyä.

SAX sopii erityisesti tietovirtojen käsittelyyn ja omien datamallien luomiseen. SAX on huomattavasti kevyempi ja tehokkaampi rajapinta kuin DOM , mutta toisaalta myös rajoittuneempi. Valinta SAX:n ja DOM:n välillä riippuu lähinnä sovelluksen käyttötarkoituksesta - kummassakin on omat hyvät puolensa, joten kumpaankin on hyvä tutustua ainakin pintapuolisesti.

SAX-rajapinta on alunperin määritelty vain Javalle, mutta siitä on saatavana ainakin Perl- ja Python-määrittelyt. Toistensa kanssa epäyhteensopivia C++-määrittelyjä löytyy useita.

Kenelle tarkoitettu: Ohjelmoijille, jotka rakentavat omaa sovellustaan jonkin toisen sovelluksen päälle.

Määrittely:SAX: The Simple API for XML, version 2 - samalta sivulta löytää linkin myös SAX1-määrittelyyn.

Muita läheisiä määrittelyjä:DOM1 , DOM2


Muita rajapintoja


Sivua on edellisen kerran päivitetty: 23.01.2001
Kommentteja voi lähettää Henri Ruinille osoitteeseen ruini@cs.helsinki.fi