draft-ietf-atompub-format-09.txt   draft-ietf-atompub-format-10.txt 
Network Working Group M. Nottingham, Ed. Network Working Group M. Nottingham, Ed.
Internet-Draft R. Sayre, Ed. Internet-Draft R. Sayre, Ed.
Expires: December 9, 2005 June 07, 2005 Expires: January 12, 2006 July 11, 2005
The Atom Syndication Format The Atom Syndication Format
draft-ietf-atompub-format-09 draft-ietf-atompub-format-10
Status of this Memo Status of this Memo
By submitting this Internet-Draft, each author represents that any By submitting this Internet-Draft, each author represents that any
applicable patent or other IPR claims of which he or she is aware 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 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. aware will be disclosed, in accordance with Section 6 of BCP 79.
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 33 skipping to change at page 1, line 33
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 December 9, 2005. This Internet-Draft will expire on January 12, 2006.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2005). Copyright (C) The Internet Society (2005).
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.
skipping to change at page 2, line 42 skipping to change at page 2, line 42
4.2.7 The "atom:link" Element . . . . . . . . . . . . . . . 24 4.2.7 The "atom:link" Element . . . . . . . . . . . . . . . 24
4.2.8 The "atom:logo" Element . . . . . . . . . . . . . . . 26 4.2.8 The "atom:logo" Element . . . . . . . . . . . . . . . 26
4.2.9 The "atom:published" Element . . . . . . . . . . . . . 26 4.2.9 The "atom:published" Element . . . . . . . . . . . . . 26
4.2.10 The "atom:rights" Element . . . . . . . . . . . . . 26 4.2.10 The "atom:rights" Element . . . . . . . . . . . . . 26
4.2.11 The "atom:source" Element . . . . . . . . . . . . . 27 4.2.11 The "atom:source" Element . . . . . . . . . . . . . 27
4.2.12 The "atom:subtitle" Element . . . . . . . . . . . . 27 4.2.12 The "atom:subtitle" Element . . . . . . . . . . . . 27
4.2.13 The "atom:summary" Element . . . . . . . . . . . . . 28 4.2.13 The "atom:summary" Element . . . . . . . . . . . . . 28
4.2.14 The "atom:title" Element . . . . . . . . . . . . . . 28 4.2.14 The "atom:title" Element . . . . . . . . . . . . . . 28
4.2.15 The "atom:updated" Element . . . . . . . . . . . . . 28 4.2.15 The "atom:updated" Element . . . . . . . . . . . . . 28
5. Securing Atom Documents . . . . . . . . . . . . . . . . . . 29 5. Securing Atom Documents . . . . . . . . . . . . . . . . . . 29
6. Extending Atom . . . . . . . . . . . . . . . . . . . . . . . 30 6. Extending Atom . . . . . . . . . . . . . . . . . . . . . . . 32
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . 32 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . 34
8. Security Considerations . . . . . . . . . . . . . . . . . . 34 8. Security Considerations . . . . . . . . . . . . . . . . . . 36
9. References . . . . . . . . . . . . . . . . . . . . . . . . . 35 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 38
9.1 Normative References . . . . . . . . . . . . . . . . . . . 35 9.1 Normative References . . . . . . . . . . . . . . . . . . . 38
9.2 Informative References . . . . . . . . . . . . . . . . . . 36 9.2 Informative References . . . . . . . . . . . . . . . . . . 39
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 37 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 40
A. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 38 A. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 41
B. RELAX NG Compact Schema . . . . . . . . . . . . . . . . . . 39 B. RELAX NG Compact Schema . . . . . . . . . . . . . . . . . . 42
C. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 47 C. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . 50
Intellectual Property and Copyright Statements . . . . . . . 53 Intellectual Property and Copyright Statements . . . . . . . 56
1. Introduction 1. Introduction
Atom is an XML-based document format that describes lists of related Atom is an XML-based document format that describes lists of related
information known as "feeds". Feeds are composed of a number of information known as "feeds". Feeds are composed of a number of
items, known as "entries", each with an extensible set of attached items, known as "entries", each with an extensible set of attached
metadata. For example, each entry has a title. metadata. 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. directly to user agents.
1.1 Examples 1.1 Examples
A brief, single-entry Atom Feed Document: A brief, single-entry Atom Feed Document:
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://purl.org/atom/ns#draft-ietf-atompub-format-09"> <feed xmlns="http://www.w3.org/2005/Atom">
<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>
<id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id> <id>urn:uuid:60a76c80-d399-11d9-b93C-0003939e0af6</id>
<entry> <entry>
skipping to change at page 4, line 7 skipping to change at page 4, line 7
<link href="http://example.org/2003/12/13/atom03"/> <link href="http://example.org/2003/12/13/atom03"/>
<id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id>
<updated>2003-12-13T18:30:02Z</updated> <updated>2003-12-13T18:30:02Z</updated>
<summary>Some text.</summary> <summary>Some text.</summary>
</entry> </entry>
</feed> </feed>
A more extensive, single-entry Atom Feed Document: A more extensive, single-entry Atom Feed Document:
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://purl.org/atom/ns#draft-ietf-atompub-format-09"> <feed xmlns="http://www.w3.org/2005/Atom">
<title type="text">dive into mark</title> <title type="text">dive into mark</title>
<subtitle type="html"> <subtitle type="html">
A &lt;em&gt;lot&lt;/em&gt; of effort A &lt;em&gt;lot&lt;/em&gt; of effort
went into making this effortless went into making this effortless
</subtitle> </subtitle>
<updated>2005-04-02T12:29:29Z</updated> <updated>2005-07-11T12:29:29Z</updated>
<id>tag:example.org,2003:3</id> <id>tag:example.org,2003:3</id>
<link rel="alternate" type="text/html" <link rel="alternate" type="text/html"
hreflang="en" href="http://example.org/"/> hreflang="en" href="http://example.org/"/>
<link rel="self" type="application/atom+xml"
href="http://example.org/feed.atom"/>
<rights>Copyright (c) 2003, Mark Pilgrim</rights> <rights>Copyright (c) 2003, Mark Pilgrim</rights>
<generator uri="http://www.example.com/" version="1.0"> <generator uri="http://www.example.com/" version="1.0">
Example Toolkit Example Toolkit
</generator> </generator>
<entry> <entry>
<title>Atom draft-07 snapshot</title> <title>Atom draft-07 snapshot</title>
<link rel="alternate" type="text/html" <link rel="alternate" type="text/html"
href="http://example.org/2005/04/02/atom"/> href="http://example.org/2005/04/02/atom"/>
<link rel="enclosure" type="audio/mpeg" length="1337" <link rel="enclosure" type="audio/mpeg" length="1337"
href="http://example.org/audio/ph34r_my_podcast.mp3"/> href="http://example.org/audio/ph34r_my_podcast.mp3"/>
<id>tag:example.org,2003:3.2397</id> <id>tag:example.org,2003:3.2397</id>
<updated>2005-04-02T12:29:29Z</updated> <updated>2005-07-11T12:29:29Z</updated>
<published>2003-12-13T08:29:29-04:00</published> <published>2003-12-13T08:29:29-04:00</published>
<author> <author>
<name>Mark Pilgrim</name> <name>Mark Pilgrim</name>
<uri>http://example.org/</uri> <uri>http://example.org/</uri>
<email>f8dy@example.com</email> <email>f8dy@example.com</email>
</author> </author>
<contributor> <contributor>
<name>Sam Ruby</name> <name>Sam Ruby</name>
</contributor> </contributor>
<contributor> <contributor>
<name>Joe Gregorio</name> <name>Joe Gregorio</name>
</contributor> </contributor>
<content type="xhtml" xml:lang="en" <content type="xhtml" xml:lang="en"
xml:base="http://diveintomark.org/"> xml:base="http://diveintomark.org/">
<div xmlns="http://www.w3.org/1999/xhtml"> <div xmlns="http://www.w3.org/1999/xhtml">
<p><i>[Update: The Atom draft-07 snapshot is out.]</i></p> <p><i>[Update: The Atom draft is finished.]</i></p>
</div> </div>
</content> </content>
</entry> </entry>
</feed> </feed>
1.2 Namespace and Version 1.2 Namespace and Version
The XML Namespaces URI [W3C.REC-xml-names-19990114] for the XML data The XML Namespaces URI [W3C.REC-xml-names-19990114] for the XML data
format described in this specification is: format described in this specification is:
http://purl.org/atom/ns#draft-ietf-atompub-format-09 http://www.w3.org/2005/Atom
[[anchor4: This paragraph to be removed by the RFC Editor. The
namespace here is a temporary one and will be changed when the IESG
approves this document as a standard. At that time, the namespace
will be drawn from W3C URI space. The choice of that namespace will
be coordinated between the IETF and W3C through their respective
liaisons.]]
For convenience, this data format may be referred to as "Atom 1.0". For convenience, this data format may be referred to as "Atom 1.0".
This specification uses "Atom" internally. This specification uses "Atom" internally.
1.3 Notational Conventions 1.3 Notational Conventions
This specification describes conformance in terms of two artifacts; This specification describes conformance in terms of two artifacts;
Atom Feed Documents and Atom Entry documents. Additionally, it Atom Feed Documents and Atom Entry Documents. Additionally, it
places some requirements on Atom Processors. places some requirements on Atom Processors.
This specification uses the namespace prefix "atom:" for the This specification uses the namespace prefix "atom:" for the
Namespace URI identified in section 1.2. above. Note that the choice Namespace URI identified in section 1.2. above. Note that the choice
of namespace prefix is arbitrary and not semantically significant. of namespace prefix is arbitrary and not semantically significant.
Atom is specified using terms from the XML Infoset [W3C.REC-xml- Atom is specified using terms from the XML Infoset [W3C.REC-xml-
infoset-20040204]. However, this specification uses a shorthand for infoset-20040204]. However, this specification uses a shorthand for
two common terms; the phrase "Information Item" is omitted when two common terms; the phrase "Information Item" is omitted when
naming Element Information Items and Attribute Information Items. naming Element Information Items and Attribute Information Items.
skipping to change at page 6, line 17 skipping to change at page 6, line 17
This specification describes two kinds of Atom Documents; Atom Feed This specification describes two kinds of Atom Documents; Atom Feed
Documents and Atom Entry Documents. Documents and Atom Entry Documents.
An Atom Feed Document is a representation of an Atom feed, including An Atom Feed Document is a representation of an Atom feed, including
metadata about the feed, and some or all of the entries associated metadata about the feed, and some or all of the entries associated
with it. Its root is the atom:feed element. with it. Its root is the atom:feed element.
An Atom Entry Document represents exactly one Atom entry, outside of An Atom Entry Document represents exactly one Atom entry, outside of
the context of an Atom feed. Its root is the atom:entry element. the context of an Atom feed. Its root is the atom:entry element.
namespace atom = namespace atom = "http://www.w3.org/2005/Atom"
"http://purl.org/atom/ns#draft-ietf-atompub-format-09"
start = atomFeed | atomEntry start = atomFeed | atomEntry
Both kinds of Atom documents are specified in terms of the XML Both kinds of Atom Documents are specified in terms of the XML
Information Set, serialised as XML 1.0 [W3C.REC-xml-20040204] and Information Set, serialised as XML 1.0 [W3C.REC-xml-20040204] and
identified with the "application/atom+xml" media type. Atom identified with the "application/atom+xml" media type. Atom
Documents MUST be well-formed XML. This specification does not Documents MUST be well-formed XML. This specification does not
define a DTD for Atom Documents, and hence does not require them to define a DTD for Atom Documents, and hence does not require them to
be valid (in the sense used by XML). be valid (in the sense used by XML).
Atom allows the use of IRIs [RFC3987], as well as URIs [RFC3986]. Atom allows the use of IRIs [RFC3987], as well as URIs [RFC3986].
IRIs can easily be converted to URIs. Every URI is an IRI, so any Every URI is an IRI, so any URI can be used where an IRI is needed.
URI can be used where an IRI is needed. When comparing IRIs serving While IRIs must, for many protocols, be mapped to URIs prior to
as atom:id values, they MUST NOT be converted to URIs. dereferencing, they MUST NOT be so mapped for comparison when used in
atom:id. Section 3.1 of [RFC3987] describes how to map an IRI to a
URI when necessary.
Any element defined by this specification MAY have an xml:base Any element defined by this specification MAY have an xml:base
attribute [W3C.REC-xmlbase-20010627]. When xml:base is used in an attribute [W3C.REC-xmlbase-20010627]. When xml:base is used in an
Atom document, it serves the function described in section 5.1.1 of Atom Document, it serves the function described in section 5.1.1 of
[RFC3986], establishing the base URI (or IRI) for resolving any [RFC3986], establishing the base URI (or IRI) for resolving any
relative references found within the effective scope of the xml:base relative references found within the effective scope of the xml:base
attribute. attribute.
Any element defined by this specification MAY have an xml:lang Any element defined by this specification MAY have an xml:lang
attribute, whose content indicates the natural language for the attribute, whose content indicates the natural language for the
element and its descendents. The language context is only element and its descendents. The language context is only
significant for elements and attributes declared to be "Language- significant for elements and attributes declared to be "Language-
Sensitive" by this specification. Requirements regarding the content Sensitive" by this specification. Requirements regarding the content
and interpretation of xml:lang are specified in XML 1.0 [W3C.REC-xml- and interpretation of xml:lang are specified in XML 1.0 [W3C.REC-xml-
skipping to change at page 8, line 37 skipping to change at page 8, line 37
attribute type { "xhtml" }, attribute type { "xhtml" },
xhtmlDiv xhtmlDiv
atomTextConstruct = atomPlainTextConstruct | atomXHTMLTextConstruct atomTextConstruct = atomPlainTextConstruct | atomXHTMLTextConstruct
3.1.1 The "type" Attribute 3.1.1 The "type" Attribute
Text constructs MAY have a "type" attribute. When present, the value Text constructs MAY have a "type" attribute. When present, the value
MUST be one of "text", "html" or "xhtml". If the "type" attribute is MUST be one of "text", "html" or "xhtml". If the "type" attribute is
not provided, Atom Processors MUST behave as though it were present not provided, Atom Processors MUST behave as though it were present
with a value of "text". MIME media types [MIMEREG] MUST NOT be used with a value of "text". Unlike the atom:content element defined in
as values for the "type" attribute. Section 4.1.3, MIME media types [MIMEREG] MUST NOT be used as values
for the "type" attribute on Text constructs.
3.1.1.1 Text 3.1.1.1 Text
Example atom:title with text content: Example atom:title with text content:
... ...
<title type="text"> <title type="text">
Less: &lt; Less: &lt;
</title> </title>
... ...
skipping to change at page 14, line 8 skipping to change at page 14, line 8
o atom:feed elements MAY contain any number of atom:contributor o atom:feed elements MAY contain any number of atom:contributor
elements. elements.
o atom:feed elements MUST NOT contain more than one atom:generator o atom:feed elements MUST NOT contain more than one atom:generator
element. element.
o atom:feed elements MUST NOT contain more than one atom:icon o atom:feed elements MUST NOT contain more than one atom:icon
element. element.
o atom:feed elements MUST NOT contain more than one atom:image o atom:feed elements MUST NOT contain more than one atom:logo
element. element.
o atom:feed elements MUST contain exactly one atom:id element. o atom:feed elements MUST contain exactly one atom:id element.
o atom:feed elements SHOULD contain one atom:link element with a rel o atom:feed elements SHOULD contain one atom:link element with a rel
attribute value of "self". This is the preferred URI for attribute value of "self". This is the preferred URI for
retrieving Atom Feed Documents representing this Atom feed. retrieving Atom Feed Documents representing this Atom feed.
o atom:feed elements MUST NOT contain more than one atom:link o atom:feed elements MUST NOT contain more than one atom:link
element with a rel attribute value of "alternate" that has the element with a rel attribute value of "alternate" that has the
same type attribute value. atom:feed elements MAY contain same combination of type and hreflang attribute values.
additional atom:link elements beyond those described above.
o atom:feed elements MAY contain additional atom:link elements
beyond those described above.
o atom:feed elements MUST NOT contain more than one atom:rights o atom:feed elements MUST NOT contain more than one atom:rights
element. element.
o atom:feed elements MUST NOT contain more than one atom:subtitle o atom:feed elements MUST NOT contain more than one atom:subtitle
element. element.
o atom:feed elements MUST contain exactly one atom:title element. o atom:feed elements MUST contain exactly one atom:title element.
o atom:feed elements MUST contain exactly one atom:updated element. o atom:feed elements MUST contain exactly one atom:updated element.
skipping to change at page 16, line 39 skipping to change at page 16, line 41
attribute (and is thus empty). attribute (and is thus empty).
* the atom:entry contains content that is encoded in Base64; i.e. * the atom:entry contains content that is encoded in Base64; i.e.
the "type" attribute of atom:content is a MIME media type the "type" attribute of atom:content is a MIME media type
[MIMEREG], but is not an XML media type [RFC3023], does not [MIMEREG], but is not an XML media type [RFC3023], does not
begin with "text/", and does not end with "/xml" or "+xml". begin with "text/", and does not end with "/xml" or "+xml".
o atom:entry elements MUST NOT contain more than one atom:summary o atom:entry elements MUST NOT contain more than one atom:summary
element. element.
o atom:entry elements MUST have exactly one "atom:title" element. o atom:entry elements MUST contain exactly one atom:title element.
o atom:entry elements MUST contain exactly one atom:updated element. o atom:entry elements MUST contain exactly one atom:updated element.
4.1.3 The "atom:content" Element 4.1.3 The "atom:content" Element
The "atom:content" element either contains or links to the content of The "atom:content" element either contains or links to the content of
the entry. The content of atom:content is Language-Sensitive. the entry. The content of atom:content is Language-Sensitive.
atomInlineTextContent = atomInlineTextContent =
element atom:content { element atom:content {
skipping to change at page 17, line 47 skipping to change at page 17, line 47
} }
atomContent = atomInlineTextContent atomContent = atomInlineTextContent
| atomInlineXHTMLContent | atomInlineXHTMLContent
| atomInlineOtherContent | atomInlineOtherContent
| atomOutOfLineContent | atomOutOfLineContent
4.1.3.1 The "type" attribute 4.1.3.1 The "type" attribute
On the atom:content element, the value of the "type" attribute MAY be On the atom:content element, the value of the "type" attribute MAY be
one of "text", "html", or "xhtml". Failing that, it MUST be a MIME one of "text", "html", or "xhtml". Failing that, it MUST conform to
media type, but MUST NOT be a composite type (see Section 4.2.6 of the syntax of a MIME media type, but MUST NOT be a composite type
[MIMEREG]). If the type attribute is not provided, Atom Processors (see Section 4.2.6 of [MIMEREG]). If the type attribute is not
MUST behave as though it were present with a value of "text". provided, Atom Processors MUST behave as though it were present with
a value of "text".
4.1.3.2 The "src" attribute 4.1.3.2 The "src" attribute
atom:content MAY have a "src" attribute, whose value MUST be an IRI atom:content MAY have a "src" attribute, whose value MUST be an IRI
reference [RFC3987]. If the "src" attribute is present, atom:content reference [RFC3987]. If the "src" attribute is present, atom:content
MUST be empty. Atom Processors MAY use the IRI to retrieve the MUST be empty. Atom Processors MAY use the IRI to retrieve the
content, and MAY NOT process or present remote content in the same content, and MAY chose to ignore remote content or present it in a
manner as local content. different manner than local content.
If the "src" attribute is present, the "type" attribute SHOULD be If the "src" attribute is present, the "type" attribute SHOULD be
provided and MUST be a MIME media type [MIMEREG], rather than "text", provided and MUST be a MIME media type [MIMEREG], rather than "text",
"html", or "xhtml". The value is advisory; that is to say, upon "html", or "xhtml". The value is advisory; that is to say, when the
dereferencing the IRI to retrieve the content, if the server corresponding URI (mapped from an IRI, if necessary), is
providing that content also provides a media type, the server- dereferenced, if the server providing that content also provides a
provided media type is authoritative. media type, the server-provided media type is authoritative.
4.1.3.3 Processing Model 4.1.3.3 Processing Model
Atom Documents MUST conform to the following rules. Atom Processors Atom Documents MUST conform to the following rules. Atom Processors
MUST interpret atom:content according to the first applicable rule. MUST interpret atom:content according to the first applicable rule.
1. If the value of "type" is "text", the content of atom:content 1. If the value of "type" is "text", the content of atom:content
MUST NOT contain child elements. Such text is intended to be MUST NOT contain child elements. Such text is intended to be
presented to humans in a readable fashion. Thus, Atom Processors presented to humans in a readable fashion. Thus, Atom Processors
MAY collapse white-space (including line-breaks), and display the MAY collapse white-space (including line-breaks), and display the
skipping to change at page 20, line 51 skipping to change at page 20, line 51
4.2.2.2 The "scheme" Attribute 4.2.2.2 The "scheme" Attribute
The "scheme" attribute is an IRI that identifies a categorization The "scheme" attribute is an IRI that identifies a categorization
scheme. Category elements MAY have a "scheme" attribute. scheme. Category elements MAY have a "scheme" attribute.
4.2.2.3 The "label" attribute 4.2.2.3 The "label" attribute
The "label" attribute provides a human-readable label for display in The "label" attribute provides a human-readable label for display in
end-user applications. The content of the "label" attribute is end-user applications. The content of the "label" attribute is
Language-Sensitive. Category elements MAY have a "label" attribute. Language-Sensitive. Entities such as "&amp;" and "&lt;" represent
their corresponding characters ("&" and "<" respectively), not
markup. Category elements MAY have a "label" attribute.
4.2.3 The "atom:contributor" Element 4.2.3 The "atom:contributor" Element
The "atom:contributor" element is a Person construct that indicates a The "atom:contributor" element is a Person construct that indicates a
person or other entity who contributed to the entry or feed. person or other entity who contributed to the entry or feed.
atomContributor = element atom:contributor { atomPersonConstruct } atomContributor = element atom:contributor { atomPersonConstruct }
4.2.4 The "atom:generator" Element 4.2.4 The "atom:generator" Element
skipping to change at page 21, line 25 skipping to change at page 21, line 26
generate a feed, for debugging and other purposes. generate a feed, for debugging and other purposes.
atomGenerator = element atom:generator { atomGenerator = element atom:generator {
atomCommonAttributes, atomCommonAttributes,
attribute uri { atomUri }?, attribute uri { atomUri }?,
attribute version { text }?, attribute version { text }?,
text text
} }
The content of this element, when present, MUST be a string that is a The content of this element, when present, MUST be a string that is a
human-readable name for the generating agent. human-readable name for the generating agent. Entities such as
"&amp;" and "&lt;" represent their corresponding characters ("&" and
"<" respectively), not markup.
The atom:generator element MAY have a "uri" attribute whose value The atom:generator element MAY have a "uri" attribute whose value
MUST be an IRI reference [RFC3987]. When dereferenced, that IRI MUST be an IRI reference [RFC3987]. When dereferenced, the resulting
SHOULD produce a representation that is relevant to that agent. URI (mapped from an IRI, if necessary) SHOULD produce a
representation that is relevant to that agent.
The atom:generator element MAY have a "version" attribute that The atom:generator element MAY have a "version" attribute that
indicates the version of the generating agent. indicates the version of the generating agent.
4.2.5 The "atom:icon" Element 4.2.5 The "atom:icon" Element
The "atom:icon" element's content is an IRI reference [RFC3987] which The "atom:icon" element's content is an IRI reference [RFC3987] which
identifies an image which provides iconic visual identification for a identifies an image which provides iconic visual identification for a
feed. feed.
skipping to change at page 22, line 20 skipping to change at page 22, line 20
atomId = element atom:id { atomId = element atom:id {
atomCommonAttributes, atomCommonAttributes,
(atomUri) (atomUri)
} }
Its content MUST be an IRI, as defined by [RFC3987]. Note that the Its content MUST be an IRI, as defined by [RFC3987]. Note that the
definition of "IRI" excludes relative references. Though the IRI definition of "IRI" excludes relative references. Though the IRI
might use a dereferencable scheme, Atom Processors MUST NOT assume it might use a dereferencable scheme, Atom Processors MUST NOT assume it
can be dereferenced. can be dereferenced.
When an Atom document is relocated, migrated, syndicated, When an Atom Document is relocated, migrated, syndicated,
republished, exported or imported, the content of its atom:id element republished, exported or imported, the content of its atom:id element
MUST NOT change. Put another way, an atom:id element pertains to all MUST NOT change. Put another way, an atom:id element pertains to all
instantiations of a particular Atom entry or feed; revisions retain instantiations of a particular Atom entry or feed; revisions retain
the same content in their atom:id elements. It is suggested that the the same content in their atom:id elements. It is suggested that the
atom:id element be stored along with the associated resource. atom:id element be stored along with the associated resource.
The content of an atom:id element MUST be created in a way that The content of an atom:id element MUST be created in a way that
assures uniqueness. assures uniqueness.
Because of the risk of confusion between IRIs that would be Because of the risk of confusion between IRIs that would be
equivalent if dereferenced, the following normalization strategy equivalent if mapped to URIs and dereferenced, the following
SHOULD be applied when generating atom:id elements: normalization strategy SHOULD be applied when generating atom:id
elements:
o Provide the scheme in lowercase characters. o Provide the scheme in lowercase characters.
o Provide the host, if any, in lowercase characters. o Provide the host, if any, in lowercase characters.
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.
skipping to change at page 23, line 17 skipping to change at page 23, line 17
o Ensure that all components of the IRI are appropriately character- o Ensure that all components of the IRI are appropriately character-
normalized, e.g. by using NFC or NFKC. normalized, e.g. by using NFC or NFKC.
4.2.6.1 Comparing atom:id 4.2.6.1 Comparing atom:id
Instances of atom:id elements can be compared to determine whether an Instances of atom:id elements can be compared to determine whether an
entry or feed is the same as one seen before. Processors MUST entry or feed is the same as one seen before. Processors MUST
compare atom:id elements on a character-by-character basis (in a compare atom:id elements on a character-by-character basis (in a
case-sensitive fashion). Comparison operations MUST be based solely case-sensitive fashion). Comparison operations MUST be based solely
on the IRI character strings, and MUST NOT rely on dereferencing the on the IRI character strings, and MUST NOT rely on dereferencing the
IRIs. IRIs or URIs mapped from them.
As a result, two IRIs that resolve to the same resource but are not As a result, two IRIs that resolve to the same resource but are not
character-for-character identical will be considered different for character-for-character identical will be considered different for
the purposes of identifier comparison. the purposes of identifier comparison.
For example, these are four distinct identifiers, despite the fact For example, these are four distinct identifiers, despite the fact
that they differ only in case: that they differ only in case:
http://www.example.org/thing http://www.example.org/thing
skipping to change at page 24, line 36 skipping to change at page 24, line 36
have a href attribute, whose value MUST be a IRI reference [RFC3987]. have a href attribute, whose value MUST be a IRI reference [RFC3987].
4.2.7.2 The "rel" Attribute 4.2.7.2 The "rel" Attribute
atom:link elements MAY have a "rel" attribute that indicates the link atom:link elements MAY have a "rel" attribute that indicates the link
relation type. If the "rel" attribute is not present, the link relation type. If the "rel" attribute is not present, the link
element MUST be interpreted as if the link relation type is element MUST be interpreted as if the link relation type is
"alternate". "alternate".
The value of "rel" MUST be a string that is non-empty, and matches The value of "rel" MUST be a string that is non-empty, and matches
the "isegment-nz-nc" or "IRI" production in [RFC3987]. Note that use either the "isegment-nz-nc" or the "IRI" production in [RFC3987].
of a relative reference is not allowed. If a name is given, Note that use of a relative reference other than a simple name is not
implementations MUST consider the link relation type to be equivalent allowed. If a name is given, implementations MUST consider the link
to the same name registered within the IANA Registry of Link relation type to be equivalent to the same name registered within the
Relations Section 7, and thus the IRI that would be obtained by IANA Registry of Link Relations Section 7, and thus the IRI that
appending the value of the rel attribute to the string would be obtained by appending the value of the rel attribute to the
"http://www.iana.org/assignments/relation/". The value of "rel" string "http://www.iana.org/assignments/relation/". The value of
describes the meaning of the link, but does not impose any behavioral "rel" describes the meaning of the link, but does not impose any
requirements on Atom Processors. behavioral requirements on Atom Processors.
This document defines five initial values for the Registry of Link This document defines five initial values for the Registry of Link
Relations: Relations:
1. The value "alternate" signifies that the IRI in the value of the 1. The value "alternate" signifies that the IRI in the value of the
href attribute identifies an alternate version of the resource href attribute identifies an alternate version of the resource
described by the containing element. described by the containing element.
2. The value "related" signifies that the IRI in the value of the 2. The value "related" signifies that the IRI in the value of the
href attribute identifies a resource related to the resource href attribute identifies a resource related to the resource
skipping to change at page 26, line 5 skipping to change at page 26, line 5
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 elements MAY have an hreflang attribute, whose value MUST be a Link elements MAY have an hreflang attribute, whose value MUST be a
language tag [RFC3066]. language tag [RFC3066].
4.2.7.5 The "title" Attribute 4.2.7.5 The "title" Attribute
The "title" attribute conveys human-readable information about the The "title" attribute conveys human-readable information about the
link. The content of the "title" attribute is Language-Sensitive. link. The content of the "title" attribute is Language-Sensitive.
Link elements MAY have a title attribute. Entities such as "&amp;" and "&lt;" represent their corresponding
characters ("&" and "<" respectively), not markup. Link elements MAY
have a title attribute.
4.2.7.6 The "length" Attribute 4.2.7.6 The "length" Attribute
The "length" attribute indicates an advisory length of the linked The "length" attribute indicates an advisory length of the linked
content in octets; it is a hint about the content length of the content in octets; it is a hint about the content length of the
representation returned when the IRI in the href attribute is representation returned when the IRI in the href attribute is mapped
dereferenced. Note that the length attribute does not override the to a URI and dereferenced. Note that the length attribute does not
actual content length of the representation as reported by the override the actual content length of the representation as reported
underlying protocol. Link elements MAY have a length attribute. by the underlying protocol. Link elements MAY have a length
attribute.
4.2.8 The "atom:logo" Element 4.2.8 The "atom:logo" Element
The "atom:logo" element's content is an IRI reference [RFC3987] which The "atom:logo" element's content is an IRI reference [RFC3987] which
identifies an image which provides visual identification for a feed. identifies an image which provides visual identification for a feed.
atomLogo = element atom:logo { atomLogo = element atom:logo {
atomCommonAttributes, atomCommonAttributes,
(atomUri) (atomUri)
} }
skipping to change at page 29, line 10 skipping to change at page 29, line 10
atomUpdated = element atom:updated { atomDateConstruct } atomUpdated = element atom:updated { atomDateConstruct }
Publishers MAY change the value of this element over time. Publishers MAY change the value of this element over time.
5. Securing Atom Documents 5. Securing Atom Documents
Because Atom is an XML-based format, existing XML security mechanisms Because Atom is an XML-based format, existing XML security mechanisms
can be used to secure its content. can be used to secure its content.
Producers of feeds and/or entries, and intermediaries who aggregate
feeds and/or entries, may have sound reasons for signing and/or
encrypting otherwise-unprotected content. For example, a merchant
might digitally sign a message that contains a discount coupon for
its products. A bank that uses Atom to deliver customer statements
is very likely to want to sign and encrypt those messages to protect
their customers' financial information and to assure the customer of
their authenticity. Intermediaries may want to encrypt aggregated
feeds so that a passive observer cannot tell what topics the
recipient is interested in. Of course, many other examples exist as
well.
The algorithm requirements in this section pertain to the Atom
Processor. They require that a recipient, at a minimum, be able to
handle messages that use the specified cryptographic algorithms.
These requirements do not limit the algorithms that the sender can
choose.
5.1 Digital Signatures 5.1 Digital Signatures
The root of an Atom document (i.e., atom:feed in an Atom Feed The root of an Atom Document (i.e., atom:feed in an Atom Feed
Document, atom:entry in an Atom Entry Document) MAY have an Enveloped Document, atom:entry in an Atom Entry Document), or any atom:entry
Signature, as described by XML-Signature and Syntax Processing element, MAY have an Enveloped Signature, as described by XML-
[W3C.REC-xmldsig-core-20020212]. Signature and Syntax Processing [W3C.REC-xmldsig-core-20020212].
Atom Processors MUST NOT reject an Atom Document containing such a Atom Processors MUST NOT reject an Atom Document containing such a
signature because they are not capable of verifying it; they MUST signature because they are not capable of verifying it; they MUST
continue processing and MAY inform the user of their failure to continue processing and MAY inform the user of their failure to
validate the signature. validate the signature.
In other words, the presence of an element with the namespace URI In other words, the presence of an element with the namespace URI
"http://www.w3.org/2000/09/xmldsig#" and a local name of "Signature" "http://www.w3.org/2000/09/xmldsig#" and a local name of "Signature"
as a child of the document element MUST NOT cause an Atom Processor as a child of the document element MUST NOT cause an Atom Processor
to fail merely because of its presence. to fail merely because of its presence.
Other elements in an Atom Document MUST NOT be signed unless their Other elements in an Atom Document MUST NOT be signed unless their
definitions explicitly specify such a capability. definitions explicitly specify such a capability.
Section 6.5.1 of [W3C.REC-xmldsig-core-20020212] requires support for
Canonical XML [W3C.REC-xml-c14n-20010315]. However, many
implementers do not use it because signed XML documents enclosed in
other XML documents have their signatures broken. Thus, Atom
Processors that verify signed Atom Documents MUST be able to
canonicalize with the exclusive XML canonicalization method
identified by the URI "http://www.w3.org/2001/10/xml-exc-c14n#", as
specified in Exclusive XML Canonicalization [W3C.REC-xml-exc-c14n-
20020718].
Intermediaries such as aggregators may need to add an atom:source
element to an entry that does not contain its own atom:source
element. If such an entry is signed, the addition will break the
signature. Thus, a publisher of individually-signed entries should
strongly consider adding an atom:source element to those entries
before signing them. Implementors should also be aware of the issues
concerning the use of markup in the "xml:" namespace as it interacts
with canonicalization.
Section 4.4.2 of [W3C.REC-xmldsig-core-20020212] requires support for
DSA signatures and recommends support for RSA signatures. However,
because of the much greater popularity in the market of RSA versus
DSA, Atom Processors that verify signed Atom Documents MUST be able
to verify RSA signatures, but do not need be able to verify DSA
signatures. Due to security issues that can arise if the keying
material for MAC (message authentication code) authentication is not
handled properly, Atom Documents SHOULD NOT use MACs for signatures.
5.2 Encryption 5.2 Encryption
The root of an Atom Document (i.e., atom:feed in an Atom Feed The root of an Atom Document (i.e., atom:feed in an Atom Feed
Document, atom:entry in an Atom Entry Document) MAY be encrypted, Document, atom:entry in an Atom Entry Document) MAY be encrypted,
using the mechanisms described by XML Encryption Syntax and using the mechanisms described by XML Encryption Syntax and
Processing [W3C.REC-xmlenc-core-20021210]. Processing [W3C.REC-xmlenc-core-20021210].
Section 5.1 of [W3C.REC-xmlenc-core-20021210] requires support of
TripleDES, AES-128, and AES-256. Atom Processors that decrypt Atom
Documents MUST be able to decrypt with AES-128 in CBC mode.
Encryption based on [W3C.REC-xmlenc-core-20021210] does not assure
integrity of the original document. There are known cryptographic
attacks where someone who cannot decrypt a message can still change
bits in a way where part or all the decrypted message makes sense but
has a different meaning. Thus, Atom Processors that decrypt Atom
Documents SHOULD check the integrity of the decrypted document by
verifying the hash in the signature (if any) in the document, or by
verifying a hash of the document within the document (if any).
5.3 Signing and Encrypting
When an Atom Document is to be both signed and encrypted, it is
generally a good idea to first sign the document, then encrypt the
signed document. This provides integrity to the base document while
encrypting all the information, including the identity of the entity
that signed the document. Note that, if MACs are used for
authentication, the order MUST be that the signed document is
encrypted, and not the other way around.
6. Extending Atom 6. Extending Atom
6.1 Extensions From Non-Atom Vocabularies 6.1 Extensions From Non-Atom Vocabularies
This specification describes Atom's XML markup vocabulary. Markup This specification describes Atom's XML markup vocabulary. Markup
from other vocabularies ("foreign markup") can be used in an Atom from other vocabularies ("foreign markup") can be used in an Atom
document. Note that the atom:content element is designed to support Document. Note that the atom:content element is designed to support
the inclusion of arbitrary foreign markup. the inclusion of arbitrary foreign markup.
6.2 Extensions To the Atom Vocabulary 6.2 Extensions To the Atom Vocabulary
Future versions of this specification could add new elements and Future versions of this specification could add new elements and
attributes to the Atom markup vocabulary. Software written to attributes to the Atom markup vocabulary. Software written to
conform to this version of the specification will not be able to conform to this version of the specification will not be able to
process such markup correctly and, in fact, will not be able to process such markup correctly and, in fact, will not be able to
distinguish it from markup error. For the purposes of this distinguish it from markup error. For the purposes of this
discussion, unrecognized markup from the Atom vocabulary will be discussion, unrecognized markup from the Atom vocabulary will be
skipping to change at page 34, line 14 skipping to change at page 36, line 14
8. Security Considerations 8. Security Considerations
8.1 HTML and XHTML Content 8.1 HTML and XHTML Content
Text constructs and atom:content allow the delivery of HTML and Text constructs and atom:content allow the delivery of HTML and
XHTML. Many elements in these languages are considered 'unsafe' in XHTML. Many elements in these languages are considered 'unsafe' in
that they open clients to one or more types of attack. Implementers that they open clients to one or more types of attack. Implementers
of software which processes Atom should carefully consider their of software which processes Atom should carefully consider their
handling of every type of element when processing incoming (X)HTML in handling of every type of element when processing incoming (X)HTML in
Atom documents. See the security sections of [RFC2854] and [HTML] Atom Documents. See the security sections of [RFC2854] and [HTML]
for guidance. for guidance.
Atom Processors should pay particular attention to the security of Atom Processors should pay particular attention to the security of
the IMG, SCRIPT, EMBED, OBJECT, FRAME, FRAMESET, IFRAME, META, and the IMG, SCRIPT, EMBED, OBJECT, FRAME, FRAMESET, IFRAME, META, and
LINK elements, but other elements might also have negative security LINK elements, but other elements might also have negative security
properties. properties.
(X)HTML can either directly contain or indirectly reference (X)HTML can either directly contain or indirectly reference
executable content. executable content.
skipping to change at page 34, line 47 skipping to change at page 36, line 47
an entry from another feed, perhaps with a falsified atom:source an entry from another feed, perhaps with a falsified atom:source
element duplicating the atom:id of the other feed. For example, an element duplicating the atom:id of the other feed. For example, an
Atom Processor could suppress display of duplicate entries by Atom Processor could suppress display of duplicate entries by
displaying only one entry from a set of entries with identical displaying only one entry from a set of entries with identical
atom:id values. In that situation, the Atom Processor might also atom:id values. In that situation, the Atom Processor might also
take steps to determine whether the entries originated from the same take steps to determine whether the entries originated from the same
publisher before considering them to be duplicates. publisher before considering them to be duplicates.
8.5 Encryption and Signing 8.5 Encryption and Signing
Atom documents can be encrypted and signed using [W3C.REC-xmlenc- Atom Documents can be encrypted and signed using [W3C.REC-xmlenc-
core-20021210] and [W3C.REC-xmldsig-core-20020212], respectively, and core-20021210] and [W3C.REC-xmldsig-core-20020212], respectively, and
are subject to the security considerations implied by their use. are subject to the security considerations implied by their use.
Digital signatures provide authentication, message integrity, and
non-repudiation with proof of origin. Encryption provides data
confidentiality.
9. References 9. References
9.1 Normative References 9.1 Normative References
[HTML] Raggett, D., Hors, A., and I. Jacobs, "HTML 4.01 [HTML] Raggett, D., Hors, A., and I. Jacobs, "HTML 4.01
Specification", W3C REC REC-html401-19991224, Specification", W3C REC REC-html401-19991224,
December 1999, December 1999,
<http://www.w3.org/TR/1999/REC-html401-19991224>. <http://www.w3.org/TR/1999/REC-html401-19991224>.
[MIMEREG] Freed, N. and J. Klensin, "Media Type Specifications and [MIMEREG] Freed, N. and J. Klensin, "Media Type Specifications and
skipping to change at page 35, line 52 skipping to change at page 38, line 52
[RFC3987] Duerst, M. and M. Suignard, "Internationalized Resource [RFC3987] Duerst, M. and M. Suignard, "Internationalized Resource
Identifiers (IRIs)", RFC 3987, January 2005. Identifiers (IRIs)", RFC 3987, January 2005.
[W3C.REC-xml-20040204] [W3C.REC-xml-20040204]
Yergeau, F., Paoli, J., Sperberg-McQueen, C., Bray, T., Yergeau, F., Paoli, J., Sperberg-McQueen, C., Bray, T.,
and E. Maler, "Extensible Markup Language (XML) 1.0 (Third and E. Maler, "Extensible Markup Language (XML) 1.0 (Third
Edition)", W3C REC REC-xml-20040204, February 2004, Edition)", W3C REC REC-xml-20040204, February 2004,
<http://www.w3.org/TR/2004/REC-xml-2004020>. <http://www.w3.org/TR/2004/REC-xml-2004020>.
[W3C.REC-xml-c14n-20010315]
Boyer, J., "Canonical XML Version 1.0", W3C REC REC-xml-
c14n-20010315, March 2001,
<http://www.w3.org/TR/2001/REC-xml-c14n-20010315>.
[W3C.REC-xml-exc-c14n-20020718]
Eastlake, D., Boyer, J., and J. Reagle, "Exclusive XML
Canonicalization Version 1.0", W3C REC REC-xml-exc-c14n-
20020718, July 2002,
<http://www.w3.org/TR/2002/REC-xml-exc-c14n-20020718>.
[W3C.REC-xml-infoset-20040204] [W3C.REC-xml-infoset-20040204]
Cowan, J. and R. Tobin, "XML Information Set (Second Cowan, J. and R. Tobin, "XML Information Set (Second
Edition)", W3C REC REC-xml-infoset-20040204, Edition)", W3C REC REC-xml-infoset-20040204,
February 2004, February 2004,
<http://www.w3.org/TR/2004/REC-xml-infoset-20040204>. <http://www.w3.org/TR/2004/REC-xml-infoset-20040204>.
[W3C.REC-xml-names-19990114] [W3C.REC-xml-names-19990114]
Hollander, D., Bray, T., and A. Layman, "Namespaces in Hollander, D., Bray, T., and A. Layman, "Namespaces in
XML", W3C REC REC-xml-names-19990114, January 1999, XML", W3C REC REC-xml-names-19990114, January 1999,
<http://www.w3.org/TR/1999/REC-xml-names-19990114>. <http://www.w3.org/TR/1999/REC-xml-names-19990114>.
skipping to change at page 38, line 10 skipping to change at page 41, line 10
Robert Sayre (editor) Robert Sayre (editor)
Email: rfsayre@boswijck.com Email: rfsayre@boswijck.com
URI: http://boswijck.com URI: http://boswijck.com
Appendix A. Contributors Appendix A. Contributors
The following people contributed to preliminary drafts of this The following people contributed to preliminary drafts of this
document: Tim Bray, Mark Pilgrim, and Sam Ruby. Norman Walsh document: Tim Bray, Mark Pilgrim, and Sam Ruby. Norman Walsh
provided the Relax NG schema. The content and concepts within are a provided the Relax NG schema. The content and concepts within are a
product of the Atom community and the Atom Publishing Format and product of the Atom community and the Atompub Working Group.
Protocol Working Group.
The Atompub Working Group has dozens of very active contributors who
proposed ideas and wording for this document, including:
Danny Ayers, James Aylett, Roger Benningfield, Arve Bersvendsen, Tim
Bray, Dan Brickley, Thomas Broyer, Robin Cover, Bill de hOra, Martin
Duerst, Roy Fielding, Joe Gregorio, Bjoern Hoehrmann, Paul Hoffman,
Anne van Kesteren, Brett Lindsley, Dare Obasanjo, David Orchard,
Aristotle Pagaltzis, John Panzer, Graham Parks, Dave Pawson, Mark
Pilgrim, David Powell, Julian Reschke, Phil Ringnalda, Antone Roundy,
Sam Ruby, Eric Scheid, Brent Simmons, Henri Sivonen, Ray Slakinski,
James Snell, Henry Story, Asbjorn Ulsberg, Walter Underwood, Norman
Walsh, Dave Winer, and Bob Wyman.
Appendix B. RELAX NG Compact Schema Appendix B. RELAX NG Compact Schema
This appendix is informative. This appendix is informative.
The schema below validates the XML document format defined by this
specification. Updates to this specification could add markup in the
Atom namespace in a manner that is invalid according to the schema
below. Requirements for Atom Processors encountering such markup are
given in Section 6.2 and Section 6.3.
# -*- rnc -*- # -*- rnc -*-
# RELAX NG Compact Syntax Grammar for the # RELAX NG Compact Syntax Grammar for the
# Atom Format Specification Version 09 # Atom Format Specification Version 09
namespace atom = namespace atom = "http://www.w3.org/2005/Atom"
"http://purl.org/atom/ns#draft-ietf-atompub-format-09"
namespace xhtml = "http://www.w3.org/1999/xhtml" namespace xhtml = "http://www.w3.org/1999/xhtml"
namespace s = "http://www.ascc.net/xml/schematron" namespace s = "http://www.ascc.net/xml/schematron"
namespace local = "" namespace local = ""
start = atomFeed | atomEntry start = atomFeed | atomEntry
# Common attributes # Common attributes
atomCommonAttributes = atomCommonAttributes =
attribute xml:base { atomUri }?, attribute xml:base { atomUri }?,
skipping to change at page 47, line 7 skipping to change at page 50, line 7
xhtmlDiv = element xhtml:div { xhtmlDiv = element xhtml:div {
(attribute * { text } (attribute * { text }
| text | text
| anyXHTML)* | anyXHTML)*
} }
# EOF # EOF
Appendix C. Change Log Appendix C. Change Log
[[anchor72: This section should be removed before final [[anchor69: This section should be removed before final
publication.]] publication.]]
-10: capitalize "Atom Document" consistently.
fix atom:feed/atom:logo
fix link hreflang/alternate in atom:feed
Add more acknowledgements
Expand security section
Clarify IRI processing
-09: Changed atom:copyright to atom:rights. -09: Changed atom:copyright to atom:rights.
Clarify atom:source, also reflect changes to atom:feed Clarify atom:source, also reflect changes to atom:feed
Change 'minimal' to brief (PaceBriefExample). Change 'minimal' to brief (PaceBriefExample).
Add text about "Atom 1.0" (PaceAtom10). Add text about "Atom 1.0" (PaceAtom10).
Remove SHOULD about content@src. Remove SHOULD about content@src.
 End of changes. 

This html diff was produced by rfcdiff 1.25, available from http://www.levkowetz.com/ietf/tools/rfcdiff/