XSLT//空白

XSLT//空白

[1] XSLT での空白の取り扱いについて <http://www.w3.org/TR/xslt#strip>

[2] 原始木スタイル・シートの木が作られた後、 実際に XSLT 的な処理を行う前に、空白を処理する必要があります。

空白 (XMLS) のみを含む文節は、 木から切り落とされます。但し、

なお、この処理が終わっても xml:space 属性は捨てずに取っておきます。表記結果要素の属性として存在していたのであれば、そのまま結果木に残ります。

空白保持要素名並びの決定

[3] 空白保持要素名 (whitespace‐preserving element names) の集合は、

です。 (つまり、スタイル・シートでは基本的に落として、 原始文書では基本的に保存するってことですな。)

[4] xslt:strip-space, xslt:preserve-space 両要素の必須の elements 属性は、 節検査を空白で区切った並びです。 この節検査と一致すれば、空白保持要素名並びから除外あるいは追加します。

一致に当たって、両要素が複数回出現して対立する指定がある可能性がありますが、

  1. 低い輸入優先度の一致は除外する
  2. 低い既定優先度の一致は除外する
  3. 以上で複数の一致が残る場合は誤りとし、 実装は誤りを信号してもよい。
  4. 信号しない場合はスタイル・シートの最後の一致を採用しなければならない。

とされています。 <http://www.w3.org/1999/11/REC-xslt-19991116-errata/#E30> の修正も参照。