fbpx
Wikipedia

StAX

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

Tradicionalmente, las APIs XML son de uno de tos dos tipos:

  • basadas en DOM - todo el documento es leído en memoria como una estructura de árbol para acceso aleatorio por la aplicación llamante
  • basadas en eventos - la aplicación se registra para recibir eventos según las entidades se encuentran en el documento de origen.

Ambos tienen ventajas, el primero (por ejemplo, DOM) permite acceso aleatorio al documento, el segundo (por ejemplo, SAX) requiere una pequeña huella de memoria y es típicamente mucho más rápido.

Estos dos paradigmas de acceso pueden ser considerados como polos opuestos. Una API basada en un árbol permite acceso y manipulación ilimitados y aleatorios, mientras que una API basada en eventos es un pase de 'una sola vez' a través del documento de origen.

StAX fue diseñado como un término medio entre estos dos polos opuestos. En el paradigma StAX, el punto de entrada de programación es un cursor que representa un punto dentro del documento. La aplicación mueve el cursor hacia adelante ("tirando" de la información del analizador según necesita). Esto es diferente de una API basada en eventos, como SAX, que "empuja" los datos a la aplicación (requiriendo que la aplicación mantenga el estado entre los eventos puesto que es necesario para realizar un seguimiento de la ubicación dentro del documento).

Origen

StAX tiene sus raíces en una serie de APIs de tipo pull para XML incompatibles, más notablemente XMLPULL, los autores de la cual (Stefan Haustein y Aleksander Slominski) colaboraron con, entre otros, BEA Systems, Oracle, Sun y James Clark.

Ejemplos

De la especificación final de la JSR-173 V1.0 (utilizada bajo el uso justo).

Cita:

La siguiente API de Java muestra los principales métodos para leer XML en el enfoque del cursor.
public interface XMLStreamReader { public int next() throws XMLStreamException; public boolean hasNext() throws XMLStreamException; public String getText(); public String getLocalName(); public String getNamespaceURI(); // ...otros métodos no mostrados } 
La parte de escritura de la API tiene métodos que corresponden a la parte de lectura para tipos de eventos “StartElement” y “EndElement”.
public interface XMLStreamWriter { public void writeStartElement(String localName) throws XMLStreamException; public void writeEndElement() throws XMLStreamException; public void writeCharacters(String text) throws XMLStreamException; // ...otros métodos no mostrados } 
5.3.1 XMLStreamReader
Este ejemplo ilustra cómo crear una instancia de 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(...); while (xmlStreamReader.hasNext()) { xmlStreamReader.next(); } 

Véase también

Modos complementarios para procesar XML en Java:

  • Document Object Model (DOM), el primer modelo de procesamiento de XML basado en árbol, estandarizado e independiente del lenguaje/plataforma, modelos de árbol alternativos de Java incluyen JDOM, Dom4j y XOM.
  • Simple API for XML (SAX), el estándar de la API XML de tipo push.
  • Java XML Binding API (JAXB), trabaja sobre otro analizador (usualmente un analizador de streaming), une los datos contenidos a/en los objetos de Java.
  • Streaming XML
  • XQuery API for Java

Enlaces externos

Implementaciones Java
  • Sun Java StAX XML Processor (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última). Open source. Ships as part of Sun Java Standard Edition 6 runtime.
  • (for JSR-173, API specification, under the Apache Software License)
  • Open source StAX implementation (LGPL or Apache license)
  • is an ultra-high-performance parser (Apache license)
Utilidades y add-ons
  • Provides a set of utility classes that make it easy for developers to integrate StAX into their existing XML processing applications.
    • StAX-Utils includes classes to provide XML file indenting and formatting.
  • is a light-weight framework that builds on top of Stax API and provides more convenient nested/filtered cursor for reading xml, nested outputters for writing xml (with optional indentation) and other tools (build DOM from Stax sources, write to Stax destinations) for interoperability.
Analizadores construidos sobre StAX
  • Apache Axiom is a light weight XML object model based on top of Stax and also provides lazy object building.
  • Apache Pivot uses StAX for the serialization of user interface markup written in BXML.
  • JavaFX 2.0 uses StAX for the serialization of user interface markup written in FXML.
Analizadores no estándar similares a StAX
  • XPP Parser based on the very similar but older XMLPull API.
  • kXML A Java Micro Edition parser that uses the XMLPull API.
  • Javolution provides a real-time StAX-like implementation which does not force object creation (e.g. String) and has smaller effect on memory footprint/garbage collection (Note: to reduce object creation, most StAX implementations maintain lookup tables to retrieve and reuse frequently used String objects).
  • The XmlReader class in Microsoft's .NET Framework is a pull-style XML parser.
Analizadores XML de tipo pull no Java
  • has XML parser (QXmlStreamReader) and writer (QXmlStreamWriter)
  • irrXML is a simple and fast open source XML parser for C++
  • is the XML C++ pull parser and writer
  • libxml2 is the XML C parser and toolkit (MIT License)
  • Expat is an XML parser library written in C
Artículos y recursos
  • Introduction to StAX XML.com, Harold, Elliotte Rusty
  • JSR (#173)
Download JSR specification document as a pdf here:
  • Article on XML Pull (and StAX) design patterns by Aleksander Slominski.
  • XMLPull.org
  • StAX and Sax comparison.
  • StAX and Java eg. from DevX.com
  •   Datos: Q1326867

stax, streaming, interfaz, programación, aplicaciones, para, leer, escribir, documentos, originaria, comunidad, lenguaje, programación, java, tradicionalmente, apis, tipos, basadas, todo, documento, leído, memoria, como, estructura, árbol, para, acceso, aleato. Streaming API for XML StAX es una interfaz de programacion de aplicaciones API para leer y escribir documentos XML originaria de la comunidad del lenguaje de programacion Java Tradicionalmente las APIs XML son de uno de tos dos tipos basadas en DOM todo el documento es leido en memoria como una estructura de arbol para acceso aleatorio por la aplicacion llamante basadas en eventos la aplicacion se registra para recibir eventos segun las entidades se encuentran en el documento de origen Ambos tienen ventajas el primero por ejemplo DOM permite acceso aleatorio al documento el segundo por ejemplo SAX requiere una pequena huella de memoria y es tipicamente mucho mas rapido Estos dos paradigmas de acceso pueden ser considerados como polos opuestos Una API basada en un arbol permite acceso y manipulacion ilimitados y aleatorios mientras que una API basada en eventos es un pase de una sola vez a traves del documento de origen StAX fue disenado como un termino medio entre estos dos polos opuestos En el paradigma StAX el punto de entrada de programacion es un cursor que representa un punto dentro del documento La aplicacion mueve el cursor hacia adelante tirando de la informacion del analizador segun necesita Esto es diferente de una API basada en eventos como SAX que empuja los datos a la aplicacion requiriendo que la aplicacion mantenga el estado entre los eventos puesto que es necesario para realizar un seguimiento de la ubicacion dentro del documento Indice 1 Origen 2 Ejemplos 3 Vease tambien 4 Enlaces externosOrigen EditarStAX tiene sus raices en una serie de APIs de tipo pull para XML incompatibles mas notablemente XMLPULL los autores de la cual Stefan Haustein y Aleksander Slominski colaboraron con entre otros BEA Systems Oracle Sun y James Clark Ejemplos EditarDe la especificacion final de la JSR 173 V1 0 utilizada bajo el uso justo Cita La siguiente API de Java muestra los principales metodos para leer XML en el enfoque del cursor public interface XMLStreamReader public int next throws XMLStreamException public boolean hasNext throws XMLStreamException public String getText public String getLocalName public String getNamespaceURI otros metodos no mostrados La parte de escritura de la API tiene metodos que corresponden a la parte de lectura para tipos de eventos StartElement y EndElement public interface XMLStreamWriter public void writeStartElement String localName throws XMLStreamException public void writeEndElement throws XMLStreamException public void writeCharacters String text throws XMLStreamException otros metodos no mostrados 5 3 1 XMLStreamReader Este ejemplo ilustra como crear una instancia de una fabrica de entrada crear un lector e iterar sobre los elementos de un documento XML XMLInputFactory xmlInputFactory XMLInputFactory newInstance XMLStreamReader xmlStreamReader xmlInputFactory createXMLStreamReader while xmlStreamReader hasNext xmlStreamReader next Vease tambien EditarModos complementarios para procesar XML en Java Document Object Model DOM el primer modelo de procesamiento de XML basado en arbol estandarizado e independiente del lenguaje plataforma modelos de arbol alternativos de Java incluyen JDOM Dom4j y XOM Simple API for XML SAX el estandar de la API XML de tipo push Java XML Binding API JAXB trabaja sobre otro analizador usualmente un analizador de streaming une los datos contenidos a en los objetos de Java Streaming XML XQuery API for JavaEnlaces externos EditarImplementaciones JavaSun Java StAX XML Processor enlace roto disponible en Internet Archive vease el historial la primera version y la ultima Open source Ships as part of Sun Java Standard Edition 6 runtime Reference Implementation for JSR 173 API specification under the Apache Software License Woodstox Open source StAX implementation LGPL or Apache license Aalto is an ultra high performance parser Apache license Utilidades y add onsStAX Utils Provides a set of utility classes that make it easy for developers to integrate StAX into their existing XML processing applications StAX Utils includes classes to provide XML file indenting and formatting StaxMate is a light weight framework that builds on top of Stax API and provides more convenient nested filtered cursor for reading xml nested outputters for writing xml with optional indentation and other tools build DOM from Stax sources write to Stax destinations for interoperability Analizadores construidos sobre StAXApache Axiom is a light weight XML object model based on top of Stax and also provides lazy object building Apache Pivot uses StAX for the serialization of user interface markup written in BXML JavaFX 2 0 uses StAX for the serialization of user interface markup written in FXML Analizadores no estandar similares a StAXXPP Parser based on the very similar but older XMLPull API kXML A Java Micro Edition parser that uses the XMLPull API Javolution provides a real time StAX like implementation which does not force object creation e g String and has smaller effect on memory footprint garbage collection Note to reduce object creation most StAX implementations maintain lookup tables to retrieve and reuse frequently used String objects The XmlReader class in Microsoft s NET Framework is a pull style XML parser Analizadores XML de tipo pull no JavaQt has XML parser QXmlStreamReader and writer QXmlStreamWriter irrXML is a simple and fast open source XML parser for C LlamaXML is the XML C pull parser and writer libxml2 is the XML C parser and toolkit MIT License Expat is an XML parser library written in CArticulos y recursosIntroduction to StAX XML com Harold Elliotte Rusty Java Streaming API for XML Stax Tutorial JSR 173 Download JSR specification document as a pdf here download nowXMLPull Patterns Article on XML Pull and StAX design patterns by Aleksander Slominski XMLPull org StAX and Sax comparison Using StAX with JAXB for efficiency StAX and Java eg from DevX com Datos Q1326867Obtenido de https es wikipedia org w index php title StAX amp oldid 132764922, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos