Amarronの日記

iOSやMac、Web系の記事を書きます。

RSS1.0,RSS2.0,ATOM のフォーマット・仕様・構造

調べたので備忘録。

種類

RSS1.0

  • シンプルな記述がウリ。テキスト配信向き?
  • RDFシリーズを元にして制作されている。
  • はてなRSSは1.0を使用。FC2も1.0を使用。

RSS2.0

  • 配信する文章の色を変えたり、リンクを仕込めるなど、グラフィック面でいろいろ出来る。コンテンツ配信向き?
  • RSS1.0の後継シリーズではない。(0.9x系の流れを汲む規格)
  • XMLシリーズを元にして制作されている。

ATOM

  • RSS2.0からいろいろ削って、よりシンプルに。よりスマートに。
  • GoogleGmail(ジーメール) にて、メールの内容を Atom フィードで提供するサービスを行っている。

構造

RSS1.0

<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xml:lang="ja">

    <channel rdf:about="サイトのRSSのURL">
        <title>サイトのタイトル</title>
        <link>サイトのURL</link>
        <description>サイトの内容</description>
        <dc:date>RSSの最終更新日時</dc:date>
        <dc:language>ja</dc:language> 
        <items>
        <rdf:Seq>
        <rdf:li rdf:resource="記事1のURL" />
        <rdf:li rdf:resource="記事2のURL" />
        </rdf:Seq>
        </items>
    </channel>

    <item rdf:about="記事1のURL">
        <title>記事1のタイトル</title>
        <link>記事1のURL</link>
        <description><![CDATA[記事1の内容]]></description>
        <dc:creator>記事1の作者名</dc:creator>
        <dc:date>記事1の作成日時</dc:date>
    </item>

    <item rdf:about="記事2のURL">
        <title>記事2のタイトル</title>
        <link>記事2のURL</link>
        <description><![CDATA[記事2の内容]]></description>
        <dc:creator>記事2の作者名</dc:creator>
        <dc:date>記事2の作成日時</dc:date>
    </item>
</rdf:RDF>

RSS2.0

<?xml version='1.0' encoding='UTF-8'?>
<rss version='2.0'>
    <channel>
        <title>PHP & JavaScript:更新情報</title>
        <link>http://phpjavascriptroom.com/</link>
        <description>PHP & JavaScript Room:新着3件</description>
        <item>
            <title>記事タイトル3</title>
            <link>http://phpjavascriptroom.com/post3.html</link>
            <description>記事の内容です。</description>
            <pubDate>Wed, 11 Jun 2008 15:30:59 +0900</pubDate>
        </item>
        <item>
            <title>記事タイトル2</title>
            <link>http://phpjavascriptroom.com/post2.html</link>
            <description>記事の内容です。</description>
            <pubDate>Tue, 10 Jun 2008 15:30:59 +0900</pubDate>
        </item>
        <item>
            <title>記事タイトル1</title>
            <link>http://phpjavascriptroom.com/post1.html</link>
            <description>記事の内容です。</description>
            <pubDate>Mon, 9 Jun 2008 20:50:30 +0900</pubDate>
        </item>
    </channel>
</rss>

Atom

<?xml version='1.0' encoding='UTF-8'?>
<feed xmlns='http://www.w3.org/2005/Atom' xml:lang='ja'>
    <id>tag:phpjavascriptroom.comfeed/</id>
    <title>PHP & JavaScript Room:更新情報</title>
    <updated>2008-06-11T15:30:59Z</updated>
    <link rel='alternate' type='text/html' href='http://phpjavascriptroom.com/feed/' />
    <link rel='self' type='application/atom+xml' href='http://phpjavascriptroom.com/feed/atom10.xml' />
    <entry>
        <id>http://phpjavascriptroom.com/post3.html#20080611</id>
        <title>記事タイトル3</title>
        <link rel='alternate' type='text/html' href='http://phpjavascriptroom.com/post3.html' />
        <updated>2008-06-11T15:30:59Z</updated>
        <summary>記事の内容です。</summary>
    </entry>
    <entry>
        <id>http://phpjavascriptroom.com/post2.html#200810153059</id>
        <title>記事タイトル2</title>
        <link rel='alternate' type='text/html' href='http://phpjavascriptroom.com/post2.html' />
        <updated>2008-06-10T15:30:59Z</updated>
        <summary>記事の内容です。</summary>
    </entry>
    <entry>
        <id>http://phpjavascriptroom.com/post1.html#20080609205030</id>
        <title>記事タイトル1</title>
        <link rel='alternate' type='text/html' href='http://phpjavascriptroom.com/post1.html' />
        <updated>2008-06-09T20:50:30Z</updated>
        <summary>記事の内容です。</summary>
    </entry>
</feed>

要素

  • channel
    チャンネル情報。 <channel>~</channel>
    • title(必須要素)
      チャンネル名。 <title>PHP & JavaScript Room:更新情報</title>
    • link(必須要素)
      チャンネルのURL。サイトURL。 <link>http://phpjavascriptroom.com/</link>
    • description(必須要素)
      チャンネルの説明。
      <description>PHP & JavaScript Room:新着3件</description>
    • item+
      チャンネルのコンテンツ情報。日付が新しいもの順。1つ以上~いくつでも。
      • title
        コンテンツのタイトル。ページタイトルや記事タイトル。
        <title>【Ajax】Simple JSの使い方</title>
      • link
        コンテンツのURL。
        <link>http://phpjavascriptroom.com/index.php?t=ajax&p=simplejs</link>
      • description
        コンテンツの概要。
        <description>14KBの超軽量JSライブラリ「Simple JS」をサンプル付きで紹介。</description>
      • author
        コンテンツを書いた人のメールアドレス。
        <author>amarron@yahoo.co.jp (PJ)</author>
      • category
        コンテンツのカテゴリ。
        <category>Ajax JavaScript</category>
      • comments
        コンテンツに対するコメントがあるページのURL。
        <comments>http://phpjavascriptroom.com/ajax/simplejs.html#comment</comments>
      • enclosure
        コンテンツに添付されるメディアオブジェクト。
      • guid
        コンテンツのユニークな永続的なURL。
        <guid>http://phpjavascriptroom.com/ajax/simplejs#he20080204</guid>
      • pubDate
        コンテンツの公開日。
        <pubDate>Mon, 4 Feb 2008 15:30:59 +0900</pubDate> <pubDate>Mon, 4 Feb 2008 15:30:59 GMT</pubDate>
      • source
        記事で引用しているRSSのチャンネル。引用元のURLを指定するurl属性は必須属性。
        <source url='http://www.sample.com/rss.xml'>sample.com</source>

参考サイト

[Web]RSSとRSS2とATOMの違いをまとめてみる。
[rss][atom]RSSとATOMの文書構造モデル(メモ書き)
RSS -- サイト情報の要約と公開
RSS 2.0 のフォーマット
Atom 1.0 のフォーマット

おすすめ書籍

もっとrssを知りたい方にオススメです。