05 - XML

XML (*eXtensible Markup Language*) es un lenguaje de marcas para describir documentos y ficheros de configuración con estructura jerárquica. A diferencia de JSON, cuyo papel es el intercambio de datos con las APIs, XML sigue siendo el formato habitual de configuración de herramientas: pom.xml de Maven, web.xml de Tomcat, configuración de frameworks.

<?xml version="1.0" encoding="UTF-8"?>
<library>
  <book id="42" available="true">
    <title>Código limpio</title>
    <author>Robert C. Martin</author>
    <tags>
      <tag>programming</tag>
      <tag>craft</tag>
    </tags>
  </book>
</library>

Elemento Sintaxis
Prólogo <?xml version=“1.0” encoding=“UTF-8”?>
Elemento <book>…</book> con etiqueta de apertura y cierre
Atributo Datos dentro de la etiqueta: id=“42”
Elemento vacío <br/> o <tag/>
Comentario <!– texto –>

Un documento bien formado cumple las reglas sintácticas: un único elemento raíz, etiquetas cerradas y correctamente anidadas, atributos entre comillas.

Los nombres distinguen mayúsculas y minúsculas y no pueden empezar por número. Los espacios de nombres agrupan vocabularios para evitar colisiones entre etiquetas del mismo nombre:

<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" version="6.0">
  ...
</web-app>

La validación comprueba que un XML respeta una estructura acordada:

Mecanismo Qué define
DTD Estructura antigua y sencilla: elementos y atributos permitidos
XSD (XML Schema) Tipos de datos, ocurrencias, obligatoriedad; el estándar actual

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="library">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="book" maxOccurs="unbounded">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="title" type="xs:string"/>
            </xs:sequence>
            <xs:attribute name="id" type="xs:int" use="required"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Con ese esquema, un <book> sin title o con id no numérico no es válido.

Criterio XML JSON
Uso típico Configuración, documentos, SOAP Intercambio de datos en APIs REST
Tamaño Más verboso Más compacto
Tipos Todo es texto; el esquema aporta tipos Números, booleanos y null nativos
Herramientas XSD, XPath, XSLT Parseo directo en casi todos los lenguajes
Cuando edites ficheros de configuración XML (pom.xml, web.xml), sabrás leer la estructura y sus atributos, y validarás contra el esquema correspondiente cuando exista. Para datos con APIs, el formato será JSON.
  • clase/daw/lmsgi/1eval/xml.txt
  • Última modificación: 2026/10/12 12:39
  • por cesguiro