Internet DRAFT - draft-ietf-atompub-autodiscovery

draft-ietf-atompub-autodiscovery







ATOMPUB Working Group                                         M. Pilgrim
Internet-Draft                                                       IBM
Expires: November 11, 2005                             P. Ringnalda, Ed.
                                                            May 10, 2005


                        Atom Feed Autodiscovery
                draft-ietf-atompub-autodiscovery-01.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 November 11, 2005.

Copyright Notice

   Copyright (C) The Internet Society (2005).

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 <link> 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 & Ringnalda     Expires November 11, 2005               [Page 1]

Internet-Draft           Atom Feed Autodiscovery                May 2005


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 . . . . . . . . . . . . . . . . . . . . . .   4
     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  . . . . . . . . . . . . . . . . .   6
     7.4  HTML variations  . . . . . . . . . . . . . . . . . . . . .   8
   8.   IANA Considerations  . . . . . . . . . . . . . . . . . . . .  10
   9.   Security Considerations  . . . . . . . . . . . . . . . . . .  10
   10.  References . . . . . . . . . . . . . . . . . . . . . . . . .  10
     10.1   Normative References . . . . . . . . . . . . . . . . . .  10
     10.2   Informative References . . . . . . . . . . . . . . . . .  11
        Authors' Addresses . . . . . . . . . . . . . . . . . . . . .  11
   A.   Contributors . . . . . . . . . . . . . . . . . . . . . . . .  12
   B.   Revision History . . . . . . . . . . . . . . . . . . . . . .  12
        Intellectual Property and Copyright Statements . . . . . . .  13






















Pilgrim & Ringnalda     Expires November 11, 2005               [Page 2]

Internet-Draft           Atom Feed Autodiscovery                May 2005


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 <head> element of an HTML or XHTML document, but it MUST NOT
   appear within the <body>.

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.
   The most relevant rules are listed here:




Pilgrim & Ringnalda     Expires November 11, 2005               [Page 3]

Internet-Draft           Atom Feed Autodiscovery                May 2005


   o  Element names are not case-sensitive.  For example, clients MUST
      treat <link ...> the same as <LINK ...>
   o  Attribute names are not case-sensitive.  For example, clients MUST
      treat <link rel="alternate" ...> the same as <link REL="alternate"
      ...>.
   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: <link rel="alternate" ...>, <link rel="alternate " ...>,
      <link rel=" alternate" ...>, and <link rel=" alternate " ...>.

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 <link> 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.

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



Pilgrim & Ringnalda     Expires November 11, 2005               [Page 4]

Internet-Draft           Atom Feed Autodiscovery                May 2005


   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.
   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.





Pilgrim & Ringnalda     Expires November 11, 2005               [Page 5]

Internet-Draft           Atom Feed Autodiscovery                May 2005


   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="&#65;lternate"

   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"
      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



Pilgrim & Ringnalda     Expires November 11, 2005               [Page 6]

Internet-Draft           Atom Feed Autodiscovery                May 2005


   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.


   <link rel="alternate" type="application/atom+xml"
   href="http://www.example.com/xml/index.atom">

   <link rel="alternate" type="application/atom+xml"
   href="xml/index.atom">

   <link rel="alternate" type="application/atom+xml"
   href="/xml/index.atom">

   <link rel='alternate' type='application/atom+xml'
   href='http://www.example.com/xml/index.atom'>

   <link rel=alternate type='application/atom+xml'
   href="http://www.example.com/xml/index.atom">

   <link rel="AlTeRnAtE" type="application/atom+xml"
   href="http://www.example.com/xml/index.atom">

   <link rel="alternate" type="APPLICATION/ATOM+XML"
   href="http://www.example.com/xml/index.atom">

   <LINK REL="alternate" TYPE="application/atom+xml"
   HREF="http://www.example.com/xml/index.atom">

   <link href="http://www.example.com/xml/index.atom"
   type="APPLICATION/ATOM+XML" rel="alternate">

   <link rel="alternate foo" type="application/atom+xml"
   href="http://www.example.com/xml/index.atom">

   <link rel="foo alternate" type="application/atom+xml"
   href="http://www.example.com/xml/index.atom">

   <link rel="foo alternate bar" type="application/atom+xml"
   href="http://www.example.com/xml/index.atom">

   <link rel="&#65;lternate" type="application/atom+xml"
   href="http://www.example.com/xml/index.atom">

   <link rel="alternate" type="application/atom&#43;xml"
   href="http://www.example.com/xml/index.atom">

   Each of the following examples represents an Atom autodiscovery



Pilgrim & Ringnalda     Expires November 11, 2005               [Page 7]

Internet-Draft           Atom Feed Autodiscovery                May 2005


   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.


   <link rel="alternate" type="application/atom+xml"
   href="http://www.example.com/xml/index.atom" />

   <link rel="alternate" type="application/atom+xml"
   href="xml/index.atom" />

   <link rel="alternate" type="application/atom+xml"
   href="/xml/index.atom" />

   <link rel='alternate' type='application/atom+xml'
   href='http://www.example.com/xml/index.atom' />

   <link rel="AlTeRnAtE" type="application/atom+xml"
   href="http://www.example.com/xml/index.atom" />

   <link rel="alternate" type="APPLICATION/ATOM+XML"
   href="http://www.example.com/xml/index.atom" />

   <link href="http://www.example.com/xml/index.atom"
   type="APPLICATION/ATOM+XML" rel="alternate" />

   <link rel="alternate foo" type="application/atom+xml"
   href="http://www.example.com/xml/index.atom" />

   <link rel="foo alternate" type="application/atom+xml"
   href="http://www.example.com/xml/index.atom" />

   <link rel="foo alternate bar" type="application/atom+xml"
   href="http://www.example.com/xml/index.atom" />

   <link rel="&#65;lternate" type="application/atom+xml"
   href="http://www.example.com/xml/index.atom" />

   <link rel="alternate" type="application/atom&#43;xml"
   href="http://www.example.com/xml/index.atom" />

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.




Pilgrim & Ringnalda     Expires November 11, 2005               [Page 8]

Internet-Draft           Atom Feed Autodiscovery                May 2005


   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
   <html lang="en">
   <head>
   <link rel="alternate"
         type="application/atom+xml"
         href="?format=atom">
   </head>
   </html>

   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 <base> element.

   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
   <html lang="en">
   <head>
   <base href="http://www.example.org/">
   <link rel="alternate"
         type="application/atom+xml"
         href="index.atom">
   </head>
   </html>

   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 & Ringnalda     Expires November 11, 2005               [Page 9]

Internet-Draft           Atom Feed Autodiscovery                May 2005


   <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    "http://www.w3.org/TR/html4/strict.dtd">
   <html lang="en">
   <head>
   <link rel="alternate"
         type="application/atom+xml"
         title="Main Atom feed"
         href="/xml/index.atom">
   <link rel="alternate"
         type="application/atom+xml"
         title="Recent comments feed"
         href="/xml/comments.atom">
   <link rel="alternate"
         type="application/atom+xml"
         title="Atom feed (mirror)"
         href="http://example.org/index.atom">
   </head>
   </html>

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
              Format", draft-ietf-atompub-format-08 (work in progress),
              April 2005.




Pilgrim & Ringnalda     Expires November 11, 2005              [Page 10]

Internet-Draft           Atom Feed Autodiscovery                May 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., Paoli, J., Sperberg-McQueen, C., Bray, T.,
              and E. Maler, "Extensible Markup Language (XML) 1.0 (Third
              Edition)", W3C REC 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]
              Hors, A., Jacobs, I., and D. Raggett, "HTML 4.01
              Specification", W3C REC 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]  <http://www.imc.org/atom-syntax/index.html>


Authors' Addresses

   Mark Pilgrim
   International Business Machines Corporation
   4400 Silicon Drive
   Durham, NC  27713
   US

   Email: pilgrim@gmail.com


   Phil Ringnalda (editor)

   Email: philringnalda@gmail.com




Pilgrim & Ringnalda     Expires November 11, 2005              [Page 11]

Internet-Draft           Atom Feed Autodiscovery                May 2005


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

   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 & Ringnalda     Expires November 11, 2005              [Page 12]

Internet-Draft           Atom Feed Autodiscovery                May 2005


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.

   The IETF has been notified of intellectual property rights claimed in
   regard to some or all of the specification contained in this
   document.  For more information consult the online list of claimed
   rights.


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 (2005).  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.





Pilgrim & Ringnalda     Expires November 11, 2005              [Page 13]

Internet-Draft           Atom Feed Autodiscovery                May 2005


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.















































Pilgrim & Ringnalda     Expires November 11, 2005              [Page 14]