lunes, 1 de noviembre de 2010

a las Leave a Comment

XML y sus ventajas

Trabajo en el Departamento de Informacion y de Sistemas de la Universidad de Montemorelos, como desarrollador del modulo Financiero, perteneciente al Sistema Institucional. (que bien se escucha esto, no?)

Esta semana, después de haberse cancelado el desarrollo de Facturación Digital, nos pidieron que investigáramos la manera de sacar provecho de los conocimientos adquiridos durante ese proceso y tratar de aplicarlos al sistema actual.

Lo mas importante que aprendimos durante el tiempo que duro el desarrollo de la Facturación Digital, fueron tres tecnologías: XML, XSD y XSLT, por lo que el aplicar esos conocimientos al desarrollo del sistema actual, tenia que ser sobre como sacar ventajas o provecho a XML, asi pues me di a la tarea de investigar y esto fue lo que encontre y a continuacion resumo:


Que es XML?

XML es un Lenguaje de Etiquetado Extensible muy simple, pero 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. XML es un formato que permite la lectura de datos a través de diferentes aplicaciones.

XML es a mi entender, un metalenguaje que sigue un conjunto de reglas que definen la manera de almacenar datos de manera estructurada en un "contenedor" o archivo de texto plano con extensión .xml

Para que sirve XML?

XML sirve para estructurar, almacenar e intercambiar información

Que ventajas me da?

 *Facilmente procesable:  
 Debido a que el XML es un archivo de texto plano, prácticamente cualquier aplicación puede leerlo y trabajar con el. Visto de otro modo, XML es un String o cadena de caracteres estructurados.

*Se puede usar en cualquier lenguaje o alfabeto:
Existen muchos tags o etiquetas, ya definidas por el lenguaje, pero uno puede crear sus propias etiquetas, asi que no hay limitaciones por un lenguaje usado, ni tampoco por el alfabeto usado, ya que XML usa la codificación de archivos UTF-8, lo cual lo hace universal.

*Aplicaciones web:
Debido a que XML es como un "contenedor" de datos, es posible almacenar todos los datos que uno quiera y dejar la interpretación de los mismos a la aplicación que los lea, así como también la manera de mostrarlos. Hasta ahora, cada navegador interpreta los datos a su manera, pero con XML, es una sola aplicación la que maneja los datos y para cada navegador, se puede especificar un hoja de estilo (XSL) que nos formatee los datos de manera especifica para ese navegador. Cabe señalar aquí, que los navegadores actuales, pueden procesar y transformar internamente un XML, dada alguna hoja de estilo.

*Comunicacion de datos:
Cualquier aplicacion puede escribir un archivo de texto plano con los datos que estaba manejando y alguna otra aplicación recibir la información y trabajar con ella. Un ejemplo curioso en la comunicación de datos es este: ¿Como pasaríamos los datos de un arreglo bidimensional por el URL? jeje, esto seria un caso muy raro, pero no deja de ser interesante, cierto? e imagino que ya saben la respuesta..., si, mediante un texto XML!

*Bases de Datos y Multiplataforma
Existen bases de datos que trabajan completamente en XML, por lo que un XML puede comunicarse directamente con cualquier base de datos lo soporte independientemente de la plataforma , o incluso puede leerse y guardar datos directamente, no importando la plataforma en que se origino la información. Por ejemplo, podríamos estar usando una base de datos postgres y mandar un archivo XML con los datos necesarios y recibirlo en una base de datos mysql y no habría ningún problema debido a que lo que se envía y recibe es un archivo de texto plano con datos que pueden ser fácilmente leídos. XML puede ayudarnos de esta manera a migrar fácilmente de una base de datos a otra.

*Validacion de datos
Aunque no garantiza que los datos esten 100% correctos, XML detecta formatos nulos o fuera de rango.


Como formatear un XML?

Para formateo de un XML, usamos una de las herramientas propias de XML llamada XSL (Extensible Stylesheet Language), en conjunto con XSLT (Extensible Stylesheet Language Transformer). En realidad, tenemos dos alternativas:

  1. Hojas de estilo CSS heredadas del lenguaje HTML, para el cual se disenaron
  2. Utilizar hojas de estilo XLS, especificamente disenadas para documentos XML


Una pequeña explicacion de lo que es cada una de las herramientas mencionadas:
  • XSL: (Extensible Stylesheet Language) Familia de lenguajes basados en el estándar XML que permite describir como la información contenida en un documento XML cualquiera debe ser transformada o formateada para su presentación en un medio. En definitiva, XSL es la plantilla del formato para presentar un documento XML. 
  • XSLT: (Extensible Stylesheet Language Transformation) Permite convertir documentos XML de una sintaxis a otra, como por ejemplo, de XML a HTML. En definitiva, XSLT, es el lenguaje para poder transformar los XML en otros tipos. Con esta breve explicacion y sin mas ni menos, voy a explicar a continuacion, como crear y formatear una tabla a partir de datos contenidos en un archivo XML:

Creamos un XML con informacion de libros:




  
    Fuente Ovejuna
    Lope de Vega
    84-9815-002-7
  
  
    La Celestina
    Fernando de Rojas
    84-96390-96-9
  
  
    Don Juan Tenorio
    Jose Zorilla
   84-96390-97-7
  


y lo guardamos con el nombre de libros.xml


A continuacion creamos el xsl:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
 <html>
 <body>
   <h1>Mis Libros</h1>

   <table border="1">
    <tr bgcolor="skyblue">
      <th align="left">Titulo</th>
      <th align="left">Autor</th>
    </tr>
  
   <xsl:for-each select="libros/libro">
    <tr>
      <td><xsl:value-of select="titulo"/></td>
      <td><xsl:value-of select="autor"/></td>
    </tr>
   </xsl:for-each>
   </table>

        <br/><br/>
        <hr/>
        Articulo disponible en: <a href="http://lineadecodigo.com/xslt/crear-una-tabla-a-partir-de-datos-xml/">http://lineadecodigo.com/xslt/crear-una-tabla-a-partir-de-datos-xml/</a><br/>
        <a href="http://lineadecodigo.com" title="Linea de Codigo">lineadecodigo.com</a>

 </body>
 </html>
</xsl:template>
</xsl:stylesheet>

Y lo guardamos con el nombre de tabla.xsl

Notese que en la cabecera del archivo xml se aniadio un enlace al documento de trasnformacion xslt

<>

<>

y tambien, notese que en el docuemnto .xsl se estan combinando facilmente XHTLM y XSLT sin ningun problema

<xsl:for-each select="libros/libro">
    <tr>
      <td><xsl:value-of select="titulo"/></td>
      <td><xsl:value-of select="autor"/></td>
    </tr>
   </xsl:for-each>

Fuentes y mas informacion:
Fuente original
Codigo Fuente
Algunos tips XSLT
Generar un XML y mostrarlo en un Servlet o JSP
Java y XML
XSL, Reglas, tips, consejos, buenas practicas

0 comentarios:

Publicar un comentario

Gracias por comentar.