SAX

RECU-0741 (Recurso Ficha Técnica)

Descripción

SAX es un estándar de parseo de XML. El estándar SAX ("Simple API for XML") procesa el documento, o información en XML, de una manera muy diferente a DOM. SAX procesa la información por eventos. A diferencia de DOM, que genera un árbol jerárquico en memoria, SAX procesa la información en XML conforme esta sea presentada (evento por evento), manipulando cada elemento en un determinado tiempo, sin incurrir en uso excesivo de memoria. SAX es un "parser" ideal para manipular archivos de gran tamaño, ya que no ocupa espacio al generar un árbol en memoria como es requerido en DOM. Es más rápido y sencillo que utilizar DOM y, por el contrario, realiza una lectura secuencial del documento, por lo que una vez leído no se puede volver atrás, cosa que DOM si que permite.

Se recomienda utilizar SAX cuando:

  • Queremos parsear el documento XML una sola vez.
  • Queremos parsear partes del documento XML (capturamos los eventos importantes).
  • No se requiere una modificación estructural.
  • Grandes archivos XML.

SAX define el interfaz DocumentHandler como el manipulador del documento. Esta interfaz implementa qué acciones debe realizar el parseador. DocumentHandler es una interfaz que responde a eventos, por lo que se llamará a los métodos especificados cuando suceda algo en concreto. Los métodos principales son:

  • startDocument: Se invoca cuando se detecta que el documento empieza. Aquí deben indicarse las acciónes a realizar al inicio del documento.
  • endDocument: Se invoca cuando se detecta que el documento ha acabado. Por lo tanto, aquí deben indicarse las acciones a realizar al finalizar el documento.
  • startElement: Se invoca cuando encuentra un nuevo elemento, nodo, etiqueta, tag, etc. Aquí debe indicarse el tratamiento que se deberá realizar sobre cada nuevo elemento, como la recogida de información de sus atributos.
  • endElement: Se invoca una vez ha leído el elemento. Aquí se encuentra la información del nodo y del contenido del nodo por lo que es aquí donde, normalmente, se recoge la información.

Contenidos relacionados

Pautas
Área: Desarrollo » Librerías y Módulos » Java
Código Título Tipo Carácter
LIBP-0348 Librerías para el tratamiento de XML en Java Libro de pautas Directriz Recomendada