Zum Inhalt springen

„Streaming API for XML“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
KLBot2 (Diskussion | Beiträge)
K Bot: 8 Interwiki-Link(s) nach Wikidata (d:Q1326867) migriert
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
'''Streaming API for XML''' (StAX) ist ein [[Application Programming Interface]] (API), um [[Extensible Markup Language|XML]]-Dateien aus [[Java (Programmiersprache)|Java]] zu verarbeiten.
'''Streaming API for XML''' ('''StAX''') ist ein [[Application Programming Interface]] (API), um [[Extensible Markup Language|XML]]-Dateien aus [[Java (Programmiersprache)|Java]] zu verarbeiten.


Die [[Referenzimplementierung]] ist als [[freie Software]] unter den Bedingungen der [[Apache-Lizenz]] verfügbar.
Die [[Referenzimplementierung]] ist als [[freie Software]] unter den Bedingungen der [[Apache-Lizenz]] verfügbar.
Zeile 22: Zeile 22:


== Siehe auch ==
== Siehe auch ==
* [[Java API for XML Processing]] (JAXP) - Java Programmierschnittstelle, welche StAX enthält.
* [[Java API for XML Processing]] (JAXP) Java Programmierschnittstelle, welche StAX enthält


== Weblinks ==
== Weblinks ==
* [http://jcp.org/en/jsr/detail?id=173 JSR-173] – StAX (englisch)
* [http://jcp.org/en/jsr/detail?id=173 JSR-173] – StAX (englisch)
* [http://stax.codehaus.org/Home The Streaming API for XML] - Referenzimplementierung von StAX
* [http://stax.codehaus.org/Home The Streaming API for XML] Referenzimplementierung von StAX
* [http://www.xml.com/pub/a/2003/09/17/stax.html Introduction to StAX on xml.com] (englisch)
* [http://www.xml.com/pub/a/2003/09/17/stax.html Introduction to StAX on xml.com] (englisch)
* [http://www.xmlpull.org/ XMLPull.org] (englisch)
* [http://www.xmlpull.org/ XMLPull.org] (englisch)
* [http://java.sun.com/performance/reference/whitepapers/StAX-1_0.pdf Performance-Papier von Sun Microsystems, Inc., Stand 2005-08] (PDF, englisch; 203 kB)
* [http://java.sun.com/performance/reference/whitepapers/StAX-1_0.pdf Performance-Papier von Sun Microsystems, Inc., Stand 2005-08] (englisch, PDF, 203 kB)



[[Kategorie:Java-Programmierschnittstelle]]
[[Kategorie:Java-Programmierschnittstelle]]

Version vom 28. Juli 2013, 17:52 Uhr

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

Die Referenzimplementierung ist als freie Software unter den Bedingungen der Apache-Lizenz verfügbar.

Technik

Traditionellerweise sind XML-APIs:

baumbasiert
(z. B. DOM) – das gesamte Dokument wird als Baumstruktur in den Speicher gelesen und kann von dort direkt zugegriffen werden.
ereignisbasiert
(z. B. SAX) – die Anwendung bekommt ein Ereignis, wenn neue Entitäten im Dokument entdeckt werden.

Beide Varianten haben Vor- und Nachteile: die erste erlaubt wahlfreien Zugriff auf das Dokument, muss aber das Dokument im Speicher halten und benötigt somit mehr Speicher. Die zweite ist ein einmaliger Durchlauf durch das Quelldokument und benötigt somit kaum Speicher und ist auch schneller beim Parsen, erlaubt aber keinen direkten Zugriff auf Elemente oder Änderungen des Baumes.

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.

StAX bietet neben dem Zugriff auf die XML-Daten über einen Cursor auch noch ein Iterator-Verfahren an. Das Iterator-Verfahren liefert die Daten in Form von Objekten, die von der Klasse XMLEvent abgeleitet sind. Die erzeugten Objekte bieten dem Java-Entwickler mehr Möglichkeiten als die String-Objekte beim Cursor-Verfahren, aber sie verringern die Performance.

StAX ist neben DOM, SAX und XSLT eine der Schnittstellen der Java API for XML Processing.

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 zusammenarbeiteten.

Siehe auch