[1] [[AtomPub]] の [DFN[[CODE(XMLe)@en[app:categories]] [[要素]]]]は、
[[分類]]の[[リスト]]を表します。

:[[局所名]]:[CODE(XMLe)@en[[[categories]]]]
:文脈:[[分類文書]]の[[根要素]]として、
[CODE(XMLe)@en[app:[[collection]]]] の[[子要素]]として
:[[内容モデル]]:[CODE(XMLe)@en[atom:[[category]]]]*
:[[属性]]:
[CODE(XMLa)@en[[[fixed]]]]、
[CODE(XMLa)@en[[[href]]]]、
[CODE(XMLa)@en[[[scheme]]]]

仕様書:
-[CITE@en[RFC 5023 - The Atom Publishing Protocol]] 
-- <http://tools.ietf.org/html/rfc5023#section-7.2.1>
-- <http://tools.ietf.org/html/rfc5023#section-8.3.6>

* 意味

[7] [CODE(XMLe)@en[app:[[collection]]]] [[要素]]の[[子要素]]の
[CODE(XMLe)@en[app:[[categories]]]] [[要素]]は、
[[集成]]の[[成員]]に適用できる[[分類]]の[[リスト]]を表します。
この[[要素]]が含まれない場合、その[[集成]]における[[分類]]の扱いが指定されていないことを意味します。
固定された ([CODE(XMLa)@en[[[fixed]]]] が [CODE(XML)@en[[[yes]]]] な) [[分類]]の[[集合]]の[[分類]]が零個の場合、
[[集成]]は[[分類]]データを受け付けないことを意味します。
[SRC@en[[[AtomPub]]]]

* 内容

[2] [CODE(XMLe)@en[app:[[categories]]]] [[要素]]は零個以上の [CODE(XMLe)@en[atom:[[category]]]]
[[要素]]を[[子要素]]として持つことができます。 [SRC@en[[[AtomPub]]]]

[4] ただし、 [CODE(XMLa)@en[[[href]]]] [[属性]]を持つ場合、
[[空]]でなければ[['''なりません''']] [SRC@en[[[AtomPub]]]]。

[5] >>4 は「明示的に禁じられている」場合なので、[[外来マーク付け]]も認められないとも解釈できますが、
[[RELAX NG]] [[スキーマ]] ([[参考]]) には [CODE@en[[[undefinedContent]]]]
が含まれているので、構わないのでしょうか。

* 文脈

[3] [CODE(XMLe)@en[app:[[categories]]]] [[要素]]は[[分類文書]]の[[根要素]]です
[SRC@en[[[AtomPub]]]]。

[6] [CODE(XMLe)@en[app:[[categories]]]] [[要素]]は [CODE(XMLe)@en[app:[[collection]]]]
[[要素]]の[[子要素]]としても用いることができます。
[SRC@en[[[AtomPub]]]]

* 処理モデル

[8] [[鯖]]は、 [CODE(XMLe)@en[app:[[collection]]]]
[[要素]]の[[子要素]]の [CODE(XMLe)@en[app:[[categories]]]] [[要素]]に含まれない[[分類]]で[[成員]]を作成、または蓄積しようとされたとき、
これを拒絶して[['''構いません''']]。ただし、[[分類]]の[[集合]]が開放
([CODE(XMLa)@en[[[fixed]]]] が [CODE(XML)@en[[[no]]]] と) されている場合には、
[[分類]]の[[集合]]に含まれていないという理由で拒絶する[['''べきではありません''']]。
[SRC@en[[[AtomPub]]]]
