ATOMPUB Working Group M. Pilgrim Internet-Draft IBM Expires: May 26, 2007 J. Snell, Ed. November 22, 2006 Atom Feed Autodiscovery draft-snell-atompub-autodiscovery-00.txt Status of this Memo By submitting this Internet-Draft, each author represents that any applicable patent or other IPR claims of which he or she is aware have been or will be disclosed, and any of which he or she becomes aware will be disclosed, in accordance with Section 6 of BCP 79. 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 May 26, 2007. Copyright Notice Copyright (C) The Internet Society (2006). Abstract This document specifies a machine-readable method of linking to an Atom feed from a HyperText Markup Language (HTML) or Extensible HyperText Markup Language (XHTML) document, using the element. Editorial Note To provide feedback on this Internet-Draft, join the atom-syntax mailing list (http://www.imc.org/atom-syntax/index.html) [1]. Pilgrim & Snell Expires May 26, 2007 [Page 1] Internet-Draft Atom Feed Autodiscovery November 2006 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Notational Conventions . . . . . . . . . . . . . . . . . . . . 3 3. Relationship to HTML and XHTML . . . . . . . . . . . . . . . . 3 3.1. Definition of an autodiscovery element . . . . . . . . . . 3 3.2. Syntax rules inherited from HTML . . . . . . . . . . . . . 3 3.3. Syntax rules inherited from XHTML . . . . . . . . . . . . 4 4. Required attributes . . . . . . . . . . . . . . . . . . . . . 4 4.1. rel attribute . . . . . . . . . . . . . . . . . . . . . . 4 4.2. type attribute . . . . . . . . . . . . . . . . . . . . . . 5 4.3. href attribute . . . . . . . . . . . . . . . . . . . . . . 5 5. Optional attributes . . . . . . . . . . . . . . . . . . . . . 5 5.1. title attribute . . . . . . . . . . . . . . . . . . . . . 5 6. Multiple autodiscovery elements . . . . . . . . . . . . . . . 5 7. Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7.1. rel attribute variations . . . . . . . . . . . . . . . . . 6 7.2. type attribute variations . . . . . . . . . . . . . . . . 6 7.3. Link element variations . . . . . . . . . . . . . . . . . 7 7.4. HTML variations . . . . . . . . . . . . . . . . . . . . . 9 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 9. Security Considerations . . . . . . . . . . . . . . . . . . . 10 10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 10 10.1. Normative References . . . . . . . . . . . . . . . . . . . 10 10.2. Informative References . . . . . . . . . . . . . . . . . . 11 Appendix A. Contributors . . . . . . . . . . . . . . . . . . . . 11 Appendix B. Revision History . . . . . . . . . . . . . . . . . . 11 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 13 Intellectual Property and Copyright Statements . . . . . . . . . . 14 Pilgrim & Snell Expires May 26, 2007 [Page 2] Internet-Draft Atom Feed Autodiscovery November 2006 1. Introduction Atom is an XML-based file format intended to allow lists of information, known as "feeds", to be synchronised between publishers and consumers. Feeds are composed of a number of items, known as "entries", each with an extensible set of attached metadata. The primary use case that Atom addresses is for syndicating web content such as weblogs and news headlines to other web sites and directly to consumers. However, nothing precludes it from being used for other purposes and types of content. The purpose of Atom autodiscovery is for clients who know the URI of a web page to find the location of that page's associated Atom feed. For example, say an end user wishes to subscribe to the Atom feed of a site. Their Atom-aware aggregator client could prompt them to enter the home page of the site. The client could retrieve the HTML source of the home page, find the Atom autodiscovery element, and then retrieve the Atom feed or cache the URI of the Atom feed for later retrieval. Autodiscovered Atom feeds may be presented to the user in a variety of other ways. In the past, Atom-enabled clients have implemented local proxies that monitor visited web sites and notify the end user of autodiscovered Atom feeds in real time. Such notification is also built directly into some desktop web browsers. 2. Notational Conventions 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 [RFC2119]. 3. Relationship to HTML and XHTML 3.1. Definition of an autodiscovery element An Atom autodiscovery element is a link element, as defined in section 12.3 of HTML 4 [W3C.REC-html401-19991224]. As with other types of link elements, an autodiscovery element MAY appear within the element of an HTML or XHTML document, but it MUST NOT appear within the . 3.2. Syntax rules inherited from HTML When an Atom autodiscovery element appears in an HTML document, it shares all the syntax rules and restrictions of other HTML elements. Pilgrim & Snell Expires May 26, 2007 [Page 3] Internet-Draft Atom Feed Autodiscovery November 2006 The most relevant rules are listed here: o Element names are not case-sensitive. For example, clients MUST treat the same as o Attribute names are not case-sensitive. For example, clients MUST treat the same as . o Attributes may appear in any order; the order MUST NOT be considered significant. o Attribute values MUST be one of the following: enclosed in double quotes, enclosed in single quotes, or not enclosed in quotes at all. o Attribute values MAY contain leading or trailing spaces, or both. Clients MUST ignore both leading and trailing spaces in attribute values. For example, clients MUST treat all of the following the same way: , , , and . 3.3. Syntax rules inherited from XHTML XHTML [W3C.REC-xhtml1-20020801] is a reformulation of HTML in XML [W3C.REC-xml-20040204]. It also defines a element, so XHTML documents are a suitable container for Atom autodiscovery elements. When an Atom autodiscovery element appears in an XHTML document, it shares all the syntax rules and restrictions of other XHTML elements. The syntax rules of XHTML documents are slightly different than HTML documents. The most relevant differences are listed here: o Element names are case-sensitive, and MUST be lowercase. o Attribute names are case-sensitive, and MUST be lowercase. o Attribute values MUST be enclosed in either double quotes or single quotes. o Empty elements (such as link elements) MUST be closed with an end tag. 4. Required attributes 4.1. rel attribute The rel attribute MUST be present in an Atom autodiscovery element. As defined in section 6.12 of HTML 4 [W3C.REC-html401-19991224], the value of the rel attribute is a space-separated list of keywords. The list of keywords MUST include the keyword "alternate" in uppercase, lowercase, or mixed case. Pilgrim & Snell Expires May 26, 2007 [Page 4] Internet-Draft Atom Feed Autodiscovery November 2006 4.2. type attribute The type attribute MUST be present in an Atom autodiscovery element. As defined in section 12.3 of HTML 4 [W3C.REC-html401-19991224], the value of the type attribute of any link element MUST be a registered Internet media type [RFC2045]. The media type for Atom is "application/atom+xml" [I-D.ietf-atompub-format], so in an Atom autodiscovery element the value of the type attribute MUST contain the string "application/atom+xml" in uppercase, lowercase, or mixed case. 4.3. href attribute The href attribute MUST be present in an Atom autodiscovery element, and its value MUST be the URI [RFC3986] of an Atom feed. The value MAY be a relative URI, and if so, clients MUST resolve it to a full URI (section 5 of [RFC3986]) using the document's base URI (section 12.4 of HTML 4 [W3C.REC-html401-19991224]). 5. Optional attributes An Atom autodiscovery element MAY contain any other attributes of the link element defined in section 12.4 of HTML 4 [W3C.REC-html401- 19991224]. Clients MAY ignore any attributes other than rel, type, and href. 5.1. title attribute The title attribute MAY be present in an Atom autodiscovery element. If so, the client MAY treat the value of the title attribute as a human-readable label of the Atom feed. Clients MAY present this label to the end user. 6. Multiple autodiscovery elements An HTML or XHTML document MAY contain one or more Atom autodiscovery elements. If multiple autodiscovery elements are present in a single document: o Each autodiscovery element SHOULD point to a different Atom feed. o Each autodiscovery element SHOULD include a title attribute that gives a human-readable label for the feed that the element points to. Clients MAY use these titles to present a list of available Atom feeds to the end user. Pilgrim & Snell Expires May 26, 2007 [Page 5] Internet-Draft Atom Feed Autodiscovery November 2006 o The order of the autodiscovery elements is significant. The first element SHOULD point to the publisher's preferred feed for the document. o Clients who present a list of autodiscovered feeds to the end user SHOULD present them in the same order as the autodiscovery elements appear in the document. o Clients who wish to choose exactly one feed without user input SHOULD choose the one pointed to by the first autodiscovery element. 7. Examples 7.1. rel attribute variations The following is a non-exhaustive list of valid rel attributes for an Atom autodiscovery element in an HTML or XHTML document: rel="alternate" rel="alternate " rel=" alternate" rel=" alternate " rel="foo alternate" rel="alternate bar" rel="foo alternate bar" rel="ALTERNATE" rel="Alternate" rel="AlTeRnAtE" rel='alternate' rel="Alternate" In an HTML document, the following forms are also valid: REL="alternate" rel=alternate 7.2. type attribute variations The following are examples of valid type attributes for an Atom autodiscovery element in an HTML or XHTML document: type="application/atom+xml" type="application/atom+xml " type=" application/atom+xml" type=" application/atom+xml " type="APPLICATION/ATOM+XML" Pilgrim & Snell Expires May 26, 2007 [Page 6] Internet-Draft Atom Feed Autodiscovery November 2006 type="Application/Atom+Xml" In an HTML document, the following form is also valid: TYPE="application/atom+xml" 7.3. Link element variations Each of the following examples represents an Atom autodiscovery element in an HTML document located at http://www.example.com/index.html. Each example points to an Atom feed located at http://www.example.com/xml/index.atom. Pilgrim & Snell Expires May 26, 2007 [Page 7] Internet-Draft Atom Feed Autodiscovery November 2006 Each of the following examples represents an Atom autodiscovery element in an XHTML document located at http://www.example.com/index.xhtml. Each example points to an Atom feed located at http://www.example.com/xml/index.atom. Pilgrim & Snell Expires May 26, 2007 [Page 8] Internet-Draft Atom Feed Autodiscovery November 2006 7.4. HTML variations This is an example of a complete HTML document located at http://www.example.com/index.html. It contains an Atom autodiscovery element that points to an Atom feed at http://www.example.com/index.html?format=atom. This is an example of a complete HTML document located at http://www.example.com/index.html. It contains an Atom autodiscovery element that points to an Atom feed at http://www.example.org/index.atom. It uses a relative URI which is relative to the base URI specified in the element. This is an example of a complete HTML document located at http://www.example.com/index.html. It contains three autodiscovery elements that point to Atom feeds at http://www.example.com/xml/index.atom, http://www.example.com/xml/comments.atom, and http://example.org/index.atom respectively. It uses the optional title attribute to label each autodiscovery element. Pilgrim & Snell Expires May 26, 2007 [Page 9] Internet-Draft Atom Feed Autodiscovery November 2006 8. IANA Considerations This document relies on the registration of the Atom media type, which is defined in [I-D.ietf-atompub-format]. 9. Security Considerations Since the entire purpose of an Atom autodiscovery element is for clients to dereference the URI given in the href attribute, the security issues listed in section 7 of [RFC3986] should be considered. A publisher could construct a malicious URI in the href attribute, such as a "javascript:" URI to include an inline script, or some other URI scheme that typically launches an external program when dereferenced. Clients should be aware of the security context in which they execute scripts, and they should give the end user the ability to disable the automatic execution of external programs when dereferencing autodiscovery URIs. 10. References 10.1. Normative References [I-D.ietf-atompub-format] Sayre, R. and M. Nottingham, "The Atom Syndication Pilgrim & Snell Expires May 26, 2007 [Page 10] Internet-Draft Atom Feed Autodiscovery November 2006 Format", draft-ietf-atompub-format-11 (work in progress), August 2005. [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform Resource Identifier (URI): Generic Syntax", STD 66, RFC 3986, January 2005. [W3C.REC-xml-20040204] Yergeau, F., Maler, E., Paoli, J., Bray, T., and C. Sperberg-McQueen, "Extensible Markup Language (XML) 1.0 (Third Edition)", World Wide Web Consortium Recommendation REC-xml-20040204, February 2004, . 10.2. Informative References [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996. [W3C.REC-html401-19991224] Raggett, D., Jacobs, I., and A. Hors, "HTML 4.01 Specification", World Wide Web Consortium Recommendation REC-html401-19991224, December 1999, . [W3C.REC-xhtml1-20020801] Pemberton, S., "XHTML[TM] 1.0 The Extensible HyperText Markup Language (Second Edition)", W3C REC REC-xhtml1- 20020801, August 2002. URIs [1] Appendix A. Contributors The following people contributed to this specification's content: Joe Gregorio, Paul Hoffman, and the members of the atom-syntax mailing list. Appendix B. Revision History Pilgrim & Snell Expires May 26, 2007 [Page 11] Internet-Draft Atom Feed Autodiscovery November 2006 2006-11-21: Resurrect the expired draft 2005-05-08: Updated reference to XML 3rd ed. Updated RFC 2396 reference to RFC 3986 Added editor 2005-05-03: Updated boilerplate to RFC 3978 2004-08-17: Consolidated examples Updated author address Added IPR Removed reference to RFC 1808 2003-12-23: Added security considerations Added note about order significance with multiple autodiscovery elements 2003-12-22: Rearranged the "Relationship to HTML and XHTML" section Added examples of single-quoted attribute values Added examples of numeric entities in rel and type attributes 2003-12-21: First draft Pilgrim & Snell Expires May 26, 2007 [Page 12] Internet-Draft Atom Feed Autodiscovery November 2006 Authors' Addresses Mark Pilgrim International Business Machines Corporation 4400 Silicon Drive Durham, NC 27713 US Email: pilgrim@gmail.com James Snell (editor) Email: jasnell@gmail.com Pilgrim & Snell Expires May 26, 2007 [Page 13] Internet-Draft Atom Feed Autodiscovery November 2006 Intellectual Property Statement The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org. Disclaimer of Validity This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Copyright Statement Copyright (C) The Internet Society (2006). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. Acknowledgment Funding for the RFC Editor function is currently provided by the Internet Society. Pilgrim & Snell Expires May 26, 2007 [Page 14]