DOM (document object model)

Document Object Model (DOM) ist eine plattform- sowie sprachenunabhängige Schnittstellenbeschreibung für den Zugriff auf die Elemente eines HTML- oder XML-Dokuments. DOM wurde vom Word Wide Web Consortium (W3C) definiert und in drei sogenannten Leveln vorgestellt, wobei jedes dieser Level aus mehreren Modulen besteht. Es werden die Level Legacy-DOM, W3C-DOM und IE 4 DOM differenziert, die von den verschiedenen Browser in unterschiedlicher Weise unterstützt werden.


Mit Hilfe von DOM ist die Abbildung eines Dokuments auf ein Objektmodell möglich, so dass dann die weitere Bearbeitung auf Basis der logischen Struktur - unabhängig von eckigen Klammern und Zeichenreferenzen - erfolgen kann.

Eine ähnlich abstrakte Schnittstelle wie Document Object Model (DOM) ist Simple API for XML (SAX), mit welcher ebenso auf XML-Dokumente zugegriffen werden kann. Auch die Kombination der beiden Technologien ist durchaus möglich - mit SAX kann ein Dokument beispielsweise zunächst aufbereitet werden, um es dann anschließend mit dem DOM-Modell weiterverarbeiten zu können.

Einheitliche Schnittstellen für Webdokumente

Ausgangspunkt für die Entwicklung von DOM durch das W3C war die Absicht, einheitliche Schnittstellen - auch Application Programming Interface (API) - für den Zugriff auf Webdokumente wie die Extensible Markup Language (XML) oder die Hypertext Markup Language (HTML) zu realisieren. Ursächlich waren dafür die in der Vergangenheit ausufernden individuellen Bestrebungen einiger Browser-Hersteller, die zu Inkompatibilitäten führten. Bis heute existieren drei Versionen von DOM, die vom W3C als Level bezeichnet werden und jeweils mehrere Module beinhalten:

Level 1 Definiert den Kern von DOM und unterstützt XML 1.0 und HTML 4.0.

Level 2 U.a. Standardisierung der event-Schnittstelle, Erweiterung um XML-Namensräume, Möglichkeiten zum dynamischen Update von CSS-Stylesheets.

Level 3 U.a. Überarbeitung der Behandlung von Ausnahmen, Laden und Speichern von XML-Dokumenten, Unterstützung von XPath.

Das Ergebnis dieser Level ist schließlich eine Anzahl von Schnittstellen, die mit Hilfe der von der Object Management Group (OMG) entwickelten Interface Definition Language (IDL) definiert wurden, deren Vorteil es ist, vollkommen sprachunabhängig zu sein. Im Hinblick auf eine einfache Integration in eine spezifische Umgebung wurden von der OMG zusätzliche Sprachabbildungen beispielsweise für Java und ECMAScript zur Verfügung gestellt. Sogenannte Bindungen regeln darüber hinaus für andere Sprachen, wie die DOM-Schnittstellen integriert und in einer spezifischen Entwicklungsumgebung implementiert werden.

Die unterschiedlichen Hersteller von Browsern wie der Netscape Navigator, Mozilla Firefox oder Opera unterstützen das DOM in verschiedenen Ausprägungen oder ergänzen das DOM wie der Internet Explorer beispielsweise um Elemente zur Modifizierung des Inhaltes von Dokumenten.

Schnittstellen als Informationseinheiten

Die Schnittstellen des DOM bilden die Informationseinheiten eines HTML- oder XML-Dokuments als einen hierarchischen Baum von Objekten ab, die auch als Knoten bezeichnet werden. Der Baum wird im Speicher zur Verfügung gestellt, um so die schnelle, direkte Abfrage und Manipulation dieser Knoten zu realisieren. Für diese durch das DOM geordnete Menge von Objekten wird jeweils eine abstrakte Oberklasse mit einer bestimmten Anzahl von Attributen und Methoden bereitgestellt. DOM stellt ausgehend von einem speziellen node-Objekt verschiedene weitere Objekte zur Verfügung, wie u.a.

  • Document: repräsentiert das gesamte Doku-ment,
  • NodeList: Repräsentiert eine Liste von Knoten,
  • Element: Repräsentiert einen Element Knoten,
  • Attr: Repräsentiert einen Attributen-Knoten und
  • Tex:, Repräsentiert einen Text-Knoten.
Die Node-Schnittstelle repräsentiert einen einzelnen Knoten in einem Baum. Generell implementieren alle Objekte diese Schnittstellen, für die ein allgemeiner Satz von Attributen, Konstanten und Methoden festgelegt ist, die die Behandlung eines Knotens unterstützen. Damit können unabhängig von einem bestimmten Knotentyp einheitlich Operationen auf den DOM-Baum angewendet werden.

Klassische Anwendungen für das DOM zur Behandlung von XML- und HTML-Dokumenten sind:

  • Einlesen eines Dokuments für Lese- und Schreib-Operationen oder die Suche nach bestimmten Inhalten,
  • Strukturierung und Sortierung,
  • Erzeugung von DOM-Bäume durch eine Applikation und Transformation in ein XML-Dokument,
  • Trennung von Referenzen zwischen einzelnen XML-Elementen,
  • Bildung von modifizierten DOM-Bäumen,
  • Ereignisbehandelnde Software-Komponenten können mit den Event-Mechanismen der DOM-Bäume verbunden werden.
http://www.w3.org/DOM

Informationen zum Artikel
Deutsch:
Englisch: document object model - DOM
Veröffentlicht: 28.10.2013
Wörter: 656
Tags: #Web-Software
Links: Abfrage, Apps, Ausnahme, Auszeichnungssprache, Datenwort