| TOC |
|
This document is an Internet-Draft and is NOT offered in accordance with Section 10 of RFC 2026, and the author does not provide the IETF with any rights other than to publish as an Internet-Draft.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as “work in progress.”
The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html.
This Internet-Draft will expire on March 3, 2010.
In order to increase content visibility, many publishers are now duplicating their content or a summary thereof on other sites. This document describes an extension to the Atom syndication format for declaring such duplicates such that feed consumers which see both may detect this usage.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119.
1.
Introduction
2.
Extension Namespace
3.
The crosspost:target extension element
4.
The crosspost:source extension element
5.
Use in RSS
6.
Security Considerations
Appendix A.
Examples
A.1.
Entry representing Primary Version
A.2.
Entry representing a Secondary Duplicate
§
Author's Address
| TOC |
In order to increase content visibility, many publishers are now duplicating their content or a summary thereof on other sites. This document describes an extension to the Atom syndication format for declaring such duplicates such that feed consumers which see both may detect this usage.
This specification assumes that there is a single, "primary" version of an entry created by an origin publisher and zero or more secondary duplicates. It is also assumed that the origin publisher is in control of the creation of such duplicates and is therefore in a position to document them as part of the Atom description of the primary version. A mechanism is also provided to mark the secondary duplicates as such, but it is acknowledged that in many cases the publisher of such secondary duplicates does not have the information required to create such a reference.
| TOC |
The extension elements described in this specification are in the namespace identified by the URI http://purl.org/syndication/cross-posting. In this specification, the prefix crosspost: is used to represent this namespace, though this is just a notational convention; any valid prefix may be used as described by the XML Namespaces specification. The prefix atom: is used to represent the Atom namespace as defined in the Atom 1.0 specification.
TODO: Reference the Atom spec.
TODO: Reference the namespaces spec.
TODO: Actually register that namespace URI.
| TOC |
The crosspost:target extension element, when used as a direct child of an atom:entry element, indicates that the corresponding entry is a primary version and that the entry described by its attributes is a secondary duplicate.
The crosspost:target element MUST contain zero or one atom:id elements whose value matches the atom:id element of the entry representing the secondary duplicate as published in this or another feed.
The crosspost:target element MAY contain one or more atom:link elements as defined by the Atom specification to give the consumer a hint as to where a representation of the secondary duplicate may be found.
The crosspost:target element MAY contain one atom:source element as defined by the Atom specification which describes the feed in which the entry representing the secondary duplicate may be found.
A single Atom entry may contain zero or more crosspost:target elements, each describing a distinct secondary duplicate.
A feed publisher that has knowingly created one or more secondary duplicates SHOULD reference each one within the entry representing the primary version using the crosspost:target element.
| TOC |
The crosspost:source extension element, when used as a direct child of an atom:entry element, indicates that the corresponding entry is a secondary duplicate and that the entry described by its attributes is the corresponding primary version. This element SHOULD be used when an entry is published that is known to the feed publisher to be a secondary duplicate.
The crosspost:source element MUST contain zero or one atom:id elements whose value matches the atom:id element of the entry representing the primary version as published in this or another feed.
The crosspost:source element MAY contain one or more atom:link elements as defined by the Atom specification to give the consumer a hint as to where a representation of the primary version may be found.
The crosspost:source element MAY contain one atom:source element as defined by the Atom specification which describes the feed in which the entry representing the primary version may be found.
A single Atom entry may contain zero or one crosspost:source elements.
The absense of this element does not necessarily indicate that an entry is not a secondary duplicate; in many cases a feed publisher will not know whether a given entry is a secondary duplicate and will thus omit this attribute in all cases. How a feed publisher determines that a given entry is a secondary duplicate is not defined by this specification.
A feed publisher that is both publishing a secondary duplicate and knowingly creating one or more tertiary duplicates (that is, duplicates of a duplicate itself) SHOULD publish both crosspost:target and crosspost:source elements indicating the ancestry of the content. However, creating tertiary duplicates is NOT RECOMMENDED.
| TOC |
This extension MAY also be used with feeds in RSS format.
The crosspost:source and crosspost:target elements MAY be used within RSS feeds as children of the "item" element. When used in this way, their relationship with the "item" element is the same as with the atom:entry element as described above, and their child elements MUST still be the Atom elements defined above, in the Atom XML namespace.
The RSS "guid" element SHOULD be considered equivalent to the atom:id element when used as a child of the RSS "item" element.
| TOC |
This specification defines attributes that allow content in one resource to make assertions about content in another resource. Consumers MUST NOT consider such assertions to be authoritative without additional information that can be used to verify the validity of the assertion. For example, if a consumer may allow such cross-resource assertions if both resources are known -- by some means outside of the scope of this specification -- to be published by the same author.
| TOC |
This appendix is non-normative
| TOC |
<entry>
<id>tag:blogtastic.example.com,2009:5a12451543</id>
<title>Photos from my Weekend</title>
<link href="http://blogtastic.example.com/5a12451543" />
<!-- (other standard Atom elements elided for brevity) -->
<crosspost:target>
<id>tag:jibber.example.org,2005:4523452</id>
<source>
<link rel="self"
type="application/atom+xml"
href="http://jibber.example.org/geraldine.atom" />
</source>
</crosspost:target>
</entry>| TOC |
<entry>
<id>tag:jibber.example.org,2005:4523452</id>
<title>geraldine: Photos from my Weekend
http://sillyurl.example.net/abc123</title>
<link href="http://jibber.example.net/statuses/4523452" />
<!-- (other standard Atom elements elided for brevity) -->
<crosspost:source>
<id>tag:blogtastic.example.com,2009:5a12451543</id>
</crosspost:source>
</entry>| TOC |
| Martin Atkins | |
| Six Apart Ltd. |