[1] XSLT での空白の取り扱いについて <http://www.w3.org/TR/xslt#strip>。
[2] 原始木やスタイル・シートの木が作られた後、 実際に XSLT 的な処理を行う前に、空白を処理する必要があります。
空白 (XML の S) のみを含む文節は、 木から切り落とされます。但し、
なお、この処理が終わっても xml:space
属性は捨てずに取っておきます。表記結果要素の属性として存在していたのであれば、そのまま結果木に残ります。
[3] 空白保持要素名 (whitespace‐preserving element names) の集合は、
xslt:text
xslt:strip-space
+ xslt:preserve-space
以外の要素です。 (つまり、スタイル・シートでは基本的に落として、 原始文書では基本的に保存するってことですな。)
[4] xslt:strip-space
,
xslt:preserve-space
両要素の必須の
elements
属性は、
節検査を空白で区切った並びです。
この節検査と一致すれば、空白保持要素名並びから除外あるいは追加します。
一致に当たって、両要素が複数回出現して対立する指定がある可能性がありますが、
とされています。 <http://www.w3.org/1999/11/REC-xslt-19991116-errata/#E30> の修正も参照。