Atomフィードの書式についてのメモ

create
2020年12月04日
update
2023年07月13日

はじめに📝

Google Search Console 登録のために調べた Atom フィードの書式についての備忘録。

Atomフィードの書式例🧪

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title>Example Feed</title>
  <link href="http://example.org/"/>
  <updated>2003-12-13T18:30:02Z</updated>
  <author>
    <name>John Doe</name>
  </author>
  <id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>

  <entry>
    <title>Atom-Powered Robots Run Amok</title>
    <link href="http://example.org/2003/12/13/atom03"/>
    <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
    <updated>2003-12-13T18:30:02Z</updated>
    <summary>Some text.</summary>
  </entry>

</feed>
RFC 4287

Atomフィードの要素について🧩

要素の記載順序は仕様として定義されていない。任意の順序でOK。

下記はよく使いそうな要素の抜粋。
詳細は RFC 4287日本語訳 を参照してください。

Table 1. Atomメタデータ要素
要素 feed entry 説明

title

必須

必須

フィードやエントリの人間が読めるタイトル

id

必須

必須

永久的で完全に一意的な識別子

updated

必須

必須

フィードやエントリの(重要な)最終更新日
RFC 3339date-time 形式で表記
(例 2020-11-22T12:30:00+09:00

author

必須[1]

必須[2]

作成者の情報。name 子要素の指定が必須。
詳細は後述。

link

推奨[3]

必須

href 属性値にてWebリソースへの参照を指定
entry 要素において rel 属性値が alternate のリンクが必須[4]

summary

block

推奨[5]

エントリの要約や抜粋

category

任意

任意

フィードやエントリのカテゴリ情報

rights

任意

任意

権利情報
ただし、機械的に読み取り可能なライセンス情報を伝えるために使うべきではない

icon

任意

block

フィードを象徴するアイコンへのURI
アスペクト比1:1の小さいサイズであることが求められる

published

block

任意

エントリの作成日や利用開始日

atom:id 要素について

一度生成したら永久に変化しない値であることが要求される。難しい。
The 'tag' URI Scheme を利用するのがよさそう。

tag:<DNS or email>,<YYYY[-MM[-DD]]>:<URI文字列>

Example 1. idの書式例

tag:example.com,2020-12-04:/blog/entry/123

リンクの分類によって rel 属性値を指定する。

Table 2. よく使いそうな rel 属性値
リンク分類

self

自身のフィード・エントリと同等のリソースへのリンクである場合

alternate

自身のフィード・エントリと別バージョンのリソースへのリンクである場合。
主にWebブラウザで表示させるコンテンツへのリンクに使われる。

related

そのフィード・エントリに関するリンクならば何でも

atom:author 要素について

Example 2. atom:author 要素の例
<author>
  <name>Alice</name>
  <uri>https://alice.example.com</uri>
  <email>alice@example.com</email>
<author>
必須 子要素 説明

check

name

作成者名

uri

作成者に関連したURI

email

作成者のe-mailアドレス

atom:updated, published 要素の日時形式について

だいたい ISO 8601 形式と同じ。

<YYYY-MM-DD>T<hh:mm:ss>+<hh:mm>

Example 3. 日時の例

2020-12-04T12:34:56+09:00

Atomフィードの検証🔍

W3C Feed Validation Service を利用する。
URLを指定したり直接ソースをコピペして検証できる。

Validation result

直接ソースを書いて検証する場合、atom:feed 要素の <link rel="self" href="…​" /> はドキュメント自身を指定できないので必ずエラーメッセージが表示されるっぽい。

フィード配信対象のページ🏠

<head> セクションで作成したフィードへのリンクを指定しておくと利用者にフレンドリーでいいらしい。
(拡張機能などで簡単に購読できるようになるため)

配信対象のページ
<head>
  <link rel="alternate" type="application/atom+xml" href="/feeds/atom.xml" title="Your Site Name" />
  ...
</head>

終わりに😎

以上でとりあえず Atom フィードが書けるはず。

atom:id については難しくてどうするのがベストプラクティスなのかわかんない。
まあ、動けばいいやろの精神。Google Search Console では動いた。


1. 子要素 entry の全てに設定されている場合は省略可能。
2. 親要素 feed に設定されていれば省略可能。
3. `feed` 要素において、自身のAtomフィードを表すURLリンクを1つ持つ。
4. atom:content 要素を含まない場合
5. atom:content 要素が無い場合は含むべき。ただし、無くてもエラーにはならない。