SAX- oder DOM-Parsing
- Java bietet zwei Arten des Parsens om
XML-Dokumenten, SAX und DOM. Es ist dem Programmierer überlassen,
wofür er sich entscheidet. Es gilt Vor- und Nachteile
abzuwägen, um ein Optimum zu erhalten. Wer noch nie ein
XML-Dokument mit Java bearbeitet hat, wird Probleme bei dieser
Entscheidung haben. Deshalb eine kleine Hilfestellung.
DOM-Parsing
- Das gesamte Dokument wird als
Baumstruktur gespeichert. Dieser Baum ist im RAM, weshalb jedes
Element sehr schnell erreichbar ist. Die einzelnen Knoten (Nodes)
bieten Zugang zu eigenen Methoden, die auf dieses Element angewendet
werden. Der gesamte Aufbau und die Verwaltung der Dokumentenstruktur
übernimmt DOM. Es brauchen also keine eigenen Methoden oder
Strukturen erstellt werden.
-
Das Modell ist äußerst
flexibel und geht sehr ins Detail. Diese Eigenschaft kann sich
nachteilig auswirken. Sind sehr spezialisierte Dokumente zu
bearbeiten, so oft ist die Speicherung eines Zeilenumbruchs oder
Leerzeichen in separaten Nodes überflüssig. Weil hier
überwiegend MathML-Dokumente bearbeitet werden, können
eigene Strukturen und Methoden sehr viel effizienter sein.
SAX-Parsing
- Das gesamte Dokument wird geparst,
genau wie bei DOM. Allerdings wird kein Element gespeichert. Ob ein
Element gespeichert wird und wo die Argumente von Tags untergebracht
werden ist allein Sache des Programmierers.
-
Wenn also die Struktur der Dokumente sehr
übersichtlich ist (bei MathML ist das der Fall) bietet sich
eine eigene Speicherstruktur an. Ressourcen werden geschont und das
System wird schneller.
Eigenes Bild machen
- Auf dieser Site sind Programme
vorhanden, die sowohl SAX- als auch DOM-Parsing benutzen. Die
Verbindung von MathML und dem GPLmath-Pack erfolgt über SAX,
denn die Strukturen des GPLmath-Packs sind am Inhalt orientiert und
unterliegen damit den Strukturen der mathematischen Formeln. Eine
Anpassung des DOM-Modells an diese Strukturen wäre sehr
aufwändig.
-
Die Programme aus den Beispielen sind:
-
pasen1.java
-
pasen2.java
-
pasen3.java
-