enrique-j
12/18/2018 - 6:06 PM

API StAX.

StAX (Streaming API for XML, API para la transmisión de XML) es una API para la manipulación de documentos XML que surgió para cubrir las carencias que sufrían las APIs SAX y DOM, situándose en un punto intermedio a nivel de procesamiento entre estas dos, convirtiéndola en una API más eficiente. Mientras que en DOM accedemos al árbol completo del documento XML (lo que nos permite un acceso aleatorio a cualquier parte de este pero a un coste elevado), en SAX se registran eventos asociados con cada elemento, de manera que cuando necesitamos acceder a uno de ellos debemos empujar la información de dicho elemento hacia nuestra aplicación (más eficiente)

En StaX resolvemos el problema del acceso a los datos de un documento XML desde una perspectiva intermedia: usando un cursor nos movemos a través del árbol según sea necesario, y sólo cuando estamos en el nodo adecuado tiramos de la información. Es un modelo más cercano a SAX (eventos) que a DOM (árbol), pero al contrario que con el primero no se mantiene un registro actualizado de todos los eventos, si no que gracias al cursor vamos descubriendo los elementos y sus eventos asociados en tiempo real. De igual forma, mientras nos movemos vamos olvidando elementos/eventos pasados.

De manera adicional, StAX permite escribir documentos XML (SAX por ejemplo sólo permite lectura), de manera que además de un tratamiento de datos más efectivo, reducimos el número de APIs que son necesarias cuando se requiere una gestión integral. Por todos estos motivos, StAX va a ser nuestra API de referencia (salvo honrosas excepciones) cuando manejemos documentos XML desde Java.

StAX: leyendo XML