viernes, 5 de septiembre de 2014

XML con C# (C1A5): Transformación y Representación de Datos - XLST

Índice

0. Introducción
1. ¿Qué es XSLT?
2. Elementos Integrales de XSLT?
3. Aplicaciones
4. Implementaciones
5. Ejemplo
6. Artefactos
7. Conclusiones
8. Glosario
9. Literatura & Enlaces

0. Introducción

Esta quinta parte de la serie de artículos introductorios a XML en .NET comprenderá el estudio de XLST como lenguaje de transformación y representación de documentos XML a otro tipo de documentos. Esta necesidad de transformación, como veremos, es una condición o requerimiento de muchas aplicaciones de uso diario (como navegadores) y aplicaciones transaccionales de negocios. Veremos que XLST viene acompañado de otras herramientas que potencializan este proceso de transformación y representación de datos.

1. ¿Qué es XLST?

XLST son las siglas de eXtensible Language Stylesheet Transformations. Este lenguaje permite la transformación y representación de un documento XML (la fuente) a otra representación a través de diferentes transformaciones declarativas; el destino puede inclusive ser otro documento XML, un archivo de texto plano, un página Web HTML o XHTML, o cualquier otro formato de destino útil para el contexto de aplicación en donde se requiere este cambio de representación. XLST es una de las recomendaciones de W3C desde 1999.

2. Elementos Integrales de XLST

XLST, podríamos decir de acuerdo con [2], está compuesto esencialmente por procesador de XSLT que compromete otros elementos dependientes para la transformación:
  • Entrada XML: Documento XML con la representación y los datos fuente a ser transformados a otra representación.
  • Código XSLT: Documento con las reglas de transformación del documento XML a un destino específico.
  • Documento salida: La salida de la transformación puede ser una representación en un nuevo documento XML, o archivo de texto plano, o HTML.

En la Figura 1 queda descrito gráficamente estos elementos y el flujo de transformación.
Elementos básicos de XLST
Figura 1. Elementos básicos de XLST [2].

3. Aplicaciones

La interacción de uno o más sistemas puede requerir la implementación de un esquema de intercambio de datos funcional, además, de efectivo. Es en este contexto donde XLST entra en escena para ofrecer, por ejemplo, a aplicaciones de negocio (B2B [4]) un mecanismo para intercambio de datos entre aplicaciones transaccionales (e.g., punto de venta, manejo de inventario, gestor de nómina, manejador de producción) de diferentes compañías que se han asociado como parte de una estrategia de expansión o colaboración.


En un caso particular, si una aplicación App1 interactúa con otra aplicación App2 es posible que los formatos de representación de datos de App1 (XML) sean totalmente diferentes a los utilizados por App2 (archivo de texto plano).  En este escenario XSLT brinda el mecanismo apropiado para el intercambio de datos. En la Figura 2 se presenta una diagrama que describe el rol de XLST en el intercambio y representación de datos, análogo a la situación descrita.
Transformación de XLST - XML a XML
Figura 2. Transformación de XLST - XML a XML.

4. Implementaciones

En el contexto de Microsoft .NET Framework y MSXML, MSXML cuenta con procesador de XLST que puede ser accedido a través de la utilidad de línea de comandos msxsl.exe.

[Nota: En futuros artículos trataremos más a fondo con esta utilidad, por ahora mantengamos este conocimiento como referencia.]

5. Ejemplo

A partir de un documento XML que consiste en una estructura de Personas con nombre y apellido, y nombre de usuario realizar una transformación XSLT a XML y XHTML:

Archivo XLST XsltPersonasXml.xsl [enlace alternativo]:

El archivo NuevoPersonas.xml es el archivo generado al transformar Persona.xml con la especificación XSLT en el archivo XsltPersonasXml.xsl:

Archivo XML NuevoPersonas.xml [enlace alternativo]:

También podemos crear un archivo XSLT con la especificación necesaria para transformar de XML a XHTML:

Archivo XSLT XsltPersonasXhtml.xsl [enlace alternativo]:





Al abrir este último archivo en Internet Explorer tenemos el siguiente resultado:
Archivo XHTML en Internet Explorer
Figura 3. Archivo XHTML en Internet Explorer.

[Nota: Con la herramienta online ToolZ [5] podemos probar los ejemplos de código anteriores para comprender mejor la funcionalidad de XSLT en la transformación de archivos XML.]

6. Artefactos

Artefactos generados en la producción de este artículo:

7. Conclusiones

En este artículo acerca de XML con C# hemos comprendido los conceptos esenciales acerca de la transformación y representación de documentos XML a través de XSLT. Este lenguaje permite cambiar la representación de un archivo XML un destino específico, como podría ser un archivo XML, un archivo de texto plano, o cualquier otro formato requerido por aplicaciones transaccionales o de usuario final (e.g., navegador Web). En el próximo artículo trabajaremos con XPath el cual se haya estrechamente relacionado XSLT.

8. Glosario

  • Aplicación de negocio
  • Archivo de texto plano
  • Navegador web
  • Representación
  • Transformación
  • XHTML
  • XML
  • XSLT

9. Literatura & Enlaces

[1]: Beginning XML with C# 2008 From Novice to Professional by Bipin Joshi. Copyright 2008 Bipin Joshi, 978-1-4302-0998-0.
[2]: XSLT - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/XSLT
[3]: XSLT Tutorial - http://www.w3schools.com/xsl/
[4]: Business-to-business - Wikipedia, the free encyclopedia - https://en.wikipedia.org/wiki/Business-to-business
[5]: XSLT Transformation - Online Toolz - http://xslt.online-toolz.com/tools/xslt-transformation.php


J

No hay comentarios:

Publicar un comentario

Envíe sus comentarios, dudas, sugerencias, críticas. Gracias.