SOAP / API デバッグ
ネットワークログから生の SOAP レスポンスを貼り付けて整形すると、エンベロープ内に隠れていた fault が見えるようになります。エラーの行 + 列で、不正な namespace プレフィックスやエスケープされていない & へ数秒でジャンプできます。
あらゆる 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 行は最初の行として保持されます。
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 から、きれいに整形・検証された出力までの 4 ステップ。
あらゆる XML ペイロードをドロップまたは貼り付け — REST API レスポンス、SOAP エンベロープ、RSS / Atom フィード、sitemap、各種設定。入力中(350ms のデバウンス)に自動で整形されます。
2 スペースがモダンなデフォルト(Prettier や多くのスタイルガイドに準拠)。4 スペースは古めの慣習(Java や.NET)。Tab はエディタの tab 幅に合わせるので、後で手編集する場合に便利です。
検証は well-formed エラーを行 + 列付きで報告します。圧縮はドキュメントを 1 行にまとめます — XML を JSON 文字列、データベースのカラム、シェル変数に埋め込むときに便利です。
コピーアイコンをクリックすると整形済みの XML がクリップボードに送られます。あるいは formatted.xml としてダウンロード。出力は CDATA、コメント、processing instruction、XML declaration を保持します。
プライバシー重視のブラウザ内フォーマッターが IDE を開くより速い、4 つの代表的な XML ワークフロー。
ネットワークログから生の SOAP レスポンスを貼り付けて整形すると、エンベロープ内に隠れていた fault が見えるようになります。エラーの行 + 列で、不正な namespace プレフィックスやエスケープされていない & へ数秒でジャンプできます。
手書きの `sitemap.xml` や RSS フィードを貼り付け、Search Console / アグリゲーターに送る前に well-formed を検証。自動化スクリプトに埋め込むために 1 行に圧縮することもできます。
Maven pom.xml、Spring beans、NHibernate マッピング、Android AndroidManifest.xml — 手動編集後の再整形がすべて役立ちます。コミット前に検証して、ビルド時に文句を言われるタイポを事前に潰せます。
.docx、.xlsx、.pptx、.epub はすべて XML を含む ZIP です。中の XML を取り出してここに貼り付け、整形すれば、構造をきれいに読んだり編集したりしてから ZIP に戻せます。
XML ペイロードが端末を離れることはありません。DevTools → Network を開けば、整形・検証・コピー・ダウンロードのいずれでも外部リクエストがゼロであることを確認できます。
DOMParser を使用しています。整形と圧縮は、得られた DOM ツリーを単純に走査する JavaScript です。
XML、SOAP デバッグ、設定ファイルのワークフローに関する厳選記事。
Where XML still beats JSON (SOAP, RSS, Office docs, EPUB, sitemaps, configs) and where JSON wins. Worked examples and migration patterns.
Reading XML namespace prefixes, finding the actual fault inside a SOAP envelope, and using a browser-based formatter to spot the issue without firing up SoapUI.
well-formedness は基本的な構造ルールのことです:タグは正しくネストされ閉じられ、属性はクオートされ、ルート要素は 1 つだけで、特殊文字はエスケープされている必要があります(<、& など)。このツールはブラウザネイティブの DOMParser を使って well-formed を検査します。
Validity(妥当性)は、スキーマ(DTD、XSD、RelaxNG)に対するより厳しいチェック — 「ドキュメントが その 文法に従っているか」です。ブラウザの DOMParser はスキーマ検証は行いません。XSD 検証には xmllint --schema のようなサーバーサイドツールが必要です。
はい。CDATA セクション(<![CDATA[…]]>)は中身が書かれたまま保持されます — 内部の特殊文字が再エスケープされることはありません。コメント(<!-- … -->)と processing instruction(<?xml-stylesheet … ?>)は元の位置に戻されます。XML declaration と doctype 行は最初の行として保持されます。
はい、well-formed なものなら何でも動きます — namespace プレフィックス付きの SOAP エンベロープ(soap:Envelope、soap:Body)、RSS / Atom フィード、sitemap、SVG、plist、Maven pom.xml、Spring 設定、EPUB container.xml、Android AndroidManifest.xml。namespace プレフィックスは保持されます — xmlns: 属性を取り除くことはありません。
よくある原因:(1) テキストや属性値内のエスケープされていない & — & にする必要があります;(2) ルート要素が 2 つある(XML はちょうど 1 つしか許しません);(3) タグの綴りが閉じタグと違う(例:<Item>…</item> — XML は大文字小文字を区別します);(4) 属性値がクオートされていない;(5) テキスト内容に対応のない <。エラーメッセージに表示される行 + 列が失敗箇所を指しています。
いいえ。パース、整形、圧縮、検証、シンタックスハイライト、ダウンロードはすべてブラウザ内の JavaScript として実行されます。DevTools → Network を開いて使ってみてください。利用中の外部リクエストはゼロです。cookie は cookie 同意状態用に 1 つ、言語設定用に 1 つ使うだけです。