Web Artisan Blog - ウェブ アルチザン ブログ

XML:2005年12月にRFC勧告されたATOMに対応してXSLT変換

XML

2006年01月16日

Research Artisan Pro ←リサーチアルチザンがパワーアップして復活しました!!
久々にXSLTネタ。。

Research ArtisanのTOPページなどに表示される”登録サイトピックアップ”部分は、ユーザー登録されたサイトのRSSアドレスをHTMLに変換して表示しているのですが、これの変換はXSLTで行っています。で、最近になってATOMフィードされているサイトの変換がどうもうまくいってないので調べてみると、ATOM仕様がRFC化され若干フォーマットが変わったようです。

Atom-RSS改訂の試み
Atomは、RSSのコンセプトを継承しつつ、シンジケーション/コンテンツ配信を主眼に発展的な新しいフィードのフォーマットを作ろうというプロジェクトで、2005年12月にRFCとなりました。


ちなみに「RFC」とは、以下の通り。

RFCとは【Request For Comment】 ─ 意味・解説:IT用語辞典 e-Words
インターネットに関する技術の標準を定める団体であるIETFが正式に発行する文書。
IP(RFC 791)、TCP(RFC 793)、HTTP(RFC 2616)、FTP(RFC 959など)などインターネットで利用されるプロトコルや、その他インターネットに関わるさまざまな技術の仕様・要件を、通し番号をつけて公開している。



そこで、当サイトとしては以下の部分が変更の対象となりました。

link要素がRSSと違ってhref(およびオプションでrel)属性を用いる空要素(XHTMLのように)になっているところがひとつの特徴です。
XML名前空間URIは、http://www.w3.org/2005/Atom となったようです。



まず、XML名前空間URIについては、以下の通り追加しました。

■変更前
<xsl:stylesheet 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:rss="http://purl.org/rss/1.0/"
 xmlns:atom="http://purl.org/atom/ns#"
 version="1.0">


■変更後
<xsl:stylesheet 
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:rss="http://purl.org/rss/1.0/"
 xmlns:atom="http://purl.org/atom/ns#"
 xmlns:atoms="http://www.w3.org/2005/Atom"
 version="1.0">



後、link要素は以下の様に変更して表現します。

■変更前
<xsl:value-of select="atom:link" />


■変更後
<xsl:value-of select="atoms:link[@rel='alternate']/@href" />
※rel属性が'alternate'のhref属性を取得




毎度思いますが、RSS変換についてはプログラマーからすれば、せめてフォーマットは1個にしてくれよって感じですね。。