One document matched: draft-divilly-atompub-discovery-00.xml


<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
	<!ENTITY rfc2119 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml'>
	<!ENTITY rfc3986 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.3986.xml'>
	<!ENTITY rfc5023 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.5023.xml'>
	<!ENTITY rfc4287 PUBLIC '' 'http://xml.resource.org/public/rfc/bibxml/reference.RFC.4287.xml'>
]>
<!--<?xml-stylesheet type='text/xsl' href='rfc2629.xslt'/ ?>-->
<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes"?>
<?rfc iprnotified="yes" ?>
<?rfc strict="yes" ?>
<?rfc compact="yes" ?>
<?rfc comments="yes" ?>
<?rfc inline="yes" ?>
<?rfc tocdepth="3" ?>
<rfc category="bcp" ipr="trust200811" docName="draft-divilly-atompub-discovery-00">
	<front>
		<title abbrev="AtomPub Collection Discovery">AtomPub Guidelines for Collection Discovery</title>
		<author initials="C." surname="Divilly" fullname="Colm Divilly">
			<organization>Oracle Corp.</organization>
			<address>
				<email>colm.divilly@oracle.com</email>
				<uri>http://cdivilly.wordpress.com</uri>
			</address>
		</author>
		<author initials="N. R." surname="Mehta" fullname="Nikunj Mehta">
			<organization>Oracle Corp.</organization>
			<address>
				<email>nikunj.mehta@oracle.com</email>
				<uri>http://o-micron.blogspot.com/</uri>
			</address>
		</author>
		<date day="20" month="May" year="2009"/>
		<abstract>
			<t>
			This document recommends best practices for discovering AtomPub Collection
      resources as applicable to various content representation formats.
			</t>
		</abstract>
		<note title="Editorial Note">
			<t>
			To provide feedback on this Internet-Draft, join the
			atom-protocol mailing list (http://www.imc.org/atom-protocol/).
			</t>
		</note>
	</front>
	<middle>
		<section anchor="intro" title="Introduction">
			<t>
      Atom Publishing Protocol <xref target="RFC5023"/> is used for several applications that consume
      and produce an unbounded number of Collection resources. This document 
      introduces guidelines over existing syntactic techniques for identifying 
      Collection resources in use from various Internet content representation 
      formats, including feeds and HTML type resources.
		  </t>
			<t>
      Previously, AtomPub <xref target="RFC5023"/> has introduced two mechanisms for
      collection discovery. However, in the absence of suitable guidelines, there is
      no clarity about which mechanism is suited for a particular purpose. In
      general, where other Atom or AtomPub syntax is in use, this document recommends
      the use of the app:collection element. Where only a link element may be used,
      this document recommends the use of the service link relation.
      </t>
			<section title="Notational Conventions">
				<t>
				The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 
				"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" 
				in this document are to be interpreted as described in <xref target="RFC2119"/>.
				</t>
			</section>
			<section title="Namespace">
			<t> This specification uses the prefix "atom:" for "http://www.w3.org/2005/Atom", 
       the namespace name of the Atom Syndication Format <xref target="RFC4287" pageno="false" format="default"/>.
       The prefix "app:" is used for "http://www.w3.org/2007/app", the namespace name of
       the Atom Publishing Protocol <xref target="RFC5023" pageno="false" format="default"/>.
       These namespace prefixes are not semantically significant.
       </t>
			</section>
		</section>
		<section title="Discovering Collections from a Feed Document" anchor="backing-collection">
			<t>
      When an Atom Processor encounters an Atom Feed Document, and the processor is 
      capable of performing AtomPub operations, then it is valuable to determine 
      whether that feed is modifiable. Some processors incorrectly assume that a feed
      may be modified at the exact same URI from which it is obtained. 
      </t>
      <t>AtomPub Processors need a way to determine whether and where new entries can 
      be added to a Feed. If a syndicated feed document is modifiable using AtomPub, 
      then the processor can indeed manipulate the feed. For this purpose,
      processors can benefit from Collection metadata that is present in the feed document.
			</t>
      <t>
      The alternative is obtaining the feed's service document by following a link 
      with the relation "service", followed by identifying the Collection resources
      in the AtomPub Service Document, followed by correlating these Collection resources
      to the feed at hand. Naturally, this alternative is more complex, resource consuming,
      and less likely to succeed in finding the exact Collection resource to be manipulated.
      </t>
      <t>
      Moreover, not every feed can be modified, and servers can indicate this by omitting
      Collection metadata in such feeds.
      </t>
			<t>
		    Section 8.3.5 of <xref target="RFC5023"/> specifies the Collection metadata that
        may occur in syndicated Atom feeds. The presence of an app:collection element as 
        a child of an atom:feed element signals server's preparedness to modify a feed.
        This document therefore recommnds that if a Feed is backed by a Collection, then 
        the server SHOULD identify the backing Collection using the app:collection 
        element as a child of the atom:feed element. 
		    </t>
		    <t>If the href attribute of this app:collection element is identical to that of the 
		    parent atom:feed element's self link relation, then the processor SHOULD treat 
		    the feed to be the Collection feed as defined in Section 4.2 of <xref target="RFC5023"/>.
		    </t>
			<figure>
				<preamble>Example: Writable Collection backing a Feed</preamble>
				<artwork name="Collection backing a feed" type="example"><![CDATA[
<atom:feed>
  <atom:link rel="self" href="http://example.org/feed"/>
  <app:collection href="http://example.org/collection">
    <atom:title type="text">Writable Feed</atom:title>
    <app:accept>application/atom+xml;type=entry</app:accept>
  </app:collection>
  ...
</atom:feed>
 ]]></artwork>
			</figure>
			<figure>
				<preamble>
				Example: Read-only Collection backing a Feed
				</preamble>
				<artwork name="Collection backing a feed" type="example"><![CDATA[
<atom:feed>
  <atom:link rel="self" href="http://example.org/feed"/>
  <app:collection href="http://example.org/collection">
    <atom:title type="text">Read-only Feed</atom:title>
    <app:accept/>
  </app:collection>
  ...
</atom:feed>
 ]]></artwork>
			</figure>
			<figure>
				<preamble>
				Example: Writable Collection Feed
				</preamble>
				<artwork name="Collection feed" type="example"><![CDATA[
<atom:feed>
  <atom:link rel="self" href="http://example.org/collection"/>
  <app:collection href="http://example.org/collection">
    <atom:title type="text">Collection Feed</atom:title>
  </app:collection>
  ...
</atom:feed>
 ]]></artwork>
			</figure>
		</section>
		<section title="Discovering Service from an HTML Document" anchor="service-link">
      <t>
        When an Atom processor encounters an HTML or XHTML document, and the processor
        is capable of performing AtomPub operations, then it is useful to determine
        the available AtomPub resources with which it can interact.
      </t>
      <t>
        The host format, though, limits the ability to specify metadata embedded in 
        the content being processed. Therefore, the best approach for a server is to
        specify a link with relation "service" to provide a URI to the AtomPub Service
        Document that includes all the metadata corresponding to one or more Collections.
        The server can also specify a link with relation "feed" to provide a URI to an
        Atom feed with relevant content, which can in turn provide additional metadata
        for manipulating AtomPub resources present on that server as explained in the
        previous section.
      </t>
    </section>
		<section title="Security Considerations">
			<t>None
			</t>
		</section>
		<section title="IANA Considerations" anchor="iana">
			<t>None
			</t>
		</section>
	</middle>
	<back>
		<references title="Normative References">
       &rfc2119;
		   &rfc3986;
		   &rfc5023;
		   &rfc4287;
    </references>
		<section title="Revision History">
			<t>
			00 - Initial Revision, created from draft-divilly-atompub-hierarchy-00.
      </t>
		</section>
	</back>
</rfc>

PAFTECH AB 2003-20262026-04-24 12:06:39