Streaming API for XML

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 2. Dezember 2007 um 17:41 Uhr durch Jpp (Diskussion | Beiträge) (Änderung 39594669 von 75.7.41.55 (Diskussion) wurde rückgängig gemacht. Siehe auch … was? Kein Artikel vorhanden.). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Streaming API for XML (StAX) ist ein Application Programming Interface (API), um XML-Dateien aus Java zu verarbeiten.

Traditionellerweise sind XML-APIs:

  • baumbasiert – das gesamte Dokument wird als Baumstruktur in den Speicher gelesen und kann von dort direkt zugegriffen werden.
  • ereignisbasiert – die Anwendung bekommt ein Ereignis, wenn neue Entities im Dokument entdeckt werden.

Beide Varianten haben Vorteile: die erste (z. B.: DOM) erlaubt wahlfreien Zugriff auf das Dokument, die zweite (z. B.: SAX) benötigt weniger Speicher und ist daher üblicherweise viel schneller.

Diese zwei Verfahren sind das genaue Gegenteil voneinander. Eine baumbasierte API erlaubt unbegrenzten, direkten Zugriff und Änderung, während eine ereignisbasierte API ein einmaliger Durchlauf durch das Quelldokument ist.

StAX wurde als ein Mittelweg zwischen diesen beiden Gegensätzen entworfen. In der StAX-Metapher ist der programmatische Einstieg ein Cursor, der eine Stelle im Dokument repräsentiert. Die Anwendung bewegt den Cursor vorwärts, sie holt also die benötigte Information genau dann vom Parser, wenn sie benötigt wird. Dies unterscheidet sich von einer ereignisbasierten API, wie SAX, die die Daten aktiv in die Anwendung schickt und somit die Anwendung zur Verwaltung von Zustandsinformationen zwischen Ereignissen zwingt, um darin die aktuelle Position im Dokument festzuhalten.

Ursprünge

StAX hat seine Wurzeln in einer ganzen Reihe von ereignisgetriebenen Programmierschnittstellen, in erster Linie „XMLPULL“, dessen Autoren (Stefan Haustein und Aleksandr Slominski) unter anderem mit BEA, Oracle, Sun Microsystems, Breeze Factor und James Clark zusammen arbeiteten.

Siehe auch