XML
Ramiro Lago (Enero 2007)
Introducción
XML: EXtensible Mark-up Language (lenguaje de marcado extensible). Es un lenguaje orientado a:
- La definición de datos de carácter general. Nos permite definir modelos
de datos, a diferencia de HTML, que está orientado a la presentación.
- Nos permite establecer jerarquías de forma más flexible que HTML.
- Al compartir modelos de datos se facilita el intercambio de datos entre sistemas
heterogéneos.
- Crear nuevos lenguajes gracias a sus mecanismos de extensibilidad. Por ello, se dice que XML
es un metalenguaje (un lenguaje para crear nuevos lenguajes).
Enlace a una introducción a XML en formato ppt.
XML no se compromete con la presentación de los datos. Si es necesario determinar el formato de un
documento XML recurriremos a XSL, EXtensible Styleheet Language (lenguaje de estilo extensible).
XSL tiene dos elementos: la transformación del árbol con XSLT y el formato (XMSL-FO, objetos de formato XSL).
Analizadores
Un analizador XML es una herramienta (API, aplicación, etc.) que descompone el archivo XML y nos permite acceder a sus elementos.
Lo que aqui nos interesa son los APIs. Los casos más conocidos hasta la fecha:
- SAX: Simple API for XML. Típico caso de programación orientada a eventos. El analizador recorre la estructura y se
generan los eventos correspondientes a los elementos que se encuentran (startDocument, skippedEntity, etc.).
- DOM: Document Object Model. Representamos el archivo en una estructura de árbol.
- Extensiones a DOM, como JDOM o JAXP. Este último es "Sun Java for XML Processing", la
implementación de Sun para el estilo de análisis DOM. Disponible a partir de la versión 1.4
A priori SAX parece adecuado para procesar archivos muy grandes (donde no quiere guardar toda la escructura
del árbol en memoria) o si sólo se está interesado en unos pocos elementos del archivo.
Ejemplos de código Java
Un ejemplo de lectura SAX con un DTD
Un ejemplo de lectura SAX con un Esquema XML
Volver al índice