Chapter-2 The Atom Syndication Format

2章 Atomフォーマット – The Atom Syndication Format

最終更新日:2005/03/03   © Witha System, Ltd

Witha System » Atom目次
» [1章 The Atom Project – RSSの興隆からAtomの誕生]
» [2章 Atomフォーマット – The Atom Syndication Format]
» [3章 Atom出版プロトコル – The Atom Publishing Protocol(AtomAPI)]
» [4章 The Atom Publishing Protocol(AtomAPI)の利用法]
» [AtomやAtomAPI関連のニュースや仕様へのリンク]
» [RSS 2.0 と Atom 1.0 の比較]

2章 Atomフォーマット – The Atom Syndication Format

はじめに

ウェッブサイトの更新情報やコンテンツの配信,保存を受け持つ,「Atom配信フォーマット」(The Atom Syndication Format)について,詳しく解説していきたいと思います.ウェブログやニュースをRSS・Atomアグリゲータで取得する際に用いるのが,この形式で記述されたファイルです.

Atom0.3

まずご了解いただきたいのは,Atomの仕様はまだ非常に流動的であり,根本的な変更がなされるということも十分にあります.ですから,Atomフォーマットを作成したり,Atomを利用するアプリケーションを作成する前に、まず最新のドラフトを参照されることを強くお勧めいたします.
本稿では特に言及しない限り,Atom0.3と呼ばれているIETFに持ち込まれる以前の仕様をもとに解説します.このバージョンが現在最も広く使われています。

The Atom Syndication Format 0.3 (PRE-DRAFT)
http://www.atomenabled.org/developers/syndication/atom-format-spec.php

本稿執筆の時点でのAtomフォーマットの最新バージョンはIETFでの「インターネットドラフト第3版(draft-ietf-atompub-format-03」です.本章の中ほどで,主な変更点をまとめていますので,宜しければそちらもご覧ください.

Atomフォーマットの構成

Atom0.3フォーマットのほぼ最小構成はリスト1のようになります.XMLのバージョンは1.0でなければなりません.また,ここでは文字コードをUTF-8としていますが,XMLですからShift_JISなどももちろん利用できます.

[リスト1]
<?xml version=”1.0″ encoding=”utf-8″?>
<feed version=”0.3″ xmlns=”http://purl.org/atom/ns#”>
<title>Atom始めの一歩</title>
<link rel=”alternate” type=”text/html” href=”http://blog.example.org/”/>
<modified>2004-12-13T18:30:02Z</modified>
<author>
<name>鉄腕アトム</name>
</author>
<entry>
<title>Atom 0.3</title>
<link rel=”alternate” type=”text/html” href=”http://blog.example.org/2004/12/13/atom03.html”/>
<id>tag:blog.example.org,2004:3.2397</id>
<issued>2004-12-13T08:29:29-04:00</issued>
<modified>2004-12-13T18:30:02Z</modified>
</entry>
</feed>

以上が,Atom Documentです.entry要素以下が一つのエントリ,ウェブログでいう一つの記事となります。このentry要素が複数回繰り返し現れます.

名前空間について

Atomフォーマットの要素名や属性名を識別する名前空間として,http://purl.org/atom/ns# を使います.トップレベルの要素feedにデフォルトの名前空間として指定されていますので,feed以下の要素も,指定されていない限りAtomの名前空間に属します.独自の要素を利用して拡張したい場合は,それぞれ別の名前空間を指定して利用します.名前空間で識別すれば,同じ名前の要素も使えるようになります.

Atomの構成要素と属性

共通の構成:コンストラクト

Atomフォーマット全体で幾つかの要素で共通に使われる構成があります.それらをまとめたものをコンストラクトと呼びます.コンストラクトには,Contentコンストラクト,Personコンストラクト,Dateコンストラクト,Linkコンストラクトの四つの種類があります.

Contentコンストラクト

Contentコンストラクトは,title要素や,summary要素,content要素などキーとなる要素で使われます.ContentコンストラクトにはContentコンストラクトの内容に関するtype属性と、mode属性があります.
type属性には,RFC2045で規定されたメディアタイプを指定します.もしこの属性が無かった場合,text/plain として扱われます.
mode属性は,「xml」,「escaped」,「base64」の値をとる事が可能です.それぞれ,「xml」は内容がXMLであることを示し,「escaped」はエスケープされている事を示し,「base64」はBase64でエンコードされている事を示します.

Personコンストラクト

Personコンストラクトは,著者など人を表す要素で使用されます.name,url,emailの三つの子要素を持ちます.name要素は,人や企業名を表す文字列で,Personコンストラクトには必ず一つだけ存在します.url要素は,人に関係するURIを指定します.例えば,ウェブサイトのアドレスなどがこれにあたります.必須ではありませんが,一つ以上あってはなりません.また,xml:baseが指定されている場合,URIは相対パスである可能性があります.email要素は,人に関連付けられたメールアドレスを指定します.必須ではありませんが,一つ以上あってはなりません.最後に,name,url,emailの要素の出現する順番は特に意味を持ちません.

Dateコンストラクト

Dateコンストラクトでは,日付時刻の指定に使われ,そのフォーマットはW3Cで規定された日付時刻フォーマットを用います.最新の仕様では,同じくISO 8601を元にした,より詳細なRFC3339で指定されている日付時刻フォーマットを用いること,と変更されています.

Linkコンストラクト

Linkコンストラクトは,rel,href,type,titleの四つの属性をもち,子要素を持つことが出来ません.rel属性はRelationship,つまり関係を表し,「alternate」,「start」,「next」,「prev」,「service.edit」,「service.post」,「service.feed」,いずれかの値をとります.「alternate」は,別バージョンのリンクを表します.つまり,ウェブログの記事をAtomフォーマットで記述しているなら,Link要素は,ウェブログの記事へのリンクとなります.「start」,「next」,「prev」は最新のドラフトでは,無くなり新たに「related」という値が加わりました.
href属性は,Linkコンストラクトには必須で,値はURIでなければなりません.HTMLのlink要素と同じような役割です.これもまた,xml:baseを適用する必要があります.
type属性は,href属性で指定されたURIのメディアタイプを指定します.あくまでも参考として扱う必要があります.
title属性はリンクのタイトルとなり,文字列で表します.
Linkコンストラクトは,例えばフィードのLinkは,
<link rel=”alternate” type=”text/html” href=”http://blog.example.org/” title=”アトムのウェブログ”/>とフィードと関連付けられたウェブサイトのURLになりますし,個々のエントリに関連付けられたリンクなどでは,<link rel=”alternate” type=”text/html” href=”http://blog.example.org/blog/archives/2004/11/atom.html”/>などのように,個々の記事を指し示すために用いられます.
最新のバージョンでは,Linkコンストラクトにhreflang属性が追加されています.これをrel属性の「alternate」指定と共に用いると,翻訳された別言語バージョンを指し示すことが出来ます.hreflang属性の値は,RFC3066で指定された言語コードとなります.

Atom文書

Atomフォーマットのトップレベルの要素はfeed要素です.feed要素以下の全体を,Atom文書と呼びます.これがフィードとして配信されたり,1ファイルとして保存される単位となります.
feed要素には以下の二つの属性が定義されています.
version:
この属性は必須で,値はこのバージョンでは「0.3」となります.
xml:lang:
この属性は必須ではありませんが,推奨となっています.値はRFC3066で定義されている言語コードを指定します.日本語だと「ja」です.

feed要素が持ちうる子要素は以下のものです.

title:
フィードのタイトル。Contentコンストラクトの一つです.必須要素で,必ず一つだけ存在しなければなりません.もしウェブログのタイトルが「鉄腕アトム」なら,この要素のテキストは「鉄腕アトム」となります.この要素にはContentコンストラクトで指定されている,typeとmodeという属性を使う事が出来ます.

link:
linkという要素には一つ特別な種類があります.それは,relという属性をもち,値が「alternate」で固定されています.feed要素には,子要素としてこの種類のlink要素がかならず一つ以上存在していなければなりません.具体的には,<link rel=”alternate” type=”text/html” href=”http://blog.example.org/>のように,フィードが表しているウェブ上のコンテンツ自体を指し示します.さらに,同じtype属性をもつこの種link要素は存在してはなりません.それ以外であれば,feed要素にいくつlink要素があっても構いません.
最新の仕様では,rel=”alternate”で指定されたリンク先がHTMLのページである場合,そのHTMLページに,autodiscovery linkの仕様を利用したリンクを挿入して,Atomフィードへのリンクを記述することが強く推奨されています.

author:
author要素は人を表すPersonコンストラクトが適用されます.ここでは,フィードのデフォルトの著者を記述します.すべてのエントリにauthor要素が含まれている場合を除いて,ここで必ず一つのauthor要素を記述しなければなりません.
contributor:
フィード貢献した人のPersonコンストラクトが適用されます.複数のcontributor要素を記述可能です.
tagline:
Contentコンストラクトが適用されます.tagline要素は,フィードに関する説明文を記述します.一つかそれ以上のtagline要素を記述することが許可されています.
id:
id要素.恒久的に変わらないフィード用のIDで,古くなったり,フィードが移動した場合でも変わらないグローバルに識別できるIDでなくてはなりません.必須ではありませんが,この要素が存在した場合,値はURIでなければならないとなっています.しかしながら,IDに関しては常に大きな議論となっており,今後も変更される可能性があります.
最新のバージョンでは,Identityコンストラクトが新たに設けられ,そこで詳細にIDの条件が規定されています.
generator:
generator要素はフィードを生成したソフトウェア名を入れます.これはデバグやその他の目的で用いられます.この要素には,ソフトウェアに関するURLを記述する「url」とバージョンを文字列で入れる「version」の二つの属性をもつ事が出来きます.
copyright:
copyright要素は,Contentコンストラクトが適用されます.これはフィードの著作権情報を記すためにあります.機械的に処理するライセンス情報を記述するものではありません.
info:
要素は,Contentコンストラクトが適用されます.フィードフォーマット自体に関する説明を記述するためで,特定の状況において配信者側が利用する事が出来るものです.フィードを解析する上では重要な意味を持つものではありません.
modified:
modified要素は,Dateコンストラクトの一つで,エントリも含めて,フィードの最終更新日時を記します.modified要素には,タイムゾーンの指定をし,UTC形式でなければなりません.

エントリ文書

entry:
entry要素は,ウェブログやニュースでいう一つの記事を記述する要素になります.ここに,記事の内容や要約,公開日時などの情報が入ります.entry要素はオプションで,一つ以上繰り返し出現出来ます.またその順番は意味を持つものではありません.以後この要素以下をエントリとして呼びます.

title:
エントリのタイトルです.Contentコンストラクトが適用されます.エントリには、必ず一つの     title要素が必要です.もしエントリがウェブ上でリソースを表しているのであれば,タイトルはそれと同じでなければなりません.
link:
Link要素は,Linkコンストラクトの一つで,エントリが表しているウェブ上のURIを記述します.
entry要素には、値が’「alternate」であるrel属性であるLink要素が必ず一つはなければなりません.また,そのtype属性が同一のものが複数あってもなりません.それ以外であれば,幾つのLink要素があっても構いません.
author:
author要素はPersonコンストラクトで,フィードに規定の著者名が記述されていない場合は,ここで,著者名を記す必要があります.author要素はここでは,複数記述することは出来ません.
contributer:
contributer要素は,エントリの内容に貢献した人の情報を記述するPersonコンストラクトです.この要素自体はオプションで,複数のcontributer要素を記述する事も出来ます.
id:
id要素.恒久的に変わらないエントリ用のIDで,古くなったり,エントリが指し示すウェブ上の記事などが移動した場合でも変わらないグローバルに識別できるIDでなくてはなりません.また,同じエントリが異なる二つのフィードで配信される場合は,両者のエントリ用IDは同一でなければなりません.
modified:
modified要素は,Dateコンストラクトで,エントリの最終更新日時を記します.フォーマットはタイムゾーンを指定したUTCでなければなりません.この要素は必須で、エントリに複数存在してはなりません.
issued:
issued要素は,Dateコンストラクトで,エントリが発行された日時を記します.フォーマットはUTCでなければなりませんが,タイムゾーンは省略しても構いません.この要素は必須で、エントリに複数存在してはなりません.
created:
created要素は,Dateコンストラクトで,エントリが生成された日時を記します.フォーマットはタイムゾーンを指定したUTCでなければなりません.この要素は必須ではありませんが、エントリに複数存在してはなりません.
summary:
summary要素は,Contentコンストラクトで,エントリの内容の抜粋や概要を記述します.必須ではありませんが,複数は許可されていません.
content:
content要素は,Contentコンストラクトで,必須ではなく,エントリにつき複数のcontent要素を記述する事が出来ます.
もし,type属性の値が「multipart/alternative」の場合はmode属性を指定してはなりません.そして,content要素の中にcontent要素を少なくとも一つ記述しなければなりません.ただし,それらのcontent要素以下にくるcontent要素は,「multipart/alternative」の値をもつtype属性を指定できません.つまり,type=”multipart/alternative”と指定されたcontent要素は,一段階のネストしかしてはいけません.また,複数提示されているcontent要素を処理する時,どれか一つ適したものを選択して,表示する事が推奨されます.

最新のバージョンでの主な変更点

最新のAtomフォーマットのドラフト仕様には,現在のRSSで培った経験や失敗から学んだ事が随時取り込まれています.
ここでは,本稿執筆時点でのAtomフォーマットの最新版「draft-ietf-atompub-format-03」を元に,最新のドラフトで追加された主な機能や変更点,および今後の方向性について簡単に触れたいと思います.

コンストラクトの変更

Contentコンストラクトは,Textコンストラクトとなりました.さらにmode属性が無くなり,type属性の値は,「TEXT」,「HTML」,「XHTML」の何れかを取ります.それぞれを簡単に説明すると,「TEXT」タイプは,文字列であり,子要素は存在出来ません.「HTML」タイプは,HTMLは実体参照でエスケープされたもので,子要素は含むことは出来ません.「XHTML」タイプ,子要素としてXHTMLをそのまま記述する事が出来ます.
Service コンストラクト追加の追加.AtomAPIの編集や投稿するためのURI等を記述する要素を規定します.
Identityコンストラクト追加されました.Identityコンストラクトが帰属する要素のIDとなります.これは,RFC2396で規定されている絶対パスのURIとなりました.

新たに追加されている主な要素と属性

head要素が追加され,フィードに関する要素はすべて,head要素以下に入るように変更されました.
エントリのcontent要素のtype属性の値は,「TEXT」,「HTML」,「XHTML」のいずれか,もしくはRFC2045で規定されたMIMEタイプを指定します.もし,type属性が指定されていなければ,「TEXT」とみなされます.
同じくcontent要素に,src属性が追加されました.値はURIで,もしsrc属性が指定されているならば,content要素の内容は空でなければなりません.これはRSS2.0の機能の一つ,enclosure要素に相当するものです.
さらに,origin要素もエントリに加わり,これはエントリの出所を識別するために用いられます.
modified,issued,createdの各要素は,updatedとpublishedに置き換えられました.
updated:
Dateコンストラクトの updated要素は,エントリに変更があった時の日時を指定します.これは,配信者が読み手に記事の内容に変更があった事を知らせます.entry要素に必須です.アグリゲータなどが処理する際に,読み手に対して変更や追記があった事を提示するために用いる事が出来ます.
published:
published要素はDateコンストラクトで,エントリが生成された時,もしくは始めて利用可能になった時を指定します.アグリゲータなどは,この値を元にエントリをソートする事が出来ます.

セキュリティ

古いバージョンのRSSでは,エントリを識別するには,エントリごとのURIを利用するしか方法がありません.URIだけで識別するため,他の人のエントリを騙る事や,場合によっては乗っ取る事も可能といえば可能でした.
Atomではid要素でエントリを識別し,origin要素で出所を明らかにします.また,Atomフィードの出所と内容を確実に保護するために,オプションでデジタル署名,暗号化を利用できるようになっています.

「XML-Signature and Syntax Processing」(W3C.REC-xmldsig-core-20020212)

「XML Encryption Syntax and Processing」(W3C.REC-xmlenc-core-20021210)

メディアタイプ

Atomフォーマットのメディアタイプ(MIME type )は,「application/atom+xml」となりました.今でも,「application/x.atom+xml」として利用されているケースもかなり多いですが,新しいバージョンのApache と IIS の初期設定に組み込まれる事になっていますので,今後,ウェブサーバから,拡張子「.atom」のファイルは 「application/atom+xml」として配信されます.

Atomフォーマットをチェックする

RSSやAtomフォーマットはXMLですから,規格に沿ったフォーマットであるか厳密にチェックをすることが出来ます.この作業を,Validateと呼び,非常に重要です.規格に従っていない,Atomを配信すると,アグリゲータなどで読み込めないなどの問題が起きてしまいます.
「Feed Validator」は,RSSやAtomをValidateするための便利なオンラインサービスです.これを利用して,作成したフォーマットに問題が無いかチェックする事が出来ますので,作成したAtomフィードを公開する前にぜひ一度はかならず利用してみるよう心がけましょう.対応しているフォーマットの種類とバージョンは,RSS0.91,RSS1.0,RSS2.0,Atom0.3です.

「Congratulations! This is a valid Atom feed.」と出たら,問題ありません.
実は,このサービスを構築したのはAtomフォーマットの裁定において中心的役割を果たしている,Mark Pilgrim氏と Sam Ruby氏です.「Feed Validator」
http://feedvalidator.org/

Atom 自動発見

この場で,「Atom Feed Autodiscovery」という仕様について触れたいと思います. 「Atom Feed Autodiscovery」というのは,通常のHTMLで記述されたページに,Atomフィードへのリンクを記述する方法を規定する仕様です.
最近は,FireFoxなどのブラウザでウェブページを閲覧していると,右下のステータスバー部分にRSSのアイコンが表示されます.これは,FireFoxがAutodiscoveryの仕様に基づいた方法で,AtomやRSSフィードのURLを取得し,表示しています.FireFoxでは,LiveBookmarkといって,発見し取得したフィードへのリンクを一種のブックマークとして登録する事が出来,常に最新の記事へジャンプする事が出来るようになっています.
このように,Atom 自動発見の機能は,アグリゲータなどが,閲覧中のウェブページからAtomフィードやRSSフィードを確実に取得できるようにするためのものです.

具体的には,HTMLのhead要素内に,以下のようなリンクを追加します.
<link rel=”alternate” type=”application/atom+xml” title=”Atom0.3″
href=”http://www.example.com/xml/index.atom” />
参考までに,RSSでは以下のようなリンクを挿入します.もし複数のバージョンのRSSを同時に配信している場合は,title要素にバージョン番号を含めると分かりやすいでしょう.
<link rel=”alternate” type=”application/rss+xml” title=”RSS” href=”http://www.hyuki.com/diary/rss” />
また,ウェブページに埋め込まれる順番にも意味があり,アグリゲータは,ページに出現する順番通りにユーザに提示しなければなりません.
しかし,リンクを取得するアグリゲータが注意しなければならないのは,<link type=’application/atom+xml’
HREF=”xml/index.atom” rel=”AlTeRnAtE feed” />
といったバリエーションも許可されている,という事です.そのような場合も正しく認識出来るように注意深く作成する必要がありますが,「Atom autodiscovery test suite」というテストツールを利用して確認すれば,どんなバリエーションでも正しく検知出来るようなアグリゲータを作成可能です.
「Atom autodiscovery test suite」では,148種類のバリエーションのテストを行なう事が出来ます.

「Atom autodiscovery test suite」
http://diveintomark.org/tests/client/autodiscovery/

Atomを変換する

XSLTによる変換

XMLの一形式であるAtomは,XSLTを用いて様々な形式に変換する事が可能です.リスト2のサンプルでは,AtomフィードにXSLTを適用して簡単なHTML変換しています.

[リスト2]
「atom2html.xsl」
<?xml version=”1.0″ encoding=”utf-8″?>
<xsl:stylesheet
version=”1.0″
xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”
xmlns:atom=”http://purl.org/atom/ns#”
xmlns=”http://www.w3.org/1999/xhtml”
>
<xsl:output method=”html” encoding=”utf-8″ />
<xsl:template match=”/”>
<html>
<head>
<title>
<xsl:apply-templates select=”//atom:feed/atom:title”/>
</title>
</head>
<body>
<h2>
<xsl:element name=”a”>
<xsl:attribute name=”href”>
<xsl:apply-templates select=”//atom:feed/atom:link/@href”/>
</xsl:attribute>
<xsl:apply-templates select=”//atom:feed/atom:title”/>
</xsl:element>
</h2>
<div>
<xsl:apply-templates select=”//atom:feed/atom:tagline”/>
</div>
<table border=”1″>
<xsl:apply-templates select=”//atom:feed/atom:entry”/>
</table>
</body>
</html>
</xsl:template>

<xsl:template match=”//atom:feed/atom:entry”>
<tr>
<td valign=”top”>
<h4>
<xsl:element name=”a”>
<xsl:attribute name=”href”><xsl:value-of select=”atom:link/@href”/></xsl:attribute>
<xsl:attribute name=”title”><xsl:value-of select=”atom:summary”/></xsl:attribute>
<xsl:attribute name=”class”>title</xsl:attribute>
<xsl:value-of select=”atom:title”/>
</xsl:element>
</h4>
<xsl:element name=”div”>
<xsl:attribute name=”class”>item-description</xsl:attribute>
<xsl:choose>
<xsl:when test=”atom:content”>
<xsl:apply-templates select=”atom:content”/>
</xsl:when>
<xsl:otherwise>
<xsl:if test=”atom:summary”>
<xsl:value-of select=”atom:summary” disable-output-escaping=”yes”/>
</xsl:if>
</xsl:otherwise>
</xsl:choose>
</xsl:element>
</td>
</tr>
</xsl:template>

<xsl:template match=”//atom:feed/atom:title”>
<xsl:value-of select=”.”/>
</xsl:template>
<xsl:template match=”//atom:feed/atom:link/@href”>
<xsl:if test=”../@rel = ‘alternate'”>
<xsl:if test=”../@type = ‘text/html'”>
<xsl:value-of select=”.”/>
</xsl:if>
</xsl:if>
</xsl:template>
<xsl:template match=”//atom:feed/atom:entry/atom:content”>
<xsl:if test=”@type = ‘text/html'”>
<xsl:value-of select=”.” disable-output-escaping=”yes”/>
</xsl:if>
</xsl:template>
<xsl:template match=”//atom:feed/atom:tagline”>
<xsl:value-of select=”.” disable-output-escaping=”yes”/>
</xsl:template>

</xsl:stylesheet>

このXSLTファイルを,配信するAtomフォーマットに関連付ければ,もしユーザがAtomフィードをブラウザで直接開いたとしても,素のXMLではなく,綺麗に整形されたHTMLページが提示される事になります.Atomフィードと関連付けるには,Atomフィードの二行目に,
<?xml-stylesheet href=”atom2html.xslt” type=”text/xsl”?>
のような,処理命令を加えます.hrefの属性は,適時変更してください.
XSLTを利用すれば,AtomをHTMLページに変換出来るだけでなく,CSVファイルに変換しデータベースやエクセルに取り込んだり,通常のテキストに変換したりすることも可能です.

ここでリスト2の「atom2html.xsl」ファイルを利用して,簡単なVBScriptで,Googleが運営するウェブメールサービス「GMail」が配信する未読メールのAtomフィードを取得して,HTMLに変換して見ましょう.

[リスト3]
Set xmlHttp = WScript.CreateObject(“Msxml2.XMLHTTP.3.0”)
Set xmlDoc = WScript.CreateObject(“Msxml2.DOMDocument.3.0”)
Set xslDoc = WScript.CreateObject(“Msxml2.DOMDocument.3.0”)

xmlHttp.open “GET”, “https://gmail.google.com/gmail/feed/atom”, False, “ユーザ名”, “パスワード”
xmlHttp.send
xmlDoc.async = False
xmlDoc.loadXML xmlHttp.responseText
If xmlDoc.parseError.errorCode <> 0 Then
WScript.Echo “An error found: ” + xmlDoc.parseError.reason
Else
xslDoc.async = False
xslDoc.load “atom2html.xsl”
If xslDoc.parseError.errorCode <> 0 Then
WScript.Echo “An error found in XSLT file: ” + xslDoc.parseError.reason
Else
WScript.Echo xmlDoc.transformNode(xslDoc)
End If
End If

リスト3のユーザ名とパスワードを適時書き換えて,「GMailCheck.vbs」として「atom2html.xsl」と同じフォルダに保存してください.「GMailCheck.vbs」をダブルクリックするなどして実行すると,GMailがAtomフォーマットで配信している未読メールの一覧が変換されたHTMLとしてダイアログに表示されます.

 ここで,XSLTを編集して確認出来るWindows用の便利なツールを紹介したいと思います.
「eXtyle」
http://www.vector.co.jp/soft/win95/net/se236115.html
使い方は簡単で,変換元のAtomフィードと,上記の変換用XSLTファイルと保存先を指定し,変換を行なうだけです.

変換サービス

「FeedBurner」は,RSSやAtomに関する種々の便利なサービスを提供しています.その中に,RSSをAtomに変換したり,逆にAtomをRSSに変換してくれる機能があります.これを用いれば,Atomしか配信していないウェブサイトがあったとしても,RSSに変換する事が出来ます.これにより,RSSにしか対応していないようなツールとも連携を図ることが出来る便利なサービスです.
「FeedBurner」のサービスは変換サービスの他にも,フィードのアクセス解析や,アマゾンのアソシエイトIDを挿入する機能,アマゾンの商品を挿入する機能,XSLT変換で紹介したような,ブラウザでHTML表示できるようにする機能などがあります.
「FeedBurner」
http://www.feedburner.com/
「atom2rss」
http://www.2rss.com/software.php?page=atom2rss

最新の情報

Atomの仕様は,メーリングリストの参加者によって議論されています.現在でも大きな変更がなされる余地は十分にあります.また,微妙な問題は投票という形で決められますので,具体的にどのような方向に進むのかが見えにくい所があります.
ですから,Atomの正式版発表に向けて,本稿で予備知識を得た方も,実際に利用する際は,かならず、正式版の仕様をチェックするようにしましょう.

関連情報

「The Atom Syndication Format 0.3 (PRE-DRAFT)」
http://www.atomenabled.org/developers/syndication/atom-format-spec.php

「Atom Publishing Format and Protocol (atompub)」最新のIETFでのドラフト
http://www.ietf.org/html.charters/atompub-charter.html

RSS 0.9 (Netscape)
http://my.netscape.com/publish/formats/rss-0.9.dtd
RSS 0.91 (Netscape)
http://my.netscape.com/publish/formats/rss-spec-0.91.html
RSS 1.0 (RSS-DEVグループ)
http://web.resource.org/rss/1.0/
RSS 1.0和訳
http://www.net.intap.or.jp/INTAP/s-web/data/TR/1-1.html
RSS 9.2 (userland)
http://backend.userland.com/rss092
RSS 2.0
http://blogs.law.harvard.edu/tech/rss

Previous article

Chapter-1 The Atom Project and RSS

Next article

Rssatom 2