Las siguientes son las características de StAX API:
-
Lee un documento XML de arriba a abajo, reconociendo los tokens que componen un documento XML bien formado.
-
Los tokens se procesan en el mismo orden en que aparecen en el documento.
-
Informa sobre el programa de aplicación la naturaleza de los tokens que el analizador ha encontrado a medida que ocurren.
-
El programa de aplicación proporciona un lector de "eventos" que actúa como un iterador e itera sobre el evento para obtener la información requerida. Otro lector disponible es "cursor" que actúa como un puntero a los nodos XML.
-
A medida que se identifican los eventos, los elementos XML pueden recuperarse del objeto de evento y pueden procesarse más.
Debemos usar un analizador StAX cuando:
- Puede procesar el documento XML de forma lineal de arriba a abajo.
- El documento no está profundamente anidado.
- Está procesando un documento XML muy grande cuyo árbol DOM consumiría demasiada memoria. Las implementaciones DOM típicas usan diez bytes de memoria para representar un byte de XML.
- El problema a resolver involucra solo una parte del documento XML.
- Los datos están disponibles tan pronto como el analizador los vea, por lo que StAX funciona bien para un documento XML que llega a través de una transmisión.
Para poder utilizar clases e interfaces de ambas API necesitamos un origen de datos XML valido. Esto lo conseguimos con la factoria XMLInputFactory:
XMLInputFactory xmlif = XMLInputFactory.newInstance();
XMLStreamReader xmlsr =xmlif.createXMLStreamReader(new FileReader("books.xml"));
o bien
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
InputStream in = new FileInputStream("books.xml");
Como deciamos anteriormente, STAX consiste en dos API llamados lectores "Iterador" y "cursor"