Delphi y XML (1)

XML que significa eXtenible Markup Language (lenguaje de marcas extensible) es para mi, muy a pesar de su nombre, no un lenguaje si no un formato para representar data/información arbitraria (por eso lo de extensible).

XML al igual que HTML son derivados de un concepto más genérico llamado SGML, por lo que comparten los conceptos jerárquicos así como la idea de tags o etiquetas, de ahi que ambos se vean muy parecidos a simple vista.

XML a cobrado notoriedad desde hace algunos años atrás como una forma muy legible (para humanos) de representar casi cualquier tipo información, al ser puramente texto con reglas explícitas para manejar caracteres especiales y no imprimibles, lo hace muy fácil de transportar entre plataformas y lenguajes.

XML tiene la particularidad de poder almacenar tanto la información en sí, como meta-información en la forma de tags y atributos, por ejemplo:

<libros>
  <libro tipo="novela">
    <nombre>La casa verde</nombre>
    <autor>Mario Vargas Llosa</autor>
  </libro>
</libros>

Como se ve no es necesario conocer la intención del autor para saber de que se trata. Es bastante autodescriptivo, incluso se puede notar la jerarquía entre los elemetos.

Estas características lo hacen muy interesante como medio de almacenar y transportar información entre sistemas diferentes, en plataformas diferentes o lenguajes de programación distintos. Sin embargo tanta maravilla no es gratis. La información así descrita ocupa mucho más espacio que otros formatos binarios, la tarea de “parsear” la información tanmbién es más pesada. La carga para el humano lector es más fácil, pero para la máquina es más costoso, claro que para eso están las máquinas, para reducir nuestro esfuerzo.  NOTA: Estas consideraciones deberían tomarse en cuenta cuando se transmite grandes volumenes de información y/o el tiempo de procesamiento debe ser mínimo.

Delphi puede manejar XML usando diferentes mecanismos. Delphi 2009/2010 incluye al menos 3 motores distintos, versiones previas usan el Microsoft MSXML, aunque también hay varios componentes de terceros, algunos comerciales y otros free.

En Delphi 2010 se incluyen:

  • MSXML, de Microsoft que usa la Msxml.dll
  • Xerces, es una librería escrita en C++, que es parte del proyecto Apache.
  • ADOM, Alternative Dom, que es una nueva versión de OpenXML, escrita integramente en Delphi por lo que no depende de ninguna librería externa.

Todas ellas permiten crear Documentos XML, cargar un Documento XML desde un archivo, grabrlo a un archivo, recorrerlo, y hacer búsquedas.

Para entender como se trabaja con XML debemos conocer algunos conceptos primero:

  • Un Documento XML está formado por un conjunto de nodos, organizados jeráquicamente.
  • Un nodo tiene una etiqueta o tag, puede tener atributos, y puede tener un contenido.
  • Un nodo esta limitado por una etiqueta de inicio y una de fin.
  • Un Docuemento XML tiene un solo nodo raíz, a partir del cual se arma toda la jerarquía.

Por ejemplo si el pedazo de código de líneas arriba es un documento XML entonces diriamos que:

<libros>

Es el nodo raíz, este nodo tiene una etiqueta de inicio que es “<libros>” y una etiqueta de fin que es “</libros>”

  <libro tipo="novela">

Este nodo tiene por etiqueta o tag <libro> , vemos que además tiene un atributo llamado tipo y cuyo valor es novela.

Finalmente en el siguiente nodo:

  <nombre>La casa verde</nombre>

Es un nodo de tag <nombre> y que tiene un contenido que es “La casa verde”.

Ya me cansé por hoy así que acá lo dejo.

En la siguiente entrada veremos código de como se maneja XML en Delphi.

Anuncios

Publicado por

danielluyo

Programador con experiencia en Delphi, Java, C/C++, VB, SQL, PHP.

Un comentario en “Delphi y XML (1)”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s