RSS

RSS feedとは、ウェブサイトの更新情報を配信するためのテキストデータで、XML形式で記述されている。ウェブサイトにRSSフィードを配置しておくと、RSSリーダーからウェブサイトの更新情報を取得することができる。

Table of Contents

  1. 1 RSSの種類
  2. 2 RSS 1.0
    1. 2.1 RSS 1.0フィードのマークアップ
    2. 2.1 <rdf:RDF>
    3. 2.2 <channel>
    4. 2.3 <title>
    5. 2.4 <channel>
    6. 2.5 <link>
    7. 2.6 <description>
    8. 2.7 <items>
  3. 3 RSS 2.0
    1. 3.1 RSS 2.0フィードのマークアップ
    2. 3.1 <rss>
  4. 4 Atom
    1. 4.1 Atomフィードのマークアップ
    2. 4.1<feed>
  5. 5 関連記事
  6. 6 参考文献
  7. 7 Feed Validation Service
    1. 7.1 W3C Feed Validation Service

1 RSSの種類

RSSはネットスケープコミュニケーションズが「Rich Site Summary」として開発した。ネットスケープコミュニケーションズがRSSの開発を止めて以降、3つの団体が独自にRSSを開発してきた。そのため、現在のRSSは以下に示す3種類がある。

RSSの種類
RSS 1.0 RDF Site Summary
RSS 2.0 Really Simple Syndication
Atom Atom Syndication Format

RSS 1.0とRSS 2.0は開発している団体が異なり、新旧を表わしているわけではなく、互換性も無い。

2 RSS 1.0

RSS (RDF Site Summary) 1.0 の構造を次に示します。

RSS 1.0
Figure 1. RSS 1.0

2.1 RSS 1.0フィードのマークアップ

ウェブサイトにRSS 1.0 のフィードが存在することをHTMLで明示するには、link 要素でマークアップする。

<link rel="alternate" type="application/rss+xml" title="RSS 1.0" href="https://example.com/index.rdf">

2.1 <rdf:RDF>

RSS 1.0 のルート要素は、名前空間 http://www.w3.org/1999/02/22-rdf-syntax-ns# に属する RDF 要素であり、名前空間の接頭辞 rdf を付けて、rdf:RDF と表記される。以下に示す属性を指定する。

xmlns
XML の名前空間(ネームスペース)を指定する。

RSSは、少なくとも2つの名前空間を使用する。ひとつは http://purl.org/rss/1.01 であり、慣習的にデフォルトの名前空間として使用される。もうひとつは http://www.w3.org/1999/02/22-rdf-syntax-ns# である。接頭辞(プリフィクス)は任意に付けられるが、慣習的にrdfが使われる。

xml:lang
コンテンツがどの言語で記述されているかを指定する。

channel 要素を子要素として持ちます。

<?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#"
  xml:lang="ja">
</rdf:RDF>

2.2 <channel>

ウェブサイト全体に関する概要を示す要素です。title 要素および link、description、items、item 要素を子要素として持ちます。

rdf:about 属性は、対象となるサイトの URI を示します。

<channel rdf:about="https://segakuin.com/index.rdf">
  <title>SE学院</title>
  <link>https://segakuin.com</link>
  <description>システムエンジニアのスキルアップを支援するサイト</description>
  <items>
    <rdf:Seq>
      <rdf:li rdf:resource="https://segakuin.com/xml/" />
      <rdf:li rdf:resource="https://segakuin.com/xml/pi.html" />
    </rdf:Seq>
  </items>
</channel>

2.3 <title>

title 要素は、タイトル(見出し)を表します。channel 要素の子要素としての title 要素は、サイトの見出しを示します。item 要素の子要素としての title 要素は、記事の見出しを表します。

<title>SE学院</title>

link 要素は、対象となる URI を表します。 channel 要素の子要素としての link 要素は、サイトの URI を示します。 item 要素の子要素としての link 要素は、、記事の URI を表します。

基本的に channel 要素または item 要素の rdf:about 属性の値と同じです。

<link>https://segakuin.com</link>

2.5 <description>

description 要素は、要約を表します。 channnel 要素の子要素としての description 要素は、サイトの要約を示します。 item 要素の子要素としての description 要素は、記事の要約を示します。

<description>システムエンジニアのスキルアップを支援するサイト</description>

2.6 <items>

サイトの目次を示す要素です。

<items>
  <rdf:Seq>
    <rdf:li rdf:resource="https://segakuin.com/xml/" />
    <rdf:li rdf:resource="https://segakuin.com/xml/pi.html" />
  </rdf:Seq>
</items>

2.7 <ref:li>

目次を構成する各記事を示す要素です。

rdf:recource 属性は、各記事の URI を示します。

<?xml version="1.0" encoding="Shift_JIS"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xml:lang="ja">
  <channel rdf:about="https://segakuin.com/index.rdf">
    <title>システムエンジニアのスキルアップ</title>
    <link>https://segakuin.com</link>
    <description>システムエンジニアのスキルアップを支援するサイト</description>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://segakuin.com/xml/" />
      </rdf:Seq>
    </items>
  </channel>
</rdf:RDF>

2.8 <item>

items 要素で目次として示した記事について、item 要素でそれぞれの記事について概要を記述します。

rdf:about 属性は、対象となる URI を示します。

<?xml version="1.0" encoding="Shift_JIS"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  xml:lang="ja">

  <channel rdf:about="https://segakuin.com/index.rdf">
    <title>システムエンジニアのスキルアップ</title>
    <link>https://segakuin.com</link>
    <description>システムエンジニアのスキルアップを支援するサイト</description>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://segakuin.com/xml/" />
      </rdf:Seq>
    </items>
  </channel>

  <item rdf:about="https://segakuin.com/xml/">
    <title>HTMLタグ link要素</title>
    <link>https://segakuin.com/xml/</link>
    <description>XMLとは構造化データを記述するためのマークアップ言語です。</description>
  </item>
</rdf:RDF>

3 RSS 2.0

3.1 RSS 2.0フィードのマークアップ

ウェブサイトにRSS 2.0のフィードが存在することをHTMLで明示するには、link 要素でマークアップする。

<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="https://example.com/rss.xml">

3.1 rss

RSS 2.0のルート要素

<rss version="2.0">
</rss>

3.2 ポッドキャスト

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd">
  <channel>
    <title>Tsukaのおしゃべりポッドキャスト</title>
    <itunes:owner>
      <itunes:email>tsuka@example.com</itunes:email>
    </itunes:owner>
    <itunes:author>tsuka</itunes:author>
    <description>日々の出来事や感じたことを語ります。</description>
    <itunes:image href="https://www.example.com/podcasts/tsuka/img/podcast.jpg"/>
    <language>ja-jp</language>
    <link>https://www.example.com/podcasts/tsuka/</link>
    <item>
      <title>鎌倉へ旅行に行ってきました</title>
      <description>鎌倉へ旅行に行ったときの思い出を語ります。</description>
      <pubDate>Sun, 28 Aug 2022 12:00:00 GMT</pubDate>
      <enclosure url="https://www.example.com/podcasts/example.mp3" type="audio/mpeg" length="26004388"/>
      <itunes:duration>15:30</itunes:duration>
      <guid>tsukakamakura</guid>
    </item>
  </channel>
</rss>

3.3 <guid>

ポッドキャストのエピソードに永続的に割り当てられるグローバルで一意の識別子

4 Atom

AtomはIETFにおいてRFC 4287として仕様が公開されている。

4.1 Atomフィードのマークアップ

ウェブサイトにAtomのフィードが存在することをHTMLで明示するには、link要素でマークアップする。

<link rel="alternate" type="application/atom+xml" title="Atom" href="https://example.com/atom.xml">

4.2 <feed>

Atomのルート要素

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Example Feed</title>
  <link href="https://segakuin.com/"/>
  <updated>2022-12-07T18:30:02Z</updated>
  <author>
    <name>Tsukamoto Hiroyuki</name>
  </author>
  <entry>
    <title>RSS</title>
    <link href="https://segakuin.com/xml/rss/"/>
    <updated>2022-12-07T18:30:02Z</updated>
    <summary>Some text.</summary>
  </entry>
</feed>

5 関連記事

UUID (Universally Unique Identifier)

6 参考文献

Aaron Swartz (2000) RDF Site Summary (RSS) 1.0

RSS Advisory Board (2009) RSS 2.0 Specification (Current)

The Internet Society (2005) RFC 4287 (The Atom Syndication Format)