Cómo hacer la conversión y adaptación de documentos XML
20/06/2018
Carlos Yañez

Cómo hacer la conversión y adaptación de documentos XML

Informática y Tecnología

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:
    • <?xml-stylesheet type=“text/xsl” href=“estilo.xsl”>
  • El elemento utilizado en la hoja de estilos para realizar las transformaciones es la plantilla.
Plantillas
  • Establece las transformaciones a realizar en el documento.
  • Se definen utilizando el elemento xsl:template.
  • A través del atributo match, se establece el patrón.
  • El patrón indica la rama del árbol XML sobre la que se aplica la plantilla.
  • El atributo name que dará nombre a la plantilla para poder ser invocada desde la instrucción
    • <xsl:call-template name=nombre_de_plantilla>
  • Para seleccionar el árbol del documento completo, se utiliza el patrón raíz (/): <xsl:template match=“/”>
    • instrucciones de plantilla
      </xsl:template>
  • 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 <xsl:stylesheet type=”text/xsl” href=”FICHERO_XSL.xsl”?> 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

Cómo hacer la conversión y adaptación de documentos XML
Carlos Yañez

Biografías: Ingeniero Superior de Telecomunicaciones por la UPC. Director de Informática en un Laboratorio de Análisis con implantación nacional. Profesor de los cursos de Electrónica y Técnico en Sistemas Microinformaticos y Redes.