ネームスペース関連でめんどくさいことが……。共通化した XSL ファイルの中で本文を変換したりとか、共通部分を出力するテンプレートとか書いているのだけれど、デフォルトネームスペースの違うほかのフレーバーファイルでそれをインクルードして、その共通化されたテンプレートを適用すると、ネームスペースが新たにコピーされてしまう。本文を出力しているやつはかなりアドホックな対応<xsl:text disable-output-escaping="yes">&lt;</xsl:text> のようなのを書いて直接タグ作ってやるっちゅうローテクな方法。で見ないことにしてきたけれど、abbr 要素簡略化やらにそのアドホックな方法を適用すると非常に醜い。

共通化した XSL ファイルでデフォルトネームスペースをなくせばいいかと思いきや、それでも xmlns="" という属性が付いてしまう。どうしたらよいやら……

フレーバーごとに別の共通 XSL ファイルを作るのが(全く同じことを繰り返すのでスマートではないが)一番単純明快だよなぁ。それ以外に今のところ解決方法を思い浮かばない。ただ、Atom のように、ちゃんとネームスペースを宣言した中で呼び出す限りは問題ないので、RSS のフレーバーだけ同じことを書き直すことになる。うーむ。

とりあえず RSS のやつだけほぼ同じのをコピペRSS の場合は footnote の出力を変えなきゃいけないから、まぁいいかもしれない。どっちにしろ同じのを何度も書くのは好きじゃないけど……

  1. トップ
  2. web
  3. Namespace の問題
▲ この日のエントリ