XML Formatter / Validator

XML Formatter / Validator

あらゆる XML を整形、圧縮、検証 — REST レスポンス、SOAP エンベロープ、RSS フィード、sitemap、Maven、AndroidManifest。シンタックスハイライト出力、行 + 列のエラーレポート。すべてブラウザ内で完結。

well-formedness は基本的な構造ルールのことです:タグは正しくネストされ閉じられ、属性はクオートされ、ルート要素は 1 つだけで、特殊文字はエスケープされている必要があります(<& など)。このツールはブラウザネイティブの DOMParser を使って well-formed を検査します。

Validity(妥当性)は、スキーマ(DTD、XSD、RelaxNG)に対するより厳しいチェック — 「ドキュメントが その 文法に従っているか」です。ブラウザの DOMParser はスキーマ検証は行いません。XSD 検証には xmllint --schema のようなサーバーサイドツールが必要です。

はい。CDATA セクション(<![CDATA[…]]>)は中身が書かれたまま保持されます — 内部の特殊文字が再エスケープされることはありません。コメント(<!-- … -->)と processing instruction(<?xml-stylesheet … ?>)は元の位置に戻されます。XML declaration と doctype 行は最初の行として保持されます。

入力
出力

            

おもちゃではなく、実務の XML のために作りました

SOAP エンベロープ、RSS フィード、sitemap、Maven `pom.xml`、AndroidManifest — 整形・圧縮・検証のいずれでも正しく処理します。

適切なインデントで整形

2 スペース、4 スペース、Tab インデントから選択可能。self-closing タグはそのまま保持。CDATA セクション、コメント、processing instruction、XML declaration はすべて整形のラウンドトリップで保持されます。

圧縮

要素間の不要な空白を取り除き、ドキュメント全体を 1 行にまとめます。XML を JSON 文字列フィールドに埋め込んだり、帯域の限られた回線で送信するときに便利です。

行 + 列付きの検証

ブラウザネイティブの DOMParser を使った well-formed チェック。エラー時には不正な箇所の行と列がインラインで表示され、問題箇所へすぐにジャンプできます。

シンタックスハイライト出力

タグ名、属性、属性値、テキスト、コメント、CDATA、processing instruction がすべて色分けされ、構造がひと目で読み取れます。

設計からプライバシー重視

1 バイトたりともブラウザの外には出ません。パース、整形、検証、ダウンロードはすべて、お使いの端末上で JavaScript として動作します。DevTools → Network を開けば、外部リクエストがゼロであることを確認できます。

小さくて速い

純粋な JavaScript、フレームワークランタイムなし。コールドロードは gzip 25 KB 未満。200 KB の XML ドキュメントを整形してシンタックスハイライト付きで再描画しても 80 ms 未満で完了します。

XML を整形して検証する手順

乱雑な XML から、きれいに整形・検証された出力までの 4 ステップ。

  1. 1

    XML を貼り付ける

    あらゆる XML ペイロードをドロップまたは貼り付け — REST API レスポンス、SOAP エンベロープ、RSS / Atom フィード、sitemap、各種設定。入力中(350ms のデバウンス)に自動で整形されます。

  2. 2

    インデントを選ぶ

    2 スペースがモダンなデフォルト(Prettier や多くのスタイルガイドに準拠)。4 スペースは古めの慣習(Java や.NET)。Tab はエディタの tab 幅に合わせるので、後で手編集する場合に便利です。

  3. 3

    検証または圧縮

    検証は well-formed エラーを行 + 列付きで報告します。圧縮はドキュメントを 1 行にまとめます — XML を JSON 文字列、データベースのカラム、シェル変数に埋め込むときに便利です。

  4. 4

    コピーまたはダウンロード

    コピーアイコンをクリックすると整形済みの XML がクリップボードに送られます。あるいは formatted.xml としてダウンロード。出力は CDATA、コメント、processing instruction、XML declaration を保持します。

SOAP、RSS、sitemap、設定ファイルのために

プライバシー重視のブラウザ内フォーマッターが IDE を開くより速い、4 つの代表的な XML ワークフロー。

SOAP / API デバッグ

ネットワークログから生の SOAP レスポンスを貼り付けて整形すると、エンベロープ内に隠れていた fault が見えるようになります。エラーの行 + 列で、不正な namespace プレフィックスやエスケープされていない & へ数秒でジャンプできます。

Sitemap & RSS の作成

手書きの `sitemap.xml` や RSS フィードを貼り付け、Search Console / アグリゲーターに送る前に well-formed を検証。自動化スクリプトに埋め込むために 1 行に圧縮することもできます。

ビルドファイル & 設定ファイル

Maven pom.xml、Spring beans、NHibernate マッピング、Android AndroidManifest.xml — 手動編集後の再整形がすべて役立ちます。コミット前に検証して、ビルド時に文句を言われるタイポを事前に潰せます。

Office 文書 & EPUB の中身

.docx.xlsx.pptx.epub はすべて XML を含む ZIP です。中の XML を取り出してここに貼り付け、整形すれば、構造をきれいに読んだり編集したりしてから ZIP に戻せます。

100% プライベート — ブラウザ内で動作

XML ペイロードが端末を離れることはありません。DevTools → Network を開けば、整形・検証・コピー・ダウンロードのいずれでも外部リクエストがゼロであることを確認できます。

  • パースはブラウザネイティブの DOMParser を使用しています。整形と圧縮は、得られた DOM ツリーを単純に走査する JavaScript です。
  • リモートのバリデーターも、サードパーティの XML API もありません。あなたの XML は 1 バイトもあなたのマシン上に留まります。
  • ログイン不要、ドキュメント内容に対するテレメトリもありません。cookie は cookie 同意状態用に 1 つ、言語設定用に 1 つ使うだけです。

関連ガイド

XML、SOAP デバッグ、設定ファイルのワークフローに関する厳選記事。

よくある質問

well-formed とは何ですか?「valid」な XML との違いは?

well-formedness は基本的な構造ルールのことです:タグは正しくネストされ閉じられ、属性はクオートされ、ルート要素は 1 つだけで、特殊文字はエスケープされている必要があります(&lt;&amp; など)。このツールはブラウザネイティブの DOMParser を使って well-formed を検査します。

Validity(妥当性)は、スキーマ(DTD、XSD、RelaxNG)に対するより厳しいチェック — 「ドキュメントが その 文法に従っているか」です。ブラウザの DOMParser はスキーマ検証は行いません。XSD 検証には xmllint --schema のようなサーバーサイドツールが必要です。

整形しても CDATA、コメント、processing instruction は保持されますか?

はい。CDATA セクション(<![CDATA[…]]>)は中身が書かれたまま保持されます — 内部の特殊文字が再エスケープされることはありません。コメント(<!-- … -->)と processing instruction(<?xml-stylesheet … ?>)は元の位置に戻されます。XML declaration と doctype 行は最初の行として保持されます。

SOAP エンベロープや RSS フィードを貼り付けられますか?

はい、well-formed なものなら何でも動きます — namespace プレフィックス付きの SOAP エンベロープ(soap:Envelopesoap:Body)、RSS / Atom フィード、sitemap、SVG、plist、Maven pom.xml、Spring 設定、EPUB container.xml、Android AndroidManifest.xml。namespace プレフィックスは保持されます — xmlns: 属性を取り除くことはありません。

問題なさそうに見えるのに、XML が「parser error」と言うのはなぜ?

よくある原因:(1) テキストや属性値内のエスケープされていない &&amp; にする必要があります;(2) ルート要素が 2 つある(XML はちょうど 1 つしか許しません);(3) タグの綴りが閉じタグと違う(例:<Item>…</item> — XML は大文字小文字を区別します);(4) 属性値がクオートされていない;(5) テキスト内容に対応のない <。エラーメッセージに表示される行 + 列が失敗箇所を指しています。

サーバーに何か送信されますか?

いいえ。パース、整形、圧縮、検証、シンタックスハイライト、ダウンロードはすべてブラウザ内の JavaScript として実行されます。DevTools → Network を開いて使ってみてください。利用中の外部リクエストはゼロです。cookie は cookie 同意状態用に 1 つ、言語設定用に 1 つ使うだけです。