Concepto y contexto
XML representa datos y documentos como un árbol de elementos anidados mediante una sintaxis textual explícita.
Resulta especialmente útil cuando se necesita contenido mixto, namespaces, metadatos estructurados o ecosistemas maduros de esquemas y transformaciones.
Un buen modelo mental separa el concepto abstracto de su representación concreta y del entorno donde se utiliza. Esa separación evita trasladar automáticamente supuestos válidos en un protocolo, biblioteca o formato hacia sistemas que pueden aplicar reglas o garantías diferentes.
Fundamentos y terminología
Un documento bien formado tiene un único elemento raíz, tags correctamente anidados y atributos con valores entre comillas.
Elementos y atributos no son decisiones intercambiables: estructura, identidad y capacidad de extensión deben guiar la elección.
La terminología debe leerse junto con el estándar, versión o contrato que la define, porque palabras parecidas pueden describir propiedades distintas según la capa. Explicitar esas definiciones mejora interoperabilidad, documentación y capacidad para diagnosticar comportamientos inesperados.
Cómo funciona
Los namespaces califican nombres de elementos y atributos mediante URI y prefijos opcionales, evitando colisiones entre vocabularios.
DOM, SAX y API de streaming ofrecen modelos distintos para documentos pequeños o flujos de gran tamaño.
En sistemas reales conviene seguir el recorrido de los datos entre capas e identificar qué transformaciones son reversibles, cuáles introducen restricciones y dónde puede perderse información. Así resulta más sencillo razonar sobre responsabilidades entre productores, consumidores, almacenamiento y transporte.
Ejemplo razonado
Un catálogo puede combinar un namespace del dominio con otro de metadatos externos y reutilizar nombres locales sin ambigüedad.
xmlns asocia un prefijo a un URI, pero el prefijo es solo una abreviatura; la identidad semántica está en el URI.
Un ejemplo razonado es reutilizable cuando muestra sus precondiciones e invariantes y no solo el resultado final. Cambiar un supuesto cada vez permite distinguir el comportamiento garantizado por un estándar de las decisiones particulares de una aplicación o implementación.
Errores y conceptos equivocados
Que XML sea well-formed no implica que sea válido respecto a XSD u otro esquema, y validar no equivale a seguridad.
Entity expansion, DTD externas y configuraciones inseguras del parser han permitido ataques, por lo que conviene desactivar funciones innecesarias.
Muchos fallos nacen de supuestos implícitos entre sistemas aparentemente compatibles que usan versiones, reglas de canonicalización o modelos de tipos diferentes. En interoperabilidad y seguridad conviene especificar y probar entradas anómalas en lugar de tratarlas como casos irrelevantes.
Buenas prácticas y criterios de elección
Define encoding, namespaces y política de esquemas de forma explícita, usa parsers endurecidos y streaming para documentos muy grandes.
JSON suele ser más ligero en API simples; XML mantiene ventajas en documentos ricos, namespaces y contratos formales complejos.
Una práctica robusta combina estándares documentados, bibliotecas maduras, contratos explícitos y pruebas con casos límite representativos. La mejor elección no es siempre la más breve o popular: también cuentan portabilidad, legibilidad, rendimiento, seguridad, evolución y coste operativo.