XML


¿Qué es XML?

XML (eXtensible Markup Language) es un lenguaje de marcado extensible diseñado para almacenar y transportar datos de manera estructurada y autodescriptiva. Desarrollado por el W3C, XML permite crear documentos que son legibles tanto por humanos como por máquinas, utilizando etiquetas personalizadas que describen el contenido y su estructura sin depender de un formato específico de presentación.

¿Para qué sirve XML?

XML es fundamental para el intercambio de datos entre sistemas diferentes. Te permite:

  • Intercambiar datos entre aplicaciones y sistemas de manera estándar y confiable.
  • Crear documentos estructurados con metadatos descriptivos y jerarquías claras.
  • Configurar aplicaciones mediante archivos de configuración legibles y modificables.
  • Almacenar datos de forma portable que puede ser procesada por cualquier plataforma.
  • Crear APIs y servicios web que comunican información estructurada.
  • Generar feeds RSS, sitemaps y otros formatos estándar de intercambio de contenido.

¿Cómo funciona?

Imagina XML como un sistema de etiquetado muy organizado para una biblioteca digital. Cada libro (dato) tiene etiquetas que describen exactamente qué es: título, autor, género, año, etc. Estas etiquetas no solo organizan la información, sino que también la hacen comprensible para cualquier sistema que necesite procesar los datos, sin importar el idioma de programación o la plataforma que utilice.

Ejemplo: Estructura XML básica

Aquí tienes ejemplos de cómo usar XML para diferentes propósitos:

<?xml version="1.0" encoding="UTF-8"?>
<!-- Catálogo de productos para una tienda online -->
<catalogo>
    <producto id="001">
        <nombre>Laptop Gaming Pro</nombre>
        <categoria>Electrónicos</categoria>
        <precio moneda="EUR">1299.99</precio>
        <descripcion>
            <![CDATA[Laptop de alto rendimiento con procesador Intel i7, 16GB RAM y tarjeta gráfica RTX 4060]]>
        </descripcion>
        <especificaciones>
            <procesador>Intel Core i7-13700H</procesador>
            <memoria>16GB DDR4</memoria>
            <almacenamiento tipo="SSD">512GB</almacenamiento>
            <pantalla>15.6" Full HD 144Hz</pantalla>
            <grafica>NVIDIA RTX 4060</grafica>
        </especificaciones>
        <stock disponible="true">25</stock>
        <imagenes>
            <imagen tipo="principal">laptop-gaming-pro-01.jpg</imagen>
            <imagen tipo="detalle">laptop-gaming-pro-02.jpg</imagen>
            <imagen tipo="detalle">laptop-gaming-pro-03.jpg</imagen>
        </imagenes>
        <fechas>
            <creado>2024-01-15T10:30:00Z</creado>
            <modificado>2024-03-20T14:22:00Z</modificado>
        </fechas>
    </producto>

    <producto id="002">
        <nombre>Mouse Inalámbrico Ergonómico</nombre>
        <categoria>Accesorios</categoria>
        <precio moneda="EUR">45.99</precio>
        <descripcion>
            <![CDATA[Mouse ergonómico con conectividad Bluetooth y batería de larga duración]]>
        </descripcion>
        <especificaciones>
            <conectividad>Bluetooth 5.0</conectividad>
            <bateria>Hasta 12 meses</bateria>
            <sensor>Óptico 1600 DPI</sensor>
            <compatibilidad>Windows, macOS, Linux</compatibilidad>
        </especificaciones>
        <stock disponible="true">150</stock>
        <imagenes>
            <imagen tipo="principal">mouse-ergonomico-01.jpg</imagen>
        </imagenes>
        <fechas>
            <creado>2024-02-10T09:15:00Z</creado>
            <modificado>2024-02-10T09:15:00Z</modificado>
        </fechas>
    </producto>
</catalogo>


<?xml version="1.0" encoding="UTF-8"?>
<!-- Configuración de una aplicación web -->
<configuracion>
    <aplicacion>
        <nombre>MiApp Web</nombre>
        <version>2.1.4</version>
        <entorno>produccion</entorno>
    </aplicacion>

    <base_datos>
        <servidor>db.miapp.com</servidor>
        <puerto>5432</puerto>
        <nombre>miapp_db</nombre>
        <usuario>app_user</usuario>
        <ssl_requerido>true</ssl_requerido>
        <pool_conexiones max="20" min="5"/>
    </base_datos>

    <cache>
        <tipo>Redis</tipo>
        <servidor>cache.miapp.com</servidor>
        <puerto>6379</puerto>
        <ttl_default>3600</ttl_default>
    </cache>

    <apis_externas>
        <api nombre="pagos">
            <url>https://api.stripe.com/v1</url>
            <timeout>30</timeout>
            <reintentos>3</reintentos>
        </api>
        <api nombre="email">
            <url>https://api.sendgrid.com/v3</url>
            <timeout>15</timeout>
            <reintentos>2</reintentos>
        </api>
    </apis_externas>

    <logging>
        <nivel>INFO</nivel>
        <archivo>logs/app.log</archivo>
        <rotacion_diaria>true</rotacion_diaria>
        <formato>JSON</formato>
    </logging>
</configuracion>

Este ejemplo muestra cómo XML estructura datos de manera clara y cómo puede ser procesado para extraer información específica o generar nuevos documentos.

Conceptos clave de XML

  • Well-formed: Documento XML que sigue todas las reglas de sintaxis correctamente.
  • Namespaces: Mecanismo para evitar conflictos de nombres al combinar vocabularios XML diferentes.
  • Schema (XSD): Define la estructura, tipos de datos y reglas que debe seguir un documento XML.
  • XSLT: Lenguaje de transformación que convierte documentos XML a otros formatos como HTML o PDF.
  • XPath: Lenguaje de consulta para navegar y seleccionar nodos específicos dentro de documentos XML.
  • CDATA: Secciones que contienen datos de caracteres que no deben ser parseados como marcado XML.

¿Dónde encuentras XML?

  • En servicios web SOAP para intercambio estructurado de datos entre aplicaciones empresariales.
  • En archivos de configuración de frameworks como Spring, Hibernate y muchas aplicaciones Java.
  • En feeds RSS y Atom para sindicación de contenido de blogs y sitios de noticias.
  • En documentos Office como Word, Excel que internamente usan formatos basados en XML.
  • En sitemaps de SEO para ayudar a los motores de búsqueda a indexar sitios web.
  • En intercambio de datos B2B entre sistemas empresariales y proveedores externos.

Conclusión

XML es un estándar fundamental que ha facilitado el intercambio de datos estructurados durante décadas y sigue siendo relevante en muchos contextos empresariales y técnicos. Su naturaleza autodescriptiva y extensible lo convierte en una herramienta valiosa para crear sistemas interoperables y mantenibles. Es especialmente valioso cuando necesitas intercambiar datos complejos entre sistemas diferentes, crear configuraciones legibles por humanos o establecer formatos de datos que perduren en el tiempo.


Usamos cookies para mejorar tu experiencia. ¿Aceptas las cookies de análisis?