stringtranslate.com

StAX

Streaming API for XML ( StAX ) es una interfaz de programación de aplicaciones ( API ) para leer y escribir documentos XML , originada en la comunidad del lenguaje de programación Java .

Tradicionalmente, las API XML son:

Ambos tienen ventajas: DOM , por ejemplo, permite acceso aleatorio al documento, y un algoritmo controlado por eventos como SAX ocupa poco espacio en la memoria y suele ser mucho más rápido.

Estas dos metáforas de acceso pueden considerarse como polos opuestos. Una API basada en árboles permite un acceso y una manipulación ilimitados y aleatorios, mientras que una API basada en eventos es un paso "de una sola pasada" por el documento fuente.

StAX fue diseñado como un punto intermedio entre estos dos opuestos. En la metáfora de StAX, el punto de entrada programático es un cursor que representa un punto dentro del documento. La aplicación mueve el cursor hacia adelante, "extrayendo" la información del analizador según sea necesario. Esto es diferente de una API basada en eventos, como SAX, que "envía" datos a la aplicación, lo que requiere que la aplicación mantenga el estado entre eventos según sea necesario para realizar un seguimiento de la ubicación dentro del documento.

Orígenes

StAX tiene sus raíces en una serie de API de extracción incompatibles para XML, la más notable de las cuales es XMLPULL, cuyos autores (Stefan Haustein y Aleksander Slominski) colaboraron con, entre otros, BEA Systems , Oracle , Sun y James Clark .

Ejemplos

De la especificación JSR-173 • Final, V1.0 (utilizada bajo uso legítimo).

Cita:

La siguiente API de Java muestra los métodos principales para leer XML en el enfoque del cursor.
interfaz pública XMLStreamReader { int público next () lanza XMLStreamException ; booleano público hasNext () lanza XMLStreamException ; String público getText (); String público getLocalName (); String público getNamespaceURI (); // ... otros métodos no se muestran }                             
El lado de escritura de la API tiene métodos que corresponden al lado de lectura para los tipos de eventos “StartElement” y “EndElement”.
interfaz pública XMLStreamWriter { public void writeStartElement ( String localName ) lanza XMLStreamException ; public void writeEndElement () lanza XMLStreamException ; public void writeCharacters ( String text ) lanza XMLStreamException ; // ... otros métodos no se muestran }                        
5.3.1 Lector de flujo XML
Este ejemplo ilustra cómo instanciar una fábrica de entrada, crear un lector e iterar sobre los elementos de un documento XML.
XMLInputFactory xmlInputFactory = XMLInputFactory . newInstance (); XMLStreamReader xmlStreamReader = xmlInputFactory . createXMLStreamReader (...); mientras ( xmlStreamReader . hasNext ()) { xmlStreamReader . next (); }             

Véase también

Formas competitivas y complementarias de procesar XML en Java (el orden se basa vagamente en la fecha inicial de introducción):

Enlaces externos