Diferencia entre SAX Parser y DOM Parser en Java

Hay dos tipos de analizadores XML, a saber, API simple para XML y modelo de objeto de documento.

  • SAXÓFONO
  • DOM

SAX (Simple API for XML), es la API para XML más ampliamente adoptada en Java y se considera el estándar de facto. Aunque comenzó como una biblioteca exclusiva de Java, ahora es una API muy conocida distribuida en una variedad de lenguajes de programación. Es un proyecto de código abierto y recientemente cambió a la infraestructura del proyecto SourceForge que facilita el seguimiento de los problemas abiertos de SAX fuera de la lista de desarrolladores de XML de gran volumen. La última versión actual a partir del 10/01/2018 es SAX 2.0. Utiliza un mecanismo de acceso en serie controlado por eventos para acceder a documentos XML y lo utilizan con frecuencia los subprogramas que necesitan acceder a documentos XML porque es la API más rápida y que consume menos memoria disponible para analizar documentos XML. El mecanismo que utiliza SAX lo hace independiente de los elementos anteriores, es decir, es independiente del estado.

DOM significa Modelo de objeto de documento. La API DOM proporciona las clases para leer y escribir un archivo XML. DOM lee un documento completo. Es útil al leer archivos XML de tamaño pequeño a mediano. Es un analizador basado en árbol y un poco lento en comparación con SAX y ocupa más espacio cuando se carga en la memoria. Podemos insertar y eliminar Nodes usando la API DOM.

XML-parsers

Ahora, el paquete que proporciona aplicaciones de vinculación para clientes que trabajan con un documento XML se llama XML Parser. Se planeó leer los documentos XML. Se creó un XML Parser para hacer que los programas usen XML.

Analizador SAX 

SAX representa una API simple para XML y SAX Parser implementa una API SAX. Esta API se denominó API basada en eventos que proporciona interfaces en los controladores. Hay cuatro interfaces de controlador. Interfaz ContentHandler, DTDHandler, EntityResolver y ErrorHandler. No crea ninguna estructura interna, sino que toma las ocurrencias de los componentes de un documento de entrada como eventos y luego le dice al cliente lo que lee a medida que lee el documento de entrada. Es adecuado para archivos XML grandes porque no requiere cargar todo el archivo XML.

Características del analizador SAX

  • La estructura interna no puede ser creada por SAX Parser.
  • Estos analizadores SAX basados ​​en eventos funcionan igual que el controlador de eventos en Java.

Ventajas del analizador SAX

  • Muy simple de usar y tiene buena eficiencia de memoria.
  • Su tiempo de ejecución es demasiado rápido y puede funcionar para un documento o sistema de archivos más grande.

Desventajas de SAX Parser

  • Su capacidad para comprender las API es demasiado inferior a la de una API basada en eventos.
  • No podemos saber la información completa debido a una gran cantidad de datos.

Analizador DOM

DOM representa el modelo de objeto de documento. Cuando un objeto contiene alguna información sobre documentos XML, se denomina DOM Parser. Esto parece una estructura de árbol. La API DOM se implementa mediante un analizador DOM, que es muy fácil y simple de usar. Representa un documento XML en formato de árbol en el que cada elemento representa ramas de árboles y crea una representación de árbol en memoria del archivo XML y luego lo analiza, se requiere más memoria para esto.

Características del analizador DOM

  • La estructura interna puede ser creada por DOM Parser.
  • Debido a estas estructuras internas , el cliente puede obtener información sobre los documentos XML originales.

Ventajas del analizador DOM

  • DOM API es fácil de usar para que podamos realizar operaciones de escritura y lectura.
  • Cuando se requiere un documento, se prefiere una parte amplia a la que se pueda acceder aleatoriamente.

Desventajas del analizador DOM

  • Su eficiencia de memoria no es muy buena, requiere más memoria porque se necesitan documentos XML para cargar allí.
  • En comparación con el analizador SAX, es demasiado lento.

Por lo tanto, las diferencias concluyentes entre SAX Parser y DOM Parser en Java son las siguientes

Analizador SAX

Analizador DOM

Se llama una API simple para el análisis de XML. Se llama Modelo de objeto de documento.
Es un analizador basado en eventos. Se mantiene en una estructura de árbol. 
SAX Parser es más lento que DOM Parser. DOM Parser es más rápido que SAX Parser. 
Lo mejor para archivos de mayor tamaño. Mejor para el tamaño más pequeño de los archivos.
Es adecuado para crear archivos XML en Java. No es bueno para crear archivos XML con poca memoria.
La estructura interna no puede ser creada por SAX Parser. La estructura interna puede ser creada por DOM Parser.
Es de solo lectura. Puede insertar o eliminar Nodes.
En el analizador SAX, la navegación hacia atrás no es posible. En el analizador DOM, la búsqueda hacia atrás y hacia adelante es posible
Adecuado para una memoria eficiente. Adecuado para documentos XML grandes.
Una pequeña parte del archivo XML solo se carga en la memoria. Carga documentos XML completos en memoria.

Publicación traducida automáticamente

Artículo escrito por Satyabrata_Jena y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *