Stax Museum & Satellite Record Shop.jpg
   HOME

TheInfoList



OR:

Streaming API for XML (StAX) is an application programming interface ( API) to read and write XML documents, originating from the Java programming language community. Traditionally, XML APIs are either: * DOM based - the entire document is read into memory as a tree structure for random access by the calling application * event based - the application registers to receive events as entities are encountered within the source document. Both have advantages:
DOM Dom or DOM may refer to: People and fictional characters * Dom (given name), including fictional characters * Dom (surname) * Dom La Nena (born 1989), stage name of Brazilian-born cellist, singer and songwriter Dominique Pinto * Dom people, an et ...
, for example, allows for random access to the document, and event driven algorithm like SAX has a small memory footprint and is typically much faster. These two access metaphors can be thought of as polar opposites. A tree based API allows unlimited, random access and manipulation, while an event based API is a 'one shot' pass through the source document. StAX was designed as a median between these two opposites. In the StAX metaphor, the programmatic entry point is a cursor that represents a point within the document. The application moves the cursor forward - 'pulling' the information from the parser as it needs. This is different from an event based API - such as SAX - which 'pushes' data to the application - requiring the application to maintain state between events as necessary to keep track of location within the document.


Origins

StAX has its roots in a number of incompatible pull APIs for XML, most notabl
XMLPULL
the authors of which (Stefan Haustein and Aleksander Slominski) collaborated with, amongst others, BEA Systems,
Oracle An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination. Description The word '' ...
, Sun and James Clark.


Examples

From JSR-173 Specification• Final, V1.0 (used under fair use). Quote: :The following Java API shows the main methods for reading XML in the cursor approach. public interface XMLStreamReader :The writing side of the API has methods that correspond to the reading side for “StartElement” and “EndElement” event types. public interface XMLStreamWriter :5.3.1 XMLStreamReader :This example illustrates how to instantiate an input factory, create a reader and iterate over the elements of an XML document. XMLInputFactory xmlInputFactory = XMLInputFactory.newInstance(); XMLStreamReader xmlStreamReader = xmlInputFactory.createXMLStreamReader(...); while (xmlStreamReader.hasNext())


See also

Competing and complementary ways to process XML in Java (the order is loosely based on initial date of introduction): * Document Object Model (DOM), the first standardized, language/platform-independent tree-based XML processing model; alternate Java tree models include JDOM, Dom4j, and XOM * Simple API for XML (SAX), the standard XML push API * Java XML Binding API (JAXB), works on top of another parser (usually streaming parser), binds contained data to/from Java objects. *
Streaming XML Streaming XML is a synonym for dynamic data in 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 ...
* XQuery API for Java


External links


Introduction to StAX
XML.com, Harold, Elliotte Rusty



Article on XML Pull (and StAX) design patterns by Aleksander Slominski.
StAX Parser - Cursor & Iterator APIs
Article on Cursor & Iterator APIs by HowToDoInJava. {{Java EE 7 Java platform Application programming interfaces XML parsers Articles with example Java code