Cómo hacer la conversión y adaptación de documentos XML
Los documentos XML son archivos que permiten disponer de información estructurada en base a etiquetas para posteriormente poder ser presentada o formateada con diferentes opciones de visualización.
En el post de hoy veremos qué es el lenguaje XML y cómo los documentos XML pueden ser convertidos y adaptados para un tipo de visualización específico.
¿Qué es XML?
XML es un Lenguaje de Etiquetado Extensible muy simple, pero a la vez muy estricto que juega un papel fundamental en el intercambio de una gran variedad de datos.
Es un lenguaje muy similar a HTML, pero su función principal es describir datos y no mostrarlos como es el caso de HTML.
En definitiva, XML sirve para estructurar, almacenar e intercambiar información para posteriormente poder ser mostrada en diferentes formatos, para lo cual pueden usarse diversas tecnologías
Tecnologías para el manejo de XML
Las tecnologías XML son un conjunto de módulos que ofrecen servicios útiles para las necesidades más frecuentes de los usuarios.
Las tecnologías XML más usadas para manipular ficheros XML son:
- XSL: Lenguaje Extensible de Hojas de Estilo, cuyo objetivo principal es mostrar cómo debería estar estructurado el contenido, cómo debería ser diseñado el contenido de origen y cómo debería ser paginado en un medio de presentación como puede ser una ventana de un navegador Web o un dispositivo móvil, o un conjunto de páginas de un catálogo, informe o libro.
- XPath: Lenguaje de Rutas XML, es un lenguaje para acceder a partes de un documento XML. Con este lenguaje se recorren y procesan documentos XML.
- XSLT: especificación que desarrolla el lenguaje de transformación. Hace uso de la especificación XPath. Ha sido diseñada para ser utilizada de forma independiente, aunque es utilizada desde la especificación XSL.
- XLink: Lenguaje de Enlace XML, es un lenguaje que permite insertar elementos en documentos XML para crear enlaces entre recursos XML.
- XPointer: Lenguaje de Direccionamiento XML, es un lenguaje que permite el acceso a la estructura interna de un documento XML, esto es, a sus elementos, atributos y contenido y así identificar de forma única fragmentos del documento.
- XQL: Lenguaje de Consulta XML, es un lenguaje que facilita la extracción de datos desde documentos XML. Ofrece la posibilidad de realizar consultas flexibles para extraer datos de documentos XML en la Web.
¿Cómo convertir y adaptar documentos XML para su visualización?
Cuando hablamos de convertir y adaptar documentos XML, nos referimos a poder visualizar esos ficheros XML de forma más amigable transformando el documento en otros formatos de mejor visualización
Lo importante es que dichos documentos XML estén bien formados y sean válidos. Es decir, que por un lado no tengan errores de sintaxis y por otro no incumple ninguna de las normas establecidas en su estructura.
Para esto usaremos XSL, XSLT y XPath que son herramientas XML mencionadas anteriormente.
Aquí hablaremos de forma genérica de XSL pero inicialmente en la definición del estándar de 1998, las tres definiciones estaban separadas aunque entre ellas son necesarias para realizar una transformación XML.
Partiendo de un fichero XML en el que tenemos la información estructura mediante etiquetas que identifican cada uno de los datos, lo primero que deberemos hacer es definir el fichero XLS que nos va a definir para cada una de las etiquetas del fichero XML cómo debe ser su visualización.
El fichero XSL viene a ser el equivalente a la hoja de estilos o CSS que se usa para dar formato a la página HTML. Nos apoyamos en XPath para seleccionar partes del fichero XML y de XSLT para realizar la transformación
Es importante formar el fichero XLS de forma correcta para que los datos de muestren como se desea.
Resumiendo:
- Tenemos que partir de un fichero XML del que conozcamos la estructura y esté creado de forma correcta con sus diferentes nodos.
- Tenesmo que disponer de un fichero XSL adecuado para el XML que queremos tratar y en el que definiremos todo el formato que queramos aplicar ya sea con una plantilla única o con diferentes plantillas en función del dato a presentar.
En el fichero XSL tenemos la opción de usar diferentes operadores para tratar de forma adecuada el dato estructurado del fichero XML y poder darle formato.
Veamos más a fondo los que compone una hoja de estilo XSL
Estructura de una hoja de estilo XSL
- Una hoja de estilos XSL es un documento XML con extensión .xsl, en el que se define las transformaciones a realizar en el documento, mediante una serie de elementos y atributos.
- La hoja de estilo incluye el elemento stylesheet, que declara el espacio de nombres para poder utilizar los elementos y atributos XSL
- Para utilizar una hoja de estilos XSL en un documento, se utiliza la instrucción de procesamiento xml-stylesheet
- Las instrucciones de plantilla indican la transformación a realizar sobre el patrón. XPATH
Operadores
Existen diferentes operadores para revisar el cumplimiento de la condición que determinará si se aplica o no el formato definido. Estos son:
- and
- or
- not()
- =
- !=
- < $lt$
- <= $ile$
- > $gt$
- >= $ige$
Elementos de plantilla
- Se utilizan para construir las instrucciones de plantilla.
- Pertenecen al vocabulario XSLT, definido en el espacio de nombres XSL.
- Los más utilizados son:
- xsl:value-of
- xsl:if
- xsl:for-each
- xsl:apply-templates
- xsl:choose
- xsl:output
- xsl: include
Una vez tenemos el fichero XML y el XSL bien definidos, lo que queda es vincular un fichero con otro para que el servidor sepa que hoja de estilo o XSL debe utilizar para aplicar el formato al XML.
Esta vinculación es muy sencilla y se realiza en el fichero XML incluyendo una línea similar a esta al inicio, antes de definir los nodos del mismo, tal y como habíamos mencionado anteriormente.
De esta forma, estamos indicando mediante que XSL queremos formatear la salida.
Hemos visto en el post de hoy y de forma rápida cómo formatear un fichero XML con un XSL, así como los componentes que puede llegar a tener un fichero XSL. El tema puede ser más extenso y si estás interesado te recomiendo buscar información en Internet.
Curso relacionado: Desarrollo de aplicaciones multiplataforma
Escrito por Carlos Yañez