XML

XML
XML

Versiones:
1.0 (primera edición) - 1.1 (Segunda edición)



XML(siglas en inglés de eXtensible Markup Language) es un lenguaje de marcado sencillo similar al HTML. Su objetivo es facilitar la representación, almacenamiento y trasmisión de información varia por parte de aplicaciones informáticas, computadoras y medios de comunicación digital en general.

XML no es un lenguaje en particular sino que sirve de marco para definir lenguajes para diferentes necesidades. Algunos ejemplos son XHTML, XSLT, SOAP.

Introducción

XML (siglas en inglés de eXtensible Markup Language) consiste en un conjunto de reglas para representar información en una forma fácilmente procesable por un ordenador. Su diseño persigue enfatizar la simplicidad y usabilidad a través de Internet. Su formato es basado en caracteres de texto con soporte para todos los idiomas. Originalmente diseñado para afrontar el reto que representa la publicación de información electónica a grán escala, XML ha jugado un gran papel en el intercambio de información en la Web y otras esferas.

Historia

El XML (eXtensible Markup Language = lenguaje de marcas extensible) comenzó a desarrollarse a fines de 1996 a instancias del World Wide Web Consortium (W3C) con la intención de crear un estándar en el lenguaje de marcas que permitiera integrar la simplicidad que ofrece el HTML y las posibilidades de expresión del GML (Generalized Markup Language), desarrollado por Internacional Bussiness Machine IBM a fines de los años 60 y principios de los 70.

La superación de las dificultades que tenía el uso del HTML en lo referido a la mezcla de los estilos que se aplican, las limitaciones al compartir la información con dispositivos (ordenadores o teléfonos móviles) y la presentación en pantalla la información en dependencia del navegador o visor utilizado, fueron las principales consideraciones que impulsaban este nuevo estándar.

Los antecedentes se encuentran en el GML que permitía guardar grandes volúmenes de información junto a la posibilidad de clasificar y escribir cualquier documento para procesarlo posteriormente de manera requerida.

La directiva de ISO, encargada de las normas a nivel global, se interesó en el nuevo lenguaje y en 1986 presentaron el SGML (Standard Generalized Markup Language), que estableció una definición de los estándares del lenguaje, sin embargo, aún resultaba un freno en el desarrollo de la distribución de la información sin las limitaciones que implica el formato en un documento.

Con el XML se pretendía la distinción del contenido y la estructura de los documentos para su presentación en papel o en pantalla, lo esencial era mostrar de manera explícita la estructura y los contenidos informativos, así como la creación de documentos que pudieran ser intercambiados y procesados con facilidad en sistemas informáticos heterogéneos.

XML se ha aceptado como facilitador de la gestión, también se utiliza en la recuperación, el intercambio y la codificación de contenidos y metadatos. La lista de iniciativas puestas en práctica es vasta, y aunque no todas han logrado nivel de aceptación, existen numerosos ejemplos de la aplicación exitosa de este lenguaje en los ámbitos académicos, empresariales e institucionales.

Desde 2004 se han mostrado nuevas propuestas e iniciativas relacionadas con el uso del lenguaje y se ha visto como algunas de sus especificaciones maduran continuamente hasta solidificarse. Continuamente ven la luz versiones de aplicaciones informáticas destinadas a trabajar con XML, así como el diseño de nuevos vocabularios o la adopción del lenguaje en distintos ámbitos de trabajo.

Este proceso se muestra en la publicación definitiva de la primera versión del vocabulario Universal Business Language (UBL) para el intercambio de documentos comerciales, el desarrollo del vocabulario DITA (Darwin Information Typing Architecture) por OASIS para la codificación y reutilización de documentación técnica; y el lanzamiento de nuevas versiones de programas informáticos como DB XML de Sleepycat Software, Astoria 4.3 o la adquisición de Advent Publishing por parte de Arbortext, son una muestra del auge que ha alcanzado la utilización del XML en el mundo de las ciencias de la información.

A partir del año 2005 creció el interés en las especificaciones orientadas a la integración de aplicaciones informáticas mediante el intercambio de datos a través de los servicios de la web, de ahí las utilidades en tal sentido que presenta el Tom Cat y el Eclipse, para dar salida a documentos cuya base sea el XML.

Ejemplo

Un documento XML consiste en etiquetas organizadas de formas herárquicas. Cada etiqueta representa una entidad y su ámbito se extiende hasta que se encuentra la etiqueta complementaria que lo cierra. Cada etiqueta es una marca hecha en el documento, que señala una porción de éste como un elemento. Un pedazo de información con un sentido definido. Las etiquetas tienen la forma <nombre>, donde nombre es el nombre del elemento que se está señalando.

     
     <?xml version="1.0" encoding="UTF-8" ?>
     <Mensaje>
       <Remitente>
            <Nombre>Nombre del remitente</Nombre>
            <Mail> Correo del remitente </Mail>
       </Remitente>
       <Destinatario>
            <Nombre>Nombre del  destinatario</Nombre>
            <Mail>Correo del destinatario</Mail>
       </Destinatario>
       <Texto>
            <Asunto>
              Este es mi documento con una  estructura muy sencilla 
              no contiene atributos ni entidades...
            </Asunto>
            <Parrafo>
              Este es mi documento con una  estructura muy sencilla 
              no contiene atributos ni entidades...
            </Parrafo>
       </Texto>
     </Mensaje>

Reglas de los documentos XML

Las especificaciones del XML requieren de un “parser” [1] que rechace los documentos que no cumplan las reglas básicas. Muchos analizadores HTML aceptan marcados complicados o poco sólidos haciendo “conjeturas” sobre lo que intenta decir el documento.

Para evitar la mezcla de estructuras encontradas en los documentos HTML, los creadores de XML decidieron reforzar el lenguaje en lo referido a la estructura del documento, dejando para otras tecnologías la forma en que se muestra.

Para el XML hay tres tipos de documentos: los inválidos, los válidos y los bien formados.

  • Documentos inválidos no siguen las reglas de sintaxis definidas por la especificación XML. Si un desarrollador tiene reglas definidas de lo que ese documento puede contener en una DTD (Document Type Definition = Definición del tipo de documento) o Esquema, y el documento no las sigue, ese documento es inválido.
  • Documentos válidos siguen tanto las reglas de sintaxis XML como las reglas definidas en su propio DTD o Esquema.
  • Documento bien formado sigue las reglas de sintaxis XML, pero no tiene un Esquema o DTD.

En la definición de si el documento está conformado o no adecuadamente existen definiciones en las que se debe tomar una decisión y es el método va a ser utilizado: DTD o Esquema (Schema).

Document Type Definition o DTD: define los elementos que pueden aparecer en un documento XML, el orden en el cual pueden aparecer, cómo pueden estar anidados y otros detalles básicos de la estructura del documento XML. Los DTD son parte de la especificación original de XML y son muy similares a los DTDs de SGML.

Esquema XML (XML Schema): puede definir todas las estructuras de documento que pudieran definirse con DTD y además, puede definir tipos de datos y reglas mucho más complicadas de las que pueden hacerse con DTD. El W3C desarrolló la especificación de Esquemas XML dos años después que la especificación original XML.

Ejemplo de DTD:

       <!ELEMENT direccion (nombre, calle, ciudad, estado, codigo-postal)>
       <!ELEMENT nombre (titulo? nombre, apellidos)>
       <!ELEMENT titulo (#PCDATA)>
       <!ELEMENT nombre (#PCDATA)>
       <!ELEMENT apellidos (#PCDATA)>
       <!ELEMENT calle (#PCDATA)>
       <!ELEMENT ciudad (#PCDATA)>
       <!ELEMENT estado (#PCDATA)>
       <!ELEMENT codigo-postal (#PCDATA)>

Como se aprecia en el ejemplo la DTD define la estructura del documento XML sin dejar lugar a dudas en cuanto a que lugar ocupa cada unos de los datos que contiene que son determinados a través de los elementos y los atributos.

Ejemplo de Esquema XML (Schema):

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <xsd:element name="direccion">
            <xsd:complexType>
               <xsd:sequence>
                    <xsd:element ref="nombre"/>
                    <xsd:element ref="calle"/>
                    <xsd:element ref="ciudad"/>
                    <xsd:element ref="estado"/>
                    <xsd:element ref="codigo-postal"/>
               </xsd:sequence>
            </xsd:complexType>
         </xsd:element>

<xsd:element name="nombre">
         <xsd:complexType>
             <xsd:sequence>
                 <xsd:element ref="titulo" minOccurs="0"/>
                 <xsd:element ref="nombre"/>
                 <xsd:element ref="apellidos"/>
             </xsd:sequence>
         </xsd:complexType>
</xsd:element>

<xsd:element name="titulo" type="xsd:string"/>
<xsd:element name ="nombre" type="xsd:string"/>
<xsd:element name ="apellidos" type="xsd:string"/>
<xsd:element name ="calle" type="xsd:string"/>
<xsd:element name ="ciudad" type="xsd:string"/>

<xsd:element name ="estado">

         <xsd:simpleType>
              <xsd:restriction base="xsd:string">
                    <xsd:length value="2"/>
              </xsd:restriction>
         </xsd:simpleType>
</xsd:element>

 <xsd:element name ="codigo-postal">
         <xsd:simpleType>
             <xsd:restriction base="xsd:string">
                 <xsd:pattern value="[0-9]{5}(-[0-9]{4})?"/>
             </xsd:restriction>
        </xsd:simpleType>
    </xsd:element>

</xsd:schema>

El esquema es mucho mayor en extensión que la DTD, pero expresa claramente qué documentos serán válidos en el ámbito del XML, ya que se añaden las características y restricciones de los datos que se pueden introducir.

Características

  • Permite la creación de etiquetas propias y permite asignar atributos a las etiquetas.
  • En un documento XML la estructura y el diseño están completamente separados.
  • XML se almacena en formato texto (no binario) lo cual hace que los documentos sean directamente entendibles. Es decir, los documentos tienen una estructura entendible tanto por los ordenadores como por las personas.
  • Cada documento incluye metadatos sobre sí mismo, lo cual facilita la tarea de los motores de búsquedas en la web, ya que devolverán respuestas más adecuadas y precisas.
  • Permite la exportabilidad a otros formatos de publicación de datos (HTML, PDF, texto enriquecido RTF, entre otros).
  • XML es un estándar abierto no sujeto a ningún tipo de licencia
  • XML permite la internacionalización, es decir puede trabajar con cualquier conjunto de caracteres, entre ellos el juego de caracteres UNICODE (utf-8).
  • XML utiliza reglas de generación concretas y, por tanto, los documentos son fácilmente procesables.
  • XML permite compartir información entre sistemas o fuentes de datos heterogéneas, por ejemplo, páginas web, distintas bases de datos, entre otras.


XML en la gestión de contenidos

Se utiliza el término gestión de contenidos para referirse a la aplicación de una serie de técnicas y herramientas para la codificación, almacenamiento y distribución de publicaciones en formato digital.

Es en este ámbito donde la utilización de los lenguajes de marcas – (inicialmente SGML y posteriormente XML) - ha sido una constante por su carácter abierto, la independencia de proveedores y de plataformas hardware/software específica, y la posibilidad de reutilizar el mismo contenido en múltiples productos y publicaciones.

[2]

La aplicación de la gestión de contenidos integra herramientas para mantenimiento y gestionar de una web, la actualización de manera sencilla de los contenidos sin necesidad de conocer los detalles de la codificación HTML o la ubicación física de las páginas en el servidor web. Las funciones que suelen incorporar estas aplicaciones incluyen:

  • Mantenimiento de la estructura física y lógica del sitio
  • Creación de nuevos contenidos y edición de contenidos existentes mediante plantillas, normalmente a través de un navegador web.
  • Mantenimiento automático de la navegación del sitio y de los hiperenlaces entre páginas.
  • Aprobación, revisión y validación de los contenidos hasta que estos se hacen públicos en el sitio web.
  • Periodos de vigencia de los contenidos.
  • Control de cambios y revisiones.
  • Compartir contenido entre distintas páginas (páginas conectadas).

La existencia en la web de las Páginas dinámicas constituye un elemento de presión en lo referente al uso del XML, ya que las mismas se generan a partir de un formato de presentación definido por las necesidades del usuario, pero manteniendo siempre el contenido.

El XML se puede utilizar como base de almacenamiento de contenidos a través de las Bases de datos XML nativas, que almacenan y gestionan una colección de documentos XML sin realizar ningún tipo de transformación previa.

En este modelo, el documento XML es la principal unidad de almacenamiento de la información. Se realiza el almacenamiento de documentos con una naturaleza textual, lo que implica flexibilidad.

También el XML puede utilizarse como modelo para la representación de Metadatos. Las ventajas frente a otras alternativas se encuentran en su orientación hacia Internet, la facilidad de su intercambio y posterior procesamiento utilizando una única sintaxis común, y la opción de combinar e intercalar los metadatos dentro del texto completo de los documentos.

Sin embargo, esto requiere necesidad de disponer de un sistema de indexación y recuperación que permita discriminar documentos a partir del contenido de elementos o atributos específicos.

Finalmente el XML es un medio de intercambio e integración de contenidos por su papel facilitador en el proceso. Al no es únicamente un formato para codificar textos y documentos, sino de un conjunto de especificaciones para establecer la forma en la que se puede procesar y presentar un texto.

Especificaciones como XSLT, DOM o XPath hacen posible procesar documentos XML basados en distintos vocabularios y mediante diversos lenguajes de programación (Visual Basic, Java, etc.), utilizando un modelo común, estándar y claramente documentado.

La posibilidad de obtener a través de la red documentos XML y procesarlos con facilidad para su integración en repositorios y base de datos o su visualización como parte un sitio web, ofrecen una flexibilidad extrema y abre las puertas a cualquier tipo de integración.

Referencias

  1. Parser es una pieza de código que intenta leer un documento e interpretar su contenido.
  2. Esta práctica suele conocerse con el término anglosajón "single sourcing", y se refiere a los procesos que permiten obtener distintas publicaciones o productos de información a partir de un único repositorio de contenidos mediante procedimientos automatizados.

Véase también

Fuentes