本文へスキップ

XMLフォーマッター&バリデーター

XMLを2スペース、4スペース、タブでインデントしたり、1行にまとめたり、解析できない理由を調べたりできます。整形式のXMLには、要素数、階層の深さ、サイズが表示されます。整形式でないXMLには、パーサーのメッセージが表示されます。無料で、登録は不要です。XMLがブラウザの外に出ることはありません。

モード

XMLフォーマッターの使い方

  1. 1. モードを選びます。 フォーマットは読みやすく整形し、圧縮は要素の間の空白を取り除きます。
  2. 2. インデントを選びます。 フォーマットの場合は、2スペース、4スペース、タブから選んでください。
  3. 3. XMLを貼り付けてボタンを押します。 結果が下に表示され、要素数、最大の深さ(ルートは1階層目)、出力サイズ(文字数)の3つの数値が表示されます。
  4. 4. エラーがあれば修正します。 XMLが整形式でない場合は何も出力されず、ブラウザのパーサーが見つけた内容が表示されます。XMLを修正して、もう一度ボタンを押してください。

整形式と妥当の違い

XMLを「検証」するという言い方は、二つの異なることを指します。文書がW3CのXML 1.0勧告の構文規則に従っている場合は整形式です。さらに、DTDやXSDのようなスキーマにも従っている場合は妥当です。このツールは、ブラウザに組み込まれたXMLパーサーを使って、整形式かどうかだけを確認します。DTDやスキーマは読み取らないため、整形式であってもアプリケーションに合わない文書は通ります。たとえば必須の要素が欠けている場合です。このツールが適用する規則は次のとおりです:

規則違反する場合
ルートの要素は一つ最上位に要素が二つある、またはルートの前にテキストがある
要素は正しく入れ子になっている<a><b></a></b>
開始タグには必ず終了タグがある<a><b></a>、または <br/> の代わりに <br>
名前は大文字と小文字を区別する<Title>…</title>
属性値は引用符で囲む<a id=1/>
一つの要素に同じ属性を二度書かない<a id="1" id="2"/>
テキスト内の < と & はエスケープする<a>5 < 6 & 7</a> は 5 &lt; 6 &amp; 7 とすべき

XMLで事前定義されているエンティティは、&lt;、&gt;、&amp;、&apos;、&quot; の5つだけです。そのため、HTMLエンティティ(例:&nbsp;)は、DTDで宣言されていない限りエラーになります。閉じられていないタグのメッセージはブラウザごとの文言で、ブラウザによって異なります。Chromeでは、<a><b></a> は1行目の11列目にエラーを報告し、「Opening and ending tag mismatch: b line 1 and a」と表示され、食い違っている開始タグと終了タグを示します。

フォーマットで変わること

このツールはXMLを木構造に解析し、その木を書き出し直すため、出力は元の文章のコピーではなく、同じ内容のXMLをより整った形で表したものになります。次のような違いが生じます:

  • 宣言とDOCTYPEは保持されます。 先頭の <?xml …?> 行と、内部サブセットを含む <!DOCTYPE …> 宣言は、入力したとおりに書き戻されます。
  • 属性は順序を保ちますが、二重引用符で書き直されます。
  • エンティティは解決されます。 &apos; や &#169; のような文字参照は、文字そのものとして出力されます。エスケープし直されるのは、テキスト中の &、<、> と、属性中の &quot; だけです。
  • 空の要素は自己終了タグになります。 <a></a> は中身がない場合 <a/> になりますが、空白だけを含む場合は <a></a> のままです。
  • コメント、CDATAセクション、処理命令は保持されます。

具体例

次の1行の文書には、宣言、一重引用符の属性、コメント、空の要素が含まれています:

入力

<?xml version="1.0" encoding="UTF-8"?><library><book id='1'><title>APA Manual</title><year>2020</year><!-- note --></book><book id="2"/></library>

フォーマット(2スペース)

9行、172文字です。宣言の後に library が左端に来て、各 book は2スペース、title、year、コメントは4スペース下がります。最初の book の id は id="1" と書かれます。

圧縮

1行、146文字です。

統計

要素5個、最大の深さ3(library、book、title)。

圧縮では宣言を残し、文書全体を1行にまとめるため、同じ文書は172文字から146文字に縮みます。出力サイズのカードには、これらの文字数が表示されます。

どのツールが必要ですか?

このページはXML用です。タグの閉じ忘れを許容し、インラインの空白を保持するHTMLには、HTMLフォーマッターを使ってください。XMLをJSONデータに変換する場合は、属性と繰り返し要素がどう対応づけられるかを示す予定のXMLからJSONへの変換ツールが役立ちます。JSON自体については、JSONフォーマッターを使ってください。

よくある質問

XMLフォーマッターは何をしますか?
XMLを再インデントして、要素の入れ子構造が見えるようにします。通常は1行に1要素ずつ表示されます。このツールは、新しい形で書き出す前に文書を解析する必要があるため、整形式かどうかも確認します。
ここではXMLの検証はどのように行われますか?
ブラウザに組み込まれたXMLパーサーが文章を読み取ります。XMLが構文規則に違反している場合は、パーサーのエラーが表示され、出力は生成されません。チェックするのは整形式かどうかだけで、DTDやXSDのスキーマに対する検証は行いません。
コメント、CDATAセクション、属性は保持されますか?
はい。コメントとCDATAセクションは元のとおりに書き戻され、属性は順序を保ちますが、引用符は二重引用符に統一されます。DOCTYPE宣言は入力したとおりに書き戻されます。
圧縮は何をしますか?
要素の間の空白と改行を取り除き、同じ意味をもつ最も短い文章にします。XML宣言がある場合はそれを残します。<title> のような要素の中のテキストは空白を保持し、子要素の隣にあるテキスト(太字の語を含む段落など)も同様です。
フォーマットすると、テキストの空白が変わるのはなぜですか?
混在コンテンツ(子要素の隣にあるテキスト。太字の語を含む段落など)を整形する場合だけ起こります。フォーマットはそのテキストの前後の空白を削除し、各部分を別の行に置くため、空白が変わります。圧縮では保持されます。要素がテキストか他の要素のどちらかだけを含むデータ型XMLには影響しません。
&nbsp; を含むXMLがエラーになるのはなぜですか?
XMLで事前定義されているエンティティは5つだけで、&nbsp; はその一つではありません。数値の文字参照 &#160; に置き換えるか、DTDでエンティティを宣言してください。
私のXMLはサーバーにアップロードされますか?
いいえ。解析とフォーマットはすべてブラウザ内で行われ、貼り付けた内容がどこかに送信されることはありません。

関連ツール

データ・マークアップ・コードのその他のツール