RSSフィードの構造と検証の重要性
RSS 2.0およびAtom 1.0は、ウェブサイトの更新情報を配信するための標準的なXMLフォーマットです。これらのフィードが正しく機能するためには、仕様に準拠した厳密なXML構造、必須フィールドの網羅、そして正確なリンク参照が求められます。
「RSSフィードバリデーター」は、貼り付けられたXMLコンテンツを解析し、フィードの形式を特定した上で、エントリーの抽出や構造上の問題、必須項目の不足、リンク参照のエラーを検出するツールです。本ツールは最大500,000文字までの入力に対応しており、検出された問題は行・列番号およびXMLパスとともに詳細にレポートされます。
なお、本ツールによる検証処理はすべて利用者のブラウザ内で行われます。入力されたフィードデータが外部サーバーにアップロードされたり、保存されたりすることはありません。
RSS 2.0 フィードの構造と必須要件
RSS 2.0フォーマットの検証では、ルート要素である rss と、その直下に位置する channel 要素の構成が厳密にチェックされます。
チャンネルとアイテムのルール
- チャンネル数: RSSフィード内には、直下の
channel要素が「1つだけ」存在しなければなりません。2つ以上存在する場合や存在しない場合は、「RSSには直下の<channel>が1つだけ必要です。‹count›個見つかりました。」というエラーが発生します。 - アイテムの必須フィールド: 各
item要素内には、titleまたはdescriptionの少なくとも一方が存在する必要があります。 - メタデータの読み取り: 各アイテムからは、
GUID、link、および公開日(publication date)が抽出され、解析されます。
Atom 1.0 フィードの構造と必須要件
Atom 1.0は、RSS 2.0よりも厳格なメタデータ設計を持つフィードフォーマットです。本ツールは、Atom特有の要素の継承関係やリンクの整合性を検証します。
エントリーと著者のルール
- 必須フィールド: Atomの
entryでは、ID、title、およびupdated(更新日時)が必須となります。 - 著者の継承(author inheritance): フィード全体(
feed)にauthorが定義されていない場合、すべてのentryに直接authorを定義する必要があります。これが満たされない場合、「フィードに<author>を追加するか、すべてのエントリーに直接の<author>を追加してください。」または「このエントリー、その<source>、またはフィードに<author>を追加してください。」というエラーが報告されます。 - コンテンツとサマリー: Atomエントリーにインラインの
contentがなく、外部ソースを指すsrc属性を使用している場合は、インラインのテキストや子要素を含めてはなりません。また、コンテンツが外部にある場合やテキストとして読み取れない場合は、summary要素の追加が必要になります。
リンク参照と xml:base による相対パス解決
フィード内のリンクや識別子は、フィードリーダーが正しく解釈できるように適切な形式で記述されている必要があります。
絶対URLと相対URLの検証
本ツールは、リンクを含むフィールドを解析し、URLまたはURI参照として正しく解析できるか確認します。解析できない場合は「‹field›を修正してください。このリンクはURLまたはURI参照として解析できません。」というエラーになります。
Atom 1.0では、xml:base 属性が定義されている場合に限り、相対参照を解決することができます。有効な xml:base が存在しない状態で相対アドレスが使用された場合、「‹field›には絶対アドレスを使用してください。相対参照が許可されるのは、有効なxml:baseを持つAtom参照だけです。」という警告またはエラーが発生します。また、Atomの ID に相対識別子を使用することは認められておらず、常に絶対IRIを使用する必要があります。
なお、本ツールはフィード内のURLに対して実際に接続を試みることはありません。そのため、リンク先のサーバーの稼働状況、リダイレクトの有無、SSL/TLS証明書の有効性、あるいはコンテンツの実在性については検証対象外となります。
日付フォーマットと重複IDの検証
フィードの購読や更新順の並び替えを正しく行うためには、日付の記述形式と一意の識別子が極めて重要です。
日付フォーマット
RSS 2.0とAtom 1.0では、それぞれ異なる日付フォーマット(RFC 822/RFC 2822およびRFC 3339)が規定されています。実在しない日付や、各フィード形式が要求する仕様に準拠していない日付が検出された場合、「このフィードで必要な形式の実在する日付を使用してください。」というエラーが提示されます。
重複IDの検出
フィード内の各エントリーは、一意の識別子(RSSの GUID やAtomの ID)を持つ必要があります。同一のIDが複数のエントリーで検出された場合、「このIDは‹first›行目で最初に見つかった値と重複しています。」として、重複が最初に発生した行番号とともにエラーが報告されます。
構造検証と内容検証の違い
本ツールが提供するレポートは、XMLの構造、スキーマ、および一般的な配信形式ルールに準拠しているかどうかを検証するものです。
フィードが「構造上の問題は見つかりませんでした。」と判定された場合でも、それは記述されたテキスト内容の正確性、表現の安全性、すべてのフィードリーダーでの完全な互換性、あるいは公開準備が整っていることを保証するものではありません。フィードの配信前には、構造的な正しさに加え、配信内容自体に誤りがないか別途確認することを推奨します。
よくある質問(FAQ)
どのフィード形式に対応していますか?
現行のRSS 2.0とAtom 1.0を検証します。古いRSS、RDF/RSS 1.0、Atom 0.3も識別しますが、異なる仕様のルールを誤って適用することはありません。
フィード内のリンクを開いたりテストしたりしますか?
リンクを含むフィールドを解析し、Atomの相対参照はxml:baseを使って解決します。URLは開かないため、到達性、リダイレクト、証明書、リンク先の内容は確認しません。
どのエントリーフィールドを確認しますか?
RSSのitemではtitleまたはdescriptionを確認し、GUID、link、公開日を読み取ります。AtomのentryではID、title、updated、authorの継承、代替link、contentまたはsummaryのルールを確認します。
検証できるファイルサイズや文字数に制限はありますか?
1回の検証につき最大500,000文字までのXML入力を受け付けます。この制限を超える場合や、処理に極端な時間がかかる場合は、検証が中断されエラーメッセージが表示されます。また、レポートに表示される問題数は最大200件、解析エントリー数は最大100件までに制限されており、これを超える場合は切り捨てて表示されます。