RSS2.0の書式について調べてみた (a-blog cms Ver.2.8 より)
RSSとは
RSSは、ニュースやブログなど各種のウェブサイトの更新情報を配信するための文書フォーマットの総称のことです。RSSはXML形式で記述されます。RSSリーダーというツールを介すことで、サイトの更新情報や新着情報を自動的に取得することができます。
※ RSSにはいくつかの規格があり、それぞれ違う団体が考案しています。規格によってRSSの名称や書き方も異なり、「RDF Site Summary」「Rich Site Summary」「Really Simple Syndication」などがあります。
参考サイト
XMLとは
Extensible Markup Language(エクステンシブル マークアップ ランゲージ)は、基本的な構文規則を共通とすることで、任意の用途向けの言語に拡張することを容易としたことが特徴のマークアップ言語の総称である。一般的にXML(エックスエムエル)と略称で呼ばれる。JISによる訳語は「拡張可能なマーク付け言語」。
XMLはマークアップ言語の一つでです。HTMLと同じようにタグ<〇〇></〇〇>
を使ってマークアップします。日本語では「拡張可能なマーク付け言語」と訳されるようですね。最大の特徴は、要素名を自由に定義できることです。拡張性が高く、文書をデータ化できることから構造化されたデータ管理/共有に向いている言語です。また、HTMLと違い、終了タグを略したりすることはできません(例:<br>
)。記述のルールが厳密なのでマシンにとっては扱いやすい言語です。
引用元・参考サイト
RSSはXMLで記述されます。RSSも「RSSリーダー」というツールを使ってサイトの更新情報を読み取ります。RSSの場合はマシンが情報を出力し、マシン間でデータのやりとりをするため、XMLが適任だったと言えるのではないでしょうか。
RSSファイルを作る(RSS 2.0)
RSSファイルは「〇〇.xml」という形式で作成します。ファイル名は好きな名前でOKです。
ファイルの中身はこんな感じです。(このxmlファイルの元データは a-blog cms Ver.2.8.33 からダウンロードしたものです。)
<?xml version="1.0" encoding="UTF-8"?> <rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0" xml:lang="ja"> <channel> <title>RachicOm</title> <link>http://rachicom.net/</link> <atom:link href="http://rachicom.net/rss2.xml" rel="self" type="application/rss+xml" /> <description>サイトの概要文</description> <language>ja</language> <copyright>Copyright (C) 2018 RachicOm All rights reserved.</copyright> <lastBuildDate>Sat, 01 Sep 2018 12:14:03 +0900</lastBuildDate> <generator>a-blog cms</generator> <docs>http://blogs.law.harvard.edu/tech/rss</docs> <item> <dc:creator>ブログ作成者名</dc:creator> <title>ブログタイトル</title> <link>http://rachicom.net/〇〇〇.html</link> <description> <![CDATA[記事の概要文]]> </description> <category>a-blog cms</category> <guid isPermaLink="true">http://rachicom.net/〇〇〇.html</guid> <pubDate>Sat, 01 Sep 2018 11:25:31 +0900</pubDate> </item> </channel> </rss>
各要素について
宣言文
<?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> ... ... ... ... </channel> </rss>
上2つの要素は宣言文になります。<?xml version="1.0"?>
はXMLのバージョン番号です。encoding="UTF-8"
はそのサイトで使っている文字コードを表記します。UTF-8 または UTF-16 を使用している場合は省略することもできます。<rss version="2.0">
はRSSのバージョンを表記します。今回は RSS2.0 の紹介をしますので、2.0 とします。
※ xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" ... xml:lang="ja" の部分はとりあえず無視して解説進めます。
<channel>
内にはサイト情報を記載していきます。これら宣言文と channel 要素は必須項目になります。
channel要素内
<?xml version="1.0" encoding="UTF-8"?> <rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0" xml:lang="ja"> <channel> <title>サイト名</title> <link>http://rachicom.net/</link> <!-- ←サイトのURL --> <atom:link href="http://rachicom.net/rss2.xml" rel="self" type="application/rss+xml" /> <description>サイトの概要文</description> <language>ja</language> <!-- ←使用言語 --> <copyright>Copyright (C) 2018 RachicOm All rights reserved.</copyright> <!-- ←著作権 --> <lastBuildDate>Sat, 01 Sep 2018 12:14:03 +0900</lastBuildDate> <!-- ←RSS 2.0 ファイルの最終更新日 --> <generator>a-blog cms</generator> <!-- ←サイト作成に使ったツール名 --> <docs>http://blogs.law.harvard.edu/tech/rss</docs> <!-- ←RSSファイルが置いてあるURL --> <item> <!-- ←更新記事ごとの情報 --> <dc:creator>ブログ作成者名</dc:creator> <title>ブログタイトル</title> <link>http://rachicom.net/〇〇〇.html</link> <!-- ←更新記事のURL --> <description> <![CDATA[記事の概要文]]> </description> <category>a-blog cms</category> <!-- ←更新記事のカテゴリー(複数指定もできる) --> <guid isPermaLink="true">http://rachicom.net/〇〇〇.html</guid> <!-- ←記事の識別ID --> <pubDate>Sat, 01 Sep 2018 11:25:31 +0900</pubDate> <!-- ←記事の公開日 --> </item> </channel> </rss>
補足説明
guid 要素には、isPermaLink という属性を指定することができます。 isPermaLink 属性は guid 要素にURLを使うかを指定するための属性です。true の場合は guid 要素に指定した文字列は記事への URL と判断されます。isPermaLink 属性を指定しない場合はデフォルトで ture になります。
pubDate 要素には "公開日時" を指定します。更新日時ではありません。
title要素、link 要素は必須項目です!
参考サイト
- RSS 2.0 at Harvard Law
- 実用的な XML: RSS 拡張機能で RSS の実力を伸ばす | IBM
- 横着者のRSS 2.0 配信ページの作成方法 | mrs.suzu841.com
- XML 宣言 [XML 標準] | developer.microsoft.com
- RSS手動作成のサンプル | nni's blog
- RSS 2.0 のフォーマット (RSS 2.0 の書式と形式) | iPentec
- RSS 2.0 Specification 日本語訳 | futomi CGI Cafe
- RSS 2.0 Specification isPermaLink | suikawari
- FEED Validator
- RSS 2.0 Specification RSS2.0仕様書を適当な日本語に訳してみる | KoshigoeBLOG
- RSS2.0 Notes
- pubDate | suikawari
次は、これまで説明してこなかった atom についてお話しします。
これまでの説明で無視してきた記述について
まず、RSSにはいくつかバージョンがあるという話は先ほどしたかと思います。実はさらにもうひとつ、Atom と呼ばれる規格があります。私が解説用に持ってきた a-blog cms Ver.2.8.33 で配布しているフォーマットには RSS2.0 に加えて、Atom の記述も書いてありました。Atom の記述はこちらです。
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0" xml:lang="ja"> <atom:link href="http://rachicom.net/rss2.xml" rel="self" type="application/rss+xml" />
Atom は RSS2.0 とは別に作られた規格になります。RSS2.0 よりも後に出てきた規格です。
正直、なぜこの Atom が RSS2.0 と一緒にいるのかわかりません。せっかく a-blog cms の開発元に勤めているので先輩に聞いてみようと思います。また分かったらここにひっそりと追記しておきます!サッ ( `・ω・)っ⁾⁾
RSS2.0 についての参考サイト
- RSS2.0 の作り方 ~ 仕様を学ぶの巻 | 猫(=・ω・=)顔 1.0β
- RSS2.0のauthor/dc:creatorを追加する | Mi みたいなもの
- RSS 2.0によるコンテンツ配信 | IBM
- RSSを配布せよ! | 杉浦のホームページ