« Last.fm 国別ユーザ数 | MyBlogLog にまた新機能が追加»

XSLT スタイルシート読み込みエラー

posted @ March 31, 2005 04:28 PM

category: xml

Last.fm 国別ユーザ数を作るにあたり、初めて XML + XSLT を使ってみました。そのとき、「スタイルシートの読み込みエラー: XSLT スタイルシートの MIMEタイプ が XML ではありません」というエラーが出る、という現象に出くわしました。

エラーになるのは Firefox + サーバにアップしたときだけで、IE やローカル環境だと問題なく表示できます。まず、XSLT 及び XML の記述フォーマットを疑いましたが、特に問題なさそう。なんでや〜と調べてみたところ、ゴンノブログ: RSS+XSLTの表示に原因らしき記述が。

RSSをXSLTで整形表示するためにRSSの冒頭にProcessing InstructionでXSLTを関連付けることができますが、Mozillaなどではウェブサーバにそれぞれのファイルのmime typeを正しく教えてもらう必要があるようです。IE6では勝手にPIを解釈して実行してくれるようですが..

さっそく、iandeth な人にお願いをして、mod_mimeモジュールの設定に以下の行を追加してもらったところ、見事解決しました。

AddType application/xml .xsl

う〜ん、なかなか奥が深い・・・ところでこれって、Firefox のバグなんでしょうか?それとも仕様的には Firefox が正しくて、IE が例のごとく「勝手に」解釈してるだけなんでしょうか?どなたかご存知の方、教えてください。

【追記】やはり IE が勝手に解釈しているだけだということです。(Thanks to ygonno san!)ったく、IE め・・・

 

Trackbacks

このエントリーのトラックバックURL:
http://iandeth.dyndns.org/~jimbo/cgi-bin/mt-tb.cgi/63

Comments

1 | ygonno [TypeKey Profile Page] - March 31, 2005 09:56 PM

TBと引用ありがとうございます。
自分でも忘れ掛けていた昔の記事を参考にして頂けるというのは、ブログの楽しいところでもあり、怖いところでもありますね。

さて、お悩みの件ですが、お察しの通りIEが例のごとく勝手に解釈しているだけのようです。
XSLTの仕様書にはXSLTのMIME Typeにはtext/xmlまたはapplication/xmlを使うべきだと書かれています。

中身を見ればXMLだと判るではないかと言いたくなりますが、Mozillaではその辺り厳密に取り扱っているようですね。中身を見なくてもMIME Typeを見ればどんな処理をすべきかを判断できるのがメリットなので、送る側としても正しく宣言してあげるべきだということかも知れませんね。

コメントしてください




保存しますか?