* [CODE(XMLe)@en[atom:id]] 要素 (Atom 1.0) [16] [DFN[[CODE(XMLe)@en[[[atom:id]]]] [[要素]]]]は、 [[エントリー]]や[[フィード]]の[[永続的]]・[[普遍的]]に[[固有]]な[[識別子]]を表します [SRC[[[RFC 4287]] 4.2.6.]]。 [9] :状態:[[IETF]] [[提案標準]] :[[要素名]]:[CODE(XMLe)@en[[[id]]]] (「[RUBYB[[[識別子]]]@en[identifier]]」より) :文脈:[CODE(XMLe)@en[[[atom:feed]]]] の[[子要素]]として、 [CODE(XMLe)@en[[[atom:entry]]]] の[[子要素]]として :[[内容モデル]]:[[URL]] :[[属性]]: ** 仕様書 -[10] [CITE@en[RFC 4287 - The Atom Syndication Format]] -- -- -- '''''' -- ** 文脈 [11] この[[要素]]は [CODE(XMLe)@en[[[atom:feed]]]] の[[子要素]]として1つだけ必ず使用しなければ'''なりません''' [SRC@en[[[Atom 1.0]] 4.1.1.]]。 [13] この[[要素]]は [CODE(XMLe)@en[[[atom:entry]]]] の[[子要素]]として1つだけ必ず使用しなければ'''なりません''' [SRC@en[[[Atom 1.0]] 4.1.2.]]。 ** 内容 [17] この[[要素]]の[[内容]]は [[RFC 3987]] [[IRI]] ([[IRI参照]]ではなく。) で[['''なければなりません''']] [SRC[[[RFC 4287]] 4.2.6.]]。 [18] [[RELAX NG]] [[スキーマ]] ([[参考]]) 上の[[データ型]]は [CODE(XML)@en[[[atomUri]]]] です [SRC[[[RFC 4287]] 4.2.6.]]。 ** 処理モデル [19] [[Atom処理器]]は[[内容]]である [[URL]] が[[解参照]]可能であると仮定しては[['''なりません''']] [SRC[[[RFC 4287]] 4.2.6.]]。 [20] [[Atom文書]]が移動、輸出入、再出版その他の扱いを受ける時に [CODE(XMLe)@en[[[atom:id]]]] を変更しては[['''なりません''']] [SRC[[[RFC 4287]] 4.2.6.]]。 *** 生成 [21] [CODE(XMLe)@en[[[atom:id]]]] の[[内容]]はその[[固有性]]が保障される方法で生成しなければ[['''なりません''']] [SRC[[[RFC 4287]] 4.2.6.]]。 [22] 生成時には、[[解参照]]による混乱を防ぐため、次の[[正規化]]を行っておく[['''べきです''']] [SRC[[[RFC 4287]] 4.2.6.]]。 - [[scheme]] を[[小文字]]にする - [[host]] があれば[[小文字]]にする - [[百分率符号化]]は必要な場合に留める - [[百分率符号化]]には[[大文字]]を使う - [[dot-segment]] が [[path]] に現れないようにする - [[authority]] の[[既定値]]がある [[scheme]] では[[既定値]]の時は [[authority]] を[[空]]にする - [[空]]の [[path]] が [CODE(URI)[[[/]]]] と等しい [[scheme]] では [CODE(URI)[[[/]]]] を使う - [[port]] を定義する [[scheme]] では[[既定値]]の時は [[port]] を[[空]]にする - [[空]]の[[素片識別子]]と [[query]] はそのままにする - [[IRI]] の全[[構成部品]]を [[NFC]] や [[NFKC]] のようなもので適当に[[正規化]]する [23] >>22 は[[空]]の [[port]] といっていますが、意図は [[port]] 部分を省略する、 ということではないのでしょうか。 *** 比較 [8] 値の比較の方法については、[[URLの比較]]の項を参照してください。 [12] [[Atomフィード文書]]内に同じ [CODE(XMLe)@en[[[atom:id]]]] の [CODE(XMLe)@en[[[atom:entry]]]] [[要素]]が複数存在する場合、 それらは同じ[[エントリー]]を表します [SRC@en[[[Atom 1.0]] 4.1.1.]] 詳しくは [CODE(XMLe)@en[[[atom:entry]]]] の項を参照してください。 ** 保安性に関して [24] [[RFC 4287]] 8.4. 節では ID の詐称による[[なりすまし]]への注意が喚起されています。 ** 関連 [15] [[RSS 2.0]] の [CODE(XMLe)@en[[[guid]]]] [[要素]]と似ています。 [CODE(XMLe)@en[[[guid]]]] では [[URL]] でない値を用いることもできますが、 [CODE(XMLe)@en[[[atom:id]]]] は [[URL]] でなければなりません。 [14] [[SGML]]/[[XML]] の [[ID]] や [[HTML]] の [CODE(HTMLa)@en[[[id]]]] とは名前こそ似ていますが、意味が大きく異なります。それらは[[文書]]''内''で[[一意]]な識別子であるのに対し、 [CODE(XMLe)@en[[[atom:id]]]] は同じものが [[Atomフィード文書]]内で複数使われていても構いません [WEAK[(もちろん、同じ値なら同じ [[Atomエントリー]]を表すとみなされます)]]。 構文的にも、 [[HTML]] では任意の文字列が認められているのに対して、 [CODE(XMLe)@en[[[atom:id]]]] は [[URL]] でなければなりません。 * [CODE(XMLe)@en[atom:id]] 要素 (Atom 0.3) [1] [[Atom 0.3]] の [DFN[[CODE(XMLe)@en[atom:id]] [[要素]]]]は、 [[フィード]]や[[エントリー]]の[[永続的]]で[[大域的]]に固有な識別子を表します [SRC@en[[[Atom 0.3]]]]。 :状態:[[廃止]] → [[Atom 1.0]] [CODE(XMLe)@en[atom:[[id]]]] :[[局所名]]:[CODE(XMLe)@en[atom:[[id]]]] :文脈:[CODE(XMLe)@en[atom:[[feed]]]] や [CODE(XMLe)@en[atom:[[entry]]]] の[[子要素]]として :[[内容モデル]]:[[URI]] :[[属性]]: 仕様書: -[CITE[The Atom Syndication Format 0.3 (PRE-DRAFT)]] ([TIME[2006-12-22 17:03:44 +09:00]] 版) -- -- ** 内容 [2] この[[要素]]の[[内容]]は[[フィード]]を永続的、大域的に固有な識別子です。 この識別子は時を経ても、たとえ[[フィード]]の[[所在]]や[[エントリー]]の他の[[表現]]の[[所在]]が変化したとしても、 変わっては[['''なりません''']]。[SRC@en[[[Atom 0.3]]]] [3] [CODE(XMLe)@en[atom:[[feed]]]] の[[子要素]]の場合は、 [[内容]]は [[URI]] でなければ[['''なりません''']] [SRC@en[[[Atom 0.3]]]]。 [[URI]] の定義は明記されていませんが、仕様書中で「[[URI]]」が初めて登場する箇所で [[RFC 2396]] が引用されており、ここでも [[RFC 2396]] を指すと思われます。 [[URI]] が文字通り [[RFC 2396]] [[URI]] を表すのか、 あるいは [[URI参照]]を表すのかは不明です ([[相対URI]]が使えるのか、[[素片識別子]]が使えるのかが異なります)。[[Atom 0.3]] 2章の規定により [CODE(XMLe)@en[[[xml]]:[[base]]]] [[属性]]はこの[[要素]]には適用されません。 [5] [CODE(XMLe)@en[atom:[[entry]]]] の[[子要素]]の場合は[[内容]]が [[URI]] とは規定されていませんが、ミスでしょうか。 [6] [CODE(XMLe)@en[atom:[[entry]]]] の[[子要素]]の場合、 同じ[[エントリー]]が同じ[[実体]]によって出版される別の[[フィード]]に含まれる場合、 両者の [CODE(XMLe)@en[atom:[[id]]]] は同じでなければ[['''なりません''']] [SRC@en[[[Atom 0.3]]]]。 **文脈 [4] この[[要素]]は [CODE(XMLe)@en[atom:[[feed]]]] [[要素]]の[[子要素]]として高々1つ使うことができます [SRC@en[[[Atom 0.3]]]]。 [7] [CODE(XMLe)@en[atom:[[entry]]]] [[要素]]の[[子要素]]として何個使えるのかは [[Atom 0.3]] では規定されていません。