XMLミニファイヤー
XMLフォーマッターのプリセット
要素間の空白を削除してXMLを1行に折りたたみます。文書をリクエストの本文や設定値に埋め込むのに便利で、そこではインデントは無駄な重さです。
- ファイルは端末の外に出ません
- 無料、登録不要
- 透かしなし
- 一度読み込めばオフラインでも動作します
XMLフォーマッターの使い方
- 1
XMLを貼り付け
圧縮されたフィード、設定ファイル、SOAPレスポンス —何でも構いません。
- 2
整形または圧縮
読むためにインデントするか、転送のために折りたたみます。
- 3
エラーを確認
バランスの取れていない、閉じられていないタグは明示的に名前が示されます。
圧縮されたXMLが実際に使われる場所
XMLは、人間の可読性よりも転送サイズの1バイトごとが重要な、かなりの数の文脈に現れます — サービス間で繰り返し送信されるSOAPリクエストの本文、長さ制限のある環境変数に保存された設定値、自動化されたクライアントが頻繁に取得するフィードなどです。CDATAセクション、コメント、属性値を書かれたとおり正確に慎重に保持しながら要素間の空白を折りたたむことは、それらの特殊なセクションが意図的に保護しているデータに一切触れずに整形のオーバーヘッドを取り除きます。これは逆方向に整形する際にパーサーが適用するのと同じ安全性の保証です。
圧縮はデータではなく形式だけに触れる
フォーマッターの解析の保証と同様に、ここでの圧縮は要素タグ間の空白だけを削除します — 要素を並べ替えたり、属性値を書き換えたり、結果のXMLを解析するプログラムが実際に読む何かを変えたりはしません。この方法で圧縮された文書と可読性のために整形された文書は、プログラムで消費するどんなものにとってもまったく同じデータを表します。異なるのはバイト数と人間の可読性だけです。
要素の外側だけでなく内側の空白もそのまま残される
削除されるのは、2つの兄弟要素の間の空白 — 純粋に人間の読者のために使われるインデント — です。実際のコンテンツとしてテキストを持つ要素の直接内側にある空白、例えば要素のテキストとして保存された文中の意図的なスペースは、削除されるのではなく保持されます。XMLには、HTMLがしばしば扱うような、要素のコンテンツ内の空白が無意味であるという一般的なルールがないためです。この区別を正しく行うことが、これ専用に構築されたパーサーがそれを正しく処理する理由の一部であり、汎用の「すべての空白を削除する」アプローチは本物のテキストコンテンツを破損させてしまうでしょう。
よくある質問
私のXMLを検証しますか?
タグが正しく閉じられ、正しくネストされているかをチェックし、そうでない場合は問題のあるタグを名前で示します。DTDやXSDスキーマに対しては検証しません — それには実際のスキーマが必要で、別の作業です。
CDATAセクションとコメントは保持されますか?
書かれたとおり正確にです。パーサーはタグを探す前に`<![CDATA[…]]>`、コメント、処理命令、DOCTYPE宣言を認識するため、その中のマークアップが構造と混同されることは決してありません — これはまさに正規表現ベースのフォーマッターがファイルを破損させる場所です。
<や>を含む属性はどうなりますか?
処理されます。パーサーはタグを読む間引用符を追跡するため、`note="a > b"`のような属性がタグを早期に終わらせることはありません。これはシンプルなフォーマッターがよく間違えるバグです。
HTMLに使えますか?
厳格なXHTMLなら使えます。実際のHTMLには決して閉じられない`<br>`や`<img>`のような空要素に加え、オプションの終了タグがあるため、HTMLフォーマッターがそのための正しいツールです — 本物のHTMLパーサーを使っています。