Entwicklung und Nutzen von XML


[Informatik- u. Master-Seminar SS04]   [Inhaltsverzeichnis]   [zurück]   [weiter] Nach unten

Schnittstellen für XML


Simple API for XML

Das Simple API for XML (SAX) ist eine event-orientierte Schnittstelle zur Verarbeitung von XML-Dokumenten. Unter einem Event wird hierbei beispielsweise der Anfang oder das Ende eines Elements verstanden. SAX definiert einen einheitlichen Zugriff auf den Parser und auf die Ereignisse beim Parse-Vorgang. Ähnlich zu DOM besteht SAX zum größten Teil aus Interfaces, die Parser-spezifisch durch sogenannte SAX-Treiber implementiert werden. Die Verarbeitung von XML-Dokumenten mit SAX erfolgt seriell in einem einzigen Durchlauf. Im Gegensatz zu DOM wird hier keine interne Baumstruktur im Speicher aufgebaut über die im Dokument-Baum navigiert werden könnte. SAX zwingt den Anwender auch nicht dazu ein vorgegebenes Objektmodell zu verwenden, wie es bei DOM der Fall ist. Vielmehr ist es möglich eigene Objektmodelle zu erschaffen. Die serielle Verarbeitung hat den Vorteil, dass man Dokumente schnell nach Schlüsselwörtern durchsuchen kann oder die Inhalte in der Reihenfolge ihres Erscheinens ausgeben kann. SAX bildet auch die Grundlage für komplexere APIs wie das Document Object Model. Die serielle Verarbeitung beeinhaltet aber auch Nachteile. So ist es mit SAX nicht möglich die Elemente im Dokument neu zu ordnen und auch die Auflösung von Querverweisen innerhalb des Dokuments oder auf externe Dokumente ist nicht möglich. Einweiterer Nachteil ist, dass die Events genauso schnell wieder vegessen wrerden, wie sie gefunden wurden. Was Events in diesem Zusammenhang sind soll folgendes Beispiel noch einmal erläutern:

Die bekannte Datei adressbuch.xml:
<?xml version="1.0" ?>
<!DOCTYPE adressbuch SYSTEM "adressbuch.dtd">
<Adressbuch>
  <Person>
    <Vorname>Uwe</Vorname>
    <Nachname>Schmidt</Nachname>
    <Ort plz="101010">Knusiland</Ort>
    <Alter>42</Alter>
  </Person>
</Adressbuch>


Ein event-gesteuertes API wie SAX würde folgende Events melden:
01. found start element: Adressbuch
02. found start element: Person
03. found start element: Vorname
04. found text
05. found end element: Vorname
06. found start element: Nachname
07. found text
08. found end element: Nachname
09. found start element: Ort
10. found attribute: plz="101010"
11. found text
12. found end element: Ort
13. found start element: Alter
14. found text
15. found end element: Alter
16. found end element Person
17. found end element Adressbuch



Document Object Model

Das Document Object Model (DOM) ist eine Empfehlung vom W3C für ein standardisiertes Application Programming Interface (API) und beschreibt, wie man programmiersprachenunabhängig über eine Menge von Schnittstellen auf XML-Dokumente zugreifen kann. Das DOM definiert also Schnittstellen und Methoden zum Erzeugen, Durchsuchen, Zugreifen, Ändern und Löschen von Dokumentinhalten. Das DOM ist eine abstrakte Schnittstellenbeschreibung in IDL (Interface Definition Language der Object Management Group OMG), welche zur Anwendung in einer konkreten Sprache implementiert sein muß. Das Dom repräsentiert Dokumente unabhängig von der internen Datenstruktur der jeweiligen Implementation nach außen hin objektorientiert, wobei alle Objekte des Dokuments in eine hierarchische Baumstruktur eingegliedert sind, sogenannte Knoten. Das DOM garantiert strukturellen Isomorphismus, d.h. jedes XML-Dokument hat also eine eindeutige Struktur, die in jeder DOM-Implementation genau gleich aussieht. Im Unterschied zu SAX wird hier eine Baumstruktur im Speicher aufgebaut über die traversiert werden kann. Somit ist eine Manipulation der Elemente möglich, es können Teilbäume extrahiert oder verändert werden und Elemente neu geordnet werden. Das DOM-Modell besteht aus Knoten, welche Dokumente, Elemente und Attribute enthalten, die in einer Baumstruktur durch Zeiger miteinander verbunden sind. Dieser Ansatz ist mächtiger als SAX, jedoch auch speicherintensiver durch die persistente Abbildung des Baumes im Speicher. Das Parsen dauert hier ebenfalls länger als bei SAX.

Vorteile des DOM:
Auf eine genauere Betrachtung der beiden Schnittstellen soll hier jedoch verzichtet werden, da man vom Umfang her aus beiden Themen eine eigenständige Seminararbeit machen könnte.


[Informatik- u. Master-Seminar SS04]   [Inhaltsverzeichnis]   [zurück]   [weiter] Inhaltsverzeichnis Nach oben