draft-ietf-atompub-protocol-15.txt   draft-ietf-atompub-protocol-16.txt 
Network Working Group J. Gregorio, Ed. Network Working Group J. Gregorio, Ed.
Internet-Draft IBM Internet-Draft IBM
Intended status: Standards Track B. de hOra, Ed. Intended status: Standards Track B. de hOra, Ed.
Expires: November 23, 2007 Propylon Ltd. Expires: December 29, 2007 June 27, 2007
May 22, 2007
The Atom Publishing Protocol The Atom Publishing Protocol
draft-ietf-atompub-protocol-15.txt draft-ietf-atompub-protocol-16.txt
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 35 skipping to change at page 1, line 34
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 November 23, 2007. This Internet-Draft will expire on December 29, 2007.
Copyright Notice Copyright Notice
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2007).
Abstract Abstract
The Atom Publishing Protocol (APP) is an application-level protocol The Atom Publishing Protocol (APP) is an application-level protocol
for publishing and editing Web resources. The protocol is based on for publishing and editing Web resources. The protocol is based on
HTTP transfer of Atom-formatted representations. The Atom format is HTTP transfer of Atom-formatted representations. The Atom format is
skipping to change at page 3, line 38 skipping to change at page 3, line 38
5.2. Listing Collection Members . . . . . . . . . . . . . . . . 14 5.2. Listing Collection Members . . . . . . . . . . . . . . . . 14
5.3. Creating a Resource . . . . . . . . . . . . . . . . . . . 15 5.3. Creating a Resource . . . . . . . . . . . . . . . . . . . 15
5.4. Editing a Resource . . . . . . . . . . . . . . . . . . . . 15 5.4. Editing a Resource . . . . . . . . . . . . . . . . . . . . 15
5.4.1. Retrieving a Resource . . . . . . . . . . . . . . . . 15 5.4.1. Retrieving a Resource . . . . . . . . . . . . . . . . 15
5.4.2. Editing a Resource . . . . . . . . . . . . . . . . . . 16 5.4.2. Editing a Resource . . . . . . . . . . . . . . . . . . 16
5.4.3. Deleting a Resource . . . . . . . . . . . . . . . . . 16 5.4.3. Deleting a Resource . . . . . . . . . . . . . . . . . 16
5.5. Use of HTTP Response codes . . . . . . . . . . . . . . . . 16 5.5. Use of HTTP Response codes . . . . . . . . . . . . . . . . 16
6. Protocol Documents . . . . . . . . . . . . . . . . . . . . . . 18 6. Protocol Documents . . . . . . . . . . . . . . . . . . . . . . 18
6.1. Document Types . . . . . . . . . . . . . . . . . . . . . . 18 6.1. Document Types . . . . . . . . . . . . . . . . . . . . . . 18
6.2. Document Extensibility . . . . . . . . . . . . . . . . . . 18 6.2. Document Extensibility . . . . . . . . . . . . . . . . . . 18
7. Category Documents . . . . . . . . . . . . . . . . . . . . . . 20 7. Category Documents . . . . . . . . . . . . . . . . . . . . . . 19
7.1. Example . . . . . . . . . . . . . . . . . . . . . . . . . 20 7.1. Example . . . . . . . . . . . . . . . . . . . . . . . . . 19
7.2. Element Definitions . . . . . . . . . . . . . . . . . . . 20 7.2. Element Definitions . . . . . . . . . . . . . . . . . . . 19
7.2.1. The "app:categories" element . . . . . . . . . . . . . 20 7.2.1. The "app:categories" element . . . . . . . . . . . . . 19
8. Service Documents . . . . . . . . . . . . . . . . . . . . . . 22 8. Service Documents . . . . . . . . . . . . . . . . . . . . . . 21
8.1. Workspaces . . . . . . . . . . . . . . . . . . . . . . . . 22 8.1. Workspaces . . . . . . . . . . . . . . . . . . . . . . . . 21
8.2. Example . . . . . . . . . . . . . . . . . . . . . . . . . 23 8.2. Example . . . . . . . . . . . . . . . . . . . . . . . . . 22
8.3. Element Definitions . . . . . . . . . . . . . . . . . . . 24 8.3. Element Definitions . . . . . . . . . . . . . . . . . . . 23
8.3.1. The "app:service" Element . . . . . . . . . . . . . . 24 8.3.1. The "app:service" Element . . . . . . . . . . . . . . 23
8.3.2. The "app:workspace" Element . . . . . . . . . . . . . 24 8.3.2. The "app:workspace" Element . . . . . . . . . . . . . 23
8.3.3. The "app:collection" Element . . . . . . . . . . . . . 25 8.3.3. The "app:collection" Element . . . . . . . . . . . . . 24
8.3.4. The "app:accept" Element . . . . . . . . . . . . . . . 26 8.3.4. The "app:accept" Element . . . . . . . . . . . . . . . 25
8.3.5. Usage in Atom Feed Documents . . . . . . . . . . . . . 26 8.3.5. Usage in Atom Feed Documents . . . . . . . . . . . . . 25
8.3.6. The "app:categories" Element . . . . . . . . . . . . . 26 8.3.6. The "app:categories" Element . . . . . . . . . . . . . 25
9. Creating and Editing Resources . . . . . . . . . . . . . . . . 28 9. Creating and Editing Resources . . . . . . . . . . . . . . . . 27
9.1. Member URIs . . . . . . . . . . . . . . . . . . . . . . . 28 9.1. Member URIs . . . . . . . . . . . . . . . . . . . . . . . 27
9.2. Creating Resources with POST . . . . . . . . . . . . . . . 28 9.2. Creating Resources with POST . . . . . . . . . . . . . . . 27
9.2.1. Example . . . . . . . . . . . . . . . . . . . . . . . 29 9.2.1. Example . . . . . . . . . . . . . . . . . . . . . . . 28
9.3. Editing Resources with PUT . . . . . . . . . . . . . . . . 30 9.3. Editing Resources with PUT . . . . . . . . . . . . . . . . 29
9.4. Deleting Resources with DELETE . . . . . . . . . . . . . . 30 9.4. Deleting Resources with DELETE . . . . . . . . . . . . . . 29
9.5. Caching and entity tags . . . . . . . . . . . . . . . . . 30 9.5. Caching and entity tags . . . . . . . . . . . . . . . . . 29
9.5.1. Example . . . . . . . . . . . . . . . . . . . . . . . 30 9.5.1. Example . . . . . . . . . . . . . . . . . . . . . . . 29
9.6. Media Resources and Media Link Entries . . . . . . . . . . 32 9.6. Media Resources and Media Link Entries . . . . . . . . . . 31
9.6.1. Examples . . . . . . . . . . . . . . . . . . . . . . . 33 9.6.1. Examples . . . . . . . . . . . . . . . . . . . . . . . 32
9.7. The Slug: Header . . . . . . . . . . . . . . . . . . . . . 39 9.7. The Slug: Header . . . . . . . . . . . . . . . . . . . . . 38
9.7.1. Slug: Header syntax . . . . . . . . . . . . . . . . . 40 9.7.1. Slug: Header syntax . . . . . . . . . . . . . . . . . 39
9.7.2. Example . . . . . . . . . . . . . . . . . . . . . . . 40 9.7.2. Example . . . . . . . . . . . . . . . . . . . . . . . 39
10. Listing Collections . . . . . . . . . . . . . . . . . . . . . 41 10. Listing Collections . . . . . . . . . . . . . . . . . . . . . 40
10.1. Collection partial lists . . . . . . . . . . . . . . . . . 41 10.1. Collection partial lists . . . . . . . . . . . . . . . . . 40
10.2. The "app:edited" Element . . . . . . . . . . . . . . . . . 42 10.2. The "app:edited" Element . . . . . . . . . . . . . . . . . 41
11. Atom Format Link Relation Extensions . . . . . . . . . . . . . 43 11. Atom Format Link Relation Extensions . . . . . . . . . . . . . 42
11.1. The "edit" Link Relation . . . . . . . . . . . . . . . . . 43 11.1. The "edit" Link Relation . . . . . . . . . . . . . . . . . 42
11.2. The "edit-media" Link Relation . . . . . . . . . . . . . . 43 11.2. The "edit-media" Link Relation . . . . . . . . . . . . . . 42
12. The Atom Format Type Parameter . . . . . . . . . . . . . . . . 44 12. The Atom Format Type Parameter . . . . . . . . . . . . . . . . 43
12.1. The 'type' parameter . . . . . . . . . . . . . . . . . . . 44 12.1. The 'type' parameter . . . . . . . . . . . . . . . . . . . 43
12.1.1. Conformance . . . . . . . . . . . . . . . . . . . . . 44 12.1.1. Conformance . . . . . . . . . . . . . . . . . . . . . 43
13. Atom Publishing Controls . . . . . . . . . . . . . . . . . . . 45 13. Atom Publishing Controls . . . . . . . . . . . . . . . . . . . 44
13.1. The "app:control" Element . . . . . . . . . . . . . . . . 45 13.1. The "app:control" Element . . . . . . . . . . . . . . . . 44
13.1.1. The "app:draft" Element . . . . . . . . . . . . . . . 45 13.1.1. The "app:draft" Element . . . . . . . . . . . . . . . 44
14. Securing the Atom Publishing Protocol . . . . . . . . . . . . 46 14. Securing the Atom Publishing Protocol . . . . . . . . . . . . 45
15. Security Considerations . . . . . . . . . . . . . . . . . . . 47 15. Security Considerations . . . . . . . . . . . . . . . . . . . 46
15.1. Denial of Service . . . . . . . . . . . . . . . . . . . . 47 15.1. Denial of Service . . . . . . . . . . . . . . . . . . . . 46
15.2. Replay Attacks . . . . . . . . . . . . . . . . . . . . . . 47 15.2. Replay Attacks . . . . . . . . . . . . . . . . . . . . . . 46
15.3. Spoofing Attacks . . . . . . . . . . . . . . . . . . . . . 47 15.3. Spoofing Attacks . . . . . . . . . . . . . . . . . . . . . 46
15.4. Linked Resources . . . . . . . . . . . . . . . . . . . . . 47 15.4. Linked Resources . . . . . . . . . . . . . . . . . . . . . 46
15.5. Digital Signatures and Encryption . . . . . . . . . . . . 47 15.5. Digital Signatures and Encryption . . . . . . . . . . . . 46
15.6. URIs and IRIs . . . . . . . . . . . . . . . . . . . . . . 47 15.6. URIs and IRIs . . . . . . . . . . . . . . . . . . . . . . 47
15.7. Code Injection and Cross Site Scripting . . . . . . . . . 48 15.7. Code Injection and Cross Site Scripting . . . . . . . . . 47
16. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 49 16. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 48
16.1. Content-type registration for 'application/atomcat+xml' . 49 16.1. Content-type registration for 'application/atomcat+xml' . 48
16.2. Content-type registration for 'application/atomsvc+xml' . 50 16.2. Content-type registration for 'application/atomsvc+xml' . 49
16.3. Header field registration for 'SLUG' . . . . . . . . . . . 51 16.3. Header field registration for 'SLUG' . . . . . . . . . . . 50
16.4. The Link Relation registration "edit" . . . . . . . . . . 52 16.4. The Link Relation registration "edit" . . . . . . . . . . 51
16.5. The Link Relation registration "edit-media" . . . . . . . 52 16.5. The Link Relation registration "edit-media" . . . . . . . 51
16.6. The Atom Format Media Type Parameter . . . . . . . . . . . 52 16.6. The Atom Format Media Type Parameter . . . . . . . . . . . 51
17. References . . . . . . . . . . . . . . . . . . . . . . . . . . 53 17. References . . . . . . . . . . . . . . . . . . . . . . . . . . 52
17.1. Normative References . . . . . . . . . . . . . . . . . . . 53 17.1. Normative References . . . . . . . . . . . . . . . . . . . 52
17.2. Informative References . . . . . . . . . . . . . . . . . . 54 17.2. Informative References . . . . . . . . . . . . . . . . . . 53
Appendix A. Contributors . . . . . . . . . . . . . . . . . . . . 56 Appendix A. Contributors . . . . . . . . . . . . . . . . . . . . 55
Appendix B. RELAX NG Compact Schema . . . . . . . . . . . . . . . 57 Appendix B. RELAX NG Compact Schema . . . . . . . . . . . . . . . 56
Appendix C. Revision History . . . . . . . . . . . . . . . . . . 63 Appendix C. Revision History . . . . . . . . . . . . . . . . . . 62
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 67 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 66
Intellectual Property and Copyright Statements . . . . . . . . . . 68 Intellectual Property and Copyright Statements . . . . . . . . . . 67
1. Introduction 1. Introduction
The Atom Publishing Protocol is an application-level protocol for The Atom Publishing Protocol is an application-level protocol for
publishing and editing Web Resources using HTTP [RFC2616] and XML 1.0 publishing and editing Web Resources using HTTP [RFC2616] and XML 1.0
[REC-xml]. The protocol supports the creation of Web Resources and [REC-xml]. The protocol supports the creation of Web Resources and
provides facilities for: provides facilities for:
o Collections: Sets of Resources, which can be retrieved in whole or o Collections: Sets of Resources, which can be retrieved in whole or
in part. in part.
skipping to change at page 7, line 42 skipping to change at page 7, line 42
2.1.3. Use of xml:base and xml:lang 2.1.3. Use of xml:base and xml:lang
XML elements defined by this specification MAY have an xml:base XML elements defined by this specification MAY have an xml:base
attribute [REC-xmlbase]. When xml:base is used, it serves the attribute [REC-xmlbase]. When xml:base is used, it serves the
function described in Section 5.1.1 of URI Generic Syntax [RFC3986], function described in Section 5.1.1 of URI Generic Syntax [RFC3986],
by establishing the base URI (or IRI) for resolving relative by establishing the base URI (or IRI) for resolving relative
references found within the scope of the xml:base attribute. references found within the scope of the xml:base 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. Requirements regarding the content and element and its descendants. Requirements regarding the content and
interpretation of xml:lang are specified in Section 2.12 of XML 1.0 interpretation of xml:lang are specified in Section 2.12 of XML 1.0
[REC-xml]. [REC-xml].
3. Terminology 3. Terminology
For convenience, this protocol can be referred to as the "Atom For convenience, this protocol can be referred to as the "Atom
Protocol" or "APP". The following terminology is used by this Protocol" or "APP". The following terminology is used by this
specification: specification:
o URI - A Uniform Resource Identifier as defined in [RFC3986]. In o URI - A Uniform Resource Identifier as defined in [RFC3986]. In
skipping to change at page 18, line 21 skipping to change at page 18, line 21
A Category Document (Section 7) contains lists of categories A Category Document (Section 7) contains lists of categories
specified using the "atom:category" element from the Atom Syndication specified using the "atom:category" element from the Atom Syndication
Format (see Section 4.2.2 of [RFC4287]). Format (see Section 4.2.2 of [RFC4287]).
A Service Document (Section 8) groups available Collections into A Service Document (Section 8) groups available Collections into
Workspaces. Workspaces.
The namespace name [REC-xml-names] for either kind of document is: The namespace name [REC-xml-names] for either kind of document is:
http://purl.org/atom/app# http://www.w3.org/2007/app
[[anchor9: The namespace name 'http://purl.org/atom/app#' needs to be
updated throughout the document with the final URI upon publication]]
Atom Publishing Protocol XML Documents MUST be "namespace-well- Atom Publishing Protocol XML Documents MUST be "namespace-well-
formed" as specified in Section 7 of [REC-xml-names]. formed" as specified in Section 7 of [REC-xml-names].
This specification uses the prefix "app:" for the namespace name. This specification uses the prefix "app:" for the namespace name.
The prefix "atom:" is used for "http://www.w3.org/2005/Atom", the The prefix "atom:" is used for "http://www.w3.org/2005/Atom", the
namespace name of the Atom Syndication Format [RFC4287]. These namespace name of the Atom Syndication Format [RFC4287]. These
namespace prefixes are not semantically significant. namespace prefixes are not semantically significant.
This specification does not define any DTDs for Atom Protocol This specification does not define any DTDs for Atom Protocol
skipping to change at page 18, line 48 skipping to change at page 18, line 45
6.2. Document Extensibility 6.2. Document Extensibility
Unrecognized markup in an Atom Publishing Protocol document is Unrecognized markup in an Atom Publishing Protocol document is
considered "foreign markup" as defined in Section 6 of the Atom considered "foreign markup" as defined in Section 6 of the Atom
Syndication Format [RFC4287]. Foreign markup can be used anywhere Syndication Format [RFC4287]. Foreign markup can be used anywhere
within a Category or Service Document unless it is explicitly within a Category or Service Document unless it is explicitly
forbidden. Processors that encounter foreign markup MUST NOT stop forbidden. Processors that encounter foreign markup MUST NOT stop
processing and MUST NOT signal an error. Clients SHOULD preserve processing and MUST NOT signal an error. Clients SHOULD preserve
foreign markup when transmitting such documents. foreign markup when transmitting such documents.
The namespace name "http://purl.org/atom/app#" is reserved for The namespace name "http://www.w3.org/2007/app" is reserved for
forward compatible revisions of the Category and Service Document forward compatible revisions of the Category and Service Document
types - this does not exclude the addition of elements and attributes types - this does not exclude the addition of elements and attributes
that might not be recognized by processors conformant to this that might not be recognized by processors conformant to this
specification. Such unrecognized markup from the specification. Such unrecognized markup from the
"http://purl.org/atom/app#" namespace MUST be treated as foreign "http://www.w3.org/2007/app" namespace MUST be treated as foreign
markup. markup.
7. Category Documents 7. Category Documents
Category Documents contain lists of categories described using the Category Documents contain lists of categories described using the
"atom:category" element from the Atom Syndication Format [RFC4287]. "atom:category" element from the Atom Syndication Format [RFC4287].
Categories can also appear in Service Documents, where they indicate Categories can also appear in Service Documents, where they indicate
the categories allowed in a Collection (see Section 8.3.6). the categories allowed in a Collection (see Section 8.3.6).
Category Documents are identified with the "application/atomcat+xml" Category Documents are identified with the "application/atomcat+xml"
media type (see Section 16.1). media type (see Section 16.1).
7.1. Example 7.1. Example
<?xml version="1.0" ?> <?xml version="1.0" ?>
<app:categories <app:categories
xmlns:app="http://purl.org/atom/app#" xmlns:app="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom" xmlns:atom="http://www.w3.org/2005/Atom"
fixed="yes" scheme="http://example.com/cats/big3"> fixed="yes" scheme="http://example.com/cats/big3">
<atom:category term="animal" /> <atom:category term="animal" />
<atom:category term="vegetable" /> <atom:category term="vegetable" />
<atom:category term="mineral" /> <atom:category term="mineral" />
</app:categories> </app:categories>
This Category Document contains atom:category elements, with the This Category Document contains atom:category elements, with the
terms 'animal', 'vegetable', and 'mineral'. None of the categories terms 'animal', 'vegetable', and 'mineral'. None of the categories
use the "label" attribute defined in [RFC4287]. They all inherit the use the "label" attribute defined in [RFC4287]. They all inherit the
skipping to change at page 23, line 8 skipping to change at page 22, line 8
specification. This specification assigns no meaning to Workspaces; specification. This specification assigns no meaning to Workspaces;
that is, a Workspace does not imply any specific processing that is, a Workspace does not imply any specific processing
assumptions. assumptions.
There is no requirement that a server support multiple Workspaces. There is no requirement that a server support multiple Workspaces.
In addition, a Collection MAY appear in more than one Workspace. In addition, a Collection MAY appear in more than one Workspace.
8.2. Example 8.2. Example
<?xml version="1.0" encoding='utf-8'?> <?xml version="1.0" encoding='utf-8'?>
<service xmlns="http://purl.org/atom/app#" <service xmlns="http://www.w3.org/2007/app"
xmlns:atom="http://www.w3.org/2005/Atom"> xmlns:atom="http://www.w3.org/2005/Atom">
<workspace> <workspace>
<atom:title>Main Site</atom:title> <atom:title>Main Site</atom:title>
<collection <collection
href="http://example.org/blog/main" > href="http://example.org/blog/main" >
<atom:title>My Blog Entries</atom:title> <atom:title>My Blog Entries</atom:title>
<categories <categories
href="http://example.com/cats/forMain.cats" /> href="http://example.com/cats/forMain.cats" />
</collection> </collection>
<collection <collection
skipping to change at page 24, line 29 skipping to change at page 23, line 29
8.3. Element Definitions 8.3. Element Definitions
8.3.1. The "app:service" Element 8.3.1. The "app:service" Element
The root of a Service Document is the "app:service" element. The root of a Service Document is the "app:service" element.
The app:service element is the container for service information The app:service element is the container for service information
associated with one or more Workspaces. An app:service element MUST associated with one or more Workspaces. An app:service element MUST
contain one or more app:workspace elements. contain one or more app:workspace elements.
namespace app = "http://purl.org/atom/app#" namespace app = "http://www.w3.org/2007/app"
start = appService start = appService
appService = appService =
element app:service { element app:service {
appCommonAttributes, appCommonAttributes,
( appWorkspace+ ( appWorkspace+
& extensionElement* ) & extensionElement* )
} }
8.3.2. The "app:workspace" Element 8.3.2. The "app:workspace" Element
skipping to change at page 26, line 51 skipping to change at page 25, line 51
collection element is considered foreign markup as defined in Section collection element is considered foreign markup as defined in Section
6 of [RFC4287]. 6 of [RFC4287].
8.3.6. The "app:categories" Element 8.3.6. The "app:categories" Element
The "app:categories" element provides a list of the categories that The "app:categories" element provides a list of the categories that
can be applied to the members of a Collection. See Section 7.2.1 for can be applied to the members of a Collection. See Section 7.2.1 for
the detailed definition of app:categories. the detailed definition of app:categories.
The server MAY reject attempts to create or store members whose The server MAY reject attempts to create or store members whose
categories are not present in it's categories list. Collections that categories are not present in its categories list. Collections that
indicate the category set is open SHOULD NOT reject otherwise indicate the category set is open SHOULD NOT reject otherwise
acceptable members whose categories are not in its categories list. acceptable members whose categories are not in its categories list.
The absence of an "app:categories" element means that the category The absence of an "app:categories" element means that the category
handling of the Collection is unspecified. A "fixed" category list handling of the Collection is unspecified. A "fixed" category list
that contains zero categories indicates the Collection does not that contains zero categories indicates the Collection does not
accept category data. accept category data.
9. Creating and Editing Resources 9. Creating and Editing Resources
9.1. Member URIs 9.1. Member URIs
skipping to change at page 33, line 14 skipping to change at page 32, line 14
an atom:content element with a "src" attribute. The value of the an atom:content element with a "src" attribute. The value of the
"src" attribute is an IRI for the newly created Media Resource. It "src" attribute is an IRI for the newly created Media Resource. It
is OPTIONAL that the IRI of the "src" attribute on the atom:content is OPTIONAL that the IRI of the "src" attribute on the atom:content
element be the same as the Media Resource IRI. For example, the element be the same as the Media Resource IRI. For example, the
"src" attribute value might instead be a link into a static cache or "src" attribute value might instead be a link into a static cache or
content distribution network and not the Media Resource IRI. content distribution network and not the Media Resource IRI.
Implementers are asked to note that [RFC4287] specifies that Atom Implementers are asked to note that [RFC4287] specifies that Atom
Entries MUST contain an atom:summary element. Thus, upon successful Entries MUST contain an atom:summary element. Thus, upon successful
creation of a Media Link Entry, a server MAY choose to populate the creation of a Media Link Entry, a server MAY choose to populate the
atom:summary element (as well as any other required elements such as atom:summary element (as well as any other mandatory elements such as
atom:id, atom:author and atom:title) with content derived from the atom:id, atom:author and atom:title) with content derived from the
POSTed entity or from any other source. A server might not allow a POSTed entity or from any other source. A server might not allow a
client to modify the server selected values for these elements. client to modify the server selected values for these elements.
For Resource creation this specification only defines cases where the For Resource creation this specification only defines cases where the
POST body has an Atom Entry entity declared as an Atom media type POST body has an Atom Entry entity declared as an Atom media type
("application/atom+xml"), or a non-Atom entity declared as a non-Atom ("application/atom+xml"), or a non-Atom entity declared as a non-Atom
media type. When a client is POSTing an Atom Entry to a collection, media type. When a client is POSTing an Atom Entry to a collection,
it may use a media-type of either "application/atom+xml" or it may use a media-type of either "application/atom+xml" or
"application/atom +xml;type=entry". This specification does not "application/atom +xml;type=entry". This specification does not
skipping to change at page 39, line 36 skipping to change at page 38, line 36
</xhtml:p> </xhtml:p>
</xhtml:div> </xhtml:div>
</content> </content>
<link rel="edit" <link rel="edit"
href="http://example.org/blog/edit/a-day-at-the-beach.atom"/> href="http://example.org/blog/edit/a-day-at-the-beach.atom"/>
<link rel="alternate" type="text/html" <link rel="alternate" type="text/html"
href="http://example.org/blog/a-day-at-the-beach.html"/> href="http://example.org/blog/a-day-at-the-beach.html"/>
</entry> </entry>
Note that the returned Entry contains a link with a relation of Note that the returned Entry contains a link with a relation of
"alternate" that points to the associated HTML page that was created. "alternate" that points to the associated HTML page that was created
This is not required by this specification, but is included to show - this is not required by this specification, but is included to show
the kinds of changes a server can make to an Entry. the kinds of changes a server can make to an Entry.
9.7. The Slug: Header 9.7. The Slug: Header
Slug is an HTTP entity-header whose presence in a POST to a Slug is an HTTP entity-header whose presence in a POST to a
Collection constitutes a request by the client to use the header's Collection constitutes a request by the client to use the header's
value as part of any URIs that would normally used to retrieve the value as part of any URIs that would normally used to retrieve the
to-be-created Entry or Media resources. to-be-created Entry or Media resources.
Servers MAY use the value of the Slug header when creating the Member Servers MAY use the value of the Slug header when creating the Member
skipping to change at page 40, line 13 skipping to change at page 39, line 13
Link Entry (see Section 9.6.). Link Entry (see Section 9.6.).
Servers MAY choose to ignore the Slug entity-header. Servers MAY Servers MAY choose to ignore the Slug entity-header. Servers MAY
alter the header value before using it. For instance, a server might alter the header value before using it. For instance, a server might
filter out some characters or replace accented letters with non- filter out some characters or replace accented letters with non-
accented ones, replace spaces with underscores, change case, and so accented ones, replace spaces with underscores, change case, and so
on. on.
9.7.1. Slug: Header syntax 9.7.1. Slug: Header syntax
The syntax of this header MUST conform to the augmented BNF grammar The syntax of the Slug header is defined using the augmented BNF
in section 2.1 of the HTTP/1.1 specification [RFC2616]. The TEXT syntax defined in Section 2.1 of [RFC2616]:
rule is described in section 2.2 of the same document.
Slug = "Slug" ":" *TEXT LWS = <defined in Section 2.2 of [RFC2616]>
slugtext = %x20-7E | LWS
Slug = "Slug" ":" *slugtext
The field-value of the Slug header is a percent-encoded utf-8 Unicode The field-value is the percent-encoded value of the UTF-8 encoding of
string that does not contain CR or LF, where CR and LF are defined in the character sequence to be included (see Section 2.1 of [RFC3986]
[RFC2616]. All non-ASCII characters in the utf-8 representation MUST for the definition of percent encoding, and [RFC3629] for the
be percent-encoded according to the rules in Section 2.1 of definition of the UTF-8 encoding).
[RFC3986].
Implementation note: to produce the field value from a character
sequence, first encode it using the UTF-8 encoding, then encode all
octets outside the ranges %20-24 and %26-7E using percent encoding
(%25 is the ASCII encoding of "%", thus it needs to be escaped). To
consume the field value first reverse the percent encoding, then run
the resulting octet sequence through a UTF-8 decoding process.
9.7.2. Example 9.7.2. Example
Here is an example of the Slug: header that uses percent-encoding to Here is an example of the Slug: header that uses percent-encoding to
represent the Unicode character U+00E8 (LATIN SMALL LETTER E WITH represent the Unicode character U+00E8 (LATIN SMALL LETTER E WITH
GRAVE): GRAVE):
POST /myblog/entries HTTP/1.1 POST /myblog/entries HTTP/1.1
Host: example.org Host: example.org
Content-Type: image/png Content-Type: image/png
skipping to change at page 44, line 12 skipping to change at page 43, line 12
"hreflang" attributes then the client SHOULD pick the first "edit- "hreflang" attributes then the client SHOULD pick the first "edit-
media" link relation in document order. media" link relation in document order.
12. The Atom Format Type Parameter 12. The Atom Format Type Parameter
The Atom Syndication Format [RFC4287] defines the "application/ The Atom Syndication Format [RFC4287] defines the "application/
atom+xml" media type to identify both Atom Feed and Atom Entry atom+xml" media type to identify both Atom Feed and Atom Entry
Documents. Implementation experience has demonstrated that Atom Feed Documents. Implementation experience has demonstrated that Atom Feed
and Entry Documents can have different processing models and that and Entry Documents can have different processing models and that
there are situations where they need to be differentiated. This there are situations where they need to be differentiated. This
document defines an optional "type" parameter used to differentiate specification defines an optional "type" parameter used to
the two types of Atom documents. differentiate the two types of Atom documents.
12.1. The 'type' parameter 12.1. The 'type' parameter
This document defines a new "type" parameter for use with the This specification defines a new "type" parameter for use with the
"application/atom+xml" media type. The "type" parameter has a value "application/atom+xml" media type. The "type" parameter has a value
of "entry" or "feed". of "entry" or "feed".
Neither the parameter name nor its value are case sensitive. Neither the parameter name nor its value are case sensitive.
The value "entry" indicates that the media type identifies an Atom The value "entry" indicates that the media type identifies an Atom
Entry Document. The root element of the document MUST be atom:entry. Entry Document. The root element of the document MUST be atom:entry.
The value "feed" indicates that the media type identifies an Atom The value "feed" indicates that the media type identifies an Atom
Feed Document. The root element of the document MUST be atom:feed. Feed Document. The root element of the document MUST be atom:feed.
If not specified, the type is assumed to be unspecified, requiring If not specified, the type is assumed to be unspecified, requiring
Atom processors to examine the root element to determine the type of Atom processors to examine the root element to determine the type of
Atom document. Atom document.
12.1.1. Conformance 12.1.1. Conformance
New specifications MAY require that the "type" parameter be used to New specifications MAY require that the "type" parameter be used to
identify the Atom Document type. Producers of Atom Entry Documents identify the Atom Document type. Producers of Atom Entry Documents
SHOULD use the "type" parameter regardless of whether or not it is SHOULD use the "type" parameter regardless of whether or not it is
required. Producers of Atom Feed Documents MAY use the parameter. mandatory. Producers of Atom Feed Documents MAY use the parameter.
Atom processors that do not recognize the "type" parameter MUST Atom processors that do not recognize the "type" parameter MUST
ignore its value and examine the root element to determine the ignore its value and examine the root element to determine the
document type. document type.
Atom processors that do recognize the "type" parameter SHOULD detect Atom processors that do recognize the "type" parameter SHOULD detect
and report inconsistencies between the parameter's value and the and report inconsistencies between the parameter's value and the
actual type of the document's root element. actual type of the document's root element.
13. Atom Publishing Controls 13. Atom Publishing Controls
This specification defines an Atom Format Structured Extension, as This specification defines an Atom Format Structured Extension, as
defined in Section 6 of [RFC4287], for publishing control within the defined in Section 6 of [RFC4287], for publishing control within the
"http://purl.org/atom/app#" namespace. "http://www.w3.org/2007/app" namespace.
13.1. The "app:control" Element 13.1. The "app:control" Element
namespace app = "http://purl.org/atom/app#" namespace app = "http://www.w3.org/2007/app"
pubControl = pubControl =
element app:control { element app:control {
atomCommonAttributes, atomCommonAttributes,
pubDraft? pubDraft?
& extensionElement & extensionElement
} }
pubDraft = pubDraft =
element app:draft { "yes" | "no" } element app:draft { "yes" | "no" }
The "app:control" element MAY appear as a child of an atom:entry that The "app:control" element MAY appear as a child of an atom:entry that
is being created or updated via the Atom Publishing Protocol. The is being created or updated via the Atom Publishing Protocol. The
app:control element MUST appear only once in an Entry. The app: app:control element MUST appear only once in an Entry. The app:
control element is considered foreign markup as defined in Section 6 control element is considered foreign markup as defined in Section 6
of [RFC4287]. of [RFC4287].
The app:control element and its child elements MAY be included in The app:control element and its child elements MAY be included in
Atom Feed or Entry Documents. Atom Feed or Entry Documents.
The app:control element can contain an optional "app:draft" element The app:control element can contain an "app:draft" element as defined
as defined below, and can contain extension elements as defined in below, and can contain extension elements as defined in Section 6 of
Section 6 of [RFC4287]. [RFC4287].
13.1.1. The "app:draft" Element 13.1.1. The "app:draft" Element
The inclusion of the "app:draft" element represents a request by the The inclusion of the "app:draft" element represents a request by the
client to control the visibility of a Member Resource. Server client to control the visibility of a Member Resource. The app:draft
support is optional and thus the app:draft element MAY be ignored by element MAY be ignored by the server.
the server.
The number of app:draft elements in app:control MUST be zero or one. The number of app:draft elements in app:control MUST be zero or one.
The content of an app:draft element MUST be one of "yes" or "no". If The content of an app:draft element MUST be one of "yes" or "no". If
the element contains "no" this indicates a client request that the the element contains "no" this indicates a client request that the
Member Resource be made publicly visible. If the app:draft element Member Resource be made publicly visible. If the app:draft element
is not present then servers that support the extension MUST behave as is not present then servers that support the extension MUST behave as
though an app:draft element containing "no" was sent. though an app:draft element containing "no" was sent.
14. Securing the Atom Publishing Protocol 14. Securing the Atom Publishing Protocol
The Atom Publishing Protocol is based on HTTP. Authentication The Atom Publishing Protocol is based on HTTP. Authentication
requirements for HTTP are covered in Section 11 of [RFC2616]. requirements for HTTP are covered in Section 11 of [RFC2616].
The use of authentication mechanisms to prevent POSTing or editing by The use of authentication mechanisms to prevent POSTing or editing by
unknown or unauthorized clients is RECOMMENDED but not required. unknown or unauthorized clients is recommended but not required.
When authentication is not used, clients and servers are vulnerable When authentication is not used, clients and servers are vulnerable
to trivial spoofing, denial of service, and defacement attacks. to trivial spoofing, denial of service, and defacement attacks.
However, in some contexts, this is an acceptable risk. However, in some contexts, this is an acceptable risk.
The type of authentication deployed is a local decision made by the The type of authentication deployed is a local decision made by the
server operator. Clients are likely to face authentication schemes server operator. Clients are likely to face authentication schemes
that vary across server deployments. At a minimum, client and server that vary across server deployments. At a minimum, client and server
implementations MUST be capable of being configured to use HTTP Basic implementations MUST be capable of being configured to use HTTP Basic
Authentication [RFC2617] in conjunction with a TLS [RFC2246] Authentication [RFC2617] in conjunction with a connection made with
connection as defined in [RFC2818] (but note that [RFC2246] has been TLS 1.0 [RFC2246] or a subsequent standards-track version of TLS,
superseded by [RFC4346]). See [RFC4346] for more information on TLS. supporting the conventions for using HTTP over TLS described in
[RFC2818]. At a minimum, client and server implementations MUST be
capable of being configured to use HTTP Basic Authentication
[RFC2617] in conjunction with a TLS 1.0 [RFC2246] or a subsequent
standards-track version of TLS, supporting the conventions for using
HTTP over TLS described in [RFC2818].
The choice of authentication mechanism will impact interoperability. The choice of authentication mechanism will impact interoperability.
The minimum level of security referenced above (Basic Authentication The minimum level of security referenced above (Basic Authentication
with TLS) is considered good practice for Internet applications at with TLS) is considered good practice for Internet applications at
the time of publication of this specification and sufficient for the time of publication of this specification and sufficient for
establishing a baseline for interoperability. Implementers are establishing a baseline for interoperability. Implementers are
encouraged to investigate and use alternative mechanisms regarded as encouraged to investigate and use alternative mechanisms regarded as
equivalently good or better at the time of deployment. It is equivalently good or better at the time of deployment. It is
RECOMMENDED that clients be implemented in such a way that new RECOMMENDED that clients be implemented in such a way that new
authentication schemes can be deployed. authentication schemes can be deployed.
Because this protocol uses HTTP response status codes as the primary Because this protocol uses HTTP response status codes as the primary
means of reporting the result of a request, servers are advised to means of reporting the result of a request, servers are advised to
respond to unauthorized or unauthenticated requests using an respond to unauthorized or unauthenticated requests using an
appropriate 4xx HTTP response code (e.g. 401 "Unauthorized" or 403 appropriate 4xx HTTP response code (e.g., 401 "Unauthorized" or 403
"Forbidden") in accordance with [RFC2617]. "Forbidden") in accordance with [RFC2617].
15. Security Considerations 15. Security Considerations
The Atom Publishing Protocol is based on HTTP and thus subject to the The Atom Publishing Protocol is based on HTTP and thus subject to the
security considerations found in Section 15 of [RFC2616]. security considerations found in Section 15 of [RFC2616].
The threats listed in this section apply to many protocols that run
under HTTP. The Atompub Working Group decided that the protection
afforded by running authenticated HTTP under TLS (as described in
Section 14) was sufficient to mitigate many of the problems presented
by the attacks listed in this section.
15.1. Denial of Service 15.1. Denial of Service
Atom Publishing Protocol server implementations need to take adequate Atom Publishing Protocol server implementations need to take adequate
precautions to ensure malicious clients cannot consume excessive precautions to ensure malicious clients cannot consume excessive
server resources (CPU, memory, disk, etc). server resources (CPU, memory, disk, etc).
15.2. Replay Attacks 15.2. Replay Attacks
Atom Publishing Protocol server implementations are susceptible to Atom Publishing Protocol server implementations are susceptible to
replay attacks. Specifically, this specification does not define a replay attacks. Specifically, this specification does not define a
means of detecting duplicate requests. Accidentally sent duplicate means of detecting duplicate requests. Accidentally sent duplicate
requests are indistinguishable from intentional and malicious replay requests are indistinguishable from intentional and malicious replay
attacks. attacks.
15.3. Spoofing Attacks 15.3. Spoofing Attacks
Atom Publishing Protocol implementations are susceptible to a variety Atom Publishing Protocol implementations are susceptible to a variety
of spoofing attacks. Malicious clients may send Atom Entries of spoofing attacks. Malicious clients might send Atom Entries
containing inaccurate information anywhere in the document. containing inaccurate information anywhere in the document.
15.4. Linked Resources 15.4. Linked Resources
Atom Feed and Entry documents can contain XML External Entities as Atom Feed and Entry documents can contain XML External Entities as
defined in Section 4.2.2 of [REC-xml]. Atom implementations are not defined in Section 4.2.2 of [REC-xml]. Atom implementations are not
required to load external entities. External entities are subject to required to load external entities. External entities are subject to
the same security concerns as any network operation and can alter the the same security concerns as any network operation and can alter the
semantics of an Atom document. The same issues exist for Resources semantics of an Atom document. The same issues exist for Resources
linked to by Atom elements such as atom:link and atom:content. linked to by Atom elements such as atom:link and atom:content.
15.5. Digital Signatures and Encryption 15.5. Digital Signatures and Encryption
Atom Entry Documents sent to a server might contain XML Digital Atom Entry and Feed Documents can contain XML Digital Signatures
Signatures [REC-xmldsig-core] and might be encrypted using XML [REC-xmldsig-core] and can be encrypted using XML Encryption
Encryption [REC-xmlenc-core] as specified in Section 5 of [RFC4287]. [REC-xmlenc-core] as specified in Section 5 of [RFC4287]. Handling
of signatures and encrypted elements in Atom documents is discussed
in sections 5 and 6.3 of [RFC4287].
Servers are allowed to modify received Resource representations in Neither servers nor clients are under any obligation to support
ways that can invalidate signatures covering those representations. encryption and digital signature of entries or feeds, although it is
certainly possible that in some installations, clients or servers
might require signing or encrypting of the documents exchanged in the
Atom protocol.
Because servers are allowed (and in some cases expected) to modify
the contents of an Entry Document before publishing it, signatures
within an entry are only likely to be useful to the server to which
the entry is being sent. Clients cannot assume that the signature
will be valid when viewed by a third party, or even that the server
will publish the client's signature.
A server is allowed to strip client-applied signatures, to strip
client-applied signatures and then re-sign with its own public key,
and to oversign an entry with its own public key. The meaning to a
third party of a signature applied by a server is the same as a
signature from anyone, as described in [RFC4287]. It is recommended
that a server that is aware that it has changed any part of an Entry
Document that was signed by the client should strip that signature
before publishing the entry in order to prevent third parties from
trying to interpret a signature that cannot be validated.
15.6. URIs and IRIs 15.6. URIs and IRIs
Atom Publishing Protocol implementations handle URIs and IRIs. See Atom Publishing Protocol implementations handle URIs and IRIs. See
Section 7 of [RFC3986] and Section 8 of [RFC3987] for security Section 7 of [RFC3986] and Section 8 of [RFC3987] for security
considerations related to their handling and use. considerations related to their handling and use.
The Atom Publishing Protocol leaves the server in control of minting
URIs. The use of any client-supplied data for creating new URIs is
subject to the same concerns as described in the next section.
15.7. Code Injection and Cross Site Scripting 15.7. Code Injection and Cross Site Scripting
Atom Feed and Entry documents can contain a broad range of content Atom Feed and Entry documents can contain a broad range of content
types including code that might be executable in some contexts. types including code that might be executable in some contexts.
Malicious clients could attempt to attack servers or other clients by Malicious clients could attempt to attack servers or other clients by
injecting code into a Collection Document's Entry or Media Resources. injecting code into a Collection Document's Entry or Media Resources.
Server implementations are strongly encouraged to verify that client Server implementations are strongly encouraged to verify that client
supplied content is safe prior to accepting, processing or publishing supplied content is safe prior to accepting, processing or publishing
it. In the case of HTML, experience indicates that verification it. In the case of HTML, experience indicates that verification
based on a white list of acceptable content is more effective than a based on a white list of acceptable content is more effective than a
black list of forbidden content. black list of forbidden content.
Additional information about XHTML and HTML content safety can be Additional information about XHTML and HTML content safety can be
found in Section 8.1 of [RFC4287] found in Section 8.1 of [RFC4287]
16. IANA Considerations 16. IANA Considerations
This document uses two new media types that conform to the registry This specification uses two new media types that conform to the
mechanism described in [RFC4288], a new message header that conforms registry mechanism described in [RFC4288], a new message header that
to the registry mechanism described in [RFC3864], and two new link conforms to the registry mechanism described in [RFC3864], and two
relations that conform to the registry mechanism described in new link relations that conform to the registry mechanism described
[RFC4287]. in [RFC4287].
16.1. Content-type registration for 'application/atomcat+xml' 16.1. Content-type registration for 'application/atomcat+xml'
An Atom Publishing Protocol Category Document, when serialized as XML An Atom Publishing Protocol Category Document, when serialized as XML
1.0, can be identified with the following media type: 1.0, can be identified with the following media type:
MIME media type name: application MIME media type name: application
MIME subtype name: atomcat+xml MIME subtype name: atomcat+xml
skipping to change at page 49, line 34 skipping to change at page 48, line 34
Optional parameters: Optional parameters:
"charset": This parameter has identical semantics to the charset "charset": This parameter has identical semantics to the charset
parameter of the "application/xml" media type as specified in parameter of the "application/xml" media type as specified in
[RFC3023]. [RFC3023].
Encoding considerations: Identical to those of "application/xml" as Encoding considerations: Identical to those of "application/xml" as
described in [RFC3023], section 3.2. described in [RFC3023], section 3.2.
Security considerations: As defined in this specification. Security considerations: As defined in this specification.
[[anchor31: update upon publication]] [[anchor30: update upon publication]]
In addition, as this media type uses the "+xml" convention, it In addition, as this media type uses the "+xml" convention, it
shares the same security considerations as described in [RFC3023], shares the same security considerations as described in [RFC3023],
section 10. section 10.
Interoperability considerations: There are no known interoperability Interoperability considerations: There are no known interoperability
issues. issues.
Published specification: This specification. [[anchor32: update upon Published specification: This specification. [[anchor31: update upon
publication]] publication]]
Applications that use this media type: No known applications Applications that use this media type: No known applications
currently use this media type. currently use this media type.
Additional information: Additional information:
Magic number(s): As specified for "application/xml" in [RFC3023], Magic number(s): As specified for "application/xml" in [RFC3023],
section 3.2. section 3.2.
skipping to change at page 50, line 22 skipping to change at page 49, line 22
Base URI: As specified in [RFC3023], section 6. Base URI: As specified in [RFC3023], section 6.
Macintosh File Type code: TEXT Macintosh File Type code: TEXT
Person and email address to contact for further information: Joe Person and email address to contact for further information: Joe
Gregorio <joe@bitworking.org> Gregorio <joe@bitworking.org>
Intended usage: COMMON Intended usage: COMMON
Author/Change controller: This specification's author(s). Author/Change controller: IETF (iesg@ietf.org) Internet Engineering
[[anchor33: update upon publication]] Task Force
16.2. Content-type registration for 'application/atomsvc+xml' 16.2. Content-type registration for 'application/atomsvc+xml'
An Atom Publishing Protocol Service Document, when serialized as XML An Atom Publishing Protocol Service Document, when serialized as XML
1.0, can be identified with the following media type: 1.0, can be identified with the following media type:
MIME media type name: application MIME media type name: application
MIME subtype name: atomsvc+xml MIME subtype name: atomsvc+xml
skipping to change at page 50, line 46 skipping to change at page 49, line 46
Optional parameters: Optional parameters:
"charset": This parameter has identical semantics to the charset "charset": This parameter has identical semantics to the charset
parameter of the "application/xml" media type as specified in parameter of the "application/xml" media type as specified in
[RFC3023]. [RFC3023].
Encoding considerations: Identical to those of "application/xml" as Encoding considerations: Identical to those of "application/xml" as
described in [RFC3023], section 3.2. described in [RFC3023], section 3.2.
Security considerations: As defined in this specification. Security considerations: As defined in this specification.
[[anchor34: update upon publication]] [[anchor32: update upon publication]]
In addition, as this media type uses the "+xml" convention, it In addition, as this media type uses the "+xml" convention, it
shares the same security considerations as described in [RFC3023], shares the same security considerations as described in [RFC3023],
section 10. section 10.
Interoperability considerations: There are no known interoperability Interoperability considerations: There are no known interoperability
issues. issues.
Published specification: This specification. [[anchor35: update upon Published specification: This specification. [[anchor33: update upon
publication]] publication]]
Applications that use this media type: No known applications Applications that use this media type: No known applications
currently use this media type. currently use this media type.
Additional information: Additional information:
Magic number(s): As specified for "application/xml" in [RFC3023], Magic number(s): As specified for "application/xml" in [RFC3023],
section 3.2. section 3.2.
skipping to change at page 51, line 33 skipping to change at page 50, line 33
Base URI: As specified in [RFC3023], section 6. Base URI: As specified in [RFC3023], section 6.
Macintosh File Type code: TEXT Macintosh File Type code: TEXT
Person and email address to contact for further information: Joe Person and email address to contact for further information: Joe
Gregorio <joe@bitworking.org> Gregorio <joe@bitworking.org>
Intended usage: COMMON Intended usage: COMMON
Author/Change controller: This specification's author(s). Author/Change controller: IETF (iesg@ietf.org) Internet Engineering
[[anchor36: update upon publication]] Task Force
16.3. Header field registration for 'SLUG' 16.3. Header field registration for 'SLUG'
Header field: SLUG Header field: SLUG
Applicable protocol: http [RFC2616] Applicable protocol: http [RFC2616]
Status: standard. Status: standard.
Author/Change controller: IETF (iesg@ietf.org) Internet Engineering Author/Change controller: IETF (iesg@ietf.org) Internet Engineering
Task Force Task Force
Specification document(s): This specification. [[anchor37: update on Specification document(s): This specification. [[anchor34: update on
rfc number assignment]]) rfc number assignment]])
Related information: Related information:
16.4. The Link Relation registration "edit" 16.4. The Link Relation registration "edit"
Attribute Value: edit Attribute Value: edit
Description: An IRI of an editable Member Entry. When appearing Description: An IRI of an editable Member Entry. When appearing
within an atom:entry, the href IRI can be used to retrieve, update within an atom:entry, the href IRI can be used to retrieve, update
and delete the Resource represented by that Entry. and delete the Resource represented by that Entry.
skipping to change at page 54, line 15 skipping to change at page 53, line 15
[RFC2617] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., [RFC2617] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S.,
Leach, P., Luotonen, A., and L. Stewart, "HTTP Leach, P., Luotonen, A., and L. Stewart, "HTTP
Authentication: Basic and Digest Access Authentication", Authentication: Basic and Digest Access Authentication",
RFC 2617, June 1999. RFC 2617, June 1999.
[RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000. [RFC2818] Rescorla, E., "HTTP Over TLS", RFC 2818, May 2000.
[RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media [RFC3023] Murata, M., St. Laurent, S., and D. Kohn, "XML Media
Types", RFC 3023, January 2001. Types", RFC 3023, January 2001.
[RFC3629] Yergeau, F., "UTF-8, a transformation format of ISO
10646", STD 63, RFC 3629, November 2003.
[RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration [RFC3864] Klyne, G., Nottingham, M., and J. Mogul, "Registration
Procedures for Message Header Fields", BCP 90, RFC 3864, Procedures for Message Header Fields", BCP 90, RFC 3864,
September 2004. September 2004.
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform [RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
Resource Identifier (URI): Generic Syntax", STD 66, Resource Identifier (URI): Generic Syntax", STD 66,
RFC 3986, January 2005. RFC 3986, January 2005.
[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.
[RFC4287] Nottingham, M. and R. Sayre, "The Atom Syndication [RFC4287] Nottingham, M. and R. Sayre, "The Atom Syndication
Format", RFC 4287, December 2005. Format", RFC 4287, December 2005.
[RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and [RFC4288] Freed, N. and J. Klensin, "Media Type Specifications and
Registration Procedures", BCP 13, RFC 4288, December 2005. Registration Procedures", BCP 13, RFC 4288, December 2005.
[RFC4346] Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.1", RFC 4346, April 2006.
17.2. Informative References 17.2. Informative References
[NOTE-detect-lost-update] [NOTE-detect-lost-update]
Nielsen, H. and D. LaLiberte, "Editing the Web: Detecting Nielsen, H. and D. LaLiberte, "Editing the Web: Detecting
the Lost Update Problem Using Unreserved Checkout", World the Lost Update Problem Using Unreserved Checkout", World
Wide Web Consortium NOTE NOTE-detect-lost-update, Wide Web Consortium NOTE NOTE-detect-lost-update,
May 1999, <http://www.w3.org/1999/04/Editing/>. May 1999, <http://www.w3.org/1999/04/Editing/>.
[REC-webarch] [REC-webarch]
Walsh, N. and I. Jacobs, "Architecture of the World Wide Walsh, N. and I. Jacobs, "Architecture of the World Wide
skipping to change at page 57, line 20 skipping to change at page 56, line 20
namespace which are not defined in this revision of the namespace which are not defined in this revision of the
specification. Requirements for Atom Protocol processors specification. Requirements for Atom Protocol processors
encountering such markup are given in Section 6.2 and Section 6.3 of encountering such markup are given in Section 6.2 and Section 6.3 of
[RFC4287]. [RFC4287].
The Schema for Service Documents: The Schema for Service Documents:
# -*- rnc -*- # -*- rnc -*-
# RELAX NG Compact Syntax Grammar for the Atom Protocol # RELAX NG Compact Syntax Grammar for the Atom Protocol
namespace app = "http://purl.org/atom/app#" namespace app = "http://www.w3.org/2007/app"
namespace atom = "http://www.w3.org/2005/Atom" namespace atom = "http://www.w3.org/2005/Atom"
namespace xsd = "http://www.w3.org/2001/XMLSchema" namespace xsd = "http://www.w3.org/2001/XMLSchema"
namespace xhtml = "http://www.w3.org/1999/xhtml" namespace xhtml = "http://www.w3.org/1999/xhtml"
namespace local = "" namespace local = ""
start = appService start = appService
# common:attrs # common:attrs
atomURI = text atomURI = text
skipping to change at page 61, line 16 skipping to change at page 60, line 16
| anyXHTML)* | anyXHTML)*
} }
# EOF # EOF
The Schema for Category Documents: The Schema for Category Documents:
# -*- rnc -*- # -*- rnc -*-
# RELAX NG Compact Syntax Grammar for the Atom Protocol # RELAX NG Compact Syntax Grammar for the Atom Protocol
namespace app = "http://purl.org/atom/app#" namespace app = "http://www.w3.org/2007/app"
namespace atom = "http://www.w3.org/2005/Atom" namespace atom = "http://www.w3.org/2005/Atom"
namespace xsd = "http://www.w3.org/2001/XMLSchema" namespace xsd = "http://www.w3.org/2001/XMLSchema"
namespace local = "" namespace local = ""
start = appCategories start = appCategories
atomCommonAttributes = atomCommonAttributes =
attribute xml:base { atomURI }?, attribute xml:base { atomURI }?,
attribute xml:lang { atomLanguageTag }?, attribute xml:lang { atomLanguageTag }?,
undefinedAttribute* undefinedAttribute*
skipping to change at page 63, line 7 skipping to change at page 62, line 7
element * - atom:* { element * - atom:* {
(attribute * { text } (attribute * { text }
| text | text
| anyElement)* | anyElement)*
} }
# EOF # EOF
Appendix C. Revision History Appendix C. Revision History
[[anchor42: This section to be removed upon publication.]] [[anchor39: This section to be removed upon publication.]]
draft-ietf-atompub-protocol-14: typos; removed "The language context draft-ietf-atompub-protocol-14: typos; removed "The language context
is only significant for elements and attributes declared to be is only significant for elements and attributes declared to be
"Language-Sensitive" by this specification. "; "Successful member "Language-Sensitive" by this specification. "; "Successful member
creation is normally indicated with a 201 ("Created") response code." creation is normally indicated with a 201 ("Created") response code."
removed "normally" from that sentence (9.2); Added "Media Link removed "normally" from that sentence (9.2); Added "Media Link
Entries are represented as Atom Entries and appear in the Entries are represented as Atom Entries and appear in the
Collection." to 9.6; said that an app:accept value of "entry" is Collection." to 9.6; said that an app:accept value of "entry" is
equivalent to "application/atom+xml;type=entry"; double-check spec equivalent to "application/atom+xml;type=entry"; double-check spec
terms; Member Entry resource -> Entry Resource; Added MLE, Entry terms; Member Entry resource -> Entry Resource; Added MLE, Entry
skipping to change at page 67, line 18 skipping to change at page 66, line 18
IBM IBM
4205 South Miama Blvd. 4205 South Miama Blvd.
Research Triangle Park, NC 27709 Research Triangle Park, NC 27709
US US
Phone: +1 919 272 3764 Phone: +1 919 272 3764
Email: joe@bitworking.org Email: joe@bitworking.org
URI: http://ibm.com/ URI: http://ibm.com/
Bill de hOra (editor) Bill de hOra (editor)
Propylon Ltd.
45 Blackbourne Square, Rathfarnham Gate
Dublin, Dublin D14
IE
Phone: +353-1-4927444
Email: bill@dehora.net Email: bill@dehora.net
URI: http://www.propylon.com/ URI: http://dehora.net/
Full Copyright Statement Full Copyright Statement
Copyright (C) The IETF Trust (2007). Copyright (C) The IETF Trust (2007).
This document is subject to the rights, licenses and restrictions This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors contained in BCP 78, and except as set forth therein, the authors
retain all their rights. retain all their rights.
This document and the information contained herein are provided on an This document and the information contained herein are provided on an
 End of changes. 49 change blocks. 
138 lines changed or deleted 172 lines changed or added

This html diff was produced by rfcdiff 1.32. The latest version is available from http://www.levkowetz.com/ietf/tools/rfcdiff/