DOM (Document Object Model)

DOM ist eine baumartige Schnittstelle zum Bearbeiten von XML-Dokumenten.

Das Dom bietet die Möglichkeit, auf Informationen, die in einem XML-Dokument gespeichert sind, zuzugreifen.

Verwendung:
XML document reader
XML Parser

XML Parser

Ein XML-Parser muss sicherstellen, dass das XML-Dokument wohlgeformt ist, das heißt, die Tags sind richtig aufgebaut, zu jedem Starttag gibt es ein entsprechendes Endetag und die durch sie identifizierten Elemente sind richtig verschachtelt, immer eins im anderen.
Richtige Verschachtelung bedeutet, dass sich beispielsweise das title-Element ohne Überschneidung immer vollständig innerhalb oder vollständig außerhalb des chapter-Elements befinden muss. Das title-Element darf nicht außerhalb des chapter-Elements anfangen und dann innerhalb enden.
Bei der Gültigkeitsprüfung bzw. Validierung geht der Parser sogar noch weiter und überprüft, ob das XML-Dokument die Einschränkungen und Spezifikationen einhält, die in der DTD des Dokuments deklariert worden sind. Falls es keine Document Type Definition (DTD) gibt, ist das Dokument nicht gültig.
Alle XML-Parser müssen in der Lage sein, die Wohlgeformtheit zu überprüfen. Diejenigen, die auch eine Gültigkeitsprüfung durchführen (also validieren) können, werden als validierende Parser bezeichnet. Jeder dieser beiden Typen kann mit dem DOM-API eingesetzt werden.

DOM-XML-Parser

Der DOM-XML-Parser ist ein Java Programm, welches ein XML-Dokument in ein "Java object model" wandelt. Nachdem man das XML-Dokument geparst hat, existiert es im Speicher der JVM, als eine Ansammlung von Objekten.Nun hat man durch die Objekte im Speicher Zugriff auf die Informationen des XML-Dokuments und kann sie gegebenenfalls ändern.

DOM API

In Java existiert ein Interface, namens Document Object Model API, welches den Zugriff und die Änderung der Informationen im document object, erstellt vom XML-Parser, erlaubt. DOM, das vom W3C definiert wurde, ist also eine Menge von Java (existiert in jeder anderen Programmiersprache auch) Schnittstellen.

Das document object beinhaltet einen Baum von Knoten, der seinerseits wiederum die Daten und die Struktur der Informationen des XML-Dokuments beinhaltet. Auf diesen Baum von Knoten kann unter Verwendung des DOM-API zugegriffen und auch verändert werden
.
Ein document object Baum besteht nur aus Knoten. Ein Knoten kann wieder andere Knoten beinhalten und der Knoten selbst kann Informationen enthalten. Das DOM-API definiert eine minimale Menge von Programmiersprachen- und plattform-unabhängigen Interfaces, um den Inhalt und die Struktur, die in einem XML-Dokument gespeichert sind, zu lesen und zu manipulieren.


Um das DOM-API verwenden zu können, muss man es zuerst importieren:
import org.w3c.dom.*;

Ausschnitt aus dem DOM-API:


Die Methode getNodeType() liefert den Typ des Knotens, wobei der Typ eine Konstante ist, die die verschiedenen Typen von Knoten identifiziert. Zum Beispiel kennzeichnet Node.ELEMENT_NODE, dass der Knoten vom Typ Element ist.

Die Methode getNodeValue() liefert den Inhalt, der im Knoten gespeichert ist.
Um so einen Baum durchzugehen ist die Methode getChildNodes() sehr nützlich. Sie gibt eine NodeList mit allen Kindknoten eines Knoten zurück.