Ir al contenido principal
He estado investigando el manejo de datos XML (Extensible Markup Language) en VOS y OpenVOS, y pensé que sería útil compartir lo que aprendí con un público más amplio.

 

¿QUÉ ES XML?
La siguiente descripción de XML está tomada de "XML: Guía para principiantes", de Dave Mercer. (Osborne/McGraw Hill, 2001).

 

"SGML (Standard Generalized Markup Language) es una norma internacional (ISO 8879) para la definición de métodos de representación de la información, tanto legibles por el hombre como por la máquina, independientes del dispositivo y del sistema. Los lenguajes que se ajustan a las reglas del SGML se denominan aplicaciones, y el HTML es una aplicación del SGML. [...] HTML no tiene disposiciones para extenderse de manera estándar a nuevas etiquetas, atributos, estructuras de datos o tipos de contenido... XML, en lugar de ser un lenguaje predefinido como HTML, es una forma predefinida de definir nuevos lenguajes evitando la naturaleza excesivamente compleja de SGML. Técnicamente, XML incluye un subconjunto de las capacidades que se encuentran en SGML".

 

Un esquema XML es un método para definir un documento XML específico (o una clase de documentos). Describe la estructura de un documento, incluidos los elementos, atributos, tipos de datos y restricciones que pueden utilizarse, de manera muy similar a como se definiría una base de datos.

 

Una definición de tipo de documento XML (DTD) tiene un propósito similar al de un esquema.

El XML existe desde hace más de 10 años, y hay una serie de productos y métodos que compiten entre sí, así como una serie de normas relacionadas. También hay muchos libros de comercio sobre XML. O'Reilly publica un libro llamado "Learning XML" que puede ser de ayuda. Véase www.oreilly.com. El sitio web http://xml.com/, mantenido por O'Reilly, tiene varios artículos y enlaces útiles.

Los estándares XML son publicados por el World Wide Web Consortium, que se encuentra en http://www.w3.org. Los estándares son bastante secos, así que no recomiendo intentar leerlos.

 

XML se parece a HTML, y tiene una herencia similar a la de HTML, pero es una codificación de propósito mucho más general. HTML describe cómo deben verse los datos cuando se muestran en una página web. HTML, por sí mismo, no registra si un número representa una cantidad, un precio o un número de existencias. XML, por otro lado, no suele preocuparse por el aspecto de los datos; describe lo que significan los datos. Una aplicación común de XML es crear una codificación textual de una base de datos específica. XML tiene la capacidad de decir que este campo es un precio numérico, y que ese campo es un número alfanumérico de existencias, y así sucesivamente. Todos los datos de un documento XML se codifican como texto, lo que significa que los problemas de pegajosidad como la endianidad o la representación binaria de los números de punto flotante desaparecen. Así pues, el XML está ganando aceptación como un buen lenguaje para la comunicación de datos entre computadoras.
HERRAMIENTAS PARA PROCESAR XML

 

Conozco dos paquetes de código abierto de uso común que procesan XML. El primero es Expat y el segundo es Xerces. Ambos paquetes fueron creados en 1999. Expat fue el trabajo de un individuo; Xerces salió de IBM.

 

Hay dos modelos que compiten entre sí para tratar con el XML. Uno es el Modelo de Objeto de Documento (DOM) y el otro es el Simple API para XML (SAX). El método SAX (utilizado por Expat) lee a través de un documento XML de forma lineal, llamando a una función de manejo cada vez que se produce un elemento de marcado. El método DOM lee todo el documento XML y crea una jerarquía estructurada en forma de árbol. Se puede pensar en el SAX como un método de acceso secuencial y en el DOM como un método de acceso aleatorio. Xerces es compatible con las API de SAX y DOM. Hay paquetes de terceros que proporcionan una API DOM a los expatriados (ver "simkin").

 

Aunque utilizamos el término "documento XML", en la práctica el texto codificado en XML podría ser un archivo o un flujo de datos. Normalmente, se suministran las funciones que recogen el texto y lo entregan al analizador, de modo que puede proceder de cualquier fuente.

 

EXPAT

 

Expat está diseñado para leer XML y tomar alguna acción cada vez que un elemento XML aparece. No he visto ninguna documentación que sugiera que puede crear flujos de datos basados en XML. Expat está escrito en C. También hay una versión de Xerces para Perl y Java.
Un puerto de expatriación a VOS está disponible en:

 

El sitio web principal para expatriados es:

 

y

 

Una buena introducción al expatriado se puede encontrar en la página de sourceforge home ; aquí está el enlace:

 

 

Puede encontrar enlaces a otros paquetes de código abierto que usan expat en http://www.libexpat.org/.

 

XERCES

 

Xerces puede leer y escribir flujos de datos XML. Xerces está escrito en C++ y está diseñado para ser llamado por programas de C++.

 

Tom Mallory y yo portamos la versión 2.8.0 de Xerces para un cliente de Stratus a mediados de 2008. Nuestro objetivo era una plataforma de la Serie V. La versión actual de Xerces es la 3.0.1. Si está interesado en obtener una copia de este puerto, por favor contacte con el equipo de su cuenta.

 

El sitio maestro para los xerces es:

 

¿CUÁL USAR?

 

Si sólo quiere analizar el documento codificado en XML, y su procesamiento es compatible con la lectura secuencial del flujo de datos, entonces le recomiendo que use expat. Aunque está escrito en C, gracias a que todos los lenguajes de programación VOS pueden llamar a funciones y subrutinas escritas en cualquier otro lenguaje de programación, puedes llamar a expat desde cualquier lenguaje VOS.

 

Si sus requisitos incluyen la capacidad de realizar operaciones de acceso aleatorio en un documento XML, o quiere crear XML, y se siente cómodo programando en C++, entonces le recomiendo que utilice Xerces.

 

Si necesita ayuda para añadir la capacidad de manejar documentos XML a su aplicación, póngase en contacto con su equipo de cuenta local Stratus .