idnits 2.17.1
draft-ietf-atompub-format-01.txt:
Checking boilerplate required by RFC 5378 and the IETF Trust (see
https://trustee.ietf.org/license-info):
----------------------------------------------------------------------------
** It looks like you're using RFC 3978 boilerplate. You should update this
to the boilerplate described in the IETF Trust License Policy document
(see https://trustee.ietf.org/license-info), which is required now.
-- Found old boilerplate from RFC 3667, Section 5.1 on line 13.
-- Found old boilerplate from RFC 3978, Section 5.5 on line 866.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 1 on line 843.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 2 on line 850.
-- Found old boilerplate from RFC 3979, Section 5, paragraph 3 on line 856.
** Found boilerplate matching RFC 3978, Section 5.4, paragraph 1 (on line
872), which is fine, but *also* found old RFC 2026, Section 10.4C,
paragraph 1 text on line 35.
** The document seems to lack an RFC 3978 Section 5.1 IPR Disclosure
Acknowledgement -- however, there's a paragraph with a matching
beginning. Boilerplate error?
** This document has an original RFC 3978 Section 5.4 Copyright Line,
instead of the newer IETF Trust Copyright according to RFC 4748.
** This document has an original RFC 3978 Section 5.5 Disclaimer, instead
of the newer disclaimer which includes the IETF Trust according to RFC
4748.
** The document uses RFC 3667 boilerplate or RFC 3978-like boilerplate
instead of verbatim RFC 3978 boilerplate. After 6 May 2005, submission
of drafts without verbatim RFC 3978 boilerplate is not accepted.
The following non-3978 patterns matched text found in the document.
That text should be removed or replaced:
By submitting this Internet-Draft, I certify that any applicable patent
or other IPR claims of which I am aware have been disclosed, or
will be disclosed, and any of which I become aware will be
disclosed, in accordance with RFC 3668.
Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt:
----------------------------------------------------------------------------
== No 'Intended status' indicated for this document; assuming Proposed
Standard
Checking nits according to https://www.ietf.org/id-info/checklist :
----------------------------------------------------------------------------
No issues found here.
Miscellaneous warnings:
----------------------------------------------------------------------------
== The copyright year in the RFC 3978 Section 5.4 Copyright Line does not
match the current year
-- The document seems to lack a disclaimer for pre-RFC5378 work, but may
have content which was first submitted before 10 November 2008. If you
have contacted all the original authors and they are all willing to grant
the BCP78 rights to the IETF Trust, then this is fine, and you can ignore
this comment. If not, you may need to add the pre-RFC5378 disclaimer.
(See the Legal Provisions document at
https://trustee.ietf.org/license-info for more information.)
-- The document date (July 17, 2004) is 7223 days in the past. Is this
intentional?
Checking references for intended status: Proposed Standard
----------------------------------------------------------------------------
(See RFCs 3967 and 4897 for information about using normative references
to lower-maturity documents in RFCs)
-- Possible downref: Non-RFC (?) normative reference: ref. 'Atom-protocol'
** Obsolete normative reference: RFC 2396 (Obsoleted by RFC 3986)
** Obsolete normative reference: RFC 2822 (Obsoleted by RFC 5322)
** Obsolete normative reference: RFC 3023 (Obsoleted by RFC 7303)
** Obsolete normative reference: RFC 3066 (Obsoleted by RFC 4646, RFC 4647)
-- Possible downref: Non-RFC (?) normative reference: ref. '1'
-- Possible downref: Non-RFC (?) normative reference: ref. '2'
Summary: 10 errors (**), 0 flaws (~~), 2 warnings (==), 10 comments (--).
Run idnits with the --verbose option for more detailed information about
the items above.
--------------------------------------------------------------------------------
1 Network Working Group M. Nottingham, Ed.
2 Internet-Draft July 17, 2004
3 Expires: January 15, 2005
5 The Atom Syndication Format
6 draft-ietf-atompub-format-01
8 Status of this Memo
10 By submitting this Internet-Draft, I certify that any applicable
11 patent or other IPR claims of which I am aware have been disclosed,
12 and any of which I become aware will be disclosed, in accordance with
13 RFC 3668.
15 Internet-Drafts are working documents of the Internet Engineering
16 Task Force (IETF), its areas, and its working groups. Note that
17 other groups may also distribute working documents as
18 Internet-Drafts.
20 Internet-Drafts are draft documents valid for a maximum of six months
21 and may be updated, replaced, or obsoleted by other documents at any
22 time. It is inappropriate to use Internet-Drafts as reference
23 material or to cite them other than as "work in progress."
25 The list of current Internet-Drafts can be accessed at
26 http://www.ietf.org/ietf/1id-abstracts.txt.
28 The list of Internet-Draft Shadow Directories can be accessed at
29 http://www.ietf.org/shadow.html.
31 This Internet-Draft will expire on January 15, 2005.
33 Copyright Notice
35 Copyright (C) The Internet Society (2004). All Rights Reserved.
37 Abstract
39 This specification describes Atom, an XML-based Web content and
40 metadata syndication format.
42 Table of Contents
44 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4
45 1.1 Editorial Notes . . . . . . . . . . . . . . . . . . . . . 4
46 1.2 Example . . . . . . . . . . . . . . . . . . . . . . . . . 5
47 1.3 Conformance . . . . . . . . . . . . . . . . . . . . . . . 5
48 1.4 Notational Conventions . . . . . . . . . . . . . . . . . . 5
49 2. Atom Documents . . . . . . . . . . . . . . . . . . . . . . . 7
50 3. Common Atom Constructs . . . . . . . . . . . . . . . . . . . 9
51 3.1 Content Constructs . . . . . . . . . . . . . . . . . . . . 9
52 3.1.1 "type" Attribute . . . . . . . . . . . . . . . . . . . 9
53 3.1.2 "mode" Attribute . . . . . . . . . . . . . . . . . . . 9
54 3.2 Person Constructs . . . . . . . . . . . . . . . . . . . . 9
55 3.2.1 "atom:name" Element . . . . . . . . . . . . . . . . . 10
56 3.2.2 "atom:uri" Element . . . . . . . . . . . . . . . . . . 10
57 3.2.3 "atom:email" Element . . . . . . . . . . . . . . . . . 10
58 3.3 Date Constructs . . . . . . . . . . . . . . . . . . . . . 10
59 3.4 Link Constructs . . . . . . . . . . . . . . . . . . . . . 10
60 3.4.1 "rel" Attribute . . . . . . . . . . . . . . . . . . . 10
61 3.4.2 "type" Attribute . . . . . . . . . . . . . . . . . . . 11
62 3.4.3 "href" Attribute . . . . . . . . . . . . . . . . . . . 11
63 3.4.4 "hreflang" Attribute . . . . . . . . . . . . . . . . . 11
64 3.4.5 "title" Attribute . . . . . . . . . . . . . . . . . . 11
65 4. The "atom:feed" Element . . . . . . . . . . . . . . . . . . 12
66 4.1 "version" Attribute . . . . . . . . . . . . . . . . . . . 12
67 4.2 The "atom:head" Element . . . . . . . . . . . . . . . . . 12
68 4.2.1 "atom:title" Element . . . . . . . . . . . . . . . . . 12
69 4.2.2 "atom:link" Element . . . . . . . . . . . . . . . . . 12
70 4.2.3 "atom:author" Element . . . . . . . . . . . . . . . . 13
71 4.2.4 "atom:contributor" Element . . . . . . . . . . . . . . 13
72 4.2.5 "atom:tagline" Element . . . . . . . . . . . . . . . . 13
73 4.2.6 "atom:id" Element . . . . . . . . . . . . . . . . . . 13
74 4.2.7 "atom:generator" Element . . . . . . . . . . . . . . . 13
75 4.2.8 "atom:copyright" Element . . . . . . . . . . . . . . . 14
76 4.2.9 "atom:info" Element . . . . . . . . . . . . . . . . . 14
77 4.2.10 "atom:modified" Element . . . . . . . . . . . . . . 14
78 5. The "atom:entry" Element . . . . . . . . . . . . . . . . . . 15
79 5.1 "atom:title" Element . . . . . . . . . . . . . . . . . . . 15
80 5.2 "atom:link" Element . . . . . . . . . . . . . . . . . . . 15
81 5.3 "atom:author" Element . . . . . . . . . . . . . . . . . . 15
82 5.4 "atom:contributor" Element . . . . . . . . . . . . . . . . 16
83 5.5 "atom:id" Element . . . . . . . . . . . . . . . . . . . . 16
84 5.6 "atom:modified" Element . . . . . . . . . . . . . . . . . 16
85 5.7 "atom:issued" Element . . . . . . . . . . . . . . . . . . 16
86 5.8 "atom:created" Element . . . . . . . . . . . . . . . . . . 16
87 5.9 "atom:summary" Element . . . . . . . . . . . . . . . . . . 17
88 5.10 "atom:content" Element . . . . . . . . . . . . . . . . . 17
89 5.11 "atom:copyright" Element . . . . . . . . . . . . . . . . 17
90 5.12 "atom:origin" Element . . . . . . . . . . . . . . . . . 17
91 6. Managing Feed State . . . . . . . . . . . . . . . . . . . . 19
92 7. Embedding Atom in Other Formats . . . . . . . . . . . . . . 20
93 8. Extending Atom . . . . . . . . . . . . . . . . . . . . . . . 21
94 9. IANA Considerations . . . . . . . . . . . . . . . . . . . . 22
95 10. Security Considerations . . . . . . . . . . . . . . . . . . 23
96 11. Normative References . . . . . . . . . . . . . . . . . . . . 23
97 Author's Address . . . . . . . . . . . . . . . . . . . . . . 24
98 A. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 25
99 B. Revision History . . . . . . . . . . . . . . . . . . . . . . 26
100 Intellectual Property and Copyright Statements . . . . . . . 27
102 1. Introduction
104 Atom is an XML-based document format intended to allow lists of
105 related information, known as "feeds", to be synchronised between
106 publishers and consumers. Feeds are composed of a number of items,
107 known as "entries", each with an extensible set of attached metadata.
108 For example, each entry has a title.
110 The primary use case that Atom addresses is the syndication of Web
111 content such as Weblogs and news headlines, to Web sites as well as
112 directly to user agents. However, nothing precludes it from being
113 used for other purposes and kinds of content.
115 Details of comunication protocols between software agents using Atom
116 can be found in the Atom Protocol specification [Atom-protocol].
118 [[ more motivation / design principles ]]
120 1.1 Editorial Notes
122 The Atom format is a work-in-progress, and this draft is both
123 incomplete and likely to change rapidly. As a result, THE FORMAT
124 DESCRIBED BY THIS DRAFT SHOULD NOT BE DEPLOYED, either in production
125 systems or in any non-experimental fashion on the Internet.
127 Discussion of this draft happens in two fora;
129 The mailing list [1]
130 The Atom Wiki Web site [2]
132 Active development takes place on the mailing list, while the Wiki is
133 used for issue tracking and new proposals.
135 This document is an early draft and known to be incomplete. Topics
136 marked [[like this]] indicate where additional text is likely to be
137 added.
139 1.2 Example
141 A minimal, single-entry Atom Feed Document:
143
144
146
147 Example Feed
148
150 2003-12-13T18:30:02Z
151
152 John Doe
153
154
155
156 Atom-Powered Robots Run Amok
157
159 tag:example.org,2003:3.2397
160 2003-12-13T08:29:29-04:00
161 2003-12-13T18:30:02Z
162
163
165 1.3 Conformance
167 [[ talk about atom documents and atom consumers, and how requirements
168 are placed on them ]]
170 1.4 Notational Conventions
172 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
173 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
174 document are to be interpreted as described in [RFC2119].
176 This specification uses XML Namespaces [W3C.REC-xml-names-19990114]
177 to uniquely identify XML elements and attribute names. It uses the
178 following namespace prefixes for the indicated namespace URIs;
180 "atom": http://purl.org/atom/ns#draft-ietf-atompub-format-01
182 Note that the choice of any namespace prefix is arbitrary and not
183 semantically significant.
185 Atom is specified using terms from the XML Infoset
187 [W3C.REC-xml-infoset-20011024]. However, this specification uses a
188 shorthand for two common terms; the phrase "Information Item" is
189 omitted when naming Element Information Items and Attribute
190 Information Items.
192 Therefore, when this specification uses the term "element," it is
193 refering to an Element Information Item in Infoset terms. Likewise,
194 when it uses the term "attribute," it is refering to an Attribute
195 Information Item.
197 2. Atom Documents
199 This specification describes two kinds of Atom Documents; Atom Feed
200 Documents and Atom Entry Documents.
202 An Atom Feed Document is a representation of an Atom feed, including
203 metadata about the feed, and some or all of the entries associated
204 with it. Its document element is atom:feed.
206 An Atom Entry Document represents exactly one Atom Entry, outside of
207 the context of an Atom Feed. Its document element is atom:entry.
209 Both kinds of Atom documents are specified in terms of the XML
210 Information Set, serialised as XML 1.0 [W3C.REC-xml-20040204] and
211 identified with the "application/atom+xml" media type. Atom
212 Documents MUST be well-formed XML.
214 [[ Validity? ]]
216 Atom constrains the appearance and content of elements and
217 attributes; unless otherwise stated, Atom Documents MAY contain other
218 Information Items as appropriate. In particular, Comment Information
219 Items and Processing Instruction Information Items SHOULD be ignored
220 in the normal processing of an Atom Document.
222 Any element in an Atom Document MAY have an xml:base attribute. XML
223 Base [W3C.REC-xmlbase-20010627] processing MUST be applied to any
224 relative URI reference present in an Atom document. This includes
225 such elements and attributes as specified by Atom itself, as well as
226 those specified by extensions to Atom.
228 Any element in an Atom Document MAY have an xml:lang attribute, whose
229 content indicates the default natural language of the element's
230 content. Requirements regarding the content and interpretation of
231 xml:lang are specified in XML 1.0 [W3C.REC-xml-20040204] Section
232 2.12. For convenience, the most important are summarised here:
234 The content of this attribute must be a language tag [RFC3066] or
235 an empty string (e.g., xml:lang=""), which indicates that there is
236 no language information available.
237 If an element does not have an xml:lang element, the first
238 xml:lang attribute in its ancestors indicates the natural language
239 of its content.
241 [[ feedback as to whether this listing is helpful or not would be
242 appreciated; re-stating the requirements of other specifications is
243 tricky. ]]
245 [[ discussion of URI escaping and i18n ]]
247 [[ discussion of white space ]]
249 Atom is extensible. See the section titled 'Extending Atom' later in
250 this document for a full description of how Atom Documents can be
251 extended.
253 3. Common Atom Constructs
255 Many of Atom's elements share a few common structures. This section
256 defines a few such structures and their requirements, for convenient
257 reference by the appropriate element definitions.
259 When an element is identified as being a particular kind of
260 construct, it inherits the corresponding requirements from that
261 construct's definition in this section.
263 3.1 Content Constructs
265 A Content construct is an element with arbitrary child content, whose
266 properties are described by the following attributes:
268 3.1.1 "type" Attribute
270 Content constructs MAY have a "type" attribute, whose value indicates
271 the media type of the content. When present, this attribute's value
272 MUST be a media type [RFC2045]. If this attribute is not present,
273 processors MUST behave as if it were present with a value of "text/
274 plain".
276 3.1.2 "mode" Attribute
278 Content constructs MAY have a "mode" attribute, whose value indicates
279 the method used to encode the content. When present, this
280 attribute's value MUST be listed below. If not present, its value
281 MUST be considered to be "xml".
283 "xml": A mode attribute with the value "xml" indicates that the
284 element's content is inline xml (for example, namespace-qualified
285 XHTML).
286 "escaped": A mode attribute with the value "escaped" indicates that
287 the element's content is escaped, as defined in
288 [W3C.REC-xml-20040204] (section 4.6). Processors MUST unescape
289 the element's content before considering it as content of the
290 indicated media type.
291 "base64": A mode attribute with the value "base64" indicates that
292 the element's content is base64-encoded [RFC2045]. Processors
293 MUST decode the element's content before considering it as content
294 of the the indicated media type.
296 3.2 Person Constructs
298 A Person construct is an element that describes a person,
299 corporation, or similar entity. It has the following children:
301 3.2.1 "atom:name" Element
303 The "atom:name" element's content conveys a human-readable name for
304 the person. Person constructs MUST contain exactly one "atom:name"
305 element, whose content is unstructured text.
307 3.2.2 "atom:uri" Element
309 The "atom:uri" element's content conveys a URI associated with the
310 person. Person constructs MAY contain an atom:uri element, but MUST
311 NOT contain more than one. The content of atom:uri in a Person
312 construct MUST be a URI [RFC2396].
314 xml:base [W3C.REC-xmlbase-20010627] processing MUST be applied to the
315 atom:uri element's content.
317 3.2.3 "atom:email" Element
319 The "atom:email" element's content conveys an e-mail address
320 associated with the persons. Person constructs MAY contain an
321 atom:email element, but MUST NOT contain more than one. Its content
322 MUST be an e-mail address [RFC2822].
324 Person constructs MAY be extended by namespace-qualified element
325 children.
327 Ordering of the element children of Person constructs MUST NOT be
328 considered significant.
330 3.3 Date Constructs
332 A Date construct is an element whose content is a W3C Date-Time
333 string [W3C.NOTE-datetime-19980827].
335 3.4 Link Constructs
337 A Link construct is an element that MUST NOT have any child content,
338 and has the following attributes:
340 3.4.1 "rel" Attribute
342 The "rel" attribute indicates the type of relationship that the link
343 represents. Link constructs MUST have a rel attribute, whose value
344 MUST be one of the values enumerated in the Atom Protocol
345 specification [Atom-protocol].
347 3.4.2 "type" Attribute
349 The "type" attribute indicates an advisory media type; it MAY be used
350 as a hint to determine the type of the representation which should be
351 returned when the URI in the href attribute is dereferenced. Note
352 that the type attribute does not override the actual media type
353 returned with the representation.
355 Link constructs MUST have a type attribute, whose value MUST be a
356 media type [RFC2045].
358 3.4.3 "href" Attribute
360 The "href" attribute contains the link's URI. Link constructs MUST
361 have a href attribute, whose value MUST be a URI [RFC2396].
363 xml:base [W3C.REC-xmlbase-20010627] processing MUST be applied to the
364 href attribute's content.
366 3.4.4 "hreflang" Attribute
368 The "hreflang" attribute's content describes the language of the
369 resource pointed to by the href attribute. When used together with
370 the rel="alternate", it implies a translated version of the entry.
371 Link constructs MAY have an hreflang attribute, whose value MUST be a
372 language tag [RFC3066].
374 3.4.5 "title" Attribute
376 The "title" attribute conveys human-readable information about the
377 link. Link constructs MAY have a title attribute, whose value is
378 unstructured text.
380 4. The "atom:feed" Element
382 The "atom:feed" element is the document (i.e., top-level) element of
383 an Atom Feed Document, acting as a container for metadata and data
384 associated with the feed. Its first element child MUST be atom:head,
385 which MAY be followed zero or more atom:entry child elements.
387 4.1 "version" Attribute
389 atom:feed elements MUST have a "version" attribute whose content
390 indicates the version of the Atom specification that the feed
391 conforms to. The content of this attribute is unstructured text.
393 The version identifier for this specification is
394 "draft-ietf-atompub-format-01: do not deploy".
396 4.2 The "atom:head" Element
398 The atom:head element acts as a container for metadata about the feed
399 itself.
401 The atom:head element MAY contain any namespace-qualified
402 [W3C.REC-xml-names-19990114] elements as children. Ordering of the
403 element children of atom:head element MUST NOT be considered
404 significant.
406 The following child elements are defined by this specification (note
407 that the presence of some of these elements is required):
409 4.2.1 "atom:title" Element
411 The "atom:title" element is a Content construct that conveys a
412 human-readable title for the feed. atom:head elements MUST contain
413 exactly one atom:title element.
415 4.2.2 "atom:link" Element
417 The "atom:link" element is a Link construct that conveys a URI
418 associated with the feed. The nature of the relationship as well as
419 the link itself is determined by the element's content.
421 atom:head elements MUST contain at least one atom:link element with a
422 rel attribute value of "alternate".
424 atom:head elements MUST NOT contain more than one atom:link element
425 with a rel attribute value of "alternate" that has the same type
426 attribute value.
428 atom:head elements MAY contain additional atom:link elements beyond
429 those described above.
431 4.2.3 "atom:author" Element
433 The "atom:author" element is a Person construct that indicates the
434 default author of the feed. atom:head elements MUST contain exactly
435 one atom:author element, UNLESS all of the atom:feed element's child
436 atom:entry elements contain an atom:author element. atom:head
437 elements MUST NOT contain more than one atom:author element.
439 [[explain inheritence]]
441 4.2.4 "atom:contributor" Element
443 The "atom:contributor" element is a Person construct that indicates a
444 person or other entity who contributes to the feed. atom:head
445 elements MAY contain one or more atom:contributor elements.
447 4.2.5 "atom:tagline" Element
449 The "atom:tagline" element is a Content construct that conveys a
450 human-readable description or tagline for the feed. atom:head
451 elements MAY contain an atom:tagline element, but MUST NOT contain
452 more than one.
454 4.2.6 "atom:id" Element
456 The "atom:id" element's content conveys a permanent, globally unique
457 identifier for the feed. It MUST NOT change over time, even if the
458 feed is relocated. atom:head elements MAY contain an atom:id
459 element, but MUST NOT contain more than one. The content of this
460 element, when present, MUST be a URI.
462 xml:base [W3C.REC-xmlbase-20010627] processing MUST be applied to the
463 atom:id element's content.
465 4.2.7 "atom:generator" Element
467 The "atom:generator" element's content indentifies the software agent
468 used to generate the feed, for debugging and other purposes.
469 atom:head elements MAY contain an atom:generator element, but MUST
470 NOT contain more than one.
472 The content of this element, when present, MUST be a string that is a
473 human-readable name for the generating agent.
475 The atom:generator element MAY have a "uri" attribute whose value
476 MUST be a URI. When dereferenced, that URI SHOULD produce a
477 representation that is relevant to that agent.
479 The atom:generator element MAY have a "version" attribute that
480 indicates the version of the generating agent. When present, its
481 value is unstructured text.
483 4.2.8 "atom:copyright" Element
485 The "atom:copyright" element is Content construct that conveys a
486 human-readable copyright statement for the feed. atom:head elements
487 MAY contain an atom:copyright element, but MUST NOT contain more than
488 one.
490 The atom:copyright element SHOULD NOT be used to convey
491 machine-readable licensing information.
493 The atom:copyright element may be assumed to apply to all entries
494 contained by the feed except those entries which contain
495 atom:copyright elements. The atom:copyright element MUST, if
496 present, be considered to apply to the feed as a collection of
497 entries.
499 4.2.9 "atom:info" Element
501 The "atom:info" element is a Content construct that conveys a
502 human-readable explanation of the feed format itself. atom:head
503 elements MAY contain an atom:info element, but MUST NOT contain more
504 than one.
506 The atom:info element SHOULD NOT considered meaningful by processors;
507 it is a convenience to publishers in certain situations.
509 4.2.10 "atom:modified" Element
511 The "atom:modified" element is a Date construct that indicates the
512 time when the state of the feed was last modified, including any
513 changes to entries therein. atom:head elements MUST contain exactly
514 one atom:modified element.
516 The content of an atom:modified element SHOULD have a time zone whose
517 value MUST be "UTC".
519 5. The "atom:entry" Element
521 The "atom:entry" element represents an individual entry. This
522 element can appear as a child of the atom:feed element, or it can
523 appear as the document (i.e., top-level) element of a standalone Atom
524 Entry Document.
526 When appearing in an Atom Entry Document, atom:entry elements MUST
527 have a "version" attribute whose content indicates the version of the
528 Atom specification that the entry conforms to.
530 The version identifier for this specification is
531 "draft-ietf-atompub-format-01: do not deploy".
533 The atom:entry element MAY contain any namespace-qualified
534 [W3C.REC-xml-names-19990114] elements as children. Ordering of the
535 element children of atom:entry element MUST NOT be considered
536 significant.
538 The following child elements are defined by this specification (note
539 that it requires the presence of some of these elements):
541 5.1 "atom:title" Element
543 The "atom:title" element is a Content construct that conveys a
544 human-readable title for the entry. atom:entry elements MUST have
545 exactly one "atom:title" element.
547 5.2 "atom:link" Element
549 The "atom:link" element is a Link construct that conveys a URI
550 associated with the entry. The nature of the relationship as well as
551 the link itself is determined by the element's content.
553 atom:entry elements MUST contain at least one atom:link element with
554 a rel attribute value of "alternate".
556 atom:entry elements MUST NOT contain more than one atom:link element
557 with a rel attribute value of "alternate" that has the same type
558 attribute value.
560 atom:entry elements MAY contain additional atom:link elements beyond
561 those described above.
563 5.3 "atom:author" Element
565 The "atom:author" element is a Person construct that indicates the
566 default author of the entry. atom:entry elements MUST contain
567 exactly one atom:author element, unless, in an Atom Feed Document,
568 the atom:head element contains an atom:author element itself.
569 atom:entry elements MUST NOT contain more than one atom:author
570 element.
572 5.4 "atom:contributor" Element
574 The "atom:contributor" element is a Person construct that indicates a
575 person or other entity who contributes to the entry. atom:entry
576 elements MAY contain one or more atom:contributor elements.
578 5.5 "atom:id" Element
580 The "atom:id" element's content conveys a permanent, globally unique
581 identifier for the entry. It MUST NOT change over time, even if
582 other representations of the entry (such as a web representation
583 pointed to by the entry's atom:link element) are relocated.
585 For a given entry, the atom:id element's content MUST be stable
586 across all Atom Documents published by the same entity.
588 atom:entry MUST contain exactly one atom:id element. The content of
589 this element MUST be a URI.
591 5.6 "atom:modified" Element
593 The "atom:modified" element is a Date construct that indicates the
594 time that the entry was last modified. atom:entry elements MUST
595 contain an atom:modified element, but MUST NOT contain more than one.
597 The content of an atom:modified element MUST have a time zone whose
598 value SHOULD be "UTC".
600 5.7 "atom:issued" Element
602 The "atom:issued" element is a Date construct that indicates the time
603 that the entry was issued. atom:entry elements MUST contain an
604 atom:issued element, but MUST NOT contain more than one.
606 The content of an atom:issued element MAY omit a time zone.
608 5.8 "atom:created" Element
610 The "atom:created" element is a Date construct that indicates the
611 time that the entry was created. atom:entry elements MAY contain an
612 atom:created element, but MUST NOT contain more than one.
614 The content of an atom:created element MUST have a time zone whose
615 value SHOULD be "UTC".
617 If atom:created is not present, its content MUST considered to be the
618 same as that of atom:modified.
620 5.9 "atom:summary" Element
622 The "atom:summary" element is a Content construct that conveys a
623 short summary, abstract or excerpt of the entry. atom:entry elements
624 MAY contain an atom:summary element, but MUST NOT contain more than
625 one.
627 5.10 "atom:content" Element
629 The "atom:content" element is a Content construct that conveys the
630 content of the entry. atom:entry elements MAY contain one or more
631 atom:content elements.
633 If @type="multipart/alternative", @mode MUST NOT be specified, and
634 content element MUST contain 1 or more content elements. These
635 content elements MUST NOT specify @type="multipart/alternative" (i.e.
636 only one level of nesting is allowed). Consumers SHOULD look at all
637 alternative content elements and determine which one is most
638 suitable, based on which @type and @mode the consumer supports, and
639 preferences specified by the end user (if any). Consumers SHOULD NOT
640 render more than one content alternative.
642 5.11 "atom:copyright" Element
644 The "atom:copyright" element is a Content construct that conveys a
645 human-readable copyright statement for the entry. atom:entry
646 elements MAY contain an atom:copyright element, but MUST NOT contain
647 more than one.
649 The atom:copyright element SHOULD NOT be used to convey
650 machine-readable licensing information.
652 If an atom:entry element does not contain an atom:copyright element,
653 then the atom:copyright element of the containing atom:feed element's
654 atom:head element, if present, should be considered to apply to the
655 entry.
657 5.12 "atom:origin" Element
659 The "atom:origin" element's content conveys the original source of
660 the entry; e.g., the feed where the entry was first published.
662 If the source is an Atom Feed Document, then the content of
663 atom:origin MUST be the same, character-for-character, as that of the
664 href attribute of the atom:link element that has a rel attribute
665 value of "alternate" in that document's atom:head section (i.e., the
666 XPath expression "/atom:feed/atom:head/atom:link[@rel='alternate']/
667 @href").
669 The content of this element MUST be a URI. atom:entry elements MAY
670 contain an atom:origin element, but MUST NOT contain more than one.
672 6. Managing Feed State
674 [[ talk about what it means to keep a view of a feed ]]
676 7. Embedding Atom in Other Formats
678 [[ ... ]]
680 8. Extending Atom
682 [[ ... ]]
684 9. IANA Considerations
686 An Atom Document, when serialized as XML 1.0, can be identified with
687 the following media type:
689 MIME media type name: application
690 MIME subtype name: atom+xml
691 Mandatory parameters: None.
692 Optional parameters:
693 "charset": This parameter has identical semantics to the charset
694 parameter of the "application/xml" media type as specified in
695 RFC 3023 [RFC3023]. [RFC3023].
696 Encoding considerations: Identical to those of "application/xml" as
697 described in RFC 3023 [RFC3023], section 3.2.
698 Security considerations: As defined in this specification. [[update
699 upon publication]]
700 In addition, as this media type uses the "+xml" convention, it
701 shares the same security considerations as described in RFC 3023
702 [RFC3023], section 10.
703 Interoperability considerations: There are no known interoperability
704 issues.
705 Published specification: This specification. [[update upon
706 publication]]
707 Applications which use this media type: No known applications
708 currently use this media type.
710 Additional information:
712 Magic number(s): As specified for "application/xml" in RFC 3023
713 [RFC3023], section 3.2.
714 File extension: .atom
715 Fragment identifiers: As specified for "application/xml" in RFC 3023
716 [RFC3023], section 5.
717 Base URI: As specified in RFC 3023 [RFC3023], section 6.
718 Macintosh File Type code: TEXT
719 Person and email address to contact for further information: Mark
720 Nottingham
721 Intended usage: COMMON
722 Author/Change controller: This specification's author(s). [[update
723 upon publication]]
725 10. Security Considerations
727 [[ this is required ]]
729 11 Normative References
731 [Atom-protocol]
732 Gregorio, J. and R. Sayre, "The Atom Publishing Protocol",
733 work-in-progress, July 2004.
735 [RFC2045] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
736 Extensions (MIME) Part One: Format of Internet Message
737 Bodies", RFC 2045, November 1996.
739 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
740 Requirement Levels", BCP 14, RFC 2119, March 1997.
742 [RFC2396] Berners-Lee, T., Fielding, R. and L. Masinter, "Uniform
743 Resource Identifiers (URI): Generic Syntax", RFC 2396,
744 August 1998.
746 [RFC2822] Resnick, P., "Internet Message Format", RFC 2822, April
747 2001.
749 [RFC3023] Murata, M., St. Laurent, S. and D. Kohn, "XML Media
750 Types", RFC 3023, January 2001.
752 [RFC3066] Alvestrand, H., "Tags for the Identification of
753 Languages", BCP 47, RFC 3066, January 2001.
755 [W3C.NOTE-datetime-19980827]
756 Wolf, M. and C. Wicksteed, "Date and Time Formats", W3C
757 NOTE NOTE-datetime-19980827, August 1998.
759 [W3C.REC-xml-20040204]
760 Yergeau, F., Bray, T., Paoli, J., Sperberg-McQueen, C. and
761 E. Maler, "Extensible Markup Language (XML) 1.0 (Third
762 Edition)", W3C REC REC-xml-20040204, February 2004.
764 [W3C.REC-xml-infoset-20011024]
765 Cowan, J. and R. Tobin, "XML Information Set", W3C REC
766 REC-xml-infoset-20011024, October 2001.
768 [W3C.REC-xml-names-19990114]
769 Bray, T., Hollander, D. and A. Layman, "Namespaces in
770 XML", W3C REC REC-xml-names-19990114, January 1999.
772 [W3C.REC-xmlbase-20010627]
773 Marsh, J., "XML Base", W3C REC REC-xmlbase-20010627, June
774 2001.
776 [1]
778 [2]
780 Author's Address
782 Mark Nottingham (editor)
784 EMail: mnot@pobox.com
785 URI: http://www.mnot.net/
787 Appendix A. Contributors
789 The following people contributed to preliminary drafts of this
790 document: Tim Bray, Mark Pilgrim, and Sam Ruby. The content and
791 concepts within are a product of the Atom community and the Atom
792 Publishing Format and Protocol Working Group.
794 Appendix B. Revision History
796 [[ this section should be removed before final publication. ]]
798 -01: Constrained omission of "Information Item" to just elements and
799 attributes.
800 Clarified xml:lang inheritence.
801 Removed entry- and feed-specific langauge about xml:lang (covered
802 by general discussion of xml:lang)
803 Changed xml:lang to reference XML for normative requirements.
804 Changed "... MUST be a string" to "... is unstructued text."
805 Remomved langauge about DOCTYPEs, PIs, Comments, Entities.
806 Changed atom:url to atom:uri, @url to @uri
807 Introduced atom:head
808 Introduced "Atom Feed Document" and "Atom Entry Document".
809 Removed requirement for all elements and attributes to be
810 namespace-qualified; now children of selective elements
811 Added extensibility to Person constructs.
812 Removed requirement for media types to be registered
813 (non-registered media types are legal)
814 Added atom:origin (PaceEntryOrigin)
815 Added requirement for entry/id to be present and a URI
816 (PaceEntryIdRequired).
817 Clarified approach to Comments, PIs and well-formedness, as per
818 RFC3470.
819 Referenced escaping algorithm in XML.
820 Assorted editorial nits and cleanup, refactoring
821 -00: Initial IETF Internet-Draft submission.
822 Added optional version attribute to entry
823 (PaceEntryElementNeedsVersionAttribute).
824 Added hreflang attribute (PaceHrefLang).
825 Clarified inheritence of copyright element (PaceItemCopyright).
826 Added xml:lang to entries (PaceItemLang).
827 Tweaked Infoset-related language (PaceNoInfoSet).
828 Clarified lack of structure in version attribute
829 (PaceVersionAsText).
830 Changed approach to XML Base (PaceXmlBaseEverywhere).
831 Added XML Base processing to atom:id (PaceXmlBaseId).
832 Various editorial cleanup and adjustments for IETF publication.
834 Intellectual Property Statement
836 The IETF takes no position regarding the validity or scope of any
837 Intellectual Property Rights or other rights that might be claimed to
838 pertain to the implementation or use of the technology described in
839 this document or the extent to which any license under such rights
840 might or might not be available; nor does it represent that it has
841 made any independent effort to identify any such rights. Information
842 on the procedures with respect to rights in RFC documents can be
843 found in BCP 78 and BCP 79.
845 Copies of IPR disclosures made to the IETF Secretariat and any
846 assurances of licenses to be made available, or the result of an
847 attempt made to obtain a general license or permission for the use of
848 such proprietary rights by implementers or users of this
849 specification can be obtained from the IETF on-line IPR repository at
850 http://www.ietf.org/ipr.
852 The IETF invites any interested party to bring to its attention any
853 copyrights, patents or patent applications, or other proprietary
854 rights that may cover technology that may be required to implement
855 this standard. Please address the information to the IETF at
856 ietf-ipr@ietf.org.
858 Disclaimer of Validity
860 This document and the information contained herein are provided on an
861 "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
862 OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
863 ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
864 INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
865 INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
866 WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
868 Copyright Statement
870 Copyright (C) The Internet Society (2004). This document is subject
871 to the rights, licenses and restrictions contained in BCP 78, and
872 except as set forth therein, the authors retain all their rights.
874 Acknowledgment
876 Funding for the RFC Editor function is currently provided by the
877 Internet Society.