XML フォーマッター
XMLをブラウザ内で整形・圧縮・バリデーション — データは送信されません。乱雑なXMLを再インデントし、整形エラーを行番号と列番号で報告します。無料、プライベート、登録不要。
XMLフォーマッターとは何ですか?なぜ使うのですか?
XML(拡張マークアップ言語)はWebサービスや設定ファイルからRSSフィード、SOAP API、オフィスドキュメント(DOCX、XLSX)、SVGグラフィック、Androidレイアウトファイルまで、あらゆる場所で使用されている構造化データ用のテキストベースのフォーマットです。JSONとは異なり、XMLはコメント、名前空間、混合コンテンツ(テキストと要素の混在)、ドキュメント型宣言をサポートします — これによりエンタープライズ統合、ドキュメント交換、構造化データと人間が読めるマークアップが共存する場面で選ばれるフォーマットです。
実世界のXMLは多くの場合、インデントが乱雑か完全に圧縮されています — APIレスポンスは1行で届き、設定ファイルには一貫性のないインデントが蓄積され、シリアライザーが生成したXMLには空白が全くありません。XMLフォーマッターはその乱雑な入力を、ネストの各レベルが視覚的に明確な、クリーンで階層的な構造に再インデントします。これはコードレビュー、デバッグ、ドキュメント化、馴染みのないXMLスキーマの理解に不可欠です。
**このツールがプレーンテキストエディタと異なる点:**
**1. 正確なエラー位置を示す整形バリデーション。** フォーマッターはブラウザのDOMParser(HTMLとSVGを解析するのと同じエンジン)を使用してXMLを解析します。ドキュメントが整形されていない場合 — タグの不一致、閉じられていない要素、エスケープされていない文字、複数のルート要素 — パーサーは失敗した正確な行番号と列番号を報告します。生のXMLを読み込んでタグがどこで開いたままになっているかを探すよりもはるかに速いです。
**2. 無損失な整形。** フォーマッターはコメント、処理命令、CDATAセクション、名前空間宣言、属性の順序、すべてのテキスト内容を完全に保持します。要素タグ間の空白のみを調整します。気にかけているXMLを安全に整形できます — 意味のあるものは何も変わりません。
**3. 本番用の圧縮。** ミニファイヤーは要素間の重要でない空白をすべて取り除き、最小の有効なXML表現を生成します。これはデータベースカラムへのXML保存、JSONへの文字列としての挿入、バイトカウントチャネルでの転送前の適切な前処理ステップです。
**4. 100%ブラウザベースのプライバシー。** 医療XML(HL7、FHIR)、財務データ、クレデンシャルを含むSOAPペイロード、内部設定ファイルはすべて機密データを含む一般的なXMLペイロードです。このツールは何もアップロードしません — すべての処理はブラウザのJavaScriptエンジンで実行されます。変換ではなく整形が必要な場合は、コンパニオンツールをご覧ください:XML to JSON コンバーター はXMLをJSONに変換し、JSON to XML コンバーター はその逆方向の変換を行います。
<!-- Minified XML input -->
<?xml version="1.0" encoding="UTF-8"?><catalog><product id="p01"><name>Wireless Headphones</name><price currency="USD">79.99</price></product></catalog>
<!-- After formatting with 2-space indent -->
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<product id="p01">
<name>Wireless Headphones</name>
<price currency="USD">79.99</price>
</product>
</catalog> 主な機能
2または4スペースインデントでビューティファイ
XMLをクリーンで読みやすい階層構造に再インデントします。整形前に2スペース(Webサービス、RSS、設定ファイルで最も一般的)または4スペース(エンタープライズXMLスキーマで一般的)インデントを選択できます。
圧縮 — 非重要な空白を除去
テキスト内容に触れずに要素タグ間のすべての空白を削除し、最小の有効なXMLを生成します。保存、転送、またはJSONや他のフォーマット内の文字列として埋め込む場合に最適です。
行番号・列番号エラー付きの整形バリデーション
ブラウザ組み込みのDOMParserを使用してXML構造をバリデートします。最初の整形エラーの正確な行番号と列番号を報告します — タグの不一致、閉じられていない要素、エスケープされていない文字 — 迅速なデバッグのために。
無損失:コメント、名前空間、属性を保持
コメント、処理命令、CDATAセクション、名前空間宣言、属性の順序はすべて完全に保持されます。タグ間の重要でない空白のみが変更されます — コンテンツは決して変更されません。
100%ブラウザベース — アップロードなし、サーバーなし
すべての処理はブラウザ内でローカルに実行されます。クレデンシャル、医療データ、財務記録、内部設定を含むXMLペイロードはどのサーバーにも送信されず、記録もされません。
SOAP、RSS、SVG、XHTML、Android XMLに対応
あらゆる整形されたXMLアプリケーションを処理します:WS-Securityヘッダーを持つSOAPエンベロープ、RSS/Atomフィード、SVGファイル、XHTMLドキュメント、AndroidレイアウトXML、Maven POM、Maven/AntビルドファイルLing。
サンプル
乱雑・圧縮XMLの例
<?xml version="1.0" encoding="UTF-8"?><catalog><product id="p01" category="electronics"><name>Wireless Headphones</name><price currency="USD">79.99</price><stock>142</stock><tags><tag>audio</tag><tag>bluetooth</tag></tags></product><product id="p02" category="books"><name>Learning XML</name><price currency="USD">29.99</price><stock>55</stock></product></catalog>
1行に圧縮されたXML製品カタログです。「整形」をクリックすると、2スペースインデントで読みやすいツリー構造に展開されます。要素の階層、属性、テキスト内容はすべて完全に保持されます — 整形は純粋に見た目の変更です。
RSSフィードの断片
<rss version="2.0"><channel><title>Go Tools Blog</title><link>https://go-tools.org/blog</link><description>Developer tools, tips and tutorials</description><item><title>Understanding XML Namespaces</title><link>https://go-tools.org/blog/xml-namespaces-guide</link><pubDate>Thu, 29 May 2026 00:00:00 GMT</pubDate><description>A deep dive into XML namespace declarations, prefixes, and scope rules with practical examples.</description></item><item><title>XML vs JSON: When to Use Each</title><link>https://go-tools.org/blog/xml-vs-json</link><pubDate>Mon, 25 May 2026 00:00:00 GMT</pubDate></item></channel></rss>
2件のアイテムを持つRSS 2.0フィードを1行に圧縮したものです。整形後、チャンネルのメタデータと各アイテム要素が明確にインデントされ、フィード構造の確認、新規アイテムの追加、フィードバリデーターの要件との比較が容易になります。
SOAPエンベロープ
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"><wsse:UsernameToken><wsse:Username>api-client</wsse:Username><wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-ext-1.0.xsd#PasswordText">s3cr3t</wsse:Password></wsse:UsernameToken></wsse:Security></soap:Header><soap:Body><GetOrderRequest xmlns="http://example.com/orders"><OrderId>ORD-20260529-001</OrderId><IncludeLineItems>true</IncludeLineItems></GetOrderRequest></soap:Body></soap:Envelope>
WS-Securityヘッダーと GetOrder ボディを持つSOAP 1.1エンベロープで、3つの名前空間プレフィックス(soap:、wsse:、デフォルト)を使用しています。整形することでヘッダーとボディの分離、名前空間宣言が一目で明確になります — SOAPインテグレーションのデバッグやWSDL生成のペイロードの読み取りに不可欠です。
使い方
- 1
XMLを貼り付ける
上の入力フィールドにXMLを入力または貼り付けてください。「サンプルを読み込む」をクリックして、整形後の見た目が分かるサンプル(圧縮された製品カタログXML)を試すこともできます。
- 2
アクションを選択する
「整形」をクリックしてインデント付きにビューティファイ、「圧縮」をクリックして空白を除去、または「バリデート」をクリックして整形性を確認します。整形前にインデントサイズとして2または4スペースを選択してください。
- 3
出力をコピーする
処理されたXMLが出力パネルに表示されます。「コピー」をクリックしてクリップボードにコピーします。バリデートでエラーが見つかった場合、エラーバナーに正確な行番号と列番号が表示されます。
よくあるXMLエラー
タグの不一致
XMLタグ名は大文字小文字が区別され、完全に一致する必要があります。
<products>
<Item>
<name>Widget</name>
</item>
</products> <products>
<item>
<name>Widget</name>
</item>
</products> エスケープされていないアンパサンドまたは小なり記号
& と < の文字はXMLで予約されており、CDATAセクション外ではエスケープする必要があります。裸の & は属性値でもパーサーエラーを引き起こします。& には &、< には < を使用してください。大なり記号 > はテキスト内容では > としてエスケープすべきですが、パーサーはそれについてより寛容です。
<query>price > 10 & stock > 0</query>
<query>price > 10 & stock > 0</query>
クォートなしまたは不適切にクォートされた属性
すべてのXML属性値はシングルクォートまたはダブルクォートで囲む必要があります。クォートなしの属性値はHTML5では有効ですが、XMLでは整形エラーです。また、ダブルクォートを含む値はシングルクォートをデリミタとして使用するか(または " としてエスケープする)必要があります。
<product id=p01 label="It's a "widget"">
<product id="p01" label="It's a "widget"">
複数のルート要素
XMLドキュメントは他のすべての要素を含む正確に1つのルート要素を持つ必要があります。XMLフラグメントを連結する際の一般的なミスは、2つ以上のトップレベル要素が並ぶことです。これはHTMLでは一般的ですが、有効なXMLではありません。すべての兄弟要素を単一のルートコンテナでラップしてください。
<user><name>Alice</name></user> <user><name>Bob</name></user>
<users> <user><name>Alice</name></user> <user><name>Bob</name></user> </users>
XML宣言のエンコーディング不一致
XMLファイルがUTF-16や他の非UTF-8エンコーディングで保存されているが、 宣言に encoding="UTF-8" と記載(または省略されてデフォルトのUTF-8が適用)されている場合、一部のパーサーはそれを拒否したり文字化けを生成したりします。ブラウザベースのツールに貼り付けると、ブラウザが自動的にエンコーディングを処理します。ディスク上のファイルについては、encoding属性が実際のファイルエンコーディングと一致していることを確認してください。
<?xml version="1.0" encoding="UTF-8"?> <!-- File is actually saved as UTF-16 -->
<?xml version="1.0" encoding="UTF-16"?> <!-- File saved as UTF-16, declaration matches -->
CDATAセクションが適切に閉じられていない
CDATAセクションは で終わります。]]> の閉じシーケンスが欠落しているか誤って入力されている場合、パーサーはその後に続くすべてを別の ]]> が見つかるかドキュメントの末尾に達するまでCDATAセクションの一部として扱います。これは通常「ドキュメントの予期しない終了」エラーとして現れます。
<script><![CDATA[
if (a < b && b > c) { return true; }
<!-- ]]> is missing --> <script><![CDATA[
if (a < b && b > c) { return true; }
]]></script> よくある使用場面
- SOAP / Webサービスのペイロードのデバッグ
- エンタープライズAPIや旧来のWebサービスからのSOAPレスポンスは1行のXML文字列で届きます。生のペイロードをフォーマッターに貼り付けて、エンベロープ構造、ヘッダー、ボディを即座に確認 — 必要なフィールドを見つけたり、名前空間の不一致を発見したりできます。JavaScriptでペイロードをさらに処理する必要がある場合は XML to JSON コンバーター も参照してください。
- 設定ファイルとデプロイメントディスクリプタのバリデーション
- Maven POMファイル、Spring XMLアプリケーションコンテキスト、Tomcat server.xml、Android マニフェストファイル、その他多くのJava/エンタープライズ設定ファイルはXMLです。コミット前にバリデートを実行して、ビルドやデプロイ時にのみ発覚するタグの不一致やエンコーディングの問題を早期に発見してください。
- RSSおよびAtomフィード出力の整形
- RSS 2.0とAtom 1.0フィードはXMLです。フィードジェネレーターの開発やフィードリーダーの互換性問題のデバッグ時に、生のフィードXMLを整形してチャンネルメタデータ、アイテム構造、必要な名前空間宣言を並べて確認してください。
- SVGファイルの読み取りと編集
- Figma、Illustrator、SketchからエクスポートされたSVGファイルは有効なXMLですが、多くの場合圧縮されているかエクスポーターが過剰なインデントを付けています。SVGを整形してクリーンでナビゲートしやすい要素ツリーを取得し、パス、グループ、スタイル属性を手動で編集しやすくしてください。
- 保存や転送のためのXML準備
- XMLをデータベースカラムに保存したり、APIリクエストのJSONフィールドとして送信したり、メッセージキューに挿入したりする場合は、まず圧縮を使用して不要な空白を除去してください。これによりペイロードサイズが削減され、大きなインデントされたXML文字列のエスケープされていない制御文字でJSON解析が失敗する問題を回避できます。
- XMLをJSONに変換する
- 整形されたXMLをJavaScriptアプリケーションやREST APIで使用するためにJSONに変換する必要がある場合は、XML to JSON コンバーターをご利用ください。逆方向 — JSON構造からXMLを構築する場合は、JSON to XML コンバーターをご利用ください。
技術的詳細
- XML解析にブラウザDOMParserを使用
- XML解析はブラウザのネイティブDOMParserを「text/xml」MIMEタイプで使用します。これはブラウザでSVGとXHTMLレンダリングを動かすのと同じエンジンです — XML 1.0に完全準拠し、整形エラーを行と列の情報とともに報告します。ドキュメントが整形されていない場合、DOMParserはエラーメッセージと位置を含む parsererror ドキュメントを返し、このツールがそれを抽出して表示します。
- 整形のためのDOMツリーシリアライゼーション
- 整形はXMLをDOMツリーに解析し、インデントされた出力を生成するためにツリーを再帰的に走査することで機能します。このアプローチはドキュメントのセマンティクス構造を保持します:要素のネスト、テキスト内容、属性、CDATAセクション、処理命令、コメントはすべて解析されたとおりに正確にシリアライズされます。要素間の空白のみのテキストノードのみが破棄されます — 非空白文字を含むテキストノードは常に保持されます。
- 空白のみのテキストノード削除による圧縮
- 圧縮は同じDOMツリーを走査し、内容が完全に空白(スペース、タブ、改行)のテキストノードを削除します。混合または非空白コンテンツを持つテキストノード — タグ間の実際のデータ — は決して削除されません。属性とその値は追加の空白なしでシリアライズされます。結果は元のドキュメントの最もコンパクトな整形済みXML表現です。
- 100%ブラウザベース — アップロードなし、サーバーなし
- すべての処理はブラウザのJavaScriptランタイムで実行されます。いかなる時点でもデータはサーバーに送信されません。これはXMLペイロードが機密コンテンツを含むことが多い場合に特に重要です:SOAP WS-Securityトークン、HL7患者データ、内部サービス設定、金融メッセージフォーマット(FIX、SWIFT ISO 20022)。公開サービスに貼り付けたくないXMLでも安全に使用できます。
ベストプラクティス
- 整形前にバリデート、コミット前に整形
- 再整形前にまずXMLをバリデートして整形されていることを確認してください — 入力が有効なXMLでない場合、フォーマッターは誤った出力を生成します。バリデートが完了したら、設定ファイル、フィードテンプレート、またはWSDL定義をバージョン管理にコミットする前に整形してインデントされた出力をレビューしてください。
- Webフォーマットには2スペース、エンタープライズXMLには4スペースを使用
- 2スペースインデントはRSS/Atomフィード、SVG、XHTML、Android XML、ほとんどのWeb向けXMLの慣習です。4スペースインデントはJavaエンタープライズ環境(Maven POM、Springコンテキストファイル、JBossデプロイメントディスクリプタ)で一般的です。既存のファイルやツールチェーンの慣習に合わせてください。
- JSON内に埋め込む前にXMLを圧縮する
- XMLをJSONフィールド値として埋め込む必要がある場合は、まず圧縮してください。インデントされたXMLには改行や複数のスペースが含まれており、JSONエスケープが必要です(\n、複数の \u0020)。圧縮されたXMLは中間プロキシやロギングシステムの行長制限に引っかかる可能性も低くなります。
- テキスト内容の特殊文字をエスケープ、CDATAは控えめに使用
- & や < を含む短いテキスト値にはエンティティ参照(&、<)を使用してください — CDATAセクションよりも移植性が高く、属性値でも機能します。CDATAセクション()は、すべての特殊文字をエスケープするとコンテンツが読みにくくなる大きなコードブロック、SQLクエリ、HTMLフラグメントを埋め込む場合のためにとっておいてください。
- できるだけ早く名前空間を宣言する
- XML名前空間(xmlns:prefix="URI")はルート要素またはプレフィックスを使用する最も高いレベルの要素で宣言してください。ドキュメントツリーの深くで名前空間を宣言すると、XMLが読みにくくなり、名前空間を段階的に処理するストリームベースのXMLパーサー(SAX、StAX)で問題が発生する可能性があります。上のSOAPエンベロープの例は推奨パターンを示しています:すべての名前空間宣言がルートのEnvelope要素に記載されています。
よくある質問
このツールを使うとXMLデータがサーバーに送信されますか?
「バリデート」ボタンは何を確認しますか?
バリデーションはXMLスキーマ(XSD)やDTDに対して検証しますか?
整形(ビューティファイ)と圧縮(ミニファイ)の違いは何ですか?
整形はXMLのコメントと属性を保持しますか?
2スペースの代わりに4スペースインデントでXMLを整形するには?
このツールはどのXMLバージョンとエンコーディングに対応していますか?
「整形エラー」の原因と修正方法は?
このツールを使ってXHTMLやSVGファイルを整形できますか?
このツールはXML名前空間をどう処理しますか?
XMLの入力にファイルサイズの制限はありますか?
XMLをJSONに、またはJSONをXMLに変換するには?
関連ツール
すべてのツールを見る →Base64エンコーダー&デコーダー
エンコーディングとフォーマット
Base64のデコード・エンコードが無料でオンラインで行えます。リアルタイム変換、UTF-8・絵文字対応。100%ブラウザ上で動作しデータは外部に送信されません。登録不要。
CSV to JSON 変換ツール
エンコーディングとフォーマット
CSVをブラウザ内で即座にJSONに変換。RFC 4180・型推論・ヘッダー行・大整数安全対応。100%プライベート、アップロード不要。
JSON Diff(差分)
エンコーディングとフォーマット
2つのJSONファイルをブラウザで即座に比較・差分確認。サイドバイサイドのハイライト表示、RFC 6902 JSON Patch出力、タイムスタンプやIDなどのノイズフィールドを無視。100%プライベート、アップロード不要。
JSONフォーマッター&バリデーター
エンコーディングとフォーマット
無料オンラインJSON整形ツール。ブラウザ上でJSONのフォーマット、構文検証、圧縮を即座に実行。エラー検出、ワンクリックコピー対応。データは端末外に送信されず、100%プライバシー保護。
JSON Schema バリデーター
エンコーディングとフォーマット
JSON を任意の JSON Schema に対してブラウザで即座に検証。Draft 2020-12 / 2019-09 / Draft-07 をサポートし、エラーメッセージは JSON Pointer パスで正確に位置を示します。100% プライベート、アップロード不要、無料。
JSON to CSV 変換ツール
エンコーディングとフォーマット
JSONをブラウザ内で即座にCSVに変換。RFC 4180・Excel-EU・TSV・Pipeプリセット対応。ネスト平坦化または文字列化。100%プライベート、アップロード不要。