Exkurs - Das Document Object Model (DOM)

XML-Dokument als Baum aus Objekten

Das Document Object Model (DOM) ist eine standardisierte Spezifikation einer Schnittstelle für den Zugriff auf XML-Dokumente.

Die Grundidee des DOM besteht darin, ein XML-Dokument in Baumform mit Hilfe geeigneter Objekte zu repräsentieren. Diese Idee soll anhand des folgenden Beispiels verdeutlicht werden:

<?xml version="1.0" encoding="iso-8859-1"?>
<Kurs>
  <Fach>Informatik</Fach>
  <Typ>Grundkurs</Typ>
  <Stufe>11</Stufe>
  <Bezeichner>11-in-1</Bezeichner>
  <Unterricht>
    <Einheit>
      <Tag>Montag</Tag>
      <Stunde>7</Stunde>
    </Einheit>
    <Einheit>
      <Tag>Mittwoch</Tag>
      <Stunde>3</Stunde>
    </Einheit>
    <Einheit>
      <Tag>Mittwoch</Tag>
      <Stunde>4</Stunde>
    </Einheit>
  </Unterricht>
</Kurs>

Die Objekt-Struktur dieses XML-Dokuments kann man mit Hilfe des folgenden Baumdiagramms verdeutlichen:

DOM-Baum

Um einen solchen Baum mit Hilfe von Objekten darzustellen, benötigt man einen geeigneten Satz von Klassen zusammen mit deren Methoden und Attributen. Dieser Satz von Klassen wird in der DOM-Spezifikation genau beschrieben und in einer DOM-Implementierung programmiert.

Basisklasse

Die Basisklasse zur Realisierung eines DOM-Baumes ist die Klasse Node. Objekte dieser Klasse verfügen über geeignete Attribute, um einen Baum zu erstellen und um die Daten der XML-Elemente zu speichern. Die folgende Abbildung zeigt einen Ausschnitt aus der Darstellung des oben gezeigten XML-Dokuments mit Hilfe von Objekten der Klasse Node.

DOM-Baum

Abgeleitete Klassen

Die Basisklasse Node ist weiter spezialisiert zu den Klassen Document (zur Verwaltung des gesamten XML-Dokuments), Element (zur Verwaltung von XML-Elementen) und Text (zur Verwaltung von Textpassagen).

DOM-Baum

Diese abgeleiteten Klassen stellen zusätzliche Attribute und Methoden zur Verwaltung und Verarbeitung eines DOM-Baumes zur Verfügung. In den folgenden Tabellen sind einige dieser Attribute und Methoden aufgelistet.

Auswahl an Attributen und Methoden der Klasse Document:

Attribut / Methode Bedeutung / Verhalten
documentElement Attribut zur Verwaltung des Knotens zum Wurzelelement des XML-Dokuments
getElementsByTagName(name) Funktion, die eine Liste mit den Knoten zu allen Elementen des XML-Dokuments, die den Tagnamen name haben, als Ergebnis zurückgibt

Auswahl an Attributen und Methoden der Klasse Element:

Attribut / Methode Bedeutung / Verhalten
tagName Attribut zur Verwaltung des Namens des Element-Knotens
getElementsByTagName(name) Funktion, die eine Liste mit den Knoten zu allen Elementen des XML-Dokuments, die den Tagnamen name haben, als Ergebnis zurückgibt
hasAttribute(name) Funktion, die überprüft, ob das Element zum Knoten ein Attribut mit dem übergebenen Attributnamen name hat.
getAttribute(name) Funktion, die den Attributwert zum Attribut mit dem übergebenen Attributnamen name des Element-Knotens zurückgibt

Auswahl an Attributen und Methoden der Klasse Text:

Attribut / Methode Bedeutung / Verhalten
data Attribut zur Verwaltung des Werts des Text-Knotens
X

Fehler melden

X

Suche