[24] [[Atom]] と [[RSS]] の [DFN[[CODE(XMLe)@en[[[source]]]]]]
[[要素]]は、出典を表します。その使い方は [[Atom]] と [[RSS]]
で大きく異なります。

* [CODE(XMLe)@en[atom:source]] 要素 (Atom 1.0)

[15] [DFN[[CODE(XMLe)@en[[[atom:source]]]] [[要素]]]]は、
[[エントリー]]の出典である[[フィード]]の[[メタ情報]]を表します。

[13] [[要素名]]は「[RUBYB[[[出典]]]@en[source]]」より。

** 仕様書

[REFS[
-[12] [CITE@en[RFC 4287 - The Atom Syndication Format]]
-- <http://tools.ietf.org/html/rfc4287#section-4.1.2>
-- '''<http://tools.ietf.org/html/rfc4287#section-4.2.11>'''
-[10]
[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>
- [20] [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-3>
]REFS]

** 文脈

[14] この[[要素]]は [CODE(XMLe)@en[[[atom:entry]]]] の[[子要素]]として高々1つ用いることができます
[SRC@en[[[Atom 1.0]] 4.1.2.]]。

[21] この[[要素]]は [CODE(XMLe)@en[[[at:deleted-entry]]]] の[[子要素]]として高々1つ用いることができます。
削除エントリーの出典の情報を保持しつつ[[フィード]]を集約するために使うことができます。 [SRC[>>20]]

** 内容

[16] 
[[RFC 4287]] の[[規定]]の部分ではこの[[要素]]の[[内容]]として認められるものを明記していませんが、
[[RELAX NG]] [[スキーマ]] ([[参考]]) によると次の[[要素]]を含められます
[SRC[[[RFC 4287]] 4.2.11.]]。
[FIG(short list)[
- [CODE(XMLe)@en[[[atom:author]]]] (0~)
- [CODE(XMLe)@en[[[atom:category]]]] (0~)
- [CODE(XMLe)@en[[[atom:contributor]]]] (0~)
- [CODE(XMLe)@en[[[atom:generator]]]] (0~1)
- [CODE(XMLe)@en[[[atom:icon]]]] (0~1)
- [CODE(XMLe)@en[[[atom:id]]]] (0~1)
- [CODE(XMLe)@en[[[atom:link]]]] (0~)
- [CODE(XMLe)@en[[[atom:logo]]]] (0~1)
- [CODE(XMLe)@en[[[atom:rights]]]] (0~1)
- [CODE(XMLe)@en[[[atom:subtitle]]]] (0~1)
- [CODE(XMLe)@en[[[atom:title]]]] (0~1)
- [CODE(XMLe)@en[[[atom:updated]]]] (0~1)
- [CODE(XML)@en[[[extensionElement]]]] (0~)
]FIG]

[11] [CODE(XMLe)@en[atom:[[source]]]] [[要素]]の[[子要素]]として
[CODE(XMLe)@en[app:[[collection]]]] [[要素]]を含めることができます。
この[[要素]]は、[[エントリー]]を追加するとその[[フィード]]に現れるような[[集成]]を表します。
[SRC@en[[[AtomPub]]]]

[19] [[XML署名]]を行う場合の注意点は[[Atom文書]]の項をご覧ください。

** 処理モデル

*** エントリー取り込み

[17] ある[[フィード]]から別の[[フィード]]へと [CODE(XMLe)@en[[[atom:entry]]]]
を[[複写]]する場合、元の [CODE(XMLe)@en[[[atom:feed]]]] [[要素]]の[[メタデータ]]を[[複写]]した[[エントリー]]に含めることによって保持して[['''構いません''']]。
- ここで、[[メタデータ]]とは [CODE(XMLe)@en[[[atom:entry]]]] [[要素]]以外のすべての[[子要素]]を表します。
- [[複写]]した[[エントリー]]に [CODE(XMLe)@en[[[atom:source]]]]
[[要素]]を (なければ) 追加します。
- 元の[[フィード]]の [[Metadata要素]]の一部または全部を
[CODE(XMLe)@en[[[atom:source]]]] [[要素]]に追加します。
- [CODE(XMLe)@en[[[atom:author]]]]、[CODE(XMLe)@en[[[atom:contributor]]]]、
[CODE(XMLe)@en[[[atom:rights]]]]、[CODE(XMLe)@en[[[atom:category]]]]]
各[[要素]]が元の [CODE(XMLe)@en[[[atom:feed]]]] に含まれていて、尚且つ
[CODE(XMLe)@en[[[atom:entry]]]] [[要素]]に現れないのであれば、これらを保持する[['''べきです''']]。

[SRC[[[RFC 4287]] 4.2.11.]]

[18] [CODE(XMLe)@en[[[atom:source]]]] [[要素]]は、[[エントリー]]の元の[[フィード]]の情報を残しつつ[[集約]]できるように設計されていますから、
[[集約]]を行う [[Atom処理器]]は最低1つは[[フィード]]・レベルで[[必須]]の [[Metadata要素]]
([CODE(XMLe)@en[[[atom:id]]]]、[CODE(XMLe)@en[[[atom:title]]]]、
[CODE(XMLe)@en[[[atom:updated]]]]) を含める[['''べきです''']]
[SRC[[[RFC 4287]] 4.2.11.]]。

[22] 出典たる[[フィード]]以外の[[フィード文書]]や、出典たる[[フィード文書]]を有する[[削除済みエントリー文書]]の
[CODE(XMLe)@en[[[at:deleted-entry]]]] [[要素]]は、 [CODE(XMLe)@en[[[atom:source]]]] [[要素]]を含まなければ[['''なりません''']]。
[SRC[>>20]]

* [CODE(XMLe)@en[source]] 要素 (RSS)

[1] [[RSS]] の [DFN[[CODE(XMLe)@en[[[source]]]] [[要素]]]]は、
[[項目]]の出典である [[RSS]] [[チャンネル]]を表します [SRC@en[[[RSS 2.0]]]]。

:[[要素名]]:[CODE(XMLe)@en[[[source]]]]
:文脈:[CODE(XMLe)@en[[[item]]]] [[要素]]の[[子要素]]として
:[[内容モデル]]:[[文字データ]]
:[[属性]]:[CODE(XMLa)@en[[[url]]]]

** 仕様書

[REFS[
-[5] [CITE@en[RSS 2.0 Specification (version 2.0.10)]] 
--<http://www.rssboard.org/rss-specification#hrelementsOfLtitemgt>
--<http://www.rssboard.org/rss-specification#ltsourcegtSubelementOfLtitemgt>
-[23] [CITE@en[RSS Best Practices Profile]] ([TIME[2008-11-21 15:11:45 +09:00]] 版) <http://www.rssboard.org/rss-profile#element-channel-item-source>
]REFS]

** 内容

[2] [CODE(XMLe)@en[[[source]]]] [[要素]]の[[内容]]は、
その[[項目]]の出典である [[RSS]] [[チャンネル]]の [CODE(XMLe)@en[[[title]]]]
[[要素]]にあった題名を表します [SRC@en[[[RSS 2.0]]]]。

[8] 定義上、 [CODE(XMLe)@en[[[title]]]] と同じで[[文字データ]]が[[内容]]になると思うのですが、
明記されていません。

** 属性

[4] [CODE(XMLe)@en[[[source]]]] [[要素]]には [CODE(XMLa)@en[[[url]]]]
[[属性]]があります。この[[属性]]は必須です [SRC@en[[[RSS 2.0]]]]。

** 応用

[6] この[[要素]]は複数の[[フィード]]を統合する際に元々の[[項目]]の出典の情報を残しておくために用意されているようです。

** 例

[7]
[PRE(XML example code)[
<source url="http://www.tomalak.org/links2.xml">Tomalak's Realm</source>
]PRE]

;; [[RSS 2.0]] 仕様書より

[9] 
[PRE(XML example code)[
<source url="http://la.example.com/rss.xml">Los Angeles Herald-Examiner</source>
]PRE]

;; [[RSS Best Practices Profile]] より

* 関連

[3] [[HTML]] の [CODE(HTMLe)@en[[[source]]]] [[要素]]とは同名ですが関係はありません。