StAX: So parst man XML-Code mit Java

StAX (Streaming API for XML) wurde mit Java 6.0 eingeführt. Die Schnittstelle steht in dem Ruf, SAX (Simple API for XML) und DOM (Document Object Model) überlegen zu sein. ZDNet wirft nachfolgend einen Blick auf die API, erklärt die Funktionsweise und liefert einige Code-Beispiele.

Eine kurze Einführung in StAX

XML-APIs sind traditionell entweder baum- oder ereignisbasiert. Bei baumbasierten APIs wird das gesamte Dokument als Baumstruktur in den Speicher gelesen. Damit hat die bearbeitende Anwendung wahlfreien Zugriff darauf. Bei ereignisbasierten XML-APIs reagiert die Anwendung auf empfangene Ereignisse, sobald sie auf bestimmte Elemente innerhalb des Quelldokuments stößt.

Baumbasierte APIs, etwa DOM, ermöglichen den wahlfreien Zugriff auf das Dokument. Ereignisbasierte APIs, beispielsweise SAX, benötigen jedoch weniger Speicherplatz und arbeiten normalerweise wesentlich schneller.

Diese beiden Zugriffsmethoden stellen also zwei entgegengesetzte Ansätze dar. Eine baumbasierte API gewährt unbegrenzten und wahlfreien Zugriff sowie Manipulationsmöglichkeiten. Die ereignisbasierte API durchläuft das Quelldokument dagegen nur ein einziges Mal.

StAX wurde als eine Art Zwischenstufe zwischen diesen beiden Extrempositionen entwickelt. Bei StAX besteht der programmiertechnische Einstiegspunkt in einem Cursor, der einen Punkt innerhalb des Dokuments repräsentiert. Die Anwendung bewegt diesen Cursor vorwärts, das heißt sie „zieht“ (pull) die Informationen nach Bedarf vom Parser ab. Dies unterscheidet sich von einer ereignisbasierten API, die die Daten eher zur Anwendung „schiebt“ (push). Das setzt voraus, dass sich die Anwendung den Status zwischen den Ereignissen gegebenenfalls merkt. So weiß sie jederzeit, an welcher Stelle innerhalb des Dokuments sie sich gerade befindet.

StAX verwendet ein Pull-Konzept. Folglich fragt der Entwickler Ereignisse ab, anstatt Ereignisinformationen vom XML-Parser automatisch an den Client schicken zu lassen (Push-Ansatz). Das führt letztlich zu einem natürlicheren, lesbareren Programmcode, ohne dass dies zu Lasten der Performance geht. StAX hat seine Wurzeln in einer Reihe inkompatibler Pull-APIs für XML. XMLPULL ist wohl die bekannteste davon.

So funktioniert die StAX-API

Die Kern-API von StAX besteht aus zwei Komponenten: der Event-Iterator-API und der Cursor-API. Anwendungen können diese APIs zum Lesen, Parsen und Schreiben von XML-Dokumenten verwenden.

Die Event-Iterator-API

Die Event-Iterator-API ist SAX sehr ähnlich. Sie hat zwei wichtige Schnittstellen: den XMLEventReader zum Parsen von XML und den XMLEventWriter zum Erzeugen von XML-Code.

Als Beispiel soll folgende einfache XML-Datei dienen:

Page: 1 2 3 4

ZDNet.de Redaktion

Recent Posts

Hochsichere Software für Electronic Knee Boards der Bundeswehrpiloten

Im Rahmen der umfassenden Digitalisierung der Bundeswehr ersetzen Electronic Knee Boards die herkömmlichen Handbücher von…

1 Stunde ago

Mai-Patchday: Microsoft schließt zwei aktiv ausgenutzte Zero-Day-Lücken

Sie betreffen Windows 10, 11 und Windows Server. In SharePoint Server steckt zudem eine kritische…

5 Stunden ago

Firefox 126 erschwert Tracking und stopft Sicherheitslöcher

Mozilla verteilt insgesamt 16 Patches für Firefox 125 und älter. Zudem entfernt der Browser nun…

7 Stunden ago

Supercomputer-Ranking: Vier europäische Systeme in den Top Ten

Einziger Neueinsteiger ist das Alps-System in der Schweiz. Die weiteren Top-Ten-Systeme aus Europa stehen in…

21 Stunden ago

Angriffe mit Banking-Malware auf Android-Nutzer nehmen weltweit zu

Im vergangenen Jahr steigt ihre Zahl um 32 Prozent. Die Zahl der betroffenen PC-Nutzer sinkt…

22 Stunden ago

Künstliche Intelligenz fasst Telefonate zusammen

Die App satellite wird künftig Telefongespräche in Echtzeit datenschutzkonform mit Hilfe von KI zusammenfassen.

1 Tag ago