Atom 文書

Atom 文書は、エントリー文書、フィード文書、コレクション、サービス文書、カテゴリー文書のいずれかのタイプになります。

Atom エントリー文書
Atom エントリー文書は、Atom フィード用の単一の情報項目 (エントリーと呼ばれます) が含まれる XML 文書です。

Atom エントリー文書は、いくつかの子要素を含む < atom:entry> 要素で構成されます。 これらの子要素により、 エントリーの内容や、エントリーに関するメタデータ (エントリーのタイトルや最初に公開された時刻など) が提供されます。

Atom エントリーの内容には、 プレーン・テキスト、HTML、XHTML、または他の IANA (Internet Assigned Numbers Authority) メディア・タイプを使用できます。 IANA メディア・タイプは、 http://www.iana.org/assignments/media-types/media-types.xhtmlにリストされています。 Atom エントリーには、ムービーやイメージなどのメディア・リソースへのリンクをその内容として含めることができます。 この場合、そのエントリーはメディア・リンク・エントリーと呼ばれます。

Atom エントリー文書のメディア・タイプは、application/atom+xml です。

Atom フィード文書
Atom フィード文書は、Atom フィードに関するメタデータとそのフィードの 1 つ以上のエントリーを提供する XML 文書です。 クライアントが フィードの情報を要求すると、サーバーはその要求を満たす適切な数の Atom エントリーが含まれるフィード文書を生成します。

Atom フィード文書は、いくつかの子要素を含む < atom:feed> 要素で構成されます。 < atom:entry> エレメントは最も重要な子エレメントですが、通常、フィードのエントリーは別個の XML 文書として存在し、サーバーはフィード文書を提供するときにそれらを追加します。 Atom フィード文書に < atom:entry> 要素が含まれていない場合でも、Atom フィード文書は受け入れ可能な文書です。

その他の子要素には、フィードに関するメタデータ (フィードのタイトルやサブタイトル、または主要な作成者など) が含まれます。 Atom フィード文書内の メタデータの一部の項目 (作成者の詳細や知的所有権に関する情報) は、該当のメタデータ項目の独自バージョンが含まれているエントリーを除いて、 フィード内のすべてのエントリーに適用できます。

Atom フィード文書のメディア・タイプは、application/atom+xml です。

Atom コレクション
Atom コレクションは、編集可能な Atom エントリーの URL のリストが含まれる特殊な種類の Atom フィード文書です。 Atom コレクションの形式は通常の Atom フィード文書の形式と似ていますが、いくつかの特殊要素が追加されています。 これは、Atom サービス文書でリスト表示されることによってコレクションとして識別されます。

Atom コレクションには、いくつかの特殊な < atom:link> 要素が含まれています。 コレクションの大きさが、すべてのエントリーを返すために複数のフィード文書が必要な場合は、要素 < atom:link rel = "first">、< atom:link rel = "last">、< atom:link rel="next">、および < atom:link rel="previous"> がフィード文書間のナビゲーションを提供します。 エントリーには、編集要求を送信できる < atom:link rel="edit"> リンクもあります。 < app:edited> エレメントは、各エントリーの最終編集時刻を示すためにコレクション内のエントリーに追加されます。

Atom エントリーがコレクションとして使用可能になると、クライアントは既存エントリーの編集や削除、およびコレクション用の新しいエントリーの作成を行うことができます。 クライアントは、以下のようにサーバーに HTTP 要求を送信することでエントリーを操作できます。
GET
1 つの Atom エントリーまたは Atom エントリーのリストを取得します。 Atom エントリーのリストを取得するための GET 要求は、Atom サービス文書で指定されているコレクションの URL に送信されます。 単一のAtomエントリーに対するGETリクエストは、コレクション内の個々のAtomエントリーの URLに送信されます。これは、エントリーの<atom:link rel="edit">リンクに記載されています。
POST
新しい Atom エントリーを作成します。 POST 要求は、コレクションの URL に送信されます。
PUT
クライアントが GET 要求を使用して取得した既存の Atom エントリーを編集します。 PUT 要求は、コレクション内の個々の Atom エントリーの URL に送信されます。
DELETE
既存の Atom エントリーを削除します。 DELETE 要求は、コレクション内の個々の Atom エントリーの URL に送信されます。

それぞれのケースで、サーバーから適切な HTTP 応答がクライアントに送信されます。 サーバーは、 クライアントがエントリー用に提供するメタデータを変更できるので、クライアントの POST または PUT 要求が成功すると、サーバーは新しいエントリーのコピーも応答のボディとして返します。

標準の Atom エントリーのほか、コレクションにはムービーやイメージなどのメディア・リソースを含めることもできます。 メディア・リソースをサポートしているサーバーは、メディア・リンク・エントリーと呼ばれる特殊な Atom エントリーをコレクション内に作成して、 それらのリソースに対するリンクを提供します。 CICS では、メディア・リソースはサポートされていません。

Atom サービス文書
Atom サービス文書は、サーバーで使用可能なコレクションをリストする XML 文書です。

Atom サービス文書には、ルート要素 < app:service> があります。 (app: 接頭部は、Atom 出版プロトコル用の名前空間の接頭部です)。 複数の < app:collection> エレメントを含むワークスペースを定義する 1 つ以上の < app:workspace> エレメントがあります。 ワークスペースはコレクションのグループ化にのみ使用され、ワークスペースに対してアクションを実行することはできません。

各コレクションURL とタイトルは、<app:collection>要素のリストに表示されます。また、コレクションが受け入れる入力の種類や、エントリーに使用できるカテゴリーも記載されている場合があります。

Atom サービス文書のメディア・タイプは、application/atomsvc+xml です。

Atom カテゴリー文書
カテゴリー文書には、コレクション内のエントリーのカテゴリーのリストが含まれます。 カテゴリーは、サービス文書で指定することもできます。 同じカテゴリーを使用して複数の Atom フィードを定義する場合は、別々のカテゴリー文書を使用すると便利です。

Atom カテゴリー文書には、ルート要素 < app:categories> があります。 (app: 接頭部は、Atom 出版プロトコル用の名前空間の接頭部です)。 < app:categories> エレメントには、コレクション内のエントリーに対して許可されている < atom:category> エレメントのリストが含まれます。 カテゴリーのリストは、サーバーがその他のカテゴリーのエントリーを拒否できるように固定することができます。 または、その他のカテゴリーを使用できるようにオープンにすることができます。

Atom サービス文書のカテゴリーのリストの代わりに別個の Atom カテゴリー文書が使用される場合、 そのカテゴリー文書はサービス文書内でその URL によって参照されます。

Atom コレクションのメディア・タイプは、application/atomcat+xml です。