RSSに付いての覚え書き Ver.1.0形式

RSSのバージョン

 0.9、1.0、2.0、の3種類が主流。最近ではAtom 1.0と言うのが登場し、Gogle mailなどで使われており、どれが標準に成るか不明な点が多い。
日本では1.0と2.0が共に多く使われている。
2.0は1.0の後継ではなく、0.9の後継でページによっては1.0と2.0を同時に公開しているページもある。

入力の形式

1.0は特に別ファイルに書き出す。書式はUTF-8ユニコード形式)

<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet href="/hoge/rssxsl" type="text/xsl" media="screen"?>

<rdf:RDF
	xmlns="http://purl.org/rss/1.0/"
	xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xml:lang="ja">
<channel rdf:about="http://hogehoge.co.jp/rss">
	<title>ホームページタイトル</title>
	<link>http://hogehoge.co.jp/</link>
	<description>ページタイトル</description>
	
	<image rdf:resource="http://hogehoge.co.jp/images/rogo.gif"/>
	
	<dc:creator>制作者</dc:creator>
	<items>
	<rdf:Seq>
		<rdf:li rdf:resource="http://hogehoge.co.jp/news/0009"/>
		<rdf:li rdf:resource="http://hogehoge.co.jp/news/0008"/>
		<rdf:li rdf:resource="http://hogehoge.co.jp/news/0007"/>
		<rdf:li rdf:resource="http://hogehoge.co.jp/news/0006"/>
		<rdf:li rdf:resource="http://hogehoge.co.jp/news/0005"/>
		<rdf:li rdf:resource="http://hogehoge.co.jp/news/0004"/>
		<rdf:li rdf:resource="http://hogehoge.co.jp/news/0003"/>
		<rdf:li rdf:resource="http://hogehoge.co.jp/news/0002"/>
		<rdf:li rdf:resource="http://hogehoge.co.jp/news/0001"/>
	</rdf:Seq>
	</items>
</channel>

<item rdf:about="http://hogehoge.co.jp/news/0009">
	<title>9番目のアイテム</title>
	<link>http://hogehoge.co.jp/news/0009</link>
	<description>9番目のアイテムの内容</description>
	<dc:creator>制作者</dc:creator>
	<dc:date>2006-04-08T10:15:38+09:00</dc:date>
	<dc:subject>科目B</dc:subject>
</item>
<item rdf:about="http://hogehoge.co.jp/news/0008">
	<title>8番目のアイテム</title>
	<link>http://hogehoge.co.jp/news/0008</link>
	<description>8番目のアイテムの内容</description>
	<dc:creator>制作者</dc:creator>
	<dc:date>2006-04-08T10:22:35+09:00</dc:date>
	<dc:subject>科目A</dc:subject>
</item>
<item rdf:about="http://hogehoge.co.jp/news/0007">
	<title>7番目のアイテム</title>
	<link>http://hogehoge.co.jp/news/0007</link>
	<description>7番目のアイテムの内容</description>
	<dc:creator>制作者</dc:creator>
	<dc:date>2006-04-06T11:28:55+09:00</dc:date>
	<dc:subject>科目A</dc:subject>
</item>

(( 中 略 ))

<item rdf:about="http://hogehoge.co.jp/news/0001">
	<title>1番目のアイテム</title>
	<link>http://hogehoge.co.jp/news/0001</link>
	<description>1番目のアイテムの内容</description>
	<dc:creator>制作者名</dc:creator>
	<dc:date>2006-03-26T16:06:52+09:00</dc:date>
	<dc:subject>科目B</dc:subject>
</item>
</rdf:RDF>


※表記中「〜番目」とは、新しい記事ほど記事番号が大きいと言う認識です。

おおよそ、2部分に分割して考えることが出来る。それぞれチャンネル要素とアイテム要素、先頭部分(チャンネル部)に目次が表示され後半部分(アイテム部)には、それぞれのサマリーが入る事になっている。
なお、チャンネル要素のtitle部は40バイト以内、descriptionは500バイト以内に納めること、各アイテムのtitle部は100バイト以内、description部分は500バイト以内でまとめられていることが望まれる。
また、保存される拡張子は「.rdf」が望ましいとされて次点で「.xml」が推奨。

また、XHTML内では幾つかの特殊文字が特別な利用をされているため、エンティティされたコードによって記述しなければならないものがある。

文字 XMLエンティティ
& &amp;
< &lt;
> &gt;
' &apos;
" &quot;

もう少し突っ込んだ説明

上記ソースをもう少し簡単にモデル化すると以下のようになります。

rdf:RDF

channel

title
チャンネル(サマリー対象)のタイトル。できれば40バイト以内(必須)

link
RSSでサマリー対象とするサイトのURI。ホームページや新着ページのURIが一般的だが、特定のページやセクションのサマリーをチャンネルとする場合はそのURI(必須)

description
チャンネル(サマリー対象)の内容、機能、ソースなどの概要説明。できれば500バイト以内(必須)

items
channelに続くitem要素で記述するリソースの目次に相当。リソースのURIrdf:li要素のrdf:resource属性で示し、これらをitem要素と対応させる(必須)

rdf:Seq

rdf:li
必要に応じてrdf:RDF直下のitemと同じ分だけ表示
但し、0.9との互換性を保つため15個以上は推奨されない。

さらにオプションとして、image要素(チャンネルのロゴなどがある場合に記述。イメージのURIrdf:resource属性で示し、さらに具体的内容をrdf:RDF直下のimage要素に記述する)や、textinput要素(チャンネルと共に検索用のフォームなどを送る場合に使う。古いRSSとの互換性のために残されている)があるが利用の頻度は低い

item
チャンネル部のrdf:liで指定した数だけ続ける。
0.9との互換性を保つため15個以上は推奨されない。

title
リソースのタイトル(ニュースヘッドラインなら見出し)。できれば100バイト以内(必須)

link
リソースのURI。基本的にはrdf:about属性の値と同じ(必須)

description
リソースの要約、概要説明など。できれば500バイト以内(仕様上オプション扱いだが、基本的にRSSリーダはここを読み取る事が多いのでDe Factoの必須要項である)