XML フォーマッター
XMLを整形・圧縮し、タグの対応関係が崩れていないか(整形式)をその場でチェックします。SOAP/RESTのレスポンス確認やRSS/Atomフィードの読解にも使えます。
XMLフォーマッターとは
XMLフォーマッターは、改行のない1行のXMLや、字下げの乱れたXMLを読みやすい形に整形し直すツールです。逆にタグの間の空白・改行を取り除いて1行に圧縮(ミニファイ)することもでき、整形とミニファイをボタン1つで切り替えられます。字下げはスペース2つ・スペース4つ・タブから選べるため、プロジェクトのコーディング規約に合わせて出力できます。
入力すると同時に、開始タグと終了タグの対応関係が崩れていないか(整形式・Well-formed)も自動で判定します。対応関係が崩れている場合は「不正なXML」バッジとともに、どの行のどのタグでエラーが起きたかを一覧表示するため、目視での見落としを防げます。処理はすべてブラウザ内のJavaScriptで完結し、入力したXMLがtoolbase.ccのサーバーへ送信されることはありません。
XMLフォーマッターの使い方
- XMLを貼り付ける 左側の入力欄にXMLを貼り付けます。手元に試すデータがなければ「サンプル」ボタンでRSSフィードの例を読み込めます。
- 字下げの幅を選ぶ スペース2つ・スペース4つ・タブから選びます。既存ファイルの規約に合わせておくと、そのまま貼り戻せます。
- 整形結果とバッジを確認する 右側の出力欄に整形結果が表示され、同時に「整形式(Well-formed)」「不正なXML」のバッジが切り替わります。不正な場合は行番号つきのエラー一覧が下に表示されます。
- 必要ならミニファイモードに切り替える 「ミニファイ(圧縮)モード」をONにすると、出力欄の内容がタグ間の空白を取り除いた1行の圧縮結果に変わります。
- 整形済みか圧縮済みかを選んでコピーする 「整形済みをコピー」「圧縮済みをコピー」のどちらかを押すと、対応する結果がクリップボードにコピーされます。
使いこなすためのヒント
- 入力したXMLはすべてブラウザ内のJavaScriptで処理され、toolbase.cc のサーバーには一切送信されません。社内API設定や機密情報を含むレスポンスでも安全に整形できます。
- ミニファイモードをONにすると、タグの間にある改行・インデント用の空白がすべて除去されます。設定ファイルへの埋め込みやHTTPリクエストボディの圧縮に便利です。
- 整形結果が「不正なXML」と表示された場合、多くは閉じ忘れたタグか開始・終了タグの綴りの不一致が原因です。エラー一覧に表示される行番号を手がかりに該当箇所を探してください。
- このツールはJSON・SQLフォーマッターと同じ仕組みの姉妹ツールです。API開発でJSON⇔XML両方のレスポンスを扱う場合は、JSONフォーマッターと併用すると便利です。
- 名前空間プレフィックス(例:
<soap:Envelope>)を含むXMLもタグ名ごと対応関係をチェックするため、SOAPメッセージのデバッグにも利用できます。
XMLフォーマッターの活用シーン
SOAP/RESTのAPIレスポンスを確認する
1行で返ってきたSOAP/RESTのXMLレスポンスを整形すれば、要素の入れ子関係や名前空間プレフィックスの対応が目で追えるようになります。開発中の動作確認に便利です。
RSS/Atomフィードの中身を読む
ブログやニュースサイトが配信するRSS/Atomフィードを整形して、item要素の並びや各フィールドの値を人間が読める形で確認できます。
設定ファイル・ビルド定義の構文エラーを突き止める
AndroidレイアウトXMLやMavenのpom.xmlなど、XML形式の設定ファイルが読み込めないとき、貼り付けて検証すればタグの閉じ忘れをその場で特定できます。
転送量を減らすために圧縮する
整形されたXMLをそのままAPIレスポンスやファイルとして配信すると、字下げの空白ぶんだけ転送量が増えます。配信用にはミニファイした版を使ってください。
他の形式へ変換する前の下ごしらえ
整形式であることを先に確かめておけば、XMLからJSONのような変換ツールへ渡したときに、変換側で原因の分かりにくいエラーに悩まされずに済みます。
XMLに関する用語集
- 要素(Element)
- 開始タグと終了タグ(
<item>...</item>)、またはそれ自身で閉じる自己終了タグ(<item />)で構成されるXML文書の基本単位です。要素は入れ子にでき、文書全体は1つのルート要素の下にツリー構造をなします。 - 属性(Attribute)
- 開始タグの中に
name="value"の形式で書く付加情報です。同じ情報を子要素として書くか属性として書くかは設計判断であり、XML Schemaの設計指針によって使い分けが議論されます。 - 整形式(Well-formed)
- すべてのタグが正しく開閉され、入れ子関係が崩れていない状態を指すXML仕様上の必須条件です。本ツールの検証機能はこの整形式かどうかを判定します。スキーマへの準拠を意味する「妥当(Valid)」とは別の概念です。
- 名前空間(Namespace)
xmlns:soap="..."のように宣言し、<soap:Envelope>のようなプレフィックス付きタグ名で使う仕組みです。異なる語彙のXMLを1つの文書内で衝突なく混在させるために使われ、SOAPメッセージで多用されます。- CDATAセクション
<![CDATA[ ... ]]>で囲んだ範囲をXMLパーサーがタグとして解釈しないようにする仕組みです。HTMLの断片やソースコードなど、山括弧を含むテキストをエスケープせずに埋め込みたいときに使います。- 処理命令(Processing Instruction)
<?xml version="1.0"?>のように<?と?>で囲まれた記述です。文書の先頭に置くXML宣言が代表例で、パーサーやアプリケーションへの指示を埋め込むために使われます。- DTD(文書型定義)
- XML文書がどの要素・属性を持てるかを定義する仕組みの1つです。
<!DOCTYPE ...>で宣言し、より高機能な代替としてXML Schema(XSD)も広く使われています。
よくある質問
<・&のように実体参照でエスケープする必要があります。<ns:tag>のような名前空間プレフィックス付きのタグ名も、プレフィックスを含めた完全一致でタグの対応関係をチェックするため、SOAPメッセージなど名前空間を多用するXMLでも正しく検証・整形できます。
余談ですが ― SGML の子として生まれたXML
XML(Extensible Markup Language)は1998年にW3C(World Wide Web Consortium)が勧告した仕様で、元をたどると1980年代に策定された巨大な文書記述規格 SGML(Standard Generalized Markup Language)の簡略版という位置づけで生まれました。HTMLもSGMLの応用例の1つであり、XMLとHTMLは「SGMLファミリーの兄弟」にあたります。
2000年代前半、XMLはSOAPを筆頭にWeb API・企業間データ連携(EDI)の標準フォーマットとして急速に普及しました。属性・名前空間・スキーマ(XML Schema)による厳密な型定義ができる点が、当時のエンタープライズ用途で重視されたためです。
その後2010年代にJSONへ主役の座を譲りましたが、XMLが完全に廃れたわけではありません。RSS/Atomフィード、SVG画像、Office文書(docx/xlsxの内部形式)、Androidのレイアウトファイルなど、構造化文書としての表現力が求められる領域では現在もXMLが標準として使われ続けています。
本ツールはJSONフォーマッター・SQLフォーマッターに続く3本目のフォーマッターとして、Toolbaseの開発者向けデータ整形ツール群を「JSON・SQL・XML」の主要3形式で揃える位置づけの実装です。