XML - Conceptos básicos

El eXtensible Markup Language, XML, es lo que se denomina un metalenguaje. Una sintaxis que nos permite definir lenguajes de marcas para usos concretos. Permite por tanto, que el usuario pueda crear sus propias etiquetas y que éste les dé un significado que necesite, siempre y cuando tengan un significado coherente y sigan las reglas adecuadas, a diferencia de HTML que sólo permite utilizar las etiquetas limitadas de las que dispone.

XML no es HTML mejorado, aunque ambos procedan del mismo lenguaje (SGML), pues persiguen objetivos muy diferenciados. XML describe datos, información; HTML la presenta.

El propósito de XML es el de dar una estructura concreta a la información de manera que ésta se pueda intercambiar sin límites o barreras. Su utilización tiene como destino cualquier lugar donde se den numerosas situaciones de intercambio de información. Podemos encontrar su uso en telefonía móvil (WAP-WML), proyectos para compiladores, y claro está en Internet, cuya función principal es intercambiar todo tipo de información. Es aquí por tanto donde se centra principalmente el uso de XML.

El éxito de XML se debe principalmente a sus numerosas ventajas, de las que se enumeran las principales:
- Simple. XML implica un bajo grado de dificultad, con lo que se elimina el límite principal de su predecesor, SGML.
- Orientado a Internet. Como se dijo anteriormente, es el lugar donde mayor intercambio de información se da.
- Autodescripción de los datos. La capacidad de crear nuestro propio lenguaje de marcas y su capacidad para describir los datos de una información, hace que sea muy fácil reconocer y comprender la información contenida en un documento XML.
- Portabilidad. Elimina cualquier límite impuesto por sistemas operativos, plataformas, etc.
- Extensible. Podemos crear nuestras propias marcas o etiquetas.
- Separa la información de su presentación.

Sin embargo y a pesar de estas ventajas, también tiene también alguna desventaja. La principal aparece en casos concretos como el tratamiento de documentos multimedia, como vídeos, sonido, etc. Pongamos por caso un fichero de vídeo que ha de transmitirse a través de Internet, en formato XML, para evitar incompatibilidades entre aplicaciones diferentes, que utilizan ese fichero. El vídeo en cuestión debería codificarse en XML, dando lugar a un documento bastante extenso, pues éste estaría formado por entero de texto plano. El documento XML al ser tan extenso y transmitirse éste por Internet, ocuparía mucho tiempo y ancho de banda en su transmisión.

Para comenzar a trabajar con XML, sólo es necesario un editor de texto y un parser. Para trabajar con XML, se hace imprescindible algún software que permita el análisis de cualquier documento creado con este formato, para así verificar que sigue las reglas establecidas por XML, que la construcción del documento es correcta, etc. De esta forma, aseguramos que el documento analizado es correcto para su utilización. Este software es lo que se llama un parser.

La selección del parser más adecuado para nuestro trabajo, pasa por tener en cuenta dos factores. El primero es la velocidad de proceso a la que actúa. A medida que aumenta el tamaño y complejidad de los documentos XML que se procesen, la velocidad se convierte en una pieza clave para el buen rendimiento de nuestra aplicación. El segundo factor a tener en cuenta es la conformidad del parser con respecto al estándar del W3C. La elección dependerá por tanto, de las necesidades reales de cada desarrollador, aunque un equilibrio entre las dos, sería normalmente lo más adecuado. A lo hora de elegir, sería recomendable también, que el parser fuera capaz de analizar cualquier documento XML con respecto a un DTD o un XSchema, dada la importancia de éstos en la actualidad.

Por último decir que XML es totalmente independiente del software, sistemas operativos, plataformas, etc.

Comentarios

Entradas populares de este blog

Ejercicios resueltos de programación, en Python y en español, I.

Herramientas (IDE, GUI, EDITOR) para desarrollar en Python

pyLorca: Diseño y diagrama de clases, en Python