* [CODE(XMLe)@en[atom:feed]] 要素 (Atom 1.0)

[9] [DFN[[CODE(XMLe)@en[atom:feed]] [[要素]]]]は、 [[Atomフィード文書]]の[[文書要素]]で、
[[フィード]]に関連付けられた[[メタデータ]]と[[エントリー]]を含みます
[SRC@en[[[Atom 1.0]] 4.1.1.]]。

[10] 
:[[局所名]]:[CODE(XMLe)@en[[[feed]]]]
(「[[feed]]」 (「[[フィード]]」) より)
:文脈: [[Atomフィード文書]]の[[根要素]]として
:[[DOM界面]]:[CODE(DOMi)@en[[[AtomFeedElement]]]]

** 仕様書

[REFS[
-[7] [CITE@en[RFC 4287 - The Atom Syndication Format]] ([TIME[2008-09-20 11:06:51 +09:00]] 版) <http://tools.ietf.org/html/rfc4287#section-4.1.1>
-[22] [CITE@en[RFC 5023 - The Atom Publishing Protocol]] ([TIME[2008-11-20 18:52:14 +09:00]] 版) <http://tools.ietf.org/html/rfc5023#section-8.3.5>
- [23] [CITE@en[RFC 6721 - The Atom "deleted-entry" Element]] ([TIME[2012-12-31 01:08:20 +09:00]] 版) <http://tools.ietf.org/html/rfc6721#page-4>
]REFS]

** 属性

[32] 理論上は [CODE(XMLa)@en[xml:lang]] や [CODE(XMLa)@en[xml:base]]
を使えますが、どれだけ使われているのかは謎です。

[33] [CODE(XMLa)@en[idx:index]] [[属性]]が使われる可能性があります。

** 内容

[8] [[Atom 1.0]]、[[AtomPub]]、その他関連仕様で次の[[子要素]]が定義されています。
[FIG[
- [CODE(XMLe)@an[[[atom:author]]]] (0〜∞、条件付必須) [SRC[>>7]]
- [CODE(XMLe)@en[[[atom:category]]]] (0〜∞) [SRC[>>7]]
- [CODE(XMLe)@en[app:[[collection]]]] (0〜∞) [SRC[>>22]]
- [CODE(XMLe)@en[[[atom:contributor]]]] (0〜∞) [SRC[>>7]]
- [CODE(XMLe)@en[[[atom:generator]]]] (0〜1) [SRC[>>7]]
- [CODE(XMLe)@en[[[atom:icon]]]] (0〜1) [SRC[>>7]]
- [CODE(XMLe)@en[[[atom:id]]]] (1) [SRC[>>7]]
- [CODE(XMLe)@en[[[atom:link]]]] (0〜∞、細かな制約あり) [SRC[>>7]]
- [CODE(XMLe)@en[[[atom:logo]]]] (0〜1) [SRC[>>7]]
- [CODE(XMLe)@en[[[atom:rights]]]] (0〜1) [SRC[>>7]]
- [CODE(XMLe)@en[[[atom:subtitle]]]] (0〜1) [SRC[>>7]]
- [CODE(XMLe)@en[[[atom:title]]]] (1) [SRC[>>7]]
- [CODE(XMLe)@en[[[atom:updated]]]] (1) [SRC[>>7]]
- [CODE(XMLe)@en[[[fh:complete]]]] (0〜1) [SRC[>>25]]
- [CODE(XMLe)@en[[[fh:archive]]]] (0〜1) [SRC[>>25]]
- [CODE(XMLe)@en[[[at:deleted-entry]]]] (0〜∞) [SRC[>>23]]
- [[XML署名]]の[[要素]] ([[Atom文書]]の項を参照) [SRC[>>7]]
- [CODE(XMLe)@en[[[atom:entry]]]] (0〜∞) [SRC[>>7]]
]FIG]

[18] 他に次のものも使われます。
[FIG(short list)[
- [CODE(XMLe)@en[openSearch:*]]
- [CODE(XMLe)@en[creativeCommons:license]]
- [CODE(XMLe)@en[snf:logo]]
- [CODE(XMLe)@en[snf:darkModeLogo]]
- [CODE(XMLe)@en[cbl:*]]
- [CODE(XMLe)@en[sx:*]]
]FIG]

** 順序

[13] [CODE(XMLe)@en[[[atom:entry]]]] [[要素]]は他の[[要素]]の後に来なければなりません。
[SRC@en[[[Atom 1.0]] 4.1.1.]]

[26] [[RFC 5005]] は [CODE(XMLe)@en[[[atom:entry]]]] より前の部分のことを[[頭部]]と呼んでいます (>>27)。

[11] [CODE(XMLe)@en[[[atom:feed]]]] [[要素]]の
[CODE(XMLe)@en[[[atom:entry]]]] [[子要素]]の順序に意味は与えられていません
[SRC@en[[[Atom 1.0]] 4.1.1.]]。

;;
[12]  [[Atom 1.0]] が与えていないという書き方なので、他の仕様、実装、あるいは運用上有意である可能性は排除されていないと思います。
実際 [[AtomPub]] では [CODE(XMLe)@en[[[app:edited]]]] [[要素]]の値によって[[整列]]するのがよいとしています。

[16] 多くの[[クライアント]]は、表示や処理の順序を [CODE(XMLe)@en[atom:entry]]
の順序とします。 (中には[[タイムスタンプ]]順に並べ替えるものもありますが。)

[17] 多くの[[サーバー]]は、新しい順で [CODE(XMLe)@en[atom:entry]]
を並べます。検索機能など、その他の順序で並べられることもあります。
いずれにせよ、ほとんどの場合は表示その他の処理で適切そうな順序になっていると思われます。

[14] 各メタデータ要素の順序については言及されていません。
実運用上は順序に意味がないものと理解されているようです。

[24] [CODE(XMLe)@en[[[at:deleted-entry]]]] [[要素]]がどの位置に挿入できるのかは明記されていません。
(更に言えば[[フィード]]としか述べられておらず、 [CODE(XMLe)@en[[[atom:feed]]]]
[[要素]]の[[子要素]]でなければならないとも明記はされていません・・・。)

** 関連

[15] [[Atomフィード文書]]では[[XML署名]]や[[XML暗号化]]を使うことができます。詳しくは
[[Atom文書]]の項をご覧ください。

* [CODE(XMLe)@en[atom:feed]] 要素 (Atom 0.3)

[1] [[Atom 0.3]] の [DFN[[CODE(XMLe)@en[atom:[[feed]]]] [[要素]]]]は、
[[Atom文書]]の[[文書要素]]です [SRC@en[[[Atom 0.3]]]]。

:状態:[[廃止]] → [[Atom 1.0]] [CODE(XMLe)@en[atom:[[feed]]]]
:[[要素名]]:[CODE(XMLe)@en[[[feed]]]]
:文脈: [[文書要素]]として
:[[内容モデル]]:[[名前空間]]に属する[[要素]]*
:[[属性]]:[CODE(XMLa)@en[[[version]]]], [CODE(XMLa)@en[[[xml]]:[[lang]]]]

仕様書:
[CITE[The Atom Syndication Format 0.3 (PRE-DRAFT)]] ([TIME[2006-12-22 17:03:44 +09:00]] 版) <http://www.mnot.net/drafts/draft-nottingham-atom-format-02.html#rfc.section.4>

** 属性

[4] [CODE(XMLa)@en[[[version]]]] [[属性]]は[['''必須''']]であり、
[CODE(XMLa)@en[[[xml]]:[[lang]]]] [[属性]]は[['''推奨''']]です。
[SRC@en[[[Atom 0.3]]]]

** 内容

[2] この[[要素]]は任意の[[名前空間]]に属する[[要素]]を含むことができます。
[[Atom 0.3]] の[[要素]]としては、次の要素を含むことができます。
[SRC@en[[[Atom 0.3]]]]
[FIG[
- [CODE(XMLe)@en[atom:[[author]]]] (0..1)
- [CODE(XMLe)@en[atom:[[contributor]]]] (0..∞)
- [CODE(XMLe)@en[atom:[[copyright]]]] (0..1)
- [CODE(XMLe)@en[atom:[[entry]]]] (0..∞)
- [CODE(XMLe)@en[atom:[[generator]]]] (0..1)
- [CODE(XMLe)@en[atom:[[id]]]] (0..1)
- [CODE(XMLe)@en[atom:[[info]]]] (0..1)
- [CODE(XMLe)@en[atom:[[link]]]] (1..∞)
- [CODE(XMLe)@en[atom:[[modified]]]] (1)
- [CODE(XMLe)@en[atom:[[tagline]]]] (0..1)
- [CODE(XMLe)@en[atom:[[title]]]] (1)
]FIG]

[31] 他に:
[FIG(short list)[
- [CODE(XMLe)@en[convertLineBreaks]]
]FIG]

[3] [CODE(XMLe)@en[atom:[[feed]]]] [[要素]]の[[子要素]]の順序は意味を持つものとして扱っては[['''なりません''']]。
[SRC@en[[[Atom 0.3]]]]

** 関連

[5]
[[Atom 1.0]] では [CODE(XMLa)@en[[[version]]]] [[属性]]が削除されています。
また、 [[Atom 1.0]] では [CODE(XMLe)@en[[[entry]]]] [[要素]]が他の[[子要素]]の後に来なければなりません。

[6]
[[RSS]] では[[文書要素]]である [CODE(XMLe)@en[[[rss]]]] [[要素]]やその[[子要素]]の
[CODE(XMLe)@en[[[channel]]]] [[要素]]に似ています。
[CODE(XMLe)@en[[[channel]]]] [[要素]]でも[[子要素]]の順序は意味を持たないとされています。

* 頭部 (フィード)

** 仕様書

[REFS[
- [25] [CITE@en[RFC 5005 - Feed Paging and Archiving]] ([TIME[2014-03-09 00:10:19 +09:00]] 版) <https://tools.ietf.org/html/rfc5005>
]REFS]

** 定義

[27] [DFN[[RUBYB[頭部]@en[head section]]]]とは、[[文書]]の[[フィード]]全体の[[メタデータ]]の[RUBYB[包含子]@en[container]]のことをいいます。 [SRC[>>25]]

** 例

[EG[
[28] 例えば、 [[Atomフィード文書]]では [CODE(XMLe)@en[[[atom:feed]]]] [[要素]]の[[子要素]]群をいいます。 [SRC[>>25]]
]EG]

[EG[
[30] [[RSS]] の [CODE(XMLe)@en[[[item]]]] や [CODE(XMLe)@en[[[items]]]] より前の部分も[[頭部]]です。
]EG]

** メモ

[29] 「[[頭部]]」の指す対象は若干曖昧です。用法的には [CODE(XMLe)@en[[[atom:feed]]]] [[要素]]の
[CODE(XMLe)@en[[[atom:entry]]]] [[要素]]より前の部分を指すと解するのが適切でしょうが、 >>27
の定義によれば [CODE(XMLe)@en[[[atom:feed]]]] [[要素]]自体を指すとも解釈できますし、
>>28 の例示によれば [CODE(XMLe)@en[[[atom:entry]]]] を含む[[子要素]]がすべて[[頭部]]ということになります。

[FIG(quote)[
[FIGCAPTION[
[19] ([TIME[2016-03-19 00:41:16 +09:00]] 版)
<http://blog.excite.co.jp/editorcafe/atom.xml>
]FIGCAPTION]

> <feed version="0.3"
>       xml:lang="utf-8"
>       xmlns="http://www.w3.org/2005/Atom"
>       xmlns:dc="http://purl.org/dc/elements/1.1/"
>       xmlns:georss="http://www.georss.org/georss">

]FIG]


[FIG(quote)[
[FIGCAPTION[
[20] ([TIME[2016-03-19 01:10:39 +09:00]] 版)
<https://github.com/github/git-lfs/commits/master.atom>
]FIGCAPTION]

> <?xml version="1.0" encoding="UTF-8"?>
> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xml:lang="en-US">
>   <id>tag:github.com,2008:/github/git-lfs/commits/master</id>

]FIG]


[FIG(quote)[
[FIGCAPTION[
[21] [CITE[はてなブックマークAtomAPI - Hatena Developer Center]]
([TIME[2016-03-21 10:38:48 +09:00]] 版)
<http://developer.hatena.ne.jp/ja/documents/bookmark/apis/atom>
]FIGCAPTION]

> <?xml version="1.0" encoding="utf-8"?>
> <feed xmlns="http://purl.org/atom/ns#">

]FIG]

[FIG(quote)[
[FIGCAPTION[
[34] [CITE@ja[新着情報 — サイボウズ Live・API ドキュメント]]
([TIME[2017-04-24 09:42:26 +09:00]])
<https://developer.cybozulive.com/doc/current/pub/notification.html>
]FIGCAPTION]

> リクエストの例:
> POST /api/notification/V2
> Content-Type: application/atom+xml
> <?xml version="1.0" encoding="UTF-8"?>
> <feed xmlns="http://www.w3.org/2005/Atom">
>   <entry>
>     <id>MYPAGE,1:1,MESSAGE,1:2</id>
>   </entry>
>   <entry>
>     <id>GROUP,1:1,BOARD,1:3</id>
>   </entry>
>   <entry>
>     <id>UNKNOWN-IDENTIFIER</id>
>   </entry>
> </feed>

]FIG]


[FIG(quote)[
[FIGCAPTION[
[35] [CITE@ja[チャット — サイボウズ Live・API ドキュメント]]
([TIME[2017-04-24 09:42:26 +09:00]])
<https://developer.cybozulive.com/doc/current/pub/mpChat.html>
]FIGCAPTION]

> リクエストの例:
> POST /api/mpChat/V2
> Content-Type: application/atom+xml
> <?xml version="1.0" encoding="UTF-8"?>
> <feed xmlns="http://www.w3.org/2005/Atom"
>       xmlns:cbl="http://schemas.cybozulive.com/common/2010"
>       xmlns:cblChat="http://schemas.cybozulive.com/chat/2010">
>   <cbl:operation type="update_setting"/>
>   <entry>
>     <id>MYPAGE,1:1,MP_CHAT,1:2</id>
>     <cblChat:muted>true</cblChat:muted>
>   </entry>
> </feed>

]FIG]
