Editorial
  La editorial | Tecnología XML | Creación de contenidos | Flash | Proyecto A MEDIDA | Trabajos realizados | Foro Contacta con nosotros 

Tecnología XML


Presentación

xmlYes Sistemas Informáticos se ha establecido como una de las empresas pioneras en la edición de contenidos basados en la tecnología XML, un sistema de marcación que, gracias a sus características, reduce el coste de productividad final de los productos digitales y permite, a partir de una única fuente de información debidamente etiquetada (el fichero XML), generar contenidos multimedia en diferentes formatos, como HTML, PDF, DVD, Mp3, etc.

¿Qué beneficios representa para mí el uso de tecnología XML?

La respuesta es muchos. Veamos unos ejemplos:

Existen un sinfín más de posiblidades que pueden resolverse gracias a esta tecnología. Para poder entender un poco qué es el XML, qué posiblidades ofrece y por qué resulta tan beneficioso, reproducimos a continuación el siguiente texto de Nicolás Lichtmaier introduciéndonos al mundo del XML.




Introducción al XML

El problema

Nunca fue una tarea fácil en informática el mover información de un lugar a otro. La información queda generalmente fuertemente ligada al programa con que fue creada, y es así como se pierde mucho tiempo en pasar de Word a Excel a Quatro Pro a páginas HTML a lo-que-sea. Y además esa información está también fuertemente ligada a cómo quiso verla el que la creó. Muchos seguramente han tenido que sobrellevar la ardua tarea de reacomodar un documento de Word hecho por un neófito, usando espacios en vez de tabs o poniendo enter al final de cada renglón...

Sería conveniente entonces disponer de algún mecanismo para tener información pura. ¿Sirve usar sólo texto? No, porque la información tiene su propia estructura interna que es importante preservar, más aún si debemos manejar colecciones importantes de muchos documentos similares en su tipo. Deberían poderse extraer fácilmente todos los títulos de los documentos de una colección así.

Un ejemplo sencillo (y quizá trillado): una colección de 750 recetas de cocina. ¿Escribirlas todas en Word? ¡Qué peligro! ¿Qué pasaría si me dicen que es necesario tenerlas en HTML? ¿O imprimirlas en un libro usando programas específicos y cierto estilo de tipografía para los ingredientes? Entonces es conveniente poner mayor atención al elegir el formato a emplear. ¿Sólo texto? nah... es evidente que una receta se divide en partes bien identificadas, así que usar sólo texto es perder información, y estamos aquí para tratar de guardar la mayor cantidad.

La solución

XML nos dice que podemos estructurar la información en un árbol. Es decir imaginar a la receta como un componente, que a su vez esta formado de componentes, y así sucesivamente. Cada componente podría tener texto y/o más componentes. ¿Se entiende? Una posible estructura sería imaginar que la receta tiene un componente llamado necesitamos. No todo el texto estaría dentro de necesitamos, solamente aquellas cosas que el potencial ejecutor de la receta necesitaría para llevarla a cabo exitosamente. Dentro podríamos tener uno o más componentes llamados ingrediente. Veamos como quedaría ésto (usando ya la sintaxis de XML).

<receta>
  ...
  <necesitamos>
    <ingrediente>2 cucharadas de azucar</ingrediente>
    <ingrediente>3 manzanas</ingrediente>
  </necesitamos>
</receta>

¿Se adivina cuál es la sintaxis de XML? Es simplemente encerrar al texto que pertenece a un componente entre <componente> y </componente>. Bueno, en realidad nadie les llama componentes, a cada uno de estos bichos se les suele decir tag.

En pantalla

El círculo se completa mediante una hoja de estilo, que es una descripción de como debe verse una información en determinado medio. A un mismo documento XML se le pueden aplicar distintas hojas de estilo según convenga. Por ejemplo usando una hoja de estilo por cada medio en la que se debe representar la información. Una para imprimir un libro, otra para una página WWW y otra para un programa que lee la información en voz alta. Las primeras dos dirán algo así:

En cambio, una hoja de estilo destinada a formatear la información para su lectura tendrá algo así como

También podría controlarse el volumen, o incluso de qué lado viene la voz.

Las hojas de estilo también pueden controlar la conversión de esta "información pura" en formatos más pedestres, como RTF (para usar con el Word), HTML, etc. De esta manera, cuando ya tenga las 750 recetas tipeadas y puestas en la WWW mediante una hoja de estilo adecuada, y alguien me diga “Me traés todo mañana en tal formato para publicar un libro”, yo podré responder orgulloso: “¡Claro que sí!”.

Existen actualmente dos lenguajes de hojas de estilo, y los describo brevemente a continuación.

CSS

Uno de ellos es el bastante conocido CSS (Cascading Style Sheets), que ya está parcialmente implementado en los navegadores de WWW actuales más importantes. Este lenguaje simplemente permite definir como deben tratarse los tags. Solamente se pueden brindar indicaciones simples como... ponés eso de rojo, y esto de azul y grande.

Una descripción en CSS se ve más o menos así:

ingrediente {
    font-family: sans-serif;
    color: red;
}

XSL

El W3 Consortium creó nuevo lenguaje de hojas de estilo llamado XSL (eXtended StyleSheet Language) que además de lo que brinda el CSS tiene la capacidad de funcionar como un lenguaje de transformación, alcanzándose la funcionalidad que describía más arriba.

XSL es en verdad dos estándares muy diferentes:

XSLT

Es un lenguaje que describe como debe transformarse un archivo XML en otro archivo XML. Por ejemplo, un archivo conteniendo tags que describen una receta puede convertirse mediante este sistema a otro archivo conteniendo tags que solamente describen la posición del texto en una página impresa. Obviamente en semejante transformación hay información que se pierde. La idea es que aplicando diferentes archivos XSLT se puedan obtener archivos XML diferentes, adecuados a diferentes presentaciones o usos de la información.

Esta parte del estándar está ya publicada en su version 1.0 final, y ya existen varias implementaciones de diferente calidad.

XSL FO

FO quiere decir formatting objects. Un archivo XSLFO es una especie de HTML muy sucio de tags de colores, tamaños y posición. Es un archivo que no preserva nada de la semántica de la información original, solamente describe como debe mostrarse en pantalla, o en papel. Es similar en concepto al lenguaje PostScript, o quizá al TEX.

Este formato, que obviamente es un formato XML, se puede usar generándolo mediante una transformación XSLT. Siguiendo el ejemplo que usé antes ya podemos describir un circuito bastante completo de lo que pasa con la información:

XML con las recetas + transformación XSLT --> objetos FO

Esta parte del estándar es un trabajo en progreso y todavía ningún browser está ni cerca de soportarlo. El tiempo dirá si se convierte en un estádar de la industria o no. Lo que sí se está empezando a usar mientras tanto como lenguaje presentacional es XML+CSS. Es decir, del limpio, lindo y buen XML generar sucio HTML, que no es otra cosa que un lenguaje presentacional... no está tan mal.

Otras tecnologías asociadas son DOM (Document Object Model) y SAX, que son APIs estándares para acceder a los "árboles" de información XML.

Transformaciones de un XML

Revolviendo datos

Vamos a ver también que la pantalla no es el único destino posible de un documento XML. Estos archivitos se usan muy fácilmente como entrada para programas. Las recetas del capítulo anterior, podrían, en algún otro siglo, activar un plugin conectado a un robot, replicador o lo que sea encargado de ejecutarla automáticamente =). Esto suena quizá demasiado fantasioso, pero en el caso del MathML, que va a distribuir ecuaciones matemáticas semánticamente, tiene mucho sentido mover el ratón sobre la ecuación, y en el menú del botón derecho seleccionar: “despéjame x por favor”.

¿Cuál es la cualidad distintiva de la informacion estructurada? “Que tiene estructuras”, es la respuesta obvia. Y esas estructuras son las que uno quiere manipular desde algún programa. Ya entendimos que un archivo XML cargado en memoria se modela como un árbol. Entonces, una API que nos permita trabajar con los datos de un archivo XML es muy semejante a una API que nos permita manejar árboles. Una API así tendrá obviamente funciones del tipo "agregar hijo", "dame padre", etc. Esa API es DOM. Se puede encontrar más información sobre DOM en la página de DOM del W3C.

XML se está mencionando mucho hoy en día cuando hay varias partes que desean dialogar entre sí. XML les provee una forma de definir un vocabulario y de definir interfaces entre ellos que vayan evolucionando decente con el tiempo. Por ejemplo un sitio de compras por internet dialogando con una empresa de tarjetas de crédito. De ésta manera, las recetas de su libro de cocina se pueden usar como entrada de un programa para, por ejemplo, hacer resúmenes estadísticos sobre los ingredientes.



Comprobación de XML

Aquí tiene un validador XML en JavaScript. Con él puede comprobar si la sintaxis escrita es correcta o no, y comprobar lo sencillo que es escribir documentos en XML que luego podrán transformarse con los filtros XSL.

Validar

(c) 1995-2008 Yes Sistemas Informáticos, S.L. - Passeig Sant Joan 97 - 08019 Barcelona
domains.ysi.net | webmail2.ysi.net | editorial.ysi.net | support.ysi.net | ecommerce.ysi.net
Valid XHTML 1.0 Transitional