01. XML: lo básico en menos de 30 minutos

Publicado por

XML es uno de esos lenguajes con los que tarde o temprano en la vida te vas a encontrar en la necesidad de comprender. En esta serie de entradas te voy a ofrecer una rápida introducción práctica para utilizar XML desde lo básico hasta cosas no tan básicas.

¿Qué es XML?

Las siglas XML significan lenguaje de marcado extensible o lenguaje de marcas extensibles (en inglés extensible markup language). No es un lenguaje de programación, sino que se trata de un metalenguaje, es decir, las declaraciones hechas en XML son utilizadas para describir y generar hechos en otros lenguajes. Es utilizado para almacenar y organizar datos mediante etiquetas para su análisis, uso posterior o transmisión.

Sintaxis de XML

En XML utilizamos puramente etiquetas para almacenar información (también llamadas elementos). Usualmente es necesario tener una etiqueta de apertura y una de cierre:

<elemento>Información.</elemento>

Aunque también es posible tener etiquetas con autocierre:

<elemento/>

La información es almacenada jerárquicamente, así pues en el siguiente ejemplo, tenemos que la etiqueta <raiz> es “padre” de la etiqueta <intermedia> y, a su vez, <intermedia> es “padre” de <interna>:

<raiz>
    <intermedia>
        <interna/>
    </intermedia>
</raiz>

Nota: a este agrupamiento jerárquico de datos también se le conoce como árbol XML.

Un archivo XML usualmente está acompañado de una sección de código llamada prólogo o declaración. Esta siempre debe de ir al inicio del cúmulo de datos, si es que la necesitamos usar. En ella se especifica la versión de XML en la que está escrito el código (version), la codificación utilizada (encoding) y, de ser preciso, la información externa necesaria para el análisis gramatical (standalone). Solamente es obligatorio agregar prólogo cuando utilizamos XML 1.1, en XML 1.0 su uso es opcional. Generalmente luce así:

<?xml version="1.0" encoding="UTF-8"?>

Por defecto la codificación utilizada es UTF-8. La necesidad de información externa se señala de esta manera:

<?xml version = "1.0" encoding = "UTF-8" standalone = "yes"?>

En este caso yes especifica que el documento no necesita información externa ya que es capaz de funcionar por si mismo.

Cabe señalar que XML no tiene palabras reservadas.

Elementos o etiquetas

Una etiqueta en XML puede contener atributos, estos deben de ser escritos entre comillas:

<persona origen="México">Jesus<persona>

Puedes agregar comentarios en los archivos de la siguiente manera. Estos serán completamente ignorados por el analizador:

<!-- Hola este es un comentario -->

Nota: no puedes utilizar doble guión dentro de los comentarios o habrá error sintáctico ya que esos caracteres son usados como separadores al inicio y final de un comentario.

Caracteres especiales en XML

Existe una serie de caracteres que son de uso exclusivo para la sintaxis de XML, si quisiéramos usarlos dentro de un elemento es necesario sustituirlo por una referencia a entidad. Dichos caracteres y sus sustituciones son:

Caracter Nombre Referencia a entidad
& Ampersand &amp;
Apóstrofe &apos;
Comillas &quot;
> Mayor que &gt;
< Menor que &lt;

Ejemplo de sustitución:

<frase>&quot;¿Ser o no ser?&quot; - Hamlet<frase>

Frase después de sustitución:

"¿Ser o no ser?" - Hamlet

Ejemplos de XML

Supongamos que tenemos un pequeño negocio de venta de videojuegos nuevos y usados, y estamos almacenando una lista con detalles de los juegos en nuestro catálogo:

<negocio>
    <videojuego estado="nuevo">
        <titulo>Dragon Quest IX</titulo>
        <desarrolladora>Level 5</desarrolladora>
    </videojuego>
</negocio>

En el ejemplo anterior utilizamos jerarquía para almacenar información. La raíz de los datos es la etiqueta <negocio>; luego tenemos un elemento con un atributo en la etiqueta <videojuego> y el atributo estado=”nuevo”; finalmente, las etiquetas <titulo> y <desarrolladora> contienen información en forma de texto.

Ahora supongamos que queremos utilizar el prólogo y, además, agregar la información de otro videojuego:

<?xml version=”1.0” encoding="UTF-8"?>
    
<negocio>
    <videojuego estado="nuevo">
        <titulo>Dragon Quest IX</titulo>
        <desarrolladora>Level 5</desarrolladora>
    </videojuego>
    
    <videojuego estado="usado">
        <titulo>The Witcher 3</titulo>
        <desarrolladora>CD Projekt Red</desarrolladora>
    </videojuego>
</negocio>

Como puedes darte cuenta, es muy sencillo utilizar XML ya que, como mencioné anteriormente, no hay palabras reservadas al tratarse de un lenguaje utilizado exclusivamente para dar orden a la información que posteriormente será procesada o trasmitida de forma legible.

Espacio de nombres

Los espacios de nombres son muy útiles cuando trabajamos con diferentes árboles XML en un mismo documento cuando estos comparten nombres de etiquetas o elementos (recordemos que ambos términos pueden ser sinónimos en este contexto) pero cuyo significado no necesariamente es el mismo. Un espacio de nombres se declara usando un prefijo como a continuación:

<prefijo:videojuego>
    … <!-- Hijos de <videojuego> aquí-->
</prefijo:videojuego>

Supongamos que tenemos 2 negocios, el de ventas de videojuegos de ejemplos anteriores y, además, uno de ventas de computadoras cuya representación XML tendrá un elemento raíz también llamado <negocio>. Podemos evitar conflictos usando prefijos como a continuación:

<v:negocio>
    <v:videojuego estado=”nuevo”>
        <v:titulo>Dragon Quest IX</v:titulo>
        <v:desarrolladora>Level 5</v:desarrolladora>
    </v:videojuego>
</v:negocio>
    
<c:negocio>
    <c:computadora estado=”nuevo”>
        <c:modelo>XPS 13</c:modelo>
        <c:fabricante>Dell</c:fabricante>
    </c:computadora>
</c:negocio>

¿Cómo utilizar archivos XML?

Para utilizar XML puedes hacer uso de una multitud de módulos, bibliotecas, APIs, etc. disponibles que proveen soporte. Como se trata de un metalenguaje para almacenar datos ordenados y legibles, cada lenguaje de programación tiene sus propias funciones, funciones o instrucciones. Incluso, por defecto muchos de esos lenguajes ya incluyen los módulos necesarios para trabajar con archivos XML sin necesidad instalar o descargar nada. Revisa la documentación del lenguaje con el que quieras procesar estos archivos para encontrar más información al respecto.

Finalizando…

En esta entrada revisamos de forma rápida los conceptos básicos para entender y crear tus propios archivos XML. En entradas posteriores de esta serie continuaremos estudiando conceptos muy prácticos (pero no tan básicos) del lenguaje. Si tienes alguna pregunta, no dudes en escribirla en la sección de comentarios ¡Hasta la próxima! See ya!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *