Streaming API for XML

Streaming API for XML

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.

Inhaltsverzeichnis

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 Entities 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

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Streaming api for xml — ou StAX est une API permettant d exploiter les documents XML. Tout comme SAX, StAX n encombre pas la mémoire et le document est lu linéairement, mais c est l application qui tire explicitement l information du document (avec SAX, l information… …   Wikipédia en Français

  • Streaming API for XML — ou StAX est une API permettant d exploiter les documents XML. Tout comme SAX, StAX n encombre pas la mémoire et le document est lu linéairement, mais c est l application qui tire explicitement l information du document (avec SAX, l information… …   Wikipédia en Français

  • Java API for XML Processing — Das Java API for XML Processing, oder JAXP, ist eines der Java XML APIs. Es handelt sich um ein leichtgewichtiges standardisiertes API zum Validieren, Parsen, Generieren und Transformieren von XML Dokumenten. Die jeweilige (nicht standardisierte) …   Deutsch Wikipedia

  • Java API for XML Processing — The Java API for XML Processing, or JAXP (pronounced jaks p ), is one of the Java XML programming APIs. It provides the capability of validating and parsing XML documents. The three basic parsing interfaces are: * the Document Object Model… …   Wikipedia

  • .xml — Vorlage:Infobox Dateiformat/Wartung/magic fehltVorlage:Infobox Dateiformat/Wartung/website fehlt Extensible Markup Language Dateiendung .xml …   Deutsch Wikipedia

  • XML — Vorlage:Infobox Dateiformat/Wartung/magic fehltVorlage:Infobox Dateiformat/Wartung/website fehlt Extensible Markup Language Dateiendung …   Deutsch Wikipedia

  • Xml — Vorlage:Infobox Dateiformat/Wartung/magic fehltVorlage:Infobox Dateiformat/Wartung/website fehlt Extensible Markup Language Dateiendung …   Deutsch Wikipedia

  • Streaming XML — means dynamic data which is in an XML format.Another popular use of this term refers to one method of consuming XML data – largely known as Simple API for XML. This is via asynchronous events that are generated as the XML data is parsed. In this… …   Wikipedia

  • XML transformation language — An XML transformation language is a computer language designed specifically to transform an input XML document into an output XML document which satisfies some specific goal.There are two special cases of transformation: * XML to XML : the output …   Wikipedia

  • James Clark (XML expert) — James Clark, (February 23 1964) is the author of groff and expat and has done much work with open source software and XML. Born in London, and educated at Charterhouse and Merton College, Oxford, Clark has lived in Bangkok, Thailand since 1995,… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”