¿Qué es el formato TOON?

TOON (Token-Oriented Object Notation) es un formato de serialización de datos compacto y legible diseñado específicamente para Modelos de Lenguaje Grande (LLMs). A diferencia de JSON, que repite los nombres de campos para cada objeto en un array, TOON declara los nombres de campos una vez y luego transmite datos en filas—similar a CSV pero con estructura explícita. Este diseño típicamente reduce el uso de tokens en un 30-60% comparado con JSON formateado, especialmente para arrays uniformes de objetos. TOON combina la estructura basada en indentación de YAML para objetos anidados con la eficiencia tabular de CSV, optimizada para contextos LLM donde los costos de tokens importan.

¿Qué es XML?

XML (eXtensible Markup Language) es un lenguaje de marcado ampliamente utilizado para codificar documentos en un formato que es tanto legible por humanos como por máquinas. XML usa etiquetas para definir elementos y atributos, creando una estructura de árbol jerárquica. Se utiliza comúnmente para archivos de configuración, intercambio de datos entre sistemas, servicios web (SOAP), formatos de documentos (Office Open XML) y feeds RSS. Aunque XML es verboso y explícito, proporciona sólidas capacidades de validación y soporta estructuras anidadas complejas.

Descripción de la herramienta

Este convertidor transforma datos bidireccionalmente entre formatos TOON y XML usando JSON como formato intermedio. El proceso de conversión es: TOON ↔ JSON ↔ XML. Este enfoque asegura conversión confiable aprovechando bibliotecas bien establecidas para cada paso de transformación. Convierte datos TOON eficientes en tokens a marcado XML estándar para sistemas que requieren entrada XML, o transforma datos XML a formato TOON compacto para reducir el uso de tokens en aplicaciones LLM.

Ejemplos

Conversión TOON a XML:

Entrada (TOON):

users[2]{id,name,role}:
  1,Alice,admin
  2,Bob,user

Salida (XML):

<?xml version="1.0" encoding="UTF-8"?>
<root>
  <users>
    <id>1</id>
    <name>Alice</name>
    <role>admin</role>
  </users>
  <users>
    <id>2</id>
    <name>Bob</name>
    <role>user</role>
  </users>
</root>

Conversión XML a TOON:

Entrada (XML):

<?xml version="1.0" encoding="UTF-8"?>
<order>
  <id>ORD-456</id>
  <customer>John Doe</customer>
  <total>99.99</total>
</order>

Salida (TOON):

order:
  id: ORD-456
  customer: John Doe
  total: 99.99

Características

  • Conversión bidireccional entre TOON y XML con preservación completa de datos
  • Formato intermedio JSON asegura conversión confiable usando bibliotecas probadas
  • Maneja estructuras complejas incluyendo elementos anidados, atributos y arrays
  • Detección automática de formato y estrategia de conversión óptima
  • Preserva jerarquía de datos manteniendo relaciones padre-hijo
  • Conversión consciente de tipos manteniendo números, booleanos y strings intactos
  • Conversión en tiempo real con resultados instantáneos
  • Resaltado de sintaxis para formatos TOON y XML

Casos de uso

  1. Integración de sistemas legacy - Convertir datos TOON modernos a formato XML para compatibilidad con sistemas empresariales antiguos que requieren entrada XML
  2. Transformación de datos API - Transformar respuestas API XML a formato TOON eficiente en tokens antes de enviar a LLMs para procesamiento y análisis
  3. Conversión de archivos de configuración - Convertir archivos de configuración XML a formato TOON para reducir uso de tokens al usar LLMs para gestión de infraestructura
  4. Procesamiento de documentos - Transformar documentos XML (feeds RSS, respuestas SOAP, documentos Office) a TOON para análisis eficiente basado en LLM
  5. Migración de datos - Convertir datos entre sistemas que usan diferentes formatos, con TOON sirviendo como representación intermedia eficiente en tokens

Proceso de conversión

TOON a XML:

  1. Parsear formato TOON a objeto JavaScript (usando @toon-format/toon decode)
  2. Convertir objeto JavaScript a marcado XML (usando xml2js builder)
  3. Salida de XML formateado con indentación apropiada

XML a TOON:

  1. Parsear marcado XML a objeto JavaScript (usando xml2js parser)
  2. Convertir objeto JavaScript a formato TOON (usando @toon-format/toon encode)
  3. Salida de representación TOON compacta

Notas sobre estructura XML

Al convertir de TOON a XML:

  • Las claves del objeto raíz se convierten en elementos XML
  • Los arrays crean múltiples elementos con el mismo nombre de etiqueta
  • Los arrays TOON tabulares se expanden a elementos XML individuales
  • Las propiedades de objetos se convierten en elementos hijos
  • Los valores se convierten a contenido de texto

Al convertir de XML a TOON:

  • Los elementos XML se convierten en claves de objeto
  • Los elementos repetidos se convierten en arrays
  • Los atributos se fusionan con el contenido del elemento
  • El contenido de texto se convierte en valores string
  • Los elementos vacíos se convierten en strings vacíos o null

Consideraciones de formato

Verbosidad XML:

  • XML es inherentemente verboso con etiquetas de apertura/cierre
  • Cada elemento requiere tanto etiqueta de inicio como de fin
  • Los atributos añaden caracteres adicionales
  • Bien adaptado para marcado de documentos y validación

Eficiencia TOON:

  • Significativamente más compacto para datos estructurados
  • Ideal para datos tabulares con estructuras repetidas
  • Reduce uso de tokens en 30-60% vs JSON
  • Optimizado para consumo LLM

Compensaciones:

  • XML soporta atributos y contenido mixto (texto + elementos)
  • TOON sobresale en estructuras de datos uniformes
  • XML tiene capacidades de validación más fuertes
  • TOON tiene mejor eficiencia en tokens para LLMs

Calidad de conversión

El formato intermedio JSON asegura:

  • Integridad de datos - sin pérdida de datos durante la conversión
  • Preservación de tipos - números, booleanos y valores null mantenidos
  • Consistencia de estructura - relaciones anidadas preservadas
  • Transformación confiable - usando bibliotecas probadas (xml2js y @toon-format/toon)
  • Manejo de errores - mensajes de error claros para entrada inválida