Concepto y contexto
JSON, YAML y XML pueden representar datos estructurados, pero optimizan necesidades diferentes.
Elegir solo por popularidad ignora edición humana, complejidad del parser, requisitos de esquema, contenido mixto, namespaces y restricciones del ecosistema.
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
JSON posee un modelo pequeño y predecible; YAML prioriza la escritura manual con una sintaxis más rica; XML modela árboles documentales con atributos, namespaces y contenido mixto.
Estas diferencias afectan round trip, validación y herramientas disponibles.
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
JSON suele ser el default de API web por su soporte ubicuo y semántica relativamente pequeña.
YAML es común en configuration-as-code, mientras XML sigue siendo fuerte cuando importan namespaces, documentos ricos, XSD o transformaciones.
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 servicio REST puede usar JSON para payloads, YAML para configuración de despliegue y XML para integrar un protocolo documental heredado.
Usar formatos distintos en fronteras distintas es coherente si cada elección responde a requisitos concretos.
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
YAML no siempre es más legible en estructuras profundas y XML no es necesariamente demasiado verboso cuando su modelo de namespaces resuelve un problema real.
Las conversiones pueden perder comentarios, orden, tags, atributos o diferencias de tipos implícitos.
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
Evalúa productores y consumidores, estabilidad del contrato, necesidad de edición manual, seguridad del parser y requisitos de esquema.
Documenta encoding y canonicalización cuando firmas, caché o diffs dependen de la representación textual.
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.