TOON形式とは何ですか?

TOON(Token-Oriented Object Notation)は、大規模言語モデル(LLM)向けに特別に設計されたコンパクトで人間が読みやすいデータシリアライゼーション形式です。JSONと異なり、配列内のすべてのオブジェクトに対してフィールド名を繰り返すのではなく、TOONはフィールド名を一度宣言してからデータを行としてストリーミングします。これはCSVに似ていますが、明示的な構造を持っています。この設計により、特に均一なオブジェクト配列の場合、フォーマットされたJSONと比較して通常30~60%のトークン使用量を削減できます。TOONは、ネストされたオブジェクト用のYAMLのインデント構造とCSVの表形式の効率性を組み合わせており、トークンコストが重要なLLMコンテキストに最適化されています。

XMLとは何ですか?

XML(eXtensible Markup Language)は、ドキュメントを人間が読める形式と機械が読める形式の両方でエンコードするために広く使用されているマークアップ言語です。XMLはタグを使用して要素と属性を定義し、階層的なツリー構造を作成します。一般的に設定ファイル、システム間のデータ交換、Webサービス(SOAP)、ドキュメント形式(Office Open XML)、およびRSSフィードに使用されます。XMLは冗長で明示的ですが、強力な検証機能を提供し、複雑なネストされた構造をサポートしています。

ツール説明

このコンバーターは、JSONを中間形式として使用して、TOON形式とXML形式の間でデータを双方向に変換します。変換プロセスは以下の通りです:TOON ↔ JSON ↔ XML。このアプローチにより、各変換ステップに対して確立されたライブラリを活用することで、信頼性の高い変換を実現します。トークン効率の高いTOONデータを、XMLを必要とするシステム用の標準XMLマークアップに変換するか、XMLデータをコンパクトなTOON形式に変換してLLMアプリケーションのトークン使用量を削減します。

TOONからXMLへの変換:

入力(TOON):

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

出力(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>

XMLからTOONへの変換:

入力(XML):

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

出力(TOON):

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

機能

  • TOONとXML間の双方向変換 - 完全なデータ保持
  • JSON中間形式 - 実績のあるライブラリを使用した信頼性の高い変換
  • 複雑な構造に対応 - ネストされた要素、属性、配列を含む
  • 自動形式検出 と最適な変換戦略
  • データ階層の保持 - 親子関係を維持
  • 型認識変換 - 数値、ブール値、文字列を保持
  • リアルタイム変換 - 即座に結果を表示
  • 構文ハイライト - TOONおよびXML形式の両方に対応

ユースケース

  1. レガシーシステム統合 - 最新のTOONデータをXML形式に変換して、XMLを必要とする古いエンタープライズシステムとの互換性を確保
  2. APIデータ変換 - XML APIレスポンスをトークン効率の高いTOON形式に変換してからLLMに送信し、処理と分析を実行
  3. 設定ファイル変換 - XML設定ファイルをTOON形式に変換して、インフラストラクチャ管理にLLMを使用する場合のトークン使用量を削減
  4. ドキュメント処理 - XML ドキュメント(RSSフィード、SOAPレスポンス、Officeドキュメント)をTOONに変換して、効率的なLLMベースの分析を実現
  5. データマイグレーション - 異なる形式を使用するシステム間でデータを変換し、TOONをトークン効率の高い中間表現として機能

変換プロセス

TOONからXMLへ:

  1. TOON形式をJavaScriptオブジェクトに解析(@toon-format/toon デコードを使用)
  2. JavaScriptオブジェクトをXMLマークアップに変換(xml2js ビルダーを使用)
  3. 適切なインデント付きでフォーマットされたXMLを出力

XMLからTOONへ:

  1. XMLマークアップをJavaScriptオブジェクトに解析(xml2js パーサーを使用)
  2. JavaScriptオブジェクトをTOON形式に変換(@toon-format/toon エンコードを使用)
  3. コンパクトなTOON表現を出力

XML構造に関する注記

TOONからXMLに変換する場合:

  • ルートオブジェクトキーはXML要素になります
  • 配列は同じタグ名を持つ複数の要素を作成します
  • 表形式のTOON配列は個別のXML要素に展開されます
  • オブジェクトプロパティは子要素になります
  • 値はテキストコンテンツに変換されます

XMLからTOONに変換する場合:

  • XML要素はオブジェクトキーになります
  • 繰り返される要素は配列になります
  • 属性は要素コンテンツとマージされます
  • テキストコンテンツは文字列値になります
  • 空の要素は空の文字列またはnullになります

形式に関する考慮事項

XML冗長性:

  • XMLは本質的に開始タグと終了タグで冗長です
  • 各要素は開始タグと終了タグの両方が必要です
  • 属性は追加の文字を追加します
  • ドキュメントマークアップと検証に適しています

TOON効率性:

  • 構造化データの場合、大幅にコンパクトです
  • 繰り返される構造を持つ表形式データに最適です
  • JSONと比較して30~60%トークン使用量を削減します
  • LLM消費に最適化されています

トレードオフ:

  • XMLは属性と混合コンテンツ(テキスト+要素)をサポートします
  • TOONは均一なデータ構造に優れています
  • XMLはより強力な検証機能を備えています
  • TOONはLLMのトークン効率が優れています

変換品質

中間JSON形式により以下が保証されます:

  • データ整合性 - 変換中のデータ損失なし
  • 型保持 - 数値、ブール値、null値を維持
  • 構造一貫性 - ネストされた関係を保持
  • 信頼性の高い変換 - 実績のあるライブラリ(xml2js および @toon-format/toon)を使用
  • エラーハンドリング - 無効な入力に対する明確なエラーメッセージ