2005 年 6 月の履歴(もしくは日誌)


2005 年 6 月

6 月 27 日

RSS と Simple List Extensions

マイクロソフトが RSS 2.0 の item を特定の条件でソートできるような拡張を提案するという話ですが,規格などの情報がでてきていますな.RSS 2.0 も最初から拡張について考えられている規格なので,マイクロソフトが勝手な拡張をしたのではなく,RSS 2.0 として正しい拡張なのかなって思います.もっともその Simple List Extensions ってのが良いかどうかはまた別ですが.

それでもマイクロソフトがやるんですから,ある程度話題になるでしょう.マイクロソフトの提案がどんなものだったかを簡単に言えば,各 item にソートのキーになる要素が含まれるとして,そのキーになる要素は,RSS 2.0 の規格のものか,もしくは RSS 2.0 で定められている方法で拡張されている要素をそのまま使います.新しいのは,どれがソートのキーになる要素なのかを指定する方法と,ソートの方法を指定する方法を提案している事です.それらは Simple List Extensions の規格で指定してある方法で RSS 2.0 の中で記述する訳です.

で,例を考えてみました.ある商品の発売日が item に含まれていて,これで RSS の item をソートします.item が公開された日時の情報は pubDate で item で話題にしている商品発売日とは事なる日付です.

<rss version="2.0"
   xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005"
   xmlns:ex="http://www.example.com/ns/ex/">
   <channel>
   <title>商品発売日</title>
   <link>http://www.example.org/12345</link>
   <description>リストの例:商品発売日で item をソートしよう</description>
   <cf:treatAs>list</cf:treatAs>
   <cf:listinfo>
      <cf:sort>
         <ex:xyz data-type="date">発売日</ex:xyz>
      </cf:sort>
      <cf:group>
         <ex:xyz>発売日</ex:xyz>
      </cf:group>
   <cf:listinfo>
   <item>
      <title>タイトル1</title>
      <link>http://www.example.org/12345/1</link>
      <pubDate>Mon, Jun 27 2005 21:44:31 +0900</pubDate>
      <ex:xyz>Sun, Jun 26 2005</ex:xyz>
   </item>
   <item>
      <title>タイトル2</title>
      <link>http://www.example.org/12345/2</link>
      <pubDate>Mon, Jun 27 21:44:32 +0900</pubDate>
      <ex:xyz>Mon, Jun 27 2005</ex:xyz>
   </item>
   <item>
      <title>タイトル3</title>
      <link>http://www.example.org/12345/3</link>
      <pubDate>Mon, Jun 27 21:44:33 +0900</pubDate>
      <ex:xyz>Tue, Jun 28 2005</ex:xyz>
   </item>
   </channel>
</rss>

この RSS では発売日が ex:xyz っていう要素だとして,別の RSS では ex:abc で別の日付情報を扱っていたとします.それぞれ cf:sort の中で ex:xyz と ex:abc が data-type="date" として扱われているのであれば,両方の RSS を混ぜて日付情報でソートできるように実装できそうですね.

でも,価格情報だと単位が揃わなかったら難しそうです.日本円と米国ドルが価格情報としてそれぞれ別々の RSS にあったとして,data-type="number" だとしても,価格の単位の情報とどう関連づけるかが定義されていなければソートできないですよね.

ソートする方法を定義するっていうのはいいけど,そこに拡張性がないとすっごく限定された用途でしか使えないような気がします.

単に RSS リーダ側で,各 item を認識して,どの item でソートするのか指定できるようにするのと比べてどのようなメリットがあるのかな.

ぼくは RSS 2.0 は良くわかりません.マイクロソフトの Simple List Extensions Specification も読んでも良くわかりませんでした.なんか間違っていたり見落としていたり勘違いがあったら教えてくださいまし.

参考:

http://onohiroki.cycling.jp/tb/tb.cgi/weblog_d20050627n1 TrackBack