Atom、RSSの最小単位の実装方法
ブログ等では、サービスにAtom、RSSの仕組みが実装されているため、RSSの仕様について理解せずに運用できるが、自分で実装する際の方法についてまとめてみた。
RSSは大きく分けて以下の二種類があり、それぞれ実装方法が違う。
・RSS1.0(RDF Site Summary) 初期型のRSSを正統に進化させたもので、他に比べて詳細に内容を記述することができる
・RSS2.0(Really Simple Syndication) 初期型RSSを簡略化させたもの
Atomは仕様のまとまらないRSSを定義しなおしたものである。
1.RSS1.0
以下が最小単位の実装内容
ファイル名:rss1.xml
<?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>
<items>
<rdf:Seq>
(※記事追加時、下記と同じようなrdfタグを挿入)
<rdf:li rdf:resource="更新内容(2)のURL"/>
<rdf:li rdf:resource="更新内容(1)のURL"/>
</rdf:Seq>
</items>
</channel>
(※記事追加時、下記と同じようなitemタグで囲んだ情報を挿入)
<item rdf:about="更新内容(2)のURL">
<title>更新内容(2)のタイトル</title>
<link>更新内容(2)のURL</link>
<description><![CDATA[更新内容(2)の内容]]></description>
<dc:date>T更新内容(2)の更新日時</dc:date>
</item>
<item rdf:about="更新内容(1)のURL">
<title>更新内容(1)のタイトル</title>
<link>更新内容(1)のURL</link>
<description><![CDATA[更新内容(1)の内容]]></description>
<dc:date>更新内容(1)の更新日時</dc:date>
</item>
</rdf:RDF>
更新時に修正する部分:
内容を更新した際には、(※)の箇所を修正・追加していく。
RSS1.0の特徴:
初期RSSが正統進化したものであり、RDFを利用することができる。
2.RSS2.0
以下が最小単位の実装内容
ファイル名:rss2.xml
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>サイトの名前</title>
<link>サイトのURL</link>
<description>サイトの内容</description>
<language>ja</language>
<copyright>コピーライト</copyright>
<pubDate>RSSの最終更新日時(※記事追加時、日付けを変更)</pubDate>
(※記事追加時、下記と同じようなitemタグで囲んだ情報を挿入)
<item>
<title>更新内容(2)のタイトル</title>
<link>更新内容(2)のURL</link>
<description>更新内容(2)の内容</description>
<pubDate>更新内容(2)の更新日時</pubDate>
</item>
<item>
<title>更新内容(1)のタイトル</title>
<link>更新内容(1)のURL</link>
<description>更新内容(1)の内容</description>
<pubDate>更新内容(1)の更新日時</pubDate>
</item>
</channel>
</rss>
更新時に修正する部分:
内容を更新した際には、(※)の箇所を修正・追加していく。
RSS2.0の特徴:
初期RSSを簡易化したバージョンで、RDFを使用せずにxmlだけで記述ができる。
3.Atom
以下が最小単位の実装内容
ファイル名:Atom.xml
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>サイトの名前</title>
<subtitle>サイトの内容</subtitle>
<link href="サイトのURL"/>
<updated>RSSの最終更新日時(※記事追加時、日付けを変更)</updated>
<name>サイトの製作者名</name>
<email>サイト製作者のEメールアドレス</email>
</author>
<id>サイトごとのユニークなID</id>
(※記事追加時、下記と同じようなentryタグで囲んだ情報を挿入)
<entry>
<title>更新内容(2)のタイトル</title>
<link href="更新内容(2)のURL"/>
<id>更新内容(2)のユニークなID</id>
<updated>更新内容(2)の更新日時</updated>
<summary>更新内容(2)の内容</summary>
</entry>
<entry>
<title>更新内容(1)のタイトル</title>
<link href="更新内容(1)のURL"/>
<id>更新内容(1)のユニークなID</id>
<updated>更新内容(1)の更新日時</updated>
<summary>更新内容(1)の内容</summary>
</entry>
</feed>
更新時に修正する部分:
内容を更新した際には、(※)の箇所を修正・追加していく。
Atomの特徴:
ユニークなIDは、ドメインや時刻を組み合わせて、自分で作成する。
仕様が分かりやすく定義されている。
誰でも自由に拡張が可能。
以下にそれぞれのサンプルコードを用意した。
RSS1.0
RSS2.0
Atom
(RSSリーダー機能のあるブラウザからアクセスした場合、全て同じように見える)
RSSは大きく分けて以下の二種類があり、それぞれ実装方法が違う。
・RSS1.0(RDF Site Summary) 初期型のRSSを正統に進化させたもので、他に比べて詳細に内容を記述することができる
・RSS2.0(Really Simple Syndication) 初期型RSSを簡略化させたもの
Atomは仕様のまとまらないRSSを定義しなおしたものである。
1.RSS1.0
以下が最小単位の実装内容
ファイル名:rss1.xml
<?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>
<items>
<rdf:Seq>
(※記事追加時、下記と同じようなrdfタグを挿入)
<rdf:li rdf:resource="更新内容(2)のURL"/>
<rdf:li rdf:resource="更新内容(1)のURL"/>
</rdf:Seq>
</items>
</channel>
(※記事追加時、下記と同じようなitemタグで囲んだ情報を挿入)
<item rdf:about="更新内容(2)のURL">
<title>更新内容(2)のタイトル</title>
<link>更新内容(2)のURL</link>
<description><![CDATA[更新内容(2)の内容]]></description>
<dc:date>T更新内容(2)の更新日時</dc:date>
</item>
<item rdf:about="更新内容(1)のURL">
<title>更新内容(1)のタイトル</title>
<link>更新内容(1)のURL</link>
<description><![CDATA[更新内容(1)の内容]]></description>
<dc:date>更新内容(1)の更新日時</dc:date>
</item>
</rdf:RDF>
更新時に修正する部分:
内容を更新した際には、(※)の箇所を修正・追加していく。
RSS1.0の特徴:
初期RSSが正統進化したものであり、RDFを利用することができる。
2.RSS2.0
以下が最小単位の実装内容
ファイル名:rss2.xml
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>サイトの名前</title>
<link>サイトのURL</link>
<description>サイトの内容</description>
<language>ja</language>
<copyright>コピーライト</copyright>
<pubDate>RSSの最終更新日時(※記事追加時、日付けを変更)</pubDate>
(※記事追加時、下記と同じようなitemタグで囲んだ情報を挿入)
<item>
<title>更新内容(2)のタイトル</title>
<link>更新内容(2)のURL</link>
<description>更新内容(2)の内容</description>
<pubDate>更新内容(2)の更新日時</pubDate>
</item>
<item>
<title>更新内容(1)のタイトル</title>
<link>更新内容(1)のURL</link>
<description>更新内容(1)の内容</description>
<pubDate>更新内容(1)の更新日時</pubDate>
</item>
</channel>
</rss>
更新時に修正する部分:
内容を更新した際には、(※)の箇所を修正・追加していく。
RSS2.0の特徴:
初期RSSを簡易化したバージョンで、RDFを使用せずにxmlだけで記述ができる。
3.Atom
以下が最小単位の実装内容
ファイル名:Atom.xml
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>サイトの名前</title>
<subtitle>サイトの内容</subtitle>
<link href="サイトのURL"/>
<updated>RSSの最終更新日時(※記事追加時、日付けを変更)</updated>
<name>サイトの製作者名</name>
<email>サイト製作者のEメールアドレス</email>
</author>
<id>サイトごとのユニークなID</id>
(※記事追加時、下記と同じようなentryタグで囲んだ情報を挿入)
<entry>
<title>更新内容(2)のタイトル</title>
<link href="更新内容(2)のURL"/>
<id>更新内容(2)のユニークなID</id>
<updated>更新内容(2)の更新日時</updated>
<summary>更新内容(2)の内容</summary>
</entry>
<entry>
<title>更新内容(1)のタイトル</title>
<link href="更新内容(1)のURL"/>
<id>更新内容(1)のユニークなID</id>
<updated>更新内容(1)の更新日時</updated>
<summary>更新内容(1)の内容</summary>
</entry>
</feed>
更新時に修正する部分:
内容を更新した際には、(※)の箇所を修正・追加していく。
Atomの特徴:
ユニークなIDは、ドメインや時刻を組み合わせて、自分で作成する。
仕様が分かりやすく定義されている。
誰でも自由に拡張が可能。
以下にそれぞれのサンプルコードを用意した。
RSS1.0
RSS2.0
Atom
(RSSリーダー機能のあるブラウザからアクセスした場合、全て同じように見える)


