[2] [[Atom]] の [DFN[[CODE(XMLe)@en[[[at:deleted-entry]]]]]] [[要素]] ([CODE(URI)@en[[[http://purl.org/atompub/tombstones/1.0]]]] [[名前空間]]の [CODE(XMLe)@en[[[deleted-entry]]]] [[要素]]) は、削除された[[エントリー]]を表します。 * 仕様書 [REFS[ - [1] [CITE@en[RFC 6721 - The Atom "deleted-entry" Element]] ([TIME[2012-12-31 01:08:20 +09:00]] 版) ]REFS] * 用法 [3] [[フィード]]から削除された[[エントリー]]は通常[[フィード]]に含まれませんが、 そうすると[[キャッシュ]]その他で既に以前の[[フィード]]から保存してある[[エントリー]]が削除されたことを知る術がありません。 そのため削除された[[エントリー]]を把握できるよう [CODE(XMLe)@en[[[at:deleted-entry]]]] [[要素]]が追加されました。 [SRC[>>1]] [20] とはいえ [[Atom処理器]]がこの[[要素]]に従い処理する保証はなく、 削除されたエントリーであっても処理を続ける可能性があることに注意が必要です。 [SRC[>>1]] * 文脈 [13] [[Atomフィード]]は任意の個数の [CODE(XMLe)@en[[[at:deleted-entry]]]] [[要素]]を含むことができますが、 [CODE(XMLa)@en[[[ref]]]] と [CODE(XMLa)@en[[[when]]]] の組み合わせが同じ物が複数あっては[['''なりません''']] [SRC[>>1]]。 * 属性 [5] この[[要素]]には次の[[属性]]があります。 [FIG[ - [4] [CODE(XMLa)@en[[[ref]]]] ([['''必須''']]) [SRC[>>1]] - [6] [CODE(XMLa)@en[[[when]]]] ([['''必須''']]) [SRC[>>1]] - [7] [[Atom共通属性]] ]FIG] * 内容 [8] この[[要素]]の[[内容]]は次の通りです。 [FIG[ - [9] [CODE(XMLe)@en[[[at:by]]]] (0-1) [SRC[>>1]] - [10] [CODE(XMLe)@en[[[at:comment]]]] (0-1) [SRC[>>1]] - [11] [CODE(XMLe)@en[[[atom:link]]]] (0-∞) [SRC[>>1]] - [12] [CODE(XMLe)@en[[[atom:source]]]] (0-1) [SRC[>>1]] - [15] [CODE@en[[[anyElement]]]] (0-∞) [SRC[>>1]] ]FIG] [14] [[子要素]]の順序は任意です [SRC[>>1 [[RELAX NG]] [[スキーマ]]]]。 ;; [16] [[RFC 6721]] では [[RELAX NG]] [[スキーマ]]が[[参考]]とは書かれていません。 ;; [17] [[要素間空白]]等については明記されていません。 [22] [CODE@en[[[anyElement]]]] が [[RELAX NG]] [[スキーマ]]上認められていますが、その意味は明記されていません。 任意の[[要素]]、あるいは[[拡張要素]]を認めることを意図しているのかもしれませんが、不明です。 [23] [CODE(XMLe)@en[[[atom:entry]]]] の[[子要素]]として使える各種[[要素]]を使いたいという需要はありそうなものですが、 それについて何も言及がなく、排除することを意図しているのか認めているのか不明です。例えば [CODE(XMLe)@en[[[atom:published]]]] や [CODE(XMLe)@en[[[atom:author]]]] を含めたいこともありそうですが。 * エントリーと削除済みエントリー [19] [CODE(XMLe)@en[[[atom:entry]]]] [[要素]]によって表される[[エントリー]]と [CODE(XMLe)@en[[[at:deleted-entry]]]] [[要素]]によって表される[[削除済みエントリー]]で [CODE(XMLe)@en[[[atom:id]]]] や [CODE(XMLa)@en[[[ref]]]] が重複していても[['''構いません''']]。 その場合 [CODE(XMLe)@en[[[atom:updated]]]] と [CODE(XMLa)@en[[[when]]]] の[[日時]]を比較した上で、 - [CODE(XMLa)@en[[[when]]]] の方が新しいか等しければ、削除済みとみなします。[[エントリー]]は無視する[['''べきです''']]。 - [CODE(XMLa)@en[[[when]]]] の方が古ければ、再出版されたものとみなします。削除の方を無視する[['''べきです''']]。 ... と解釈します。 [SRC[>>1]] * 保安性 [21] [CODE(XMLe)@en[[[atom:entry]]]] や [CODE(XMLe)@en[[[at:deleted-entry]]]] を不正に注入する手段があると、 本当は削除されていないエントリーを削除したように扱わせたり、その逆のように扱わせたりできるかもしれず、 注意が必要です。 [SRC[>>1]] * 例 [FIG[ [FIGCAPTION[ [18] [CODE(XMLe)@en[[[at:deleted-entry]]]] [[要素]]を持つ[[フィード文書]]の例 [SRC[>>1]] ]FIGCAPTION] [PRE(XML example code)[ ... John Doe jdoe@example.org Removed comment spam ... ]PRE] ]FIG]