このツールの動作
字下げを取り除きます。取り除くのは字下げだけです。
<library>
<book>
<title>Dune</title>
</book>
</library>
は <library><book><title>Dune</title></book></library> になります。
あえて残すもの
本文の中の空白。 <p>こんにちは <b>世界</b> また</p> はそのまま戻ります。XML ではこの空白は文字データであり、HTML のような折り畳みは存在しません。取り除けば語が互いにくっつきます。
属性値。 t=" keep " は書かれたままです。属性値の空白が正規化されるのは非 CDATA 型のときだけで、それを宣言できるのは DTD だけです。DTD がなければ空白はすべて有意です。
同じ行に並ぶ二要素の間の単独の空白。 <b>x</b> <i>y</i> の空白は残ります。無視してよいとは文書のどこにも書かれていません。
コメント、CDATA 区間、前書き。 宣言はあなたが書いたバージョン・符号化・standalone のまま戻り、DOCTYPE も残り、<?xml-stylesheet?> もあった場所に残ります。
xml:space="preserve" が付いた要素では、以上の処理をすべて停止します。
何を字下げとみなすか
完全に空白であり、改行を含み、意味のあるテキストを持たない要素の中にあるテキストノード。定義はこれだけで、意図して狭くしてあります。ここに入らないものは、反証がない限り内容です。
どれくらい小さくなるか
期待ほどではありません。そう言うほうが、期待させたままにするより誠実です。字下げは通常 XML 文書の数パーセントにすぎません。大半はタグそのもので、それを縮めるのは文書を変えることです。
目的が転送量なら、圧縮のほうがはるかに有効です。タグ名の繰り返しは、どんな最小化でも取り除けませんが、gzip はそれを見つけます。最小化は、保存したり埋め込んだりするファイルのために使ってください。回線のためではありません。
プライバシー
すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。