RELAX NG Schema for RDF Site Summary (RSS) 1.0 2003-06-13 version 0.5 by Ryosuke Nanba ■これは何か RSS 1.0 文書を検証するための RELAX NG スキーマです。 ■動機 既存のバリデータ(例えば http://feeds.archive.org/validator/) は名前 空間の間違いを指摘しないようです。RSS 0.9x との互換性のためか名前空 間を無視する実装が多いようなのであまり問題にならないようですが、将来 的には困るので、名前空間に対応している RELAX NG で検証を行えるように スキーマを作成してみました。 ■使い方 適当な RELAX NG バリデータ(http://www.relaxng.org/#validators あたり からどうぞ)で RSS 1.0 文書を検証する時に使います。 例えば jing (http://www.thaiopensource.com/relaxng/jing.html)を使う 場合は以下のようにします。 java -jar jing.jar rss-1.0.rng your-rss-document.rdf ■制限など - 名前空間接頭辞を制限していません。互換性のために RDF の名前空間接 頭辞は rdf に制限したいですが、できていません。 - RDF の属性は接頭辞付きを強制します。RSS 1.0 仕様書[3]では rdf:li の resource 属性は接頭辞なしですが、RDF/XML Syntax Specification (Revised) (http://www.w3.org/TR/rdf-syntax-grammar/) では接頭辞付き が正しいそうですのでそれに従いました。。 但し互換性のためアプリケーションでは接頭辞なしでも RDF の名前空間 に属するものとして扱うことになっているので、注意が必要です。 参照: http://www2.xml.gr.jp/log.html?MLID=xmlusers&N=8353 - rdf:RDF と Dublin Core の要素で xml:lang 属性が使えます。 # 他でも使っていい? - 言語コード、URI、日付、数値などについて XML Schema Part2 のデータ 型をチェックします。但し RSS 1.0 で推薦されている文字数制限はチェッ クしていません。 - RSS 0.9x との互換のための item の数の制限はチェックしていません。 - Dublin Core モジュールには対応したつもりです。channel 要素および item 要素の中で15種類の要素を任意の順番で任意の回数出現可能として あります。 # しかし dc:date とか複数回出てきてもいいのか?? - Syndicationモジュールには対応したつもりです。channel 要素の中で3種 類の要素を任意の順番で一回ずつ出現可能です。 - Contentモジュールは encoded 要素だけ対応しました。 ■著作権等 配布条件は ASL 1.1 (http://www.opensource.org/licenses/apachepl.php) に準じます。が、バグ修正等についてはなるべくフィードバックして頂ける とありがたいです。 ■参考文献 [1] RSS -- サイト情報の要約と公開 http://www.kanzaki.com/docs/sw/rss.html [2] Dublin Core: メタデータを記述するボキャブラリ http://www.kanzaki.com/docs/sw/dublin-core.html [3] RDF Site Summary (RSS) 1.0 http://web.resource.org/rss/1.0/spec [4] RDF Site Summary 1.0 Modules http://web.resource.org/rss/1.0/modules/ [5] Expressing Simple Dublin Core in RDF/XML http://dublincore.org/documents/dcmes-xml [6] RELAX NG 入門 http://www.kohsuke.org/relaxng/tutorial.ja.html [7] RELAX NG Specification http://www.relaxng.org/spec-20011203.html [EOF]