| draft-ietf-atompub-format-03.txt | | draft-ietf-atompub-format-04.txt | |
| | | | |
| Network Working Group M. Nottingham, Ed. | | Network Working Group M. Nottingham, Ed. | |
| Internet-Draft | | Internet-Draft | |
| Expires: April 20, 2005 R. Sayre, Ed. | | Expires: July 11, 2005 R. Sayre, Ed. | |
| Boswijck Memex Consulting | | Boswijck Memex Consulting | |
| October 20, 2004 | | January 10, 2005 | |
| | | | |
| The Atom Syndication Format | | The Atom Syndication Format | |
| draft-ietf-atompub-format-03 | | draft-ietf-atompub-format-04 | |
| | | | |
| Status of this Memo | | Status of this Memo | |
| | | | |
| By submitting this Internet-Draft, I certify that any applicable | | By submitting this Internet-Draft, I certify that any applicable | |
| patent or other IPR claims of which I am aware have been disclosed, | | patent or other IPR claims of which I am aware have been disclosed, | |
| and any of which I become aware will be disclosed, in accordance with | | and any of which I become aware will be disclosed, in accordance with | |
| RFC 3668. | | RFC 3668. | |
| | | | |
| Internet-Drafts are working documents of the Internet Engineering | | Internet-Drafts are working documents of the Internet Engineering | |
| Task Force (IETF), its areas, and its working groups. Note that | | Task Force (IETF), its areas, and its working groups. Note that | |
| | | | |
| skipping to change at page 1, line 35 | | skipping to change at page 1, line 35 | |
| and may be updated, replaced, or obsoleted by other documents at any | | and may be updated, replaced, or obsoleted by other documents at any | |
| time. It is inappropriate to use Internet-Drafts as reference | | time. It is inappropriate to use Internet-Drafts as reference | |
| material or to cite them other than as "work in progress." | | material or to cite them other than as "work in progress." | |
| | | | |
| The list of current Internet-Drafts can be accessed at | | The list of current Internet-Drafts can be accessed at | |
| http://www.ietf.org/ietf/1id-abstracts.txt. | | http://www.ietf.org/ietf/1id-abstracts.txt. | |
| | | | |
| The list of Internet-Draft Shadow Directories can be accessed at | | The list of Internet-Draft Shadow Directories can be accessed at | |
| http://www.ietf.org/shadow.html. | | http://www.ietf.org/shadow.html. | |
| | | | |
| This Internet-Draft will expire on April 20, 2005. | | This Internet-Draft will expire on July 11, 2005. | |
| | | | |
| Copyright Notice | | Copyright Notice | |
| | | | |
| Copyright (C) The Internet Society (2004). All Rights Reserved. | | Copyright (C) The Internet Society (2005). All Rights Reserved. | |
| | | | |
| Abstract | | Abstract | |
| | | | |
| This document specifies Atom, an XML-based Web content and metadata | | This document specifies Atom, an XML-based Web content and metadata | |
| syndication format. | | syndication format. | |
| | | | |
| Table of Contents | | Table of Contents | |
| | | | |
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | |
| 1.1 Editorial Notes . . . . . . . . . . . . . . . . . . . . . 4 | | 1.1 Editorial Notes . . . . . . . . . . . . . . . . . . . . . 4 | |
| 1.2 Example . . . . . . . . . . . . . . . . . . . . . . . . . 5 | | 1.2 Example . . . . . . . . . . . . . . . . . . . . . . . . . 5 | |
| 1.3 Conformance . . . . . . . . . . . . . . . . . . . . . . . 5 | | 1.3 Conformance . . . . . . . . . . . . . . . . . . . . . . . 5 | |
| 1.4 Notational Conventions . . . . . . . . . . . . . . . . . . 5 | | 1.4 Notational Conventions . . . . . . . . . . . . . . . . . . 5 | |
| 2. Atom Documents . . . . . . . . . . . . . . . . . . . . . . . 7 | | 2. Atom Documents . . . . . . . . . . . . . . . . . . . . . . . 7 | |
| 3. Common Atom Constructs . . . . . . . . . . . . . . . . . . . 8 | | 3. Common Atom Constructs . . . . . . . . . . . . . . . . . . . 8 | |
| 3.1 Text Constructs . . . . . . . . . . . . . . . . . . . . . 8 | | 3.1 Text Constructs . . . . . . . . . . . . . . . . . . . . . 8 | |
| 3.1.1 "type" Attribute . . . . . . . . . . . . . . . . . . . 8 | | 3.1.1 "type" Attribute . . . . . . . . . . . . . . . . . . . 8 | |
| 3.2 Person Constructs . . . . . . . . . . . . . . . . . . . . 8 | | 3.2 Person Constructs . . . . . . . . . . . . . . . . . . . . 9 | |
| 3.2.1 "atom:name" Element . . . . . . . . . . . . . . . . . 9 | | 3.2.1 "atom:name" Element . . . . . . . . . . . . . . . . . 9 | |
| 3.2.2 "atom:uri" Element . . . . . . . . . . . . . . . . . . 9 | | 3.2.2 "atom:uri" Element . . . . . . . . . . . . . . . . . . 9 | |
| 3.2.3 "atom:email" Element . . . . . . . . . . . . . . . . . 9 | | 3.2.3 "atom:email" Element . . . . . . . . . . . . . . . . . 9 | |
| 3.3 Date Constructs . . . . . . . . . . . . . . . . . . . . . 9 | | 3.3 Date Constructs . . . . . . . . . . . . . . . . . . . . . 9 | |
| 3.4 Service Constructs . . . . . . . . . . . . . . . . . . . . 9 | | 3.4 Service Constructs . . . . . . . . . . . . . . . . . . . . 9 | |
| 3.4.1 "href" Attribute . . . . . . . . . . . . . . . . . . . 9 | | 3.4.1 "href" Attribute . . . . . . . . . . . . . . . . . . . 10 | |
| 3.5 Link Constructs . . . . . . . . . . . . . . . . . . . . . 10 | | 3.5 Link Constructs . . . . . . . . . . . . . . . . . . . . . 10 | |
| 3.5.1 "rel" Attribute . . . . . . . . . . . . . . . . . . . 10 | | 3.5.1 "rel" Attribute . . . . . . . . . . . . . . . . . . . 10 | |
| 3.5.2 "type" Attribute . . . . . . . . . . . . . . . . . . . 10 | | 3.5.2 "type" Attribute . . . . . . . . . . . . . . . . . . . 11 | |
| 3.5.3 "href" Attribute . . . . . . . . . . . . . . . . . . . 10 | | 3.5.3 "href" Attribute . . . . . . . . . . . . . . . . . . . 11 | |
| 3.5.4 "hreflang" Attribute . . . . . . . . . . . . . . . . . 10 | | 3.5.4 "hreflang" Attribute . . . . . . . . . . . . . . . . . 11 | |
| 3.5.5 "title" Attribute . . . . . . . . . . . . . . . . . . 11 | | 3.5.5 "title" Attribute . . . . . . . . . . . . . . . . . . 11 | |
| 3.6 Identity Constructs . . . . . . . . . . . . . . . . . . . 11 | | 3.5.6 "length" Attribute . . . . . . . . . . . . . . . . . . 11 | |
| 3.6.1 Dereferencing Identity Constructs . . . . . . . . . . 11 | | 3.6 Identity Constructs . . . . . . . . . . . . . . . . . . . 12 | |
| | | 3.6.1 Dereferencing Identity Constructs . . . . . . . . . . 12 | |
| 3.6.2 Comparing Identity Constructs . . . . . . . . . . . . 12 | | 3.6.2 Comparing Identity Constructs . . . . . . . . . . . . 12 | |
| 4. The "atom:feed" Element . . . . . . . . . . . . . . . . . . 13 | | 3.7 The Category Construct . . . . . . . . . . . . . . . . . . 13 | |
| 4.1 "version" Attribute . . . . . . . . . . . . . . . . . . . 13 | | 3.7.1 The "term" Attribute . . . . . . . . . . . . . . . . . 13 | |
| 4.2 The "atom:head" Element . . . . . . . . . . . . . . . . . 13 | | 3.7.2 The "scheme" Attribute . . . . . . . . . . . . . . . . 13 | |
| 4.2.1 "atom:title" Element . . . . . . . . . . . . . . . . . 13 | | 3.7.3 The "label" attribute . . . . . . . . . . . . . . . . 13 | |
| 4.2.2 "atom:link" Element . . . . . . . . . . . . . . . . . 13 | | 4. The "atom:feed" Element . . . . . . . . . . . . . . . . . . 14 | |
| 4.2.3 "atom:introspection" Element . . . . . . . . . . . . . 14 | | 4.1 "version" Attribute . . . . . . . . . . . . . . . . . . . 14 | |
| 4.2.4 "atom:post" Element . . . . . . . . . . . . . . . . . 14 | | 4.2 The "atom:head" Element . . . . . . . . . . . . . . . . . 14 | |
| 4.2.5 "atom:author" Element . . . . . . . . . . . . . . . . 14 | | 4.2.1 "atom:title" Element . . . . . . . . . . . . . . . . . 14 | |
| 4.2.6 "atom:contributor" Element . . . . . . . . . . . . . . 14 | | 4.2.2 "atom:link" Element . . . . . . . . . . . . . . . . . 14 | |
| 4.2.7 "atom:tagline" Element . . . . . . . . . . . . . . . . 14 | | 4.2.3 "atom:category" Element . . . . . . . . . . . . . . . 15 | |
| 4.2.8 "atom:id" Element . . . . . . . . . . . . . . . . . . 14 | | 4.2.4 "atom:introspection" Element . . . . . . . . . . . . . 15 | |
| 4.2.9 "atom:generator" Element . . . . . . . . . . . . . . . 15 | | 4.2.5 "atom:post" Element . . . . . . . . . . . . . . . . . 15 | |
| 4.2.10 "atom:copyright" Element . . . . . . . . . . . . . . 15 | | 4.2.6 "atom:author" Element . . . . . . . . . . . . . . . . 15 | |
| 4.2.11 "atom:info" Element . . . . . . . . . . . . . . . . 15 | | 4.2.7 "atom:contributor" Element . . . . . . . . . . . . . . 15 | |
| 4.2.12 "atom:updated" Element . . . . . . . . . . . . . . . 16 | | 4.2.8 "atom:tagline" Element . . . . . . . . . . . . . . . . 15 | |
| 5. The "atom:entry" Element . . . . . . . . . . . . . . . . . . 17 | | 4.2.9 "atom:id" Element . . . . . . . . . . . . . . . . . . 16 | |
| 5.1 "atom:title" Element . . . . . . . . . . . . . . . . . . . 17 | | 4.2.10 "atom:generator" Element . . . . . . . . . . . . . . 16 | |
| 5.2 "atom:link" Element . . . . . . . . . . . . . . . . . . . 17 | | 4.2.11 "atom:copyright" Element . . . . . . . . . . . . . . 16 | |
| 5.3 "atom:edit" Element . . . . . . . . . . . . . . . . . . . 17 | | 4.2.12 "atom:info" Element . . . . . . . . . . . . . . . . 16 | |
| 5.4 "atom:author" Element . . . . . . . . . . . . . . . . . . 18 | | 4.2.13 "atom:updated" Element . . . . . . . . . . . . . . . 16 | |
| 5.5 "atom:contributor" Element . . . . . . . . . . . . . . . . 18 | | 5. The "atom:entry" Element . . . . . . . . . . . . . . . . . . 18 | |
| 5.6 "atom:id" Element . . . . . . . . . . . . . . . . . . . . 18 | | 5.1 "atom:title" Element . . . . . . . . . . . . . . . . . . . 18 | |
| 5.7 "atom:updated" Element . . . . . . . . . . . . . . . . . . 18 | | 5.2 "atom:link" Element . . . . . . . . . . . . . . . . . . . 18 | |
| 5.8 "atom:published" Element . . . . . . . . . . . . . . . . . 18 | | 5.3 "atom:category" Element . . . . . . . . . . . . . . . . . 18 | |
| 5.9 "atom:summary" Element . . . . . . . . . . . . . . . . . . 19 | | 5.4 "atom:edit" Element . . . . . . . . . . . . . . . . . . . 19 | |
| 5.10 "atom:content" Element . . . . . . . . . . . . . . . . . 19 | | 5.5 "atom:author" Element . . . . . . . . . . . . . . . . . . 19 | |
| 5.10.1 "type" attribute . . . . . . . . . . . . . . . . . . 19 | | 5.6 "atom:contributor" Element . . . . . . . . . . . . . . . . 19 | |
| 5.10.2 "src" attribute . . . . . . . . . . . . . . . . . . 19 | | 5.7 "atom:host" Element . . . . . . . . . . . . . . . . . . . 19 | |
| 5.10.3 Processing Model . . . . . . . . . . . . . . . . . . 20 | | 5.8 "atom:id" Element . . . . . . . . . . . . . . . . . . . . 19 | |
| 5.11 "atom:copyright" Element . . . . . . . . . . . . . . . . 21 | | 5.9 "atom:updated" Element . . . . . . . . . . . . . . . . . . 19 | |
| 5.12 "atom:origin" Element . . . . . . . . . . . . . . . . . 21 | | 5.10 "atom:published" Element . . . . . . . . . . . . . . . . 20 | |
| 6. Managing Feed State . . . . . . . . . . . . . . . . . . . . 22 | | 5.11 "atom:summary" Element . . . . . . . . . . . . . . . . . 20 | |
| 7. Securing Atom Documents . . . . . . . . . . . . . . . . . . 23 | | 5.12 "atom:content" Element . . . . . . . . . . . . . . . . . 20 | |
| 7.1 Digital Signatures . . . . . . . . . . . . . . . . . . . . 23 | | 5.12.1 "type" attribute . . . . . . . . . . . . . . . . . . 20 | |
| 7.2 Encryption . . . . . . . . . . . . . . . . . . . . . . . . 23 | | 5.12.2 "src" attribute . . . . . . . . . . . . . . . . . . 21 | |
| 8. Embedding Atom in Other Formats . . . . . . . . . . . . . . 24 | | 5.12.3 Processing Model . . . . . . . . . . . . . . . . . . 21 | |
| 9. Extending Atom . . . . . . . . . . . . . . . . . . . . . . . 25 | | 5.13 "atom:copyright" Element . . . . . . . . . . . . . . . . 22 | |
| 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . 26 | | 5.14 "atom:head" Element . . . . . . . . . . . . . . . . . . 22 | |
| 11. Security Considerations . . . . . . . . . . . . . . . . . . 27 | | 6. Managing Feed State . . . . . . . . . . . . . . . . . . . . 23 | |
| 12. Normative References . . . . . . . . . . . . . . . . . . . . 27 | | 7. Securing Atom Documents . . . . . . . . . . . . . . . . . . 24 | |
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 28 | | 7.1 Digital Signatures . . . . . . . . . . . . . . . . . . . . 24 | |
| A. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 29 | | 7.2 Encryption . . . . . . . . . . . . . . . . . . . . . . . . 24 | |
| B. Revision History . . . . . . . . . . . . . . . . . . . . . . 30 | | 8. Embedding Atom in Other Formats . . . . . . . . . . . . . . 25 | |
| Intellectual Property and Copyright Statements . . . . . . . 32 | | 9. Extending Atom . . . . . . . . . . . . . . . . . . . . . . . 26 | |
| | | 10. IANA Considerations . . . . . . . . . . . . . . . . . . . . 27 | |
| | | 10.1 Registry of Link Relations . . . . . . . . . . . . . . . 27 | |
| | | 11. Security Considerations . . . . . . . . . . . . . . . . . . 29 | |
| | | 12. References . . . . . . . . . . . . . . . . . . . . . . . . . 30 | |
| | | 12.1 Normative References . . . . . . . . . . . . . . . . . . . 30 | |
| | | 12.2 Informative References . . . . . . . . . . . . . . . . . . 31 | |
| | | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 32 | |
| | | A. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 33 | |
| | | B. Revision History . . . . . . . . . . . . . . . . . . . . . . 34 | |
| | | Intellectual Property and Copyright Statements . . . . . . . 36 | |
| | | | |
| 1. Introduction | | 1. Introduction | |
| | | | |
| Atom is an XML-based document format intended to allow lists of | | Atom is an XML-based document format intended to allow lists of | |
| related information, known as "feeds", to be synchronised between | | related information, known as "feeds". Feeds are composed of a | |
| publishers and consumers. Feeds are composed of a number of items, | | number of items, known as "entries", each with an extensible set of | |
| known as "entries", each with an extensible set of attached metadata. | | attached metadata. For example, each entry has a title. | |
| For example, each entry has a title. | | | |
| | | | |
| The primary use case that Atom addresses is the syndication of Web | | The primary use case that Atom addresses is the syndication of Web | |
| content such as Weblogs and news headlines to Web sites as well as | | content such as Weblogs and news headlines to Web sites as well as | |
| directly to user agents. However, nothing precludes it from being | | directly to user agents. However, nothing precludes it from being | |
| used for other purposes and kinds of content. | | used for other purposes and kinds of content. | |
| | | | |
| Details of communication protocols between software agents using Atom | | Details of communication protocols between software agents using Atom | |
| can be found in the Atom Protocol specification [Atom-protocol]. | | can be found in the Atom Protocol specification [Atom-protocol]. | |
| | | | |
| [[ more motivation / design principles ]] | | [[ more motivation / design principles ]] | |
| | | | |
| skipping to change at page 5, line 9 | | skipping to change at page 5, line 9 | |
| used for issue tracking and new proposals. | | used for issue tracking and new proposals. | |
| | | | |
| This document is an early draft and known to be incomplete. Topics | | This document is an early draft and known to be incomplete. Topics | |
| marked [[like this]] indicate where additional text is likely to be | | marked [[like this]] indicate where additional text is likely to be | |
| added. | | added. | |
| | | | |
| 1.2 Example | | 1.2 Example | |
| | | | |
| A minimal, single-entry Atom Feed Document: | | A minimal, single-entry Atom Feed Document: | |
| | | | |
| <?xml version="1.0" encoding="utf-8"?> | | <?xml version="1.0" encoding="UTF-8"?> | |
| <feed version="draft-ietf-atompub-format-03: do not deploy" | | <feed version="draft-ietf-atompub-format-04 | |
| xmlns="http://purl.org/atom/ns#draft-ietf-atompub-format-03"> | | : do not deploy" | |
| | | xmlns="http://purl.org/atom/ns#draft-ietf-atompub-format-04 | |
| | | "> | |
| <head> | | <head> | |
| <title>Example Feed</title> | | <title>Example Feed</title> | |
| <link href="http://example.org/"/> | | <link href="http://example.org/"/> | |
| <updated>2003-12-13T18:30:02Z</updated> | | <updated>2003-12-13T18:30:02Z</updated> | |
| <author> | | <author> | |
| <name>John Doe</name> | | <name>John Doe</name> | |
| </author> | | </author> | |
| </head> | | </head> | |
| <entry> | | <entry> | |
| <title>Atom-Powered Robots Run Amok</title> | | <title>Atom-Powered Robots Run Amok</title> | |
| | | | |
| skipping to change at page 5, line 43 | | skipping to change at page 5, line 45 | |
| 1.4 Notational Conventions | | 1.4 Notational Conventions | |
| | | | |
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |
| document are to be interpreted as described in BCP 14, [RFC2119]. | | document are to be interpreted as described in BCP 14, [RFC2119]. | |
| | | | |
| This specification uses XML Namespaces [W3C.REC-xml-names-19990114] | | This specification uses XML Namespaces [W3C.REC-xml-names-19990114] | |
| to uniquely identify XML elements and attribute names. It uses the | | to uniquely identify XML elements and attribute names. It uses the | |
| following namespace prefixes for the indicated namespace URIs; | | following namespace prefixes for the indicated namespace URIs; | |
| | | | |
| "atom": http://purl.org/atom/ns#draft-ietf-atompub-format-03 | | "atom": http://purl.org/atom/ns#draft-ietf-atompub-format-04 | |
| | | | |
| Note that the choice of any namespace prefix is arbitrary and not | | Note that the choice of any namespace prefix is arbitrary and not | |
| semantically significant. | | semantically significant. | |
| | | | |
| Atom is specified using terms from the XML Infoset | | Atom is specified using terms from the XML Infoset | |
| [W3C.REC-xml-infoset-20011024]. However, this specification uses a | | [W3C.REC-xml-infoset-20011024]. However, this specification uses a | |
| shorthand for two common terms; the phrase "Information Item" is | | shorthand for two common terms; the phrase "Information Item" is | |
| omitted when naming Element Information Items and Attribute | | omitted when naming Element Information Items and Attribute | |
| Information Items. | | Information Items. | |
| | | | |
| | | | |
| skipping to change at page 7, line 32 | | skipping to change at page 7, line 32 | |
| [[ Validity? ]] | | [[ Validity? ]] | |
| | | | |
| Atom constrains the appearance and content of elements and | | Atom constrains the appearance and content of elements and | |
| attributes; unless otherwise stated, Atom Documents MAY contain other | | attributes; unless otherwise stated, Atom Documents MAY contain other | |
| Information Items as appropriate. In particular, Comment Information | | Information Items as appropriate. In particular, Comment Information | |
| Items and Processing Instruction Information Items SHOULD be ignored | | Items and Processing Instruction Information Items SHOULD be ignored | |
| in the normal processing of an Atom Document. | | in the normal processing of an Atom Document. | |
| | | | |
| Any element in an Atom Document MAY have an xml:base attribute. XML | | Any element in an Atom Document MAY have an xml:base attribute. XML | |
| Base [W3C.REC-xmlbase-20010627] processing MUST be applied to any | | Base [W3C.REC-xmlbase-20010627] processing MUST be applied to any | |
| relative URI reference present in an Atom document. This includes | | relative reference [RFC2396bis] present in an Atom Document. This | |
| such elements and attributes as specified by Atom itself, as well as | | includes such elements and attributes as specified by Atom itself, as | |
| those specified by extensions to Atom. | | well as those specified by extensions to Atom. | |
| | | | |
| Any element in an Atom Document MAY have an xml:lang attribute, whose | | Any element in an Atom Document MAY have an xml:lang attribute, whose | |
| content indicates the default natural language of the element's | | content indicates the default natural language of the element's | |
| content. Requirements regarding the content and interpretation of | | content. Requirements regarding the content and interpretation of | |
| xml:lang are specified in XML 1.0 [W3C.REC-xml-20040204] Section | | xml:lang are specified in XML 1.0 [W3C.REC-xml-20040204] Section | |
| 2.12. | | 2.12. | |
| | | | |
| [[ discussion of URI escaping and i18n ]] | | [[ discussion of URI escaping and i18n, IRI ]] | |
| | | | |
| [[ discussion of white space ]] | | [[ discussion of white space ]] | |
| | | | |
| Atom is extensible. See the section titled 'Extending Atom' later in | | Atom is extensible. See the section titled 'Extending Atom' later in | |
| this document for a full description of how Atom Documents can be | | this document for a full description of how Atom Documents can be | |
| extended. | | extended. | |
| | | | |
| 3. Common Atom Constructs | | 3. Common Atom Constructs | |
| | | | |
| Many of Atom's elements share a few common structures. This section | | Many of Atom's elements share a few common structures. This section | |
| | | | |
| skipping to change at page 8, line 38 | | skipping to change at page 8, line 38 | |
| the "type" attribute. | | the "type" attribute. | |
| | | | |
| If the value is "TEXT", the content of the Text construct MUST NOT | | If the value is "TEXT", the content of the Text construct MUST NOT | |
| contain child elements. Such text is intended to be presented to | | contain child elements. Such text is intended to be presented to | |
| humans in a readable fashion. Thus, software MAY display it using | | humans in a readable fashion. Thus, software MAY display it using | |
| normal text rendering techniques such as proportional fonts, | | normal text rendering techniques such as proportional fonts, | |
| white-space collapsing, and justification. | | white-space collapsing, and justification. | |
| | | | |
| If the value of "type" is "HTML", the content of the Text construct | | If the value of "type" is "HTML", the content of the Text construct | |
| MUST NOT contain child elements, and SHOULD be suitable for handling | | MUST NOT contain child elements, and SHOULD be suitable for handling | |
| by software that knows HTML. The HTML markup must be encoded; for | | by software that knows HTML. The HTML markup must be escaped; for | |
| example, "<br>" as "<br>". The HTML markup SHOULD be such that it | | example, "<br>" as "<br>". The HTML markup SHOULD be such that it | |
| could validly appear directly within an HTML <DIV> element. | | could validly appear directly within an HTML <DIV> element. | |
| Receiving software which displays the content MAY use the markup to | | Receiving software which displays the content MAY use the markup to | |
| aid in displaying it. | | aid in displaying it. | |
| | | | |
| If the value of "type" is "XHTML", the content of the Text construct | | If the value of "type" is "XHTML", the content of the Text construct | |
| MAY contain child elements. The content SHOULD be XHTML text and | | MAY contain child elements. The content SHOULD be XHTML text and | |
| markup that could validly appear directly within an xhtml:div | | markup that could validly appear directly within an xhtml:div | |
| element. Receiving software which displays the content MAY use the | | element. Receiving software which displays the content MAY use the | |
| markup to aid in displaying it. | | markup to aid in displaying it. Escaped markup is interpreted as a | |
| | | text representation of markup, and MUST NOT be interpreted as markup | |
| | | itself. | |
| | | | |
| 3.2 Person Constructs | | 3.2 Person Constructs | |
| | | | |
| A Person construct is an element that describes a person, | | A Person construct is an element that describes a person, | |
| corporation, or similar entity. | | corporation, or similar entity. | |
| | | | |
| Person constructs MAY be extended by namespace-qualified element | | Person constructs MAY be extended by namespace-qualified element | |
| children. | | children. | |
| | | | |
| This specification assigns no significance to the order of appearance | | This specification assigns no significance to the order of appearance | |
| of the child elements of atom:entry. | | of the child elements of a Person construct. | |
| | | | |
| 3.2.1 "atom:name" Element | | 3.2.1 "atom:name" Element | |
| | | | |
| The "atom:name" element's content conveys a human-readable name for | | The "atom:name" element's content conveys a human-readable name for | |
| the person. Person constructs MUST contain exactly one "atom:name" | | the person. Person constructs MUST contain exactly one "atom:name" | |
| element. | | element. | |
| | | | |
| 3.2.2 "atom:uri" Element | | 3.2.2 "atom:uri" Element | |
| | | | |
| The "atom:uri" element's content conveys a URI associated with the | | The "atom:uri" element's content conveys a URI associated with the | |
| person. Person constructs MAY contain an atom:uri element, but MUST | | person. Person constructs MAY contain an atom:uri element, but MUST | |
| NOT contain more than one. The content of atom:uri in a Person | | NOT contain more than one. The content of atom:uri in a Person | |
| construct MUST be a URI [RFC2396]. | | construct MUST be a URI reference [RFC2396bis]. | |
| | | | |
| xml:base [W3C.REC-xmlbase-20010627] processing MUST be applied to the | | xml:base [W3C.REC-xmlbase-20010627] processing MUST be applied to the | |
| atom:uri element's content. | | atom:uri element's content. | |
| | | | |
| 3.2.3 "atom:email" Element | | 3.2.3 "atom:email" Element | |
| | | | |
| The "atom:email" element's content conveys an e-mail address | | The "atom:email" element's content conveys an e-mail address | |
| associated with the persons. Person constructs MAY contain an | | associated with the persons. Person constructs MAY contain an | |
| atom:email element, but MUST NOT contain more than one. Its content | | atom:email element, but MUST NOT contain more than one. Its content | |
| MUST be an e-mail address [RFC2822]. | | MUST be an e-mail address [RFC2822]. | |
| | | | |
| 3.3 Date Constructs | | 3.3 Date Constructs | |
| | | | |
| A Date construct is an element whose content MUST conform to the | | A Date construct is an element whose content MUST conform to the | |
| date-time BNF rule in [RFC3339]. | | date-time BNF rule in [RFC3339]. | |
| | | | |
| 3.4 Service Constructs | | 3.4 Service Constructs | |
| | | | |
| A Service construct is an empty element that conveys the URI of an | | A Service construct is an empty element that conveys the URI of an | |
| Atom Publishing Protocol [Atom-protocol] service associated with an | | Atom Publishing Protocol [Atom-protocol] service associated with an | |
| entry or feed. | | entry or feed. The type of service is identified by the element | |
| | | name. | |
| | | | |
| A Service construct has the following attribute: | | A Service construct has the following attribute: | |
| | | | |
| 3.4.1 "href" Attribute | | 3.4.1 "href" Attribute | |
| | | | |
| The "href" attribute contains the a URI pointing to the endpoint of | | The "href" attribute contains the a URI pointing to the endpoint of | |
| the service named by the name attribute. atom:service elements MUST | | the service named by the name attribute. atom:service elements MUST | |
| have a "href" attribute, whose value MUST be a URI. | | have a "href" attribute, whose value MUST be a URI reference | |
| | | [RFC2396bis]. | |
| | | | |
| xml:base processing MUST be applied to the "href" attribute. | | xml:base processing MUST be applied to the "href" attribute. | |
| | | | |
| 3.5 Link Constructs | | 3.5 Link Constructs | |
| | | | |
| A Link construct is an empty element that describes a connection from | | A Link construct is an empty element that describes a connection from | |
| an Atom document to another Web resource. | | an Atom Document to another Web resource. | |
| | | | |
| 3.5.1 "rel" Attribute | | 3.5.1 "rel" Attribute | |
| | | | |
| The "rel" attribute indicates the type of relationship that the link | | Link constructs MAY have an optional "rel" attribute that indicates | |
| represents. Link constructs MAY have a rel attribute, whose value | | the link relation type. If the "rel" attribute is not present, the | |
| MUST be a string, and MUST be one of the following values: | | link construct MUST be interpreted as if the link relation type is | |
| "alternate", "related". | | "alternate". | |
| | | | |
| If the "rel" attribute is not present, the link element MUST be | | rel_attribute = segment-nz-nc / URI | |
| interpreted as if the value "alternate" had been supplied. | | | |
| | | The value of "rel" MUST be either a name, which is non-empty and does | |
| | | not contain any colon (":") characters, or a URI [RFC2396bis]. Note | |
| | | that use of a relative reference to the "rel" value URI is not | |
| | | allowed. If a name is given, implementations MUST consider the link | |
| | | relation type to be equivalent to the same name registered within the | |
| | | IANA Registry of Link Relations Section 10, and thus the URI that | |
| | | would be obtained by appending the value of the rel attribute to the | |
| | | string "http://www.iana.org/assignments/relation/". The value of | |
| | | "rel" describes the meaning of the link, but does not impose any | |
| | | behavioral requirements on implementations. | |
| | | | |
| | | This document defines two initial values for the Registry of Link | |
| | | Relations: | |
| | | | |
| | | The value "alternate" signifies that the URI in the value of the href | |
| | | attribute identifies an alternate version of the resource described | |
| | | by the containing element. | |
| | | | |
| | | The value "related" signifies that the URI in the value of the href | |
| | | attribute identifies a resource to which the resource described by | |
| | | the containing atom:feed or atom:entry element is related. For | |
| | | example, the feed for a site which discusses the performance of the | |
| | | search engine at "http://search.example.com" might contain, as a | |
| | | child of atom:head: | |
| | | <link rel="related" href="http://search.example.com/"> | |
| | | An identical link might appear as a child of any atom:entry whose | |
| | | content contains a discussion of that same search engine. | |
| | | | |
| 3.5.2 "type" Attribute | | 3.5.2 "type" Attribute | |
| | | | |
| The "type" attribute indicates an advisory media type; it MAY be used | | Link constructs MAY have a type attribute, whose value MUST conform | |
| as a hint to determine the type of the representation which should be | | to the syntax of a MIME media type [RFC2045]. | |
| returned when the URI in the href attribute is dereferenced. Note | | | |
| that the type attribute does not override the actual media type | | | |
| returned with the representation. | | | |
| | | | |
| Link constructs MAY have a type attribute, whose value MUST be a | | The type attribute's value is an advisory media type; it MAY be used | |
| registered media type [RFC2045]. | | as a hint to determine the type of the representation which is | |
| | | expected to be returned when the value of the href attribute is | |
| | | dereferenced. Note that the type attribute does not override the | |
| | | actual media type returned with the representation. | |
| | | | |
| 3.5.3 "href" Attribute | | 3.5.3 "href" Attribute | |
| | | | |
| The "href" attribute contains the link's URI. Link constructs MUST | | The "href" attribute contains the link's URI. Link constructs MUST | |
| have a href attribute, whose value MUST be a URI [RFC2396]. | | have a href attribute, whose value MUST be a URI reference | |
| | | [RFC2396bis]. | |
| | | | |
| xml:base [W3C.REC-xmlbase-20010627] processing MUST be applied to the | | xml:base [W3C.REC-xmlbase-20010627] processing MUST be applied to the | |
| href attribute's content. | | href attribute's content. | |
| | | | |
| 3.5.4 "hreflang" Attribute | | 3.5.4 "hreflang" Attribute | |
| | | | |
| The "hreflang" attribute's content describes the language of the | | The "hreflang" attribute's content describes the language of the | |
| resource pointed to by the href attribute. When used together with | | resource pointed to by the href attribute. When used together with | |
| the rel="alternate", it implies a translated version of the entry. | | the rel="alternate", it implies a translated version of the entry. | |
| Link constructs MAY have an hreflang attribute, whose value MUST be a | | Link constructs MAY have an hreflang attribute, whose value MUST be a | |
| language tag [RFC3066]. | | language tag [RFC3066]. | |
| | | | |
| 3.5.5 "title" Attribute | | 3.5.5 "title" Attribute | |
| | | | |
| The "title" attribute conveys human-readable information about the | | The "title" attribute conveys human-readable information about the | |
| link. Link constructs MAY have a title attribute. | | link. Link constructs MAY have a title attribute. | |
| | | | |
| | | 3.5.6 "length" Attribute | |
| | | | |
| | | The "length" attribute indicates an advisory length of the linked | |
| | | content in octets; it MAY be used as a hint to determine the content | |
| | | length of the representation returned when the URI in the href | |
| | | attribute is dereferenced. Note that the length attribute does not | |
| | | override the actual content length of the representation as reported | |
| | | by the underlying protocol. | |
| | | | |
| | | Link constructs MAY have a length attribute. | |
| | | | |
| 3.6 Identity Constructs | | 3.6 Identity Constructs | |
| | | | |
| An Identity construct is an element whose content conveys a | | An Identity construct is an element whose content conveys a | |
| permanent, universally unique identifier for the construct's parent. | | permanent, universally unique identifier for the construct's parent. | |
| Its content MUST be an absolute URI [RFC2396]. | | Its content MUST be a URI, as defined by [RFC2396bis]. Note that the | |
| | | definition of "URI" excludes relative references. | |
| | | | |
| When an Atom document is relocated, migrated, syndicated, | | When an Atom document is relocated, migrated, syndicated, | |
| republished, exported or imported, the content of its Identity | | republished, exported or imported, the content of its Identity | |
| construct MUST NOT change. Put another way, an Identity construct | | construct MUST NOT change. Put another way, an Identity construct | |
| pertains to all instantiations of a particular Atom entry or feed; | | pertains to all instantiations of a particular Atom entry or feed; | |
| revisions retain the same content in their Identity constructs. | | revisions retain the same content in their Identity constructs. | |
| | | | |
| 3.6.1 Dereferencing Identity Constructs | | 3.6.1 Dereferencing Identity Constructs | |
| | | | |
| The content of an Identity construct MAY be dereferencable (e.g. an | | The content of an Identity construct MAY be dereferencable (e.g. an | |
| | | | |
| skipping to change at page 11, line 48 | | skipping to change at page 12, line 44 | |
| o Only perform percent-encoding where it is essential. | | o Only perform percent-encoding where it is essential. | |
| o Use uppercase A-through-F characters when percent-encoding. | | o Use uppercase A-through-F characters when percent-encoding. | |
| o Prevent dot-segments appearing in paths. | | o Prevent dot-segments appearing in paths. | |
| o For schemes that define a default authority, use an empty | | o For schemes that define a default authority, use an empty | |
| authority if the default is desired. | | authority if the default is desired. | |
| o For schemes that define an empty path to be equivalent to a path | | o For schemes that define an empty path to be equivalent to a path | |
| of "/", use "/". | | of "/", use "/". | |
| o For schemes that define a port, use an empty port if the default | | o For schemes that define a port, use an empty port if the default | |
| is desired. | | is desired. | |
| o Preserve empty fragment identifiers and queries. | | o Preserve empty fragment identifiers and queries. | |
| o Ensure that all portions of the URI are utf-8 encoded NFC form | | o Ensure that all portions of the URI are UTF-8 encoded NFC form | |
| Unicode strings. | | Unicode strings. | |
| | | | |
| 3.6.2 Comparing Identity Constructs | | 3.6.2 Comparing Identity Constructs | |
| | | | |
| Instances of Identity constructs can be compared to determine whether | | Instances of Identity constructs can be compared to determine whether | |
| an entry or feed is the same as one seen before. Processors MUST | | an entry or feed is the same as one seen before. Processors MUST | |
| compare Identity constructs on a character-by-character basis in a | | compare Identity constructs on a character-by-character basis in a | |
| case-sensitive fashion. | | case-sensitive fashion. | |
| | | | |
| As a result, two URIs that resolve to the same resource but are not | | As a result, two URIs that resolve to the same resource but are not | |
| | | | |
| skipping to change at page 13, line 5 | | skipping to change at page 13, line 19 | |
| For example, "http://www.example.org/thing", | | For example, "http://www.example.org/thing", | |
| "http://www.example.org/Thing", "http://www.EXAMPLE.org/thing" and | | "http://www.example.org/Thing", "http://www.EXAMPLE.org/thing" and | |
| "HTTP://www.example.org/thing" will all be considered different | | "HTTP://www.example.org/thing" will all be considered different | |
| identifiers, despite their differences in case. | | identifiers, despite their differences in case. | |
| | | | |
| Likewise, "http://www.example.com/~bob", | | Likewise, "http://www.example.com/~bob", | |
| "http://www.example.com/%7ebob" and "http://www.example.com/%7Ebob" | | "http://www.example.com/%7ebob" and "http://www.example.com/%7Ebob" | |
| will all be considered different identifiers, because URI %-escaping | | will all be considered different identifiers, because URI %-escaping | |
| is significant for the purposes of comparison. | | is significant for the purposes of comparison. | |
| | | | |
| | | 3.7 The Category Construct | |
| | | | |
| | | Category constructs contain information about a category to which an | |
| | | Atom feed or entry is associated. | |
| | | | |
| | | 3.7.1 The "term" Attribute | |
| | | | |
| | | The "term" attribute will be a string which identifies the category | |
| | | within the categorization scheme to which the entry or feed belongs. | |
| | | Category constructs MUST have a "term" attribute. | |
| | | | |
| | | 3.7.2 The "scheme" Attribute | |
| | | | |
| | | The is a URI that identifies a categorization scheme. Category | |
| | | constructs MAY have a "scheme" attribute. | |
| | | | |
| | | 3.7.3 The "label" attribute | |
| | | | |
| | | The "label" attribute provides a human-readable label that may be | |
| | | displayed in end-user applications. Category constructs MAY have a | |
| | | "label" attribute. | |
| | | | |
| 4. The "atom:feed" Element | | 4. The "atom:feed" Element | |
| | | | |
| The "atom:feed" element is the document (i.e., top-level) element of | | The "atom:feed" element is the document (i.e., top-level) element of | |
| an Atom Feed Document, acting as a container for metadata and data | | an Atom Feed Document, acting as a container for metadata and data | |
| associated with the feed. Its first element child MUST be atom:head, | | associated with the feed. Its first element child MUST be atom:head, | |
| which MAY be followed zero or more atom:entry child elements. | | which MAY be followed zero or more atom:entry child elements. | |
| | | | |
| 4.1 "version" Attribute | | 4.1 "version" Attribute | |
| | | | |
| atom:feed elements MUST have a "version" attribute whose content | | atom:feed elements MUST have a "version" attribute whose content | |
| indicates the version of the Atom specification that the feed | | indicates the version of the Atom specification that the feed | |
| conforms to. The content of this attribute is unstructured text. | | conforms to. The content of this attribute is unstructured text. | |
| | | | |
| The version identifier for this specification is | | The version identifier for this specification is | |
| "draft-ietf-atompub-format-03: do not deploy". | | "draft-ietf-atompub-format-04 : do not deploy". | |
| | | | |
| 4.2 The "atom:head" Element | | 4.2 The "atom:head" Element | |
| | | | |
| The atom:head element acts as a container for metadata about the feed | | The atom:head element acts as a container for metadata about the feed | |
| itself. | | itself. | |
| | | | |
| The atom:head element MAY contain any namespace-qualified | | The atom:head element MAY contain any namespace-qualified | |
| [W3C.REC-xml-names-19990114] elements as children. This | | [W3C.REC-xml-names-19990114] elements as children. This | |
| specification assigns no significance to the order of appearance of | | specification assigns no significance to the order of appearance of | |
| the child elements of atom:head. | | the child elements of atom:head. | |
| | | | |
| skipping to change at page 14, line 12 | | skipping to change at page 15, line 12 | |
| with a rel attribute value of "alternate" that has the same type | | with a rel attribute value of "alternate" that has the same type | |
| attribute value. | | attribute value. | |
| | | | |
| If a feed's atom:link element with type="alternate" resolves to an | | If a feed's atom:link element with type="alternate" resolves to an | |
| HTML document, then that document SHOULD have a autodiscovery link | | HTML document, then that document SHOULD have a autodiscovery link | |
| element [Atom-autodiscovery] that reflects back to the feed. | | element [Atom-autodiscovery] that reflects back to the feed. | |
| | | | |
| atom:head elements MAY contain additional atom:link elements beyond | | atom:head elements MAY contain additional atom:link elements beyond | |
| those described above. | | those described above. | |
| | | | |
| 4.2.3 "atom:introspection" Element | | 4.2.3 "atom:category" Element | |
| | | | |
| | | A Category Construct identifying a category with which the feed is | |
| | | associated. atom:head elements MAY contain any number of | |
| | | atom:category elements. | |
| | | | |
| | | 4.2.4 "atom:introspection" Element | |
| | | | |
| The "atom:introspection" element is a Service construct that conveys | | The "atom:introspection" element is a Service construct that conveys | |
| the URI of an introspection file associated with the feed. atom:head | | the URI of an introspection file associated with the feed. atom:head | |
| elements MUST NOT contain more than one atom:introspection element. | | elements MUST NOT contain more than one atom:introspection element. | |
| | | | |
| 4.2.4 "atom:post" Element | | 4.2.5 "atom:post" Element | |
| | | | |
| The "atom:post" element is a Service construct that conveys the URI | | The "atom:post" element is a Service construct that conveys the URI | |
| used to add |