Ir al contenido principal

XML: Un breve repaso

Muchas veces hemos escuchado el término XML como una solución para manejar datos. Se sabe que el término XML nace de las siglas en inglés de Extensible Markup Language, y es un estándar apoyado por W3 Consortium el cual nos entrega las pautas para escribir XML en forma correcta.

XML, al igual que HTML, nacen del estándar SGML (Standard Generalized Markup Language, ISO 8879) que define la estructura y contenido de diferentes tipos de documentos electrónicos. SGML es un metalenguaje que permite la definición de nuevos metalenguajes o lenguajes, tal como XML y HTML, para la distribución y uso de documentos de tipo electrónico.

El XML nos permite manejar los datos en forma estructurada tal como se organizan los datos en una planilla de cálculo, una agenda telefónica, etc. A diferencia del HTML el XML es una simplificación de SGML para desarrollo en Internet. Esto significa que el XML sigue siendo un metalenguaje, esto permite definir y estructurar los datos en forma flexible por el usuario, a diferencia de HTML que ya viene con un conjunto de tag o etiquetas ya predefinidas al igual que su estructura.

Por ejemplo, si queremos crear una agenda telefónica para guardar los datos de varias personas, una de las miles de formas que se podría escribir el código XML sería la siguiente:




<agenda>
<persona>
<nombre>Hugo</nombre>
<apellido>Donald</apellido>
<fono>22-XX-XX</fono>
</persona>
<persona>
<nombre>Paco</nombre>
<apellido>Donald</apellido>
<fono>24-XX-XX</fono>
</persona>
<persona>
<nombre>Luis</nombre>
<apellido>Donald</apellido>
<fono>25-XX-XX</fono>
</persona>
<persona>
<nombre>Bilin Bilin Bilin</nombre>
<apellido>Tribilin</apellido>
<fono>26-XX-XX</fono>
</persona>
</agenda>

Como se puede observar en el código XML existe un tag (se define aquello encerrado entre corchetes agudos < >) denominado <agenda> que agrupa a un conjunto de personas delimitados por el tag de inicio <agenda> y el tag de término o cierre </agenda>. Cada persona también delimina un conjunto de datos dentro de su tag <persona> que agrupa un conjuntos de datos delimitados por los tag <nombre></nombre>, <apellido></apellido> y <fono></fono>.

Lo interesante de este tipo de especificación de datos es que el código generado es texto puro, lo que facilita mucho su distribución entre computadores a través de protocolos de comunicación comunes tales como http, ftp, rpc, socket, etc. Incluso se puede distribuir a través de correo o medios digitales tales como CD-ROM, pendrive, etc. Esto significa, por ejemplo, que si tengo una agenda de contactos y la quiero compartir con otra persona basta con organizar los datos en un formato aceptable dentro del marco XML y definir la forma de la estructura de los datos contenidos a través de archivos complementarios denominados DTD (Document Type Definition), luego puedo compartir mi archivo XML con su respectivo DTD. También existe otra forma de definir la estructura de los datos en XML denominado Schema su principal diferencia es que cubre los puntos débiles de el DTD y además cumple con el estándar XML, ya que fue pensado para este fin. El DTD es parte del estándar de definición de SGML.

¿Pero que podemos hacer con XML?, bueno muchas cosas, la idea de hoy es saber en forma muy resumida que es un código XML. En el próximo posteo sobre XML, les mostraré como crear sitos dinámicos con XML a través de un "traductor" llamado XSLT utilizando lenguaje Java.

Espero que les haya servido el resumen.

Saludos.

Referencias:

XML en 10 puntos:http://www.sidar.org/recur/desdi/traduc/es/xml/xml10p/xml10p.htm

Tutorial de XML: http://www.programacion.net/html/xml/principal.htm

Wikipedia DTD: http://es.wikipedia.org/wiki/DTD

Wikipedia Schema:http://es.wikipedia.org/wiki/Schema




Comentarios

Entradas más populares de este blog

Código Python para pasar de notación postfija a infija

Este código es un borrador en  Python que convierte una expresión en notación postfija a notación infija ordenada por paréntesis:

TIPS: Tres algoritmos para convertir una imagen de color a gris en python

Hace un tiempo necesitaba convertir unas imágenes que estaban en color a escalas de grises utilizando python. Buscando en internet encontré un sitio donde explicaban las fórmulas que se utilizan en el GIMP para realizar la conversión.

La tira cómica de Raulito el Friki

Buscando algunas cosas que necesitaba para comunicar un dispositivo por voip, me encontré en un grupo de interés que hacía referencias al sitio y luego de leer un rato no paré de reírme.