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.