#?SuikaWiki/0.9 [1] [[XSLT]] での[[空白]]の取り扱いについて 。 [2] [[原始木]]や[[スタイル・シート]]の木が作られた後、 実際に XSLT 的な処理を行う前に、空白を処理する必要があります。 空白 ([[XML]] の [[S]]) のみを含む[[文節]]は、 木から切り落とされます。但し、 - 親要素節の要素型名が[DFN[空白保存要素名]]集合に含まれていれば、落としません。 - 直近の [CODE(XML)[[[xml]]:[[space]]]] 属性の値が [CODE(XML)[[[preserve]]]] であれば、落としません。 [WEAK[なお、この処理が終わっても [CODE(XML)[xml:space]] 属性は捨てずに取っておきます。[[表記結果要素]]の属性として存在していたのであれば、そのまま結果木に残ります。]] [[#comment]] * 空白保持要素名並びの決定 [3] 空白保持要素名 (whitespace‐preserving element names) の集合は、 - スタイル・シートの場合は、 [CODE(XSLTe)[[VAR[xslt:]][[text]]]] - 原始文書の場合は、全要素 − [CODE(XSLTe)[[VAR[xslt:]][[strip-space]]]] + [CODE(XSLTe)[[VAR[xslt:]][[preserve-space]]]] ''以外''の要素 です。 (つまり、スタイル・シートでは基本的に落として、 原始文書では基本的に保存するってことですな。) [4] [CODE(XSLTe)[[VAR[xslt:]]strip-space]], [CODE(XSLTe)[[VAR[xslt:]]preserve-space]] 両要素の必須の [CODE(XSLTa)[[[elements]]]] 属性は、 [[節検査]]を空白で区切った[[並び]]です。 この節検査と一致すれば、空白保持要素名並びから除外あるいは追加します。 一致に当たって、両要素が複数回出現して対立する指定がある可能性がありますが、 = 低い[[輸入優先度]]の一致は除外する = 低い[[既定優先度]]の一致は除外する = 以上で複数の一致が残る場合は[[誤り]]とし、 実装は誤りを信号してもよい。 = 信号しない場合はスタイル・シートの最後の一致を採用しなければならない。 とされています。 [[#comment]]