XSL-FO 2.0をめぐる議論

XSL-ListのLiam Quinの発言は見逃すことができなかったので、


つたない英語で必死に発言しました.(もっと英語は勉強しておけばよかった!)


しかしどうもW3Cは完全にXSL 2.0(XSL-FO 2.0)に見切りをつけCSSに邁進しているようです.

私の論旨は、XSL-FOにはスタイルがすべてXSL Formatting ObjectのPropertyとして付加されているが、CSSの場合基本的にスタイルは全部外付けだということです.

簡単なCSSならいいかもしれないが、もし望まれる組版結果(レンダリング結果)が得られない場合、プログラマー(もしくはユーザー)は、

<link rel="stylesheet" type="text/css" media="print" href="xxx.css" />
<link rel="stylesheet" type="text/css" media="print" href="yyy.css" />
<link rel="stylesheet" type="text/css" media="print" href="zzz.css" />

と関連付けられているすべてのCSSファイルのセレクタを分析して、どのスタイルが最終的に該当の要素(divやspan)に適用されているのかを調べなければなりません.

実はこれは気の遠くなるような作業になります.CSSのフォーマッタ(もしくはレンダラー)がCSSファイルからスタイルを選ぶのと同じ「頭脳(セレクタの適用ルール)」になって分析しなければならないからです.

XSL-FOの場合、プロパティの継承があるので、時としてstart-indentが表の中やfo:block-containerの中まで継承されて痛い目を見ることがありますが、まあパターンは大体決まっています.そしてXSL-FO自身にはプロパティでスタイルが書いてあるのでこれがデバッグの救いになります.しかしCSSはdivやspanのclass属性(もしかしたらid属性)から外部のスタイルを見なければ「一切がわからない」のです.

いったいCSSが大規模で複数になったらどうやってデバッグするのでしょうか?

先月までやっていたXSL-FOの仕事、CSSでやってくれと言われたら私は絶対逃げ出すと思います.

しかしW3Cもこんなことをやっているようでは世論の支持は得られないなとしみじみ思いました.