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.