変数が結果ツリーフラグメントとして扱われるのはやはり不便以外の何物ではない。何故こんな仕様になってしまったんだろう。
この仕様のおかげでXSL変換を2回する必要があるXML文章が作れない。作ってもかまわないが、IEやMozillaはxml-stylesheetが2つ以上あっても片方しか処理しない(さらに困ったことにIEとMozillaは違うPIを選ぶ)。PHPなどでは可能だが、ブラウザが対応していないのは痛い。
言うまでもないが、変数の上書きが出来ないのもツライ。xsl:includeやxsl:importがxsl:with-paramを包含できないのも謎だ。そういえばxml-stylesheetでパラメータを渡す方法も無い。
プロセッサの独自拡張を使えば色々と便利なことは出来るが(正規表現と日付の操作は特に)汎用的なものを作ろうと思うと使わない方法を考えなければいけない。そして、大抵は「不可能」という結論が出る。
http://yudai.arielworks.com/memo/2004/07/05/010035.trackback
末尾に「5 + 3」の計算結果を繋げて下さい。例えば計算結果が「17」の場合、「010035.trackback17」です。これは機械的なトラックバックスパムを防止するための措置です。