XMLフォーマッター

SOAPサービス、RSSフィード、設定のエクスポートから出力された圧縮済みXMLは、1行のままでは読めません。このフォーマッターはドキュメントを解析し、一貫したインデント(2スペースまたは4スペース、タブ、あるいは圧縮出力用のインデントなし)で再構築するとともに、属性の順序やCDATAセクションを保持します。また、整形式に関する問題があれば正確な行と列を示して報告するため、対応するタグを探し回らなくても不一致を修正できます。

XMLの書式設定方法

  1. 1

    XMLを貼り付ける

    長さやエンコーディングは問いません。宣言は保持されます。

  2. 2

    インデントを選ぶ

    スペース(2または4)、タブ、または圧縮。

  3. 3

    整形する

    パーサーがまずDOMを構築し、その後一貫した間隔で再シリアル化します。

  4. 4

    結果をコピーする

    出力は整形式のXMLで、ログやドキュメントにそのまま貼り付けられます。

整形で保持される内容

  • XML宣言(<?xml version="1.0" encoding="UTF-8"?>)はそのまま保持されます。
  • DOCTYPE宣言および内部サブセットも保持されます。
  • 処理命令(<?xml-stylesheet ?>)は独立した行に保たれます。
  • コメントは、文脈に応じて独立した行またはインラインで保持されます。
  • CDATAセクションは、内部の空白を含めて正確に保持されます。
  • 属性値は、ダブルクォートを含まない場合はダブルクォートで、含む場合はシングルクォートで再度囲みます。
  • &amp;、&lt;、&gt;などのエンティティ参照は、完全なエンティティ展開を有効にしない限り、そのまま残されます。

インデントの例

入力(圧縮済み):

<books><book id="1"><title>1984</title><author>George Orwell</author></book></books>

整形後(2スペース):

<books>
  <book id="1">
    <title>1984</title>
    <author>George Orwell</author>
  </book>
</books>

ツールが検出する一般的なエラー

エラー 修正方法
閉じタグの不一致 開始タグと閉じタグの名前を一致させる
閉じられていない要素 閉じタグを追加する
タグ名に使えない文字 タグ名は文字またはアンダースコアで始める必要がある
同一要素上の重複属性 重複を削除する
不正な形式のCDATA <![CDATA[と]]>の対応を確認する
テキスト内のエスケープされていない < または & &lt; または &amp; を使う

整形式と妥当性

  • **整形式(well-formed)**のXMLは、バランスの取れたタグ、有効な文字、適切なネストといった構文ルールに従います。フォーマッターはこれをチェックします。
  • **妥当な(valid)**XMLはさらにスキーマ(DTDまたはXSD)にも準拠します。その確認にはXSDバリデーターを使用してください。

XMLドキュメントは妥当でなくても整形式であり得ますが、その逆はありません。

実用的なメモ

  • XMLの属性順序は一部のシステム(最近のものは多くありません)にとって意味を持ちます。フォーマッターは入力順序を保持します。
  • 自己終了タグと明示的な空タグ:<foo/>と<foo></foo>はXMLでは同等です。フォーマッターは、オプトアウトしない限り空要素に自己終了タグを使用します。
  • 名前空間の接頭辞は正確に保持されます。

よくある質問

はい。混在コンテンツ要素やCDATAセクション内のテキストはそのまま保持され、要素間の空白だけがインデントに合わせて調整されます。

ブラウザでの実用的な上限は約50MBです。これを超えると、DOM解析のメモリ消費が大きくなりすぎます。巨大なファイルの場合は、コマンドラインのxmllintのようなストリーミング型フォーマッターを使用してください。

はい。名前空間の宣言はその要素上に保持されます。「名前空間を統合」を有効にしない限り、フォーマッターがそれらをルートへ移動することはありません。

いいえ。解析と整形はブラウザ内で行われ、データは一切送信されません。

関連ツール

このツールは他の言語でも利用できます