Primera Semana

Historia y Sintaxis XML

Fundamentos, evolución y estructura básica del lenguaje XML

¿Qué es XML?

XML es el acrónimo de "eXtensible Markup Language", que en español significa Lenguaje de Marcas Extensible. Se trata de un lenguaje de marcado con una estructura similar a HTML, pero con un enfoque diferente. Mientras que HTML está diseñado para mostrar información en un navegador web, XML se centra en almacenar y transportar datos de una manera estructurada y legible tanto para humanos como para máquinas.

XML es un lenguaje altamente flexible y autodescriptivo, lo que significa que los datos contenidos en un documento XML pueden entenderse sin necesidad de programas adicionales o formatos predefinidos. Su principal ventaja es que permite definir etiquetas personalizadas para organizar la información de acuerdo con las necesidades específicas de cada usuario o aplicación.

Historia de XML: Cómo empezó y por qué

XML (Extensible Markup Language) nació en la década de 1990 como una solución para estructurar datos de manera universal y compatible entre diferentes plataformas. Su origen se remonta a SGML (Standard Generalized Markup Language), un estándar creado en los años 70 por Charles Goldfarb, Ed Mosher y Ray Lorie en IBM. SGML no era un lenguaje en sí mismo, sino una especificación para definir lenguajes de marcado, de los cuales HTML fue una de sus aplicaciones más conocidas.

HTML, aunque ampliamente adoptado, se volvió problemático debido a la falta de disciplina en su implementación, la fragmentación entre navegadores y la mezcla de contenido con presentación. Esto dificultó su uso para estructurar datos de manera eficiente.

En respuesta a estas limitaciones, un grupo liderado por Jon Bosak, Tim Bray y James Clark desarrolló XML, con la idea de ofrecer un estándar flexible para almacenar y compartir datos estructurados en cualquier plataforma. XML fue respaldado por el W3C y adoptado rápidamente por la industria, incluyendo a Microsoft, que lo utilizó como base para su estrategia de interoperabilidad con .NET. Aunque XML no pertenece a ninguna empresa, su utilidad ha sido clave para conectar sistemas y facilitar el intercambio de información en múltiples sectores.

Diferencias entre XML y HTML

Aunque XML y HTML son muy parecidos, se diseñaron para cosas distintas y distintas metas en mente:

  • El diseño de XML está centrado en TRANSPORTAR datos, teniendo en consideración y centrándose en que son los datos.
  • En cambio, HTML se ha diseñado para MOSTRAR los datos, teniendo en consideración y centrándose en cómo los datos se ven.
  • Las etiquetas XML no están predefinidas como lo son en HTML. Es decir, las etiquetas de HTML están predefinidas para un uso en concreto (H1, Title, ...), mientras que las de XML son personalizables según la necesidad del usuario.

Estructura (Tree)

XML organiza la información en una estructura jerárquica en forma de árbol, donde un elemento raíz contiene a los demás elementos anidados. Cada elemento puede tener subelementos, atributos y contenido de texto, lo que permite representar datos de manera clara y estructurada.

                    empresa
    └── departamento
        └── empleado
            ├── nombre
            └── edad
                
                    <empresa>  <!-- Elemento raíz -->
    <departamento>  <!-- Hijo de empresa -->
        <empleado>  <!-- Hijo de departamento -->
            <nombre>Juan</nombre>  <!-- Hijo de empleado -->
            <edad>30</edad>
        </empleado>
    </departamento>
</empresa>
                

Sintaxis

La sintaxis de XML define las reglas que deben seguirse para escribir documentos XML correctamente. Estas reglas aseguran que los datos sean bien estructurados, legibles y procesables por diferentes sistemas.

📌 Puntos clave de la sintaxis:

  • Todas las etiquetas deben cerrarse correctamente.
  • Debes estar correctamente anidadas (sangría).
  • Distingue entre mayúsculas y minúsculas (case-sensitive).
  • Los atributos deben estar entre comillas.

Declaración del documento XML (Prolog)

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

version="1.0" indica la versión de XML utilizada en el archivo.

encoding="UTF-8" especifica la codificación de caracteres que va a utilizar el archivo.

Elementos/etiquetas y atributos

De manera similar a HTML, en XML los elementos/etiquetas son la base del lenguaje y siempre deben tener una etiqueta de apertura y otra de cierre.

                    <nombre>Juan</nombre>  <!-- Correcto -->
                

Tambien pueden autocerrarse si no contienen contenido, como el siguiente ejemplo:

                    <imagen src="foto.jpg"/>
                

Anidación de elementos

La anidación de elementos en XML se refiere a cómo los elementos pueden contener otros elementos dentro de ellos, creando una estructura jerárquica o en forma de árbol.

                    <principal>
    <hijo>
        <subhijo>....</subhijo>
    </hijo>
</principal>
                

Sensible a mayúsculas y minúsculas

XML es un lenguaje case-sensitive, lo que significa que distingue entre mayúsculas y minúsculas.

                    <nombre>Juan</nombre>  <!-- Elemento 1 -->
<NombrE>Juan</NombrE>  <!-- Elemento 2 -->
                

Atributos en XML

Los atributos son pares de clave-valor que se añaden a las etiquetas para proporcionar información adicional sobre el contenido de los elementos. Los atributos deben estar entre comillas.

                    <persona nombre="Juan" edad="30" ciudad="Madrid">
    <direccion>Calle Falsa 123</direccion>
</persona>
                

Comentarios en XML

Los comentarios en XML no afectan al contenido, y se encierran entre <!-- y -->.

                    <!-- Este es un comentario que no afecta al contenido -->
<persona>
    <nombre>Juan</nombre>
</persona>
                

Ejercicio Práctico: Tu Primer XML

Crea tu primera estructura XML siguiendo las reglas de sintaxis

Ejercicio 1
Instrucciones:

Crea un documento XML simple que represente información de una persona. Debe incluir:

  • Declaración XML
  • Elemento raíz llamado "persona"
  • Elementos para: nombre, edad, y ciudad
  • Un atributo "id" en el elemento persona
Pista:

Recuerda que todos los elementos deben estar dentro de un elemento raíz y cada etiqueta debe cerrarse correctamente.

<persona id="1">
    <nombre>Tu nombre</nombre>
    <edad>Tu edad</edad>
    <ciudad>Tu ciudad</ciudad>
</persona>

Casos de Uso Reales de XML

XML se utiliza en múltiples ámbitos del desarrollo y la tecnología:

🌐

Servicios Web

SOAP, RSS, y APIs utilizan XML para el intercambio de datos entre aplicaciones.

⚙️

Configuración

Archivos de configuración en aplicaciones como Spring, Hibernate, y Maven.

📄

Documentos

Microsoft Office, OpenOffice y otros utilizan XML internamente.

🗄️

Bases de Datos

Almacenamiento e intercambio de datos estructurados entre sistemas.

Ventajas y Desventajas de XML

Ventajas
  • Legible para humanos y máquinas
  • Independiente de plataforma
  • Estructura jerárquica clara
  • Soporte para validación
  • Ampliamente adoptado
Desventajas
  • Verboso (archivos grandes)
  • Procesamiento más lento que JSON
  • Sintaxis estricta
  • Curva de aprendizaje
  • Redundancia en etiquetas