• ベストアンサー

rdfをIE7に認識させるには

自分のサイトでRSSを配信したいと思い、新着情報を書き込む際にinndex.rdfを生成するWEBアプリを作っています。 index.rdfを生成して、サーバーに保存するところまではできました。 ところがインターネットエクスオプローラー7で確認したところ、RSSと認識していないようで、タイトルとURLと概要をずらずら並べたような文章が表示されました。 .htaccess も作成して「AddType application/xml .rdf」と記載しています。 goo RSSリーダーで試したところ、問題なく表示されました。 どこに問題があるのでしょうか。 ----------------- <?xml version="1.0" encoding="UTF-8"?> <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns/" xmlns="http://purl.org/rss/1.0/" xmlns:lang="ja" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/" > <channel rdf:about="RDFファイルのURL"> <title>HPの名称</title> <link>HPのURL</link> <description>HPの紹介文</description> <items> <rdf:Seq> <rdf:li rdf:resource="記事のURL1" /> <rdf:li rdf:resource="記事のURL2" /> </rdf:Seq> </items> </channel> <item rdf:about="記事のURL1"> <title>タイトル1</title> <link>記事のURL1</link> <description>概要1 </description> </item> <item rdf:about="記事のURL2"> <title>タイトル2</title> <link>記事のURL2</link> <description>概要2 </description> </item> </rdf:RDF>

質問者が選んだベストアンサー

  • ベストアンサー
  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.2

#1です そうでしたかぁ、申し訳ないです なんででしょうね、とりあえず気になった点だけ述べてみます ■重要 ・ 3行目 xmlns:rdfのURLが / で終っている 正しくは # で終える ■エラーとしては認識せず ・ 4行目 xmlns:syn= となっている 正しくは xmlns:sy= ■xml構文とは関係ないこと ・IE7はキャッシュ力が強いので再起動しないとしっかり読み込めない場合がある (特に.htaccess) ・ローカルで閲覧するとIE6のような状態で表示される場合がある (フィードとして認識すると今度は通信エラーになる) 思いつくのはこれくらいです .htaccess部分も特に問題ないと思われます あとは質問者さんの正規の記述内容がわからないので ご自身でW3Cでのフィードチェックをおすすめします http://validator.w3.org/feed/ +RSSについての参考URL http://web.resource.org/rss/1.0/modules/syndication/ http://www.kanzaki.com/docs/sw/rss.html

OKIaHUKUOKA
質問者

お礼

下記を試したところ、認識されるようになりました。 ありがとうございました。 >■重要 >・ 3行目 xmlns:rdfのURLが / で終っている 正しくは # で終える

その他の回答 (4)

回答No.5

前言撤回 >その他の名前空間接頭辞に関する宣言が存在するときIE 7はrdfファイルを「対応してないフォーマットだと判断するようだ。 動作しちゃったorz 【aside from any additional namespace declarations】ってあるからおかしいとおもったんだ。 >3行目 xmlns:rdfのURLが / で終っている 正しくは # で終える それが原因だね、はい。

回答No.4

追記: 今回当方環境ではルート要素から名前空間接頭辞の宣言を大幅に取り除いてしまったが,xmlns:lang="ja"ではなくxml:lang="ja"の誤りであろうと思われる(なお,xml名前空間接頭辞は予約語なので,われわれが定義してはいけない)

回答No.3

すごく仕様に手惑いました。RSS 1.0の仕様を読んだわけではなかったし。今も殆ど読んでないけど。とりあえず試しにやってみて。 ●htmlからlink要素にするときにはそれが何であるかに関わらず typeがapplication/rss+xmlでなければならないっぽい <link rel="alternate" type="application/rss+xml" title="Sample" href="hoge.rdf" /> 自信なし。以下を見てやってみた。 http://hail2u.net/blog/rss/rss_auto-discovery.html ●一方で,例えば上記なら,hoge.rdfに対してリクエストを送った時のHTTPレスポンスのContent-Typeはその従う仕様によって異なり、RSS 1.0の場合,application/xmlかtext/xmlでなければならないっぽい。 参考資料: http://www.exconn.net/Blogs/windows/archive/2006/04/06/8843.aspx http://blogs.msdn.com/rssteam/articles/PublishersGuide.aspx http://channel9.msdn.com/wiki/default.aspx/Channel9.InternetExplorerFeedReading ●rdf:RDF要素は <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> でなければならず,その他の名前空間接頭辞に関する宣言が存在するときIE 7はrdfファイルを「対応してないフォーマットだと判断するようだ。(Fxは未実験 参考:RSS 1.0仕様( http://web.resource.org/rss/1.0/spec#s5.1 )より。正しく理解できているかわからない While any valid namespace prefix may be used, document creators are advised to consider "rdf:" normative. Those wishing to be strictly backward-compatible with RSS 0.9 must use "rdf:". Syntax: <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/"> Requirement: Required exactly as shown, aside from any additional namespace declarations Model: (channel, image?, item+, textinput?)

  • suzuki-_-
  • ベストアンサー率77% (152/195)
回答No.1

> タイトルとURLと概要をずらずら並べたような文章が表示されました。 RSS用のファイルは単なるxml構文のファイルなので、それが正常です goo RSSリーダー等RSS読み取り用webアプリ(orソフト)は、 RSS用のファイルのxmlを分析し整形してくれるので、 通常ブラウザで直アクセスした場合と異なった表示になります goo RSSリーダーで読み込めるということはRSSとしては正常だと思うので、 後は閲覧者の方々にRSSリーダーへの登録を促すだけとなります また、RSS用に作ったファイルをHTMLのように表示させたい場合は、 xslといったxml用のスタイルシートを作ることで可能です 検索すればサンプルも出てくると思いますので詳細は割愛します ご自分で探したり作成したりというのが面倒という場合は、 専用フィードを作ってくれるサイトもあるようなので、 そちらも参考になさってください http://www.feedburner.jp/fb/a/home IE7に搭載されているRSSリーダーを使用になる場合は下記参照 http://www.itmedia.co.jp/bizid/articles/0610/20/news076.html

OKIaHUKUOKA
質問者

補足

インターネットエクスプローラー7はRSSリーダーの機能が付いています。 他のサイトのRSSを読み込むとIE6までと違って、わかりやすく表示されるようになっています。 今回IE7で表示させてみたのですが、他のサイトのRSSのように表示されていないので質問しました。 RSSと認識していないようなので、IE7のRSSリーダー機能にも登録できませんでした。

関連するQ&A