draft-gregorio-09.txt | draft-ietf-atompub-protocol-00.txt | |||
---|---|---|---|---|
yes J. Gregorio | Network Working Group J. Gregorio, Ed. | |||
BitWorking, Inc | Internet-Draft BitWorking, Inc | |||
December 10, 2003 | Expires: December 30, 2004 R. Sayre, Ed. | |||
Boswijck Memex Consulting | ||||
July 1, 2004 | ||||
The AtomAPI | The Atom Publishing Protocol | |||
draft-ietf-atompub-protocol-00.txt | ||||
Abstract | Status of this Memo | |||
This memo presents a technique for using XML (Extensible Markup | By submitting this Internet-Draft, I certify that any applicable | |||
Language) and HTTP (HyperText Transport Protocol) to edit content. | patent or other IPR claims of which I am aware have been disclosed, | |||
and any of which I become aware will be disclosed, in accordance with | ||||
RFC 3668. | ||||
Table of Contents | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | ||||
other groups may also distribute working documents as | ||||
Internet-Drafts. | ||||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 3 | Internet-Drafts are draft documents valid for a maximum of six months | |||
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | and may be updated, replaced, or obsoleted by other documents at any | |||
3. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | time. It is inappropriate to use Internet-Drafts as reference | |||
4. Introduction . . . . . . . . . . . . . . . . . . . . . . . 6 | material or to cite them other than as "work in progress." | |||
4.1 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . 6 | ||||
4.2 Terminology . . . . . . . . . . . . . . . . . . . . . . . 6 | ||||
4.3 The AtomAPI Model . . . . . . . . . . . . . . . . . . . . 6 | ||||
5. Functional Specification . . . . . . . . . . . . . . . . . 8 | ||||
5.1 PostURI . . . . . . . . . . . . . . . . . . . . . . . . . 8 | ||||
5.1.1 Locating . . . . . . . . . . . . . . . . . . . . . . . . . 8 | ||||
5.1.2 Request . . . . . . . . . . . . . . . . . . . . . . . . . 8 | ||||
5.1.3 Response . . . . . . . . . . . . . . . . . . . . . . . . . 8 | ||||
5.2 EditURI . . . . . . . . . . . . . . . . . . . . . . . . . 9 | ||||
5.2.1 Locating . . . . . . . . . . . . . . . . . . . . . . . . . 9 | ||||
5.2.2 Request . . . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
5.3 FeedURI . . . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
5.3.1 Locating . . . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
5.3.2 Request . . . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
5.3.3 Response . . . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
5.4 Link Tag . . . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
5.4.1 rel . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
5.4.2 href . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | ||||
5.4.3 title . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | ||||
5.4.4 type . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | ||||
5.5 Atom Request and Response Body Constraints . . . . . . . . 12 | ||||
5.5.1 id . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 | ||||
5.5.2 link . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
5.5.3 title . . . . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
5.5.4 summary . . . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
5.5.5 content . . . . . . . . . . . . . . . . . . . . . . . . . 14 | ||||
5.5.6 issued . . . . . . . . . . . . . . . . . . . . . . . . . . 14 | ||||
5.5.7 modified . . . . . . . . . . . . . . . . . . . . . . . . . 15 | ||||
5.5.8 created . . . . . . . . . . . . . . . . . . . . . . . . . 15 | ||||
5.5.9 author . . . . . . . . . . . . . . . . . . . . . . . . . . 15 | ||||
The AtomAPI December 2003 | ||||
5.5.10 contributor . . . . . . . . . . . . . . . . . . . . . . . 16 | The list of current Internet-Drafts can be accessed at | |||
5.5.11 generator . . . . . . . . . . . . . . . . . . . . . . . . 16 | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
6. Security Considerations . . . . . . . . . . . . . . . . . 17 | ||||
7. Appendices . . . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
7.1 SOAP Enabling . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
7.1.1 Servers . . . . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
7.1.2 Clients . . . . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
7.2 Example for a weblog . . . . . . . . . . . . . . . . . . . 18 | ||||
7.3 Example for a wiki . . . . . . . . . . . . . . . . . . . . 19 | ||||
8. Revision History . . . . . . . . . . . . . . . . . . . . . 20 | ||||
9. Copyright . . . . . . . . . . . . . . . . . . . . . . . . 21 | ||||
References . . . . . . . . . . . . . . . . . . . . . . . . 22 | ||||
Author's Address . . . . . . . . . . . . . . . . . . . . . 22 | ||||
The AtomAPI December 2003 | ||||
1. Introduction | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | ||||
The AtomAPI is an application level protocol for publishing and | This Internet-Draft will expire on December 30, 2004. | |||
editing web resources. The protocol at its core is the HTTP transport | ||||
of Atom formatted representations. | ||||
To provide feedback on this draft RFC please visit the Atom Wiki [1] | Copyright Notice | |||
or join the atom-syntax mailing list [2]. | ||||
The AtomAPI December 2003 | Copyright (C) The Internet Society (2004). All Rights Reserved. | |||
2. Terminology | Abstract | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | This memo presents a protocol for using XML (Extensible Markup | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY",the and "OPTIONAL" in | Language) and HTTP (HyperText Transport Protocol) to edit content. | |||
this document are to be interpreted as described in RFC2119. | ||||
The AtomAPI December 2003 | The Atom Publishing Protocol is an application-level protocol for | |||
publishing and editing Web resources belonging to periodically | ||||
updated websites. The protocol at its core is the HTTP transport of | ||||
Atom-formatted representations. The Atom format is documented in the | ||||
Atom Syndication Format 0.3 PRE-DRAFT | ||||
(http://www.mnot.net/drafts/draft-nottingham-atom-format-02.html). | ||||
3. Scope | To provide feedback on this Internet-Draft, join the atom-syntax | |||
mailing list (http://www.imc.org/atom-syntax/index.html). | ||||
This document covers the editing of content of a periodically | Table of Contents | |||
updating website using the HTTP and XML. All of the XML payloads are | ||||
in Atom format, which is documented in the draft Atom Syndication | ||||
Format RFC [3]. | ||||
The AtomAPI December 2003 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
1.1 Notational Conventions . . . . . . . . . . . . . . . . . . 4 | ||||
1.2 Terminology . . . . . . . . . . . . . . . . . . . . . . . 4 | ||||
2. The Atom Publishing Protocol Model . . . . . . . . . . . . . 4 | ||||
3. Functional Specification . . . . . . . . . . . . . . . . . . 5 | ||||
3.1 PostURI . . . . . . . . . . . . . . . . . . . . . . . . . 5 | ||||
3.1.1 Locating the PostURI . . . . . . . . . . . . . . . . . 5 | ||||
3.1.2 Request . . . . . . . . . . . . . . . . . . . . . . . 5 | ||||
3.1.3 Response . . . . . . . . . . . . . . . . . . . . . . . 5 | ||||
3.2 EditURI . . . . . . . . . . . . . . . . . . . . . . . . . 6 | ||||
3.2.1 Locating . . . . . . . . . . . . . . . . . . . . . . . 7 | ||||
3.2.2 Request . . . . . . . . . . . . . . . . . . . . . . . 7 | ||||
3.3 FeedURI . . . . . . . . . . . . . . . . . . . . . . . . . 7 | ||||
3.3.1 Locating . . . . . . . . . . . . . . . . . . . . . . . 8 | ||||
3.3.2 Request . . . . . . . . . . . . . . . . . . . . . . . 8 | ||||
3.3.3 Response . . . . . . . . . . . . . . . . . . . . . . . 8 | ||||
3.4 Link Tag . . . . . . . . . . . . . . . . . . . . . . . . . 8 | ||||
3.4.1 rel . . . . . . . . . . . . . . . . . . . . . . . . . 8 | ||||
3.4.2 href . . . . . . . . . . . . . . . . . . . . . . . . . 9 | ||||
3.4.3 title . . . . . . . . . . . . . . . . . . . . . . . . 9 | ||||
3.4.4 type . . . . . . . . . . . . . . . . . . . . . . . . . 9 | ||||
3.5 Atom Request and Response Body Constraints . . . . . . . . 9 | ||||
3.5.1 id . . . . . . . . . . . . . . . . . . . . . . . . . . 9 | ||||
3.5.2 link . . . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
3.5.3 title . . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
3.5.4 summary . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
3.5.5 content . . . . . . . . . . . . . . . . . . . . . . . 10 | ||||
3.5.6 issued . . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
3.5.7 modified . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
3.5.8 created . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
3.5.9 author . . . . . . . . . . . . . . . . . . . . . . . . 11 | ||||
3.5.10 contributor . . . . . . . . . . . . . . . . . . . . 12 | ||||
3.5.11 generator . . . . . . . . . . . . . . . . . . . . . 12 | ||||
4. Security Considerations . . . . . . . . . . . . . . . . . . 12 | ||||
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . 13 | ||||
6. Appendix A - SOAP Enabling . . . . . . . . . . . . . . . . . 13 | ||||
6.1 Servers . . . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
6.2 Clients . . . . . . . . . . . . . . . . . . . . . . . . . 13 | ||||
7. Appendix B - Examples . . . . . . . . . . . . . . . . . . . 13 | ||||
7.1 Example for a weblog . . . . . . . . . . . . . . . . . . . 13 | ||||
7.2 Example for a wiki . . . . . . . . . . . . . . . . . . . . 13 | ||||
8. Revision History . . . . . . . . . . . . . . . . . . . . . . 14 | ||||
9. Normative References . . . . . . . . . . . . . . . . . . . . 15 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . 15 | ||||
Intellectual Property and Copyright Statements . . . . . . . 16 | ||||
4. Introduction | 1. Introduction | |||
4.1 Purpose | The Atom Publishing Protocol is an application-level protocol for | |||
publishing and editing Web resources. | ||||
The AtomAPI is an application level protocol for publishing and | 1.1 Notational Conventions | |||
editing web resources. | ||||
4.2 Terminology | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", the and "OPTIONAL" in | ||||
this document are to be interpreted as described in RFC2119. | ||||
Atom Entry A fragment of a full Atom feed. In this case the fragment | 1.2 Terminology | |||
is a single 'entry' element and all it's child elements. | ||||
PostURI A URI that is used to create new resources. POSTing an Atom | Atom Entry: An Atom Entry is a fragment of a full Atom feed. In this | |||
case, the fragment is a single 'entry' element and all its child | ||||
elements. Each Atom Entry describes a single Web resource, | ||||
providing metadata and optionally a textual representation of that | ||||
resource. | ||||
PostURI: A URI that is used to create new resources. POSTing an Atom | ||||
Entry to this URI will create a new resource. | Entry to this URI will create a new resource. | |||
EditURI: A URI that is used to edit a resource. The editing is done | ||||
EditURI A URI that is used to edit a resource. The editing is done | ||||
using the HTTP verbs GET, PUT and DELETE. The representation of | using the HTTP verbs GET, PUT and DELETE. The representation of | |||
the resource is always that of an Atom Entry. | the resource is always that of an Atom Entry. | |||
FeedURI: The URI which identifies an Atom Feed. | ||||
FeedURI A URI that has a representation as a full Atom feed. | 2. The Atom Publishing Protocol Model | |||
4.3 The AtomAPI Model | ||||
AtomAPI is an application level protocol for publishing and editing | ||||
web resources. Using the common HTTP verbs provides a pattern for | ||||
working with all such web resources: | ||||
The Atom Publishing Protocol is an application-level protocol for | ||||
publishing and editing Web resources. Using the common HTTP verbs | ||||
provides a pattern for working with all such Web resources: | ||||
o GET is used to retrieve a representation of a resource or perform | o GET is used to retrieve a representation of a resource or perform | |||
a read-only query. | a read-only query. | |||
o PUT is used to update a known resource. | o PUT is used to update a known resource. | |||
o POST is used to create a new dynamically-named resource. | o POST is used to create a new dynamically-named resource. | |||
o DELETE is used to remove a resource. | o DELETE is used to remove a resource. | |||
There are different kinds of resources managed by the AtomAPI, each | There are three major classes of URIs in this specification: PostURI, | |||
of these have URIs and those URIs support a subset of the above | FeedURI and EditURI. This specification defines the expected actions | |||
methods. There are three major classes of URIs in this specification: | for each of the methods listed. A URI MAY support methods not listed | |||
PostURI, FeedURI and EditURI. This specification defines the expected | here. For example, an EditURI could support a POST or OPTIONS | |||
actions for each of the methods listed. Note that this does not | method. However, what those methods do is beyond the scope of this | |||
restrict a URI to only supporting just those methods listed, for | ||||
example an EditURI could support a POST method, or the OPTIONS | ||||
method, what those methods do is beyond the scope of this | ||||
specification. | specification. | |||
o EditURI: PUT, GET, DELETE | o EditURI: PUT, GET, DELETE | |||
The AtomAPI December 2003 | ||||
o PostURI: POST | o PostURI: POST | |||
o FeedURI: GET | o FeedURI: GET | |||
This RFC does not specify the form of the URIs that are used. The URI | This document does not specify the form of the URIs that are used. | |||
space of each server is controlled, as defined by HTTP, by the server | The URI space of each server is controlled, as defined by HTTP, by | |||
alone. What this RFC does specify are the formats of the files that | the server alone. What this document does specify are the formats of | |||
are exchanged and the actions that can be performed on the URIs | the files that are exchanged and the actions that can be performed on | |||
embedded in those files. | the URIs embedded in those files. | |||
The AtomAPI December 2003 | ||||
5. Functional Specification | 3. Functional Specification | |||
5.1 PostURI | 3.1 PostURI | |||
The PostURI is used to create entries. These can be either full | The PostURI is used to create entries. These can be either full | |||
entries, such as a weblog post, or they can be comments, or even a | entries, such as a weblog post, or they can be comments, or even a | |||
wiki page. The client POSTs a filled in Atom Entry to this URI. If | wiki page. The client POSTs a filled-in Atom Entry to this URI. If | |||
the request is succesful then multiple new URIs may be created that | the request is successful, one or more Web resources MAY be created. | |||
contain representations of varying types. For example, POSTing an | For example, POSTing an Atom entry to a PostURI may create two new | |||
Atom entry to a PostURI may create a new weblog entry with both an | Web resources, an HTML representation and an Atom representation. | |||
HTML and Atom representation now available. The URI of the newly | ||||
created Atom representation may in fact be an EditURI through which | ||||
the resource can be edited. | ||||
5.1.1 Locating | 3.1.1 Locating the PostURI | |||
For creating a new site Entry, the link tag is used. Note that a link | The PostURI can be discovered in a link element with an @rel of | |||
tag is used in both HTML and in the Atom format. A link tag of the | 'service.post'. The link element containing a PostURI used to create | |||
following format points to the PostURI for a site. In HTML the link | a new entry MAY be discovered in three different places. The first | |||
tags are always found in the head element, while in Atom they may | place it may be found is in a <link> element in the 'head' element of | |||
appear as children of the Feed and entry elements. | an HTML document. | |||
The second place a PostURI may be found an atom:link element that is | ||||
a child of the atom:feed element. The third place a PostURI may be | ||||
found is in the atom:link element of an atom:entry. | ||||
@@ TBD @@ - Discuss subordinate resources and what a PostURI means | ||||
based on where the URI was found. | ||||
<link rel="service.post" | <link rel="service.post" | |||
type="application/x.atom+xml" | type="application/atom+xml" | |||
href="URI for Posting goes here" | href="URI for Posting goes here" | |||
title="The name of the site."> | title="The name of the site."> | |||
Note: Multiple link tags may appear together and can be distinguished | 3.1.2 Request | |||
by having different 'rel', 'type' and 'title' attributes. | ||||
5.1.2 Request | ||||
The request contains a filled in Atom entry, subject to the | The request contains a filled-in Atom entry, subject to the | |||
constraints in section @@ TBD @@. | constraints in section Section 3.5. | |||
5.1.3 Response | 3.1.3 Response | |||
The expected status codes from a POST are 201, 303, 400, and 500. | The possible status codes from a POST are 201, 303, 400, 401, 404, | |||
401, 404, and 410 are also possible. | 410 and 500. | |||
5.1.3.1 201 | 3.1.3.1 Response code 201 | |||
Response includes a Location: header with the URI of the created | Response includes a Location: header with the URI of the created | |||
resource, i.e. the URI used to edit the entry, as opposed to the URI | resource, i.e. the URI used to edit the entry, as opposed to the URI | |||
used to display the content. The body of the response will contain | used to display the content. The body of the response will contain | |||
the entry "filled in" with time stamps and any other data the server | the entry "filled-in" with time stamps and any other data the server | |||
choses to reveal. This must contain enough information to enable a | chooses to reveal. This must contain enough information to enable a | |||
client to issue a subsequent PUT to this location. Note that the | client to issue a subsequent PUT to this location. Note that the | |||
The AtomAPI December 2003 | ||||
server may chose to omit the content in the response, particularly if | server may chose to omit the content in the response, particularly if | |||
it is large. | it is large. | |||
5.1.3.2 303 | 3.1.3.2 Response code 303 | |||
The body of this response does not contain the filled in Entry, but | The body of this response does not contain the filled-in Entry, but | |||
the filled in Entry can be found under a different URI and SHOULD be | the filled-in Entry can be found under a different URI and can be | |||
retrieved using a GET method on that resource. The different URI | retrieved using a GET method on that resource. The URI SHOULD be | |||
SHOULD be given by the Location field in the response. | given by the Location field in the response. | |||
5.1.3.3 400 | 3.1.3.3 Response code 400 | |||
Indicates that the server believes that that data sent constitutes an | Indicates that the server believes that that data sent constitutes an | |||
invalid request. A short description of the error will appear on the | invalid request. A short description of the error will appear on the | |||
status line itself. A longer description will appear in the body. | <http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1> | |||
itself. A longer description will appear in the body. | ||||
5.1.3.4 500 | 3.1.3.4 Response code 500 | |||
Indicates that the server detected an internal error on the server | Indicates that the server detected an internal error on the server | |||
processing this request (such as an unhandled exception). A short | processing this request (such as an unhandled exception). A short | |||
description of the error will appear on the status line itself. A | description of the error will appear on the | |||
longer description will appear in the body. | <http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html#sec6.1> | |||
itself. A longer description will appear in the body. | ||||
5.2 EditURI | 3.2 EditURI | |||
An EditURI is used to edit a single entry. Each entry that is | An EditURI is used to edit a single entry. Each entry that is | |||
editable MUST have a unique URI. This URI supports both GET and PUT | editable MUST have a unique URI. This URI supports both GET and PUT | |||
and they are used in tandem for an editing cycle. The client GET's | and they are used in tandem for an editing cycle. The client GETs | |||
the represenation which is formatted as an Atom entry. The client may | the representation which is formatted as an Atom entry. The client | |||
then update the entry and then PUT it back to the same URI. The PUT | may then update the entry and then PUT it back to the same URI. The | |||
will cause all the related resources to be updated, for example, the | PUT will cause all the related resources to be updated, for example, | |||
HTML representaion. | the HTML representation. | |||
Note that the value of the content element in the Atom entry does not | Note that the value of the content element in the Atom entry does not | |||
have to exactly match the content element for the same entry when it | have to exactly match the content element for the same entry when it | |||
is represented in an Atom feed. For example, a server may allow the | is represented in an Atom feed. For example, a server may allow the | |||
client to post entries whose content is formatted as WikiML, yet the | client to post entries whose content is formatted as WikiML, yet the | |||
server may clean up such markup and transform it into well-formed | server may clean up such markup and transform it into well-formed | |||
XHTML before placing it in the publicly avialable Atom feed. Another | XHTML before placing it in the publicly available Atom feed. Another | |||
scenario is summaries, the EditURI is for editing the full content of | scenario is summaries--the EditURI is for editing the full content of | |||
an entry, but the server may only present excerpts when it produces | an entry, but the server may only present excerpts when it produces | |||
an Atom feed. | an Atom feed. | |||
A client will send a DELETE to the EditURI to delete an entry. | A client will send a DELETE to the EditURI to delete an entry. | |||
5.2.1 Locating | 3.2.1 Locating | |||
For editing a site Entry, the link tag is used. Note that a link tag | For editing a site Entry, the link tag is used. Note that a link tag | |||
The AtomAPI December 2003 | ||||
is used in both HTML and in the Atom format. A link tag of the | is used in both HTML and in the Atom format. A link tag of the | |||
following format points to the EditURI for a site. In HTML the link | following format points to the EditURI for a site. In HTML, the link | |||
tags for editing are always found in the head element, while in Atom | tags for editing are always found in the head element, while in Atom | |||
they may appear as children of the entry elements. | they may appear as children of the entry elements. | |||
<link rel="service.edit" | <link rel="service.edit" | |||
type="application/x.atom+xml" | type="application/atom+xml" | |||
href="URI for Editing goes here" | href="URI for Editing goes here" | |||
title="Readable desc of the entry."> | title="Readable desc of the entry."> | |||
Note: The critical characteristic of this link tag is the @rel of | Note: The critical characteristic of this link tag is the @rel of | |||
'service.edit' and the @type of 'application/x.atom+xml'. | 'service.edit' and the @type of 'application/atom+xml'. | |||
5.2.2 Request | 3.2.2 Request | |||
A PUT request, and a GET response both contain a filled in Atom | A PUT request, and a GET response both contain a filled-in Atom | |||
entry, subject to the constraints in section @@ TBD @@. | entry, subject to the constraints in section Section 3.5. | |||
5.3 FeedURI | 3.3 FeedURI | |||
The FeedURI is used to retrieve a represenation in Atom format. Note | The FeedURI is used to retrieve a representation in Atom format. | |||
that this feed is different from a typical Atom feed in that it | Note that this feed is different from a typical Atom feed in that it | |||
contains "link" elements for navigating and manipulating the content | contains "link" elements for navigating and manipulating the content | |||
of the site. For example there should be a "link" element with | of the site. For example there should be a "link" element with | |||
rel="next" whose URI points to the next block of entries on the site. | rel="next" whose URI points to the next block of entries on the site. | |||
Similarly the feed element can contain a "link" element with | Similarly, the feed element can contain a "link" element with | |||
rel="service.post", the URI of which is a PostURI. Individual entries | rel="service.post", the URI of which is a PostURI. Individual | |||
should contain "link" elements with rel="service.edit" whose URIs are | entries should contain "link" elements with rel="service.edit" whose | |||
EditURIs. | URIs are EditURIs. | |||
@@ Editor's Note: @@ Note that the "service.feed" takes the place of | @@ Editor's Note: @@ Note that the "service.feed" takes the place of | |||
the Introspection File and the Search facet in previous versions of | the Introspection File and the Search facet in previous versions of | |||
the specification. That is, facet discovery, which was previously | the specification. That is, facet discovery, which was previously | |||
done by inspecting the Introspection file is now done by looking for | done by inspecting the Introspection file is now done by looking for | |||
"link" tags with an attribute "rel" set to "service.[something]" in | "link" tags with an attribute "rel" set to "service.[something]" in | |||
the "service.feed" file. At the same time the same representation | the "service.feed" file. At the same time the same representation | |||
replaces the search facet by having "link" tags that point to other | replaces the search facet by having "link" tags that point to other | |||
feeds using well knows 'rel' attribute values such as 'next' and | feeds using well knows 'rel' attribute values such as 'next' and | |||
'prev', or the search can branch in multiple directions by specifying | 'prev', or the search can branch in multiple directions by specifying | |||
multiple link tags with rel="service.feed" and having differing title | multiple link tags with rel="service.feed" and having differing title | |||
attributes that announce the kind of search results in that feed. | attributes that announce the kind of search results in that feed. | |||
5.3.1 Locating | 3.3.1 Locating | |||
A link tag of the following format points to the FeedURI. | A link tag of the following format points to the FeedURI. | |||
<link rel="service.feed" | <link rel="service.feed" | |||
type="application/x.atom+xml" | type="application/atom+xml" | |||
The AtomAPI December 2003 | ||||
href="URI goes here" | href="URI goes here" | |||
title="The name of the site."> | title="The name of the site."> | |||
5.3.2 Request | 3.3.2 Request | |||
The request is a simple GET. No other verbs are currently specified | The request is a simple GET. No other verbs are currently specified | |||
for this URI. | for this URI. | |||
5.3.3 Response | 3.3.3 Response | |||
The expected status codes from a GET are 200, 301, 307, and 500. 401, | The expected status codes from a GET are 200, 301, 307, and 500. | |||
404, and 410 are also possible. | 401, 404, and 410 are also possible. | |||
5.3.3.1 301 | 3.3.3.1 Response code 301 | |||
The Feed has moved permanently, the new URI is given in the the | The Feed has moved permanently, the new URI is given in the Location | |||
Location header. | header. | |||
5.3.3.2 307 | 3.3.3.2 Response code 307 | |||
The Feed has moved temporarily, the new URI is given in the the | The Feed has moved temporarily, the new URI is given in the Location | |||
Location header. | header. | |||
5.4 Link Tag | 3.4 Link Tag | |||
The link tag is used in both HTML and Atom formats. There are slight | The link tag is used in both HTML and Atom formats. There are slight | |||
differences between the two usages. Here are the commonalities, | differences between the two usages. Here are the commonalities, | |||
differences, and a list of well-known values for the rel attribute. | differences, and a list of well-known values for the rel attribute. | |||
The link tag in HTML documents appears in the 'head' of the document. | <http://www.w3.org/TR/html4/struct/links.html#edef-LINK> appears in | |||
The 'head' section only allows a linear list of 'link' tags. The Atom | the 'head' of the document. The 'head' section only allows a linear | |||
format allows 'link' tags as children of both the 'feed' element and | list of 'link' tags. The Atom format allows 'link' tags as children | |||
of the 'entry' element. Note that this gives the information present | of both the 'feed' element and of the 'entry' element. Note that | |||
in the link tag more context. For example ... @@ TBD @@ | this gives the information present in the link tag more context. For | |||
example ... @@ TBD @@ | ||||
5.4.1 rel | 3.4.1 rel | |||
This attribute describes the relationship from the current document, | This attribute describes the relationship from the current document, | |||
be it HTML or Atom, to the anchor specified by the href attribute. | be it HTML or Atom, to the anchor specified by the href attribute. | |||
The value of this attribute is a space-separated list of link types. | The value of this attribute is a space-separated list of link types. | |||
Note that these values are case insensitive. With type="application/ | Note that these values are case insensitive. When used in concert | |||
x.atom+xml" we have the following interpretations of the relations. | with type="application/atom+xml", the relations may be interpreted as | |||
follows. | ||||
alternate The URI in the href attribute points to an alternate | alternate: The URI in the href attribute points to an alternate | |||
representation of the containing resource. | representation of the containing resource. | |||
start: The Atom feed at the URI supplied in the href attribute | ||||
The AtomAPI December 2003 | ||||
start The Atom feed at the URI supplied in the href attribute | ||||
contains the first feed in a linear sequence of entries. | contains the first feed in a linear sequence of entries. | |||
next: The Atom feed at the URI supplied in the href attribute | ||||
next The Atom feed at the URI supplied in the href attribute contains | contains the next N entries in a linear sequence of entries. | |||
the next N entries in a linear sequence of entries. | prev: The Atom feed at the URI supplied in the href attribute | |||
contains the previous N entries in a linear sequence of entries. | ||||
prev The Atom feed at the URI supplied in the href attribute contains | service.edit: The URI given in the href attribute is used to edit a | |||
the previous N entries in a linear sequence of entries. | ||||
service.edit The URI given in the href attribute is used to edit a | ||||
representation of the referred resource. | representation of the referred resource. | |||
service.post: The URI in the href attribute is used to create new | ||||
service.post The URI in the href attribute is used to create new | ||||
resources. | resources. | |||
service.feed: The URI given in the href attribute is a starting point | ||||
service.feed The URI given in the href attribute is a starting point | ||||
for navigating content and services. | for navigating content and services. | |||
5.4.2 href | 3.4.2 href | |||
URI of the resource being described by this link element. | URI of the resource being described by this link element. | |||
5.4.3 title | 3.4.3 title | |||
Offers advisory information about the link. Rendered to the user to | Offers advisory information about the link. Rendered to the user to | |||
help them choose among a set of links with the same rel and type | help them choose among a set of links with the same rel and type | |||
attributes. | attributes. | |||
5.4.4 type | 3.4.4 type | |||
The content type of the resource avaialable at the URI given in the | The content type of the resource available at the URI given in the | |||
href attribute of the link element. Most of the link types in this | href attribute of the link element. Most of the link types in this | |||
specification are on type 'application/x.atom+xml'. | specification are on type 'application/atom+xml'. | |||
5.5 Atom Request and Response Body Constraints | 3.5 Atom Request and Response Body Constraints | |||
The Atom format is used as the representation of all the resources in | The Atom format is used as the representation of all the resources in | |||
this specification. As it is used in differing contexts, there are | this specification. As it is used in differing contexts, there are | |||
different constraints of which elements may be present, and how their | different constraints of which elements may be present, and how their | |||
values should be interpreted. | values should be interpreted. | |||
5.5.1 id | 3.5.1 id | |||
PostURI MUST NOT be present. | PostURI MUST NOT be present. | |||
The AtomAPI December 2003 | ||||
FeedURI MUST be present. | FeedURI MUST be present. | |||
EditURI | EditURI | |||
GET MUST be present. | GET MUST be present. | |||
PUT MUST be present. | PUT MUST be present. | |||
5.5.2 link | 3.5.2 link | |||
PostURI MAY be present. Servers may use the information to determine | PostURI MAY be present. Servers MAY use the information to determine | |||
the URI of the created resource. Relative URLs are to be | the URI of the created resource. Relative URLs are to be | |||
interpreted relative to xml:base. | interpreted relative to xml:base. | |||
FeedURI MUST be present. | FeedURI MUST be present. | |||
EditURI | EditURI | |||
GET MUST be present. | GET MUST be present. | |||
PUT MUST be present. | PUT MUST be present. | |||
5.5.3 title | 3.5.3 title | |||
PostURI MUST be present. The element may be empty, to explicitly | PostURI MUST be present. The element may be empty, to explicitly | |||
indicate "no title". Servers SHOULD NOT try to generate a title if | indicate "no title". Servers SHOULD NOT try to generate a title | |||
one is not provided. The type attribute MAY be present, and if not | if one is not provided. The type attribute MAY be present, and if | |||
it defaults to "text/plain". If present, it MUST represent a mime | not it defaults to "text/plain". If present, it MUST represent a | |||
type that the server supports The mode attribute MAY be present, | MIME type that the server supports. The mode attribute MAY be | |||
if not it defaults to "xml". If present, it must be "xml", | present. If not present, it defaults to "xml". If present, it | |||
"base64", or "escaped". | MUST be "xml", "base64", or "escaped". | |||
FeedURI MUST be present. | FeedURI MUST be present. | |||
EditURI | EditURI | |||
GET MUST be present. | GET MUST be present. | |||
PUT MUST be present. The element may be empty, to explicitly | PUT MUST be present. The element may be empty, to explicitly | |||
indicate "no title". Servers SHOULD NOT try to generate a title | indicate "no title". Servers SHOULD NOT try to generate a | |||
if one is not provided. | title if one is not provided. | |||
5.5.4 summary | ||||
The AtomAPI December 2003 | ||||
PostURI MAY be present, if not present, indicates the server is | 3.5.4 summary | |||
welcome to produce its own summary. If present but empty then the | ||||
server SHOULD NOT generate a summary of its own. The type | ||||
attribute MAY be present, if not it defaults to "text/plain". If | ||||
present it must represent a mime type that the server supports. | ||||
The mode attribute MAY be present and defaults to "xml". If | ||||
present, it must be "xml","base64", or "escaped". | ||||
PostURI MAY be present. If not present, the server is welcome to | ||||
produce its own summary. If present but empty, the server SHOULD | ||||
NOT generate a summary of its own. The type attribute MAY be | ||||
present. If not, it defaults to "text/plain". If present, it | ||||
must represent a MIME type that the server supports. The mode | ||||
attribute MAY be present and defaults to "xml". If present, it | ||||
must be "xml","base64", or "escaped". | ||||
FeedURI MAY be present. | FeedURI MAY be present. | |||
EditURI | EditURI | |||
GET MAY be present. | GET MAY be present. | |||
PUT MAY be present. The element may be empty, to explicitly | PUT MAY be present. The element may be empty, to explicitly | |||
indicate "no summary". Servers SHOULD NOT try to generate a | indicate "no summary". Servers SHOULD NOT try to generate a | |||
title if one is not provided. | title if one is not provided. | |||
5.5.5 content | 3.5.5 content | |||
PostURI MAY be present but may be empty, to explicitly indicate "no | PostURI MAY be present but may be empty, to explicitly indicate "no | |||
content". The type attribute MAY be present, but defaults to | content". The type attribute MAY be present, but defaults to | |||
"text/plain" if not present. It must represent a mime type that | "text/plain" if not present. It must represent a MIME type that | |||
the server supports. The MODE attribute may be present and | the server supports. The MODE attribute may be present and | |||
defaults to "xml" if not present. It must be "xml","base64", or | defaults to "xml" if not present. It must be "xml","base64", or | |||
"escaped". | "escaped". | |||
FeedURI MAY be present. | FeedURI MAY be present. | |||
EditURI | EditURI | |||
GET MAY be present. | GET MAY be present. | |||
PUT MAY be present. The element may be empty, to explicitly | PUT MAY be present. The element may be empty, to explicitly | |||
indicate "no content". | indicate "no content". | |||
5.5.6 issued | 3.5.6 issued | |||
PostURI MUST be present but may be empty in which case it signifies | PostURI MUST be present, but may be empty, in which case it signifies | |||
"now" in the timezone of the server. | "now" in the timezone of the server. | |||
FeedURI MUST be present. | FeedURI MUST be present. | |||
EditURI | EditURI | |||
The AtomAPI December 2003 | ||||
GET MUST be present. | GET MUST be present. | |||
PUT MUST be present. Server policy determines if an updated time | PUT MUST be present. Server policy determines if an updated time | |||
is accepted. | is accepted. | |||
5.5.7 modified | 3.5.7 modified | |||
PostURI MUST NOT be present. | PostURI MUST NOT be present. | |||
FeedURI MAY be present. | FeedURI MAY be present. | |||
EditURI | EditURI | |||
GET MAY be present. | GET MAY be present. | |||
PUT MAY be present. The element may be empty, to explicitly | PUT MAY be present. The element may be empty, to explicitly | |||
indicate that 'now' on the server time is to be used. | indicate that 'now' on the server time is to be used. | |||
5.5.8 created | 3.5.8 created | |||
PostURI MAY be present. | PostURI MAY be present. | |||
FeedURI MAY be present. | FeedURI MAY be present. | |||
EditURI | EditURI | |||
GET MAY be present. | GET MAY be present. | |||
PUT MAY be present. The server may or may not accept an updated | PUT MAY be present. The server may or may not accept an updated | |||
value. If the server does not allow updating the issued time | value. If the server does not allow updating the issued time | |||
then any PUT request with a differenct issued value MUST be | then any PUT request with a different issued value MUST be | |||
rejected. | rejected. | |||
5.5.9 author | 3.5.9 author | |||
PostURI MAY be present. If not present the server determines the | PostURI MAY be present. If not present, the server determines the | |||
author. If present and it conflicts with valid values as | author. If present, and conflicting with valid values as | |||
determined by the server, then the server may change the value of | determined by the server, then the server may change the value of | |||
author. | author. | |||
FeedURI MAY be present. | FeedURI MAY be present. | |||
EditURI | EditURI | |||
The AtomAPI December 2003 | ||||
GET MAY be present. | GET MAY be present. | |||
PUT MAY be present. | PUT MAY be present. | |||
5.5.10 contributor | 3.5.10 contributor | |||
PostURI MAY be present. | PostURI MAY be present. | |||
FeedURI MAY be present. | FeedURI MAY be present. | |||
EditURI | EditURI | |||
GET MAY be present. | GET MAY be present. | |||
PUT MAY be present. | PUT MAY be present. | |||
5.5.11 generator | 3.5.11 generator | |||
PostURI MUST be present. The value of the element indicates the code | ||||
base used to create this request. MUST contain a valid URI. MUST | ||||
also have an attribute 'version' with a version number. | ||||
PostURI MUST be present and contain a URI. The value of the element | ||||
indicates the code base used to create this request. MUST also | ||||
have an attribute 'version' with a version number. | ||||
FeedURI MUST NOT be present. | FeedURI MUST NOT be present. | |||
EditURI | EditURI | |||
GET MUST NOT be present. | GET MUST NOT be present. | |||
PUT MUST NOT be present. | PUT MUST NOT be present. | |||
The AtomAPI December 2003 | 4. Security Considerations | |||
6. Security Considerations | Because Atom is a publishing protocol, it is important that only | |||
authorized users can create and edit entries. The security of Atom | ||||
is based on HTTP Digest Authentication and/or the WSSE-style | ||||
authentication described in this document. Any weaknesses in either | ||||
of these two protocols will obviously affect the security of the Atom | ||||
publishing protocol. | ||||
Both HTTP Digest Authentication and the WSSE-style authentication | ||||
described in this document are susceptible to dictionary-based | ||||
attacks on the shared secret. If the shared secret is a password | ||||
(instead of a random string with sufficient entropy), an attacker can | ||||
determine the secret by exhaustively comparing the authenticating | ||||
string with hashed results of the public string and dictionary | ||||
entries. | ||||
See RFC 2617 for more detailed description of the security properties | ||||
of HTTP Digest Authentication. | ||||
@@TBD@@ Talk here about using HTTP basic and digest authentication. | @@TBD@@ Talk here about using HTTP basic and digest authentication. | |||
@@TBD@@ Talk here about denial of service attacks using large XML | @@TBD@@ Talk here about denial of service attacks using large XML | |||
files, or the billion laughs DTD attack. | files, or the billion laughs DTD attack. | |||
The AtomAPI December 2003 | 5. IANA Considerations | |||
7. Appendices | This document has no actions for IANA. | |||
7.1 SOAP Enabling | 6. Appendix A - SOAP Enabling | |||
All servers SHOULD support the following alternate interface | All servers SHOULD support the following alternate interface | |||
mechanisms to enable a wider variety of clients to interact with | mechanisms to enable a wider variety of clients to interact with Atom | |||
AtomAPI servers. The following requirements are in addition to the | Publishing Protocol servers. The following requirements are in | |||
ones listed in the Functional Specification Section. If a server | addition to the ones listed in the Functional Specification Section. | |||
supports SOAP Enabling then it MUST support all of the following. | If a server supports SOAP Enabling then it MUST support all of the | |||
following. | ||||
7.1.1 Servers | 6.1 Servers | |||
1. All servers MUST support the limited use of the SOAPAction HTTP | 1. All servers MUST support the limited use of the SOAPAction HTTP | |||
Header as described below in the Client section. | Header as described below in the Client section. | |||
2. All servers MUST be able to process well formed XML. Servers | ||||
2. All servers MUST be able to process well formed XML. Servers need | need not be able to handle processing instructions or DTDs. | |||
not be able to handle processing instructions or DTDs. | ||||
3. Servers MUST accept content in a SOAP Envelope, and if they | 3. Servers MUST accept content in a SOAP Envelope, and if they | |||
receive a request that is wrapped in a SOAP Envelope then they | receive a request that is wrapped in a SOAP Envelope then they | |||
MUST wrap their responses in SOAP envelopes or produce a SOAP | MUST wrap their responses in SOAP envelopes or produce a SOAP | |||
Fault. | Fault. | |||
7.1.2 Clients | 6.2 Clients | |||
1. Clients SHOULD use the appropriate HTTP Method when possible. | 1. Clients SHOULD use the appropriate HTTP Method when possible. | |||
When not possible, they should use POST and include a SOAPAction | When not possible, they should use POST and include a SOAPAction | |||
HTTP header which is constrained as follows: | HTTP header which is constrained as follows: | |||
2. SOAPAction: "http://schemas.xmlsoap.org/wsdl/http/[METHOD]" | 2. SOAPAction: "http://schemas.xmlsoap.org/wsdl/http/[METHOD]" | |||
3. Where [METHOD] is replaced by the desired HTTP Method. | 3. Where [METHOD] is replaced by the desired HTTP Method. | |||
4. Clients MAY wrap their XML payload in a SOAP Envelope. If so, | 4. Clients MAY wrap their XML payload in a SOAP Envelope. If so, | |||
they must also wrap it in an element which exactly matches the | they must also wrap it in an element which exactly matches the | |||
HTTP Method. | HTTP Method. | |||
7.2 Example for a weblog | 7. Appendix B - Examples | |||
7.1 Example for a weblog | ||||
Fill this in with an example for how all the above is used for a | Fill this in with an example for how all the above is used for a | |||
weblog. Start with main HTML page, link tag of type service.feed to | weblog. Start with main HTML page, link tag of type service.feed to | |||
the 'introspection' file. 1. Creating a new entry 2. Finding an old | the 'introspection' file. 1. Creating a new entry 2. Finding an | |||
entry 3. editing an old entry 4. commenting on a entry (via HTML and | old entry 3. editing an old entry 4. commenting on a entry (via | |||
Atom) | HTML and Atom) | |||
The AtomAPI December 2003 | ||||
7.3 Example for a wiki | 7.2 Example for a wiki | |||
Fill this in like above but for a wiki. | Fill this in like above but for a wiki. | |||
The AtomAPI December 2003 | ||||
8. Revision History | 8. Revision History | |||
Rev draft-ietf-atompub-protocol-00 - 5Jul2004 - Renamed the file and | ||||
re-titled the document to conform to IETF submission guidelines. | ||||
Changed MIME type to match the one selected for the Atom format. | ||||
Numerous typographical fixes. We used to have two 'Introduction' | ||||
sections. One of them was moved into the Abstract the other absorbed | ||||
the Scope section. IPR and copyright notifications were added. | ||||
Rev 09 - 10Dec2003 - Added the section on SOAP enabled clients and | Rev 09 - 10Dec2003 - Added the section on SOAP enabled clients and | |||
servers. | servers. | |||
Rev 08 - 01Dec2003 - Refactored the specification, merging the | Rev 08 - 01Dec2003 - Refactored the specification, merging the | |||
Introspection file into the feed format. Also dropped the distinction | Introspection file into the feed format. Also dropped the | |||
between the type of URI used to create new entries and the kind used | distinction between the type of URI used to create new entries and | |||
to create comments. Dropped user preferences. | the kind used to create comments. Dropped user preferences. | |||
Rev 07 - 06Aug2003 - Removed the use of the RSD file for | Rev 07 - 06Aug2003 - Removed the use of the RSD file for | |||
auto-discovery. Changed copyright until a final standards body is | auto-discovery. Changed copyright until a final standards body is | |||
chosen. Changed query parameters for the search facet to all begin | chosen. Changed query parameters for the search facet to all begin | |||
with atom- to avoid name collisions. Updated all the Entries to | with atom- to avoid name collisions. Updated all the Entries to | |||
follow the 0.2 version. Changed the format of the search results and | follow the 0.2 version. Changed the format of the search results and | |||
template file to a pure element based syntax. | template file to a pure element based syntax. | |||
Rev 06 - 24Jul2003 - Moved to PUT for updating Entries. Changed all | Rev 06 - 24Jul2003 - Moved to PUT for updating Entries. Changed all | |||
the mime-types to application/x.atom+xml. Added template editing. | the mime-types to application/x.atom+xml. Added template editing. | |||
Changed 'edit-entry' to 'create-entry' in the Introspection file to | Changed 'edit-entry' to 'create-entry' in the Introspection file to | |||
more accurately reflect it's purpose. | more accurately reflect it's purpose. | |||
Rev 05 - 17Jul2003 - Renamed everything Echo into Atom. Added version | Rev 05 - 17Jul2003 - Renamed everything Echo into Atom. Added | |||
numbers in the Revision history. Changed all the mime-types to | version numbers in the Revision history. Changed all the mime-types | |||
application/atom+xml. | to application/atom+xml. | |||
Rev 04 - 15Jul2003 - Updated the RSD version used from 0.7 to 1.0. | Rev 04 - 15Jul2003 - Updated the RSD version used from 0.7 to 1.0. | |||
Change the method of deleting an Entry from POSTing <delete/> to | Change the method of deleting an Entry from POSTing <delete/> to | |||
using the HTTP DELETE verb. Also changed the query interface to GET | using the HTTP DELETE verb. Also changed the query interface to GET | |||
instead of POST. Moved Introspection Discovery to be up under | instead of POST. Moved Introspection Discovery to be up under | |||
Introspection. Introduced the term 'facet' for the services listed in | Introspection. Introduced the term 'facet' for the services listed | |||
the Introspection file. | in the Introspection file. | |||
Rev 03 - 10Jul2003 - Added a link to the Wiki near the front of the | Rev 03 - 10Jul2003 - Added a link to the Wiki near the front of the | |||
document. Added a section on finding an Entry. Retrieving an Entry | document. Added a section on finding an Entry. Retrieving an Entry | |||
now broken out into it's own section. Changed the HTTP status code | now broken out into it's own section. Changed the HTTP status code | |||
for a successful editing of an Entry to 205. | for a successful editing of an Entry to 205. | |||
Rev 02 - 7Jul2003 - Entries are no longer returned from POSTs, | Rev 02 - 7Jul2003 - Entries are no longer returned from POSTs, | |||
instead they are retrieved via GET. Cleaned up figure titles, as they | instead they are retrieved via GET. Cleaned up figure titles, as | |||
are rendered poorly in HTML. All content-types have been changed to | they are rendered poorly in HTML. All content-types have been | |||
application/atom+xml. | changed to application/atom+xml. | |||
Rev 01 - 5Jul2003 - Renamed from EchoAPI.html to follow the more | Rev 01 - 5Jul2003 - Renamed from EchoAPI.html to follow the more | |||
commonly used format: draft-gregorio-NN.html. Renamed all references | commonly used format: draft-gregorio-NN.html. Renamed all references | |||
to URL to URI. Broke out introspection into it's own section. Added | to URL to URI. Broke out introspection into it's own section. Added | |||
the Revision History section. Added more to the warning that the | the Revision History section. Added more to the warning that the | |||
example URIs are not normative. | example URIs are not normative. | |||
The AtomAPI December 2003 | 9 Normative References | |||
9. Copyright | ||||
Copyright (C) Joe Gregorio (2003). All Rights Reserved. | ||||
The AtomAPI December 2003 | ||||
References | ||||
[RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629, | [RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629, | |||
June 1999. | June 1999. | |||
[1] <http://www.intertwingly.net/wiki/pie/RestEchoApiDiscuss> | Authors' Addresses | |||
[2] <http://www.imc.org/atom-syntax/index.html> | ||||
[3] <http://www.mnot.net/drafts/ | ||||
draft-nottingham-atom-format-00.html> | ||||
Author's Address | ||||
Joe Gregorio | Joe Gregorio (editor) | |||
BitWorking, Inc | BitWorking, Inc | |||
1002 Heathwood Dairy Rd. | 1002 Heathwood Dairy Rd. | |||
Apex, NC 27502 | Apex, NC 27502 | |||
US | US | |||
Phone: +1 919 272 3764 | Phone: +1 919 272 3764 | |||
EMail: joe@bitworking.com | EMail: joe@bitworking.com | |||
URI: http://bitworking.com/ | URI: http://bitworking.com/ | |||
Robert Sayre (editor) | ||||
Boswijck Memex Consulting | ||||
148 N 9th St. 4R | ||||
Brooklyn, NY 11211 | ||||
US | ||||
EMail: rfsayre@boswijck.com | ||||
URI: http://boswijck.com | ||||
Intellectual Property Statement | ||||
The IETF takes no position regarding the validity or scope of any | ||||
Intellectual Property Rights or other rights that might be claimed to | ||||
pertain to the implementation or use of the technology described in | ||||
this document or the extent to which any license under such rights | ||||
might or might not be available; nor does it represent that it has | ||||
made any independent effort to identify any such rights. Information | ||||
on the procedures with respect to rights in RFC documents can be | ||||
found in BCP 78 and BCP 79. | ||||
Copies of IPR disclosures made to the IETF Secretariat and any | ||||
assurances of licenses to be made available, or the result of an | ||||
attempt made to obtain a general license or permission for the use of | ||||
such proprietary rights by implementers or users of this | ||||
specification can be obtained from the IETF on-line IPR repository at | ||||
http://www.ietf.org/ipr. | ||||
The IETF invites any interested party to bring to its attention any | ||||
copyrights, patents or patent applications, or other proprietary | ||||
rights that may cover technology that may be required to implement | ||||
this standard. Please address the information to the IETF at | ||||
ietf-ipr@ietf.org. | ||||
The IETF has been notified of intellectual property rights claimed in | ||||
regard to some or all of the specification contained in this | ||||
document. For more information consult the online list of claimed | ||||
rights. | ||||
Disclaimer of Validity | ||||
This document and the information contained herein are provided on an | ||||
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS | ||||
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET | ||||
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, | ||||
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE | ||||
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED | ||||
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. | ||||
Copyright Statement | ||||
Copyright (C) The Internet Society (2004). This document is subject | ||||
to the rights, licenses and restrictions contained in BCP 78, and | ||||
except as set forth therein, the authors retain all their rights. | ||||
Acknowledgment | ||||
Funding for the RFC Editor function is currently provided by the | ||||
Internet Society. | ||||
End of changes. | ||||
This html diff was produced by rfcdiff 1.12, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |