6. Vergleich mit DOM

6.1 DOM

DOM steht für "Document Object Model", eine Spezifikation des W3C. Dieses Konzept ist auch ein API, aber es handelt sich um ein baumbasiertes Pull-Modell.

6.2 Vorteile von SAX gegenüber DOM

SAX ist wesentlich schneller als DOM, da die Daten sofort an die Applikation geliefert werden, und da nicht erst ein Aufbau einer Datenstruktur erfolgt, kostet das keine extra Zeit.
Da keinerlei Daten unnötig lange im Hauptspeicher behalten werden, verbraucht SAX im Gegensatz zu DOM fast keinen Speicher.

6.3 Nachteile von SAX gegenüber DOM

SAX bietet keinen beliebigen Zugriff auf Daten, da das Dokument linear abgearbeitet wird. Ein Sprung nach oben oder an beliebige Stelle ist nicht möglich.
SAX ist relativ kompliziert zu bedienen. Besonders bei komplexeren Anwendungen, kann die Implementierung Schwierigkeiten bereiten.
Eine Manipulation der Daten ist mit SAX nicht möglich, da das Schreiben von XML nicht unterstützt wird.

6.4 Benchmark-Tests

Folgende Tests wurden durchgeführt mit JDK 1.3, Xerces 1.4, ohne Gültigkeitsüberprüfung und ohne Namesräume. Dabei repräsentieren die gelben Balken SAX, die roten DOM, grün und blau sind Mischformen von SAX und DOM.

Abb. 6.1 Benchmark (Zeit)
Abb. 6.1 Benchmark (Zeit)

Wie eindeutig zu sehen ist, benötigt DOM fast doppelt soviel Zeit zum Parsen eines Dokumentes wie SAX. Bei Parsern wie Crimson 1.1 liegt der Faktor sogar bei 5.

Abb. 6.2 Benchmark (Speicher)
Abb. 6.2 Benchmark (Speicher)

Während bei SAX der Speicherverbrauch verschwindend gering ist, kann DOM bei großen Dokumenten schnell 100 Megabyte Speicher einnehmen.

top | SAX | Inhalt | created 2004 by Sascha Dienelt