TOC 
Network Working GroupJ. Snell
Internet-DraftOctober 27, 2007
Intended status: Experimental 
Expires: April 29, 2008 


Atom Publishing Protocol Feature Discovery
draft-snell-atompub-feature-12.txt

Status of this Memo

By submitting this Internet-Draft, each author represents that any 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 aware will be disclosed, in accordance with Section 6 of BCP 79.

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.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as “work in progress.”

The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt.

The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html.

This Internet-Draft will expire on April 29, 2008.

Abstract

This document introduces extensions to the Atom Publishing Protocol Service Document format for expressing metadata about the behaviors, functions and capabilities supported by an Atom Publishing Protocol collection.



Table of Contents

1.  Introduction
2.  Notational Conventions
3.  The f:features Element
4.  The f:feature element
    4.1.  Example
5.  Feature Documents
    5.1.  Example
6.  The "supportsDraft" Feature
7.  The "ignoresDraft" Feature
8.  Security Considerations
9.  IANA Considerations
    9.1.  Content-type registration for 'application/atomfeature+xml'
10.  Normative References
Appendix A.  Acknowledgements
§  Author's Address
§  Intellectual Property and Copyright Statements




 TOC 

1.  Introduction

This document introduces an extension to the Atom Publishing Protocol (Atompub) service document [RFC5023] (Gregorio, J. and B. de hOra, “The Atom Publishing Protocol,” October 2007.) format that allows for the documentation and discovery of behaviors, functions or capabilities supported by an Atompub collection. Examples of such capabilities can include the preservation of certain kinds of content, support for draft entries, support for the scheduled publication of entries, use of a particular set of Atom format extensions, and so on.

Describing features using the mechanisms defined in this specification is currently considered to be largely experimental. While there are examples of such mechanisms being put to practical use in deployed applications, there is currently not enough collective implementation experience to determine whether the mechanism defined here is sufficient to fully address the general needs of Atom Publishing Protocol client and server implementations. Implementations and feedback are encouraged.



 TOC 

2.  Notational Conventions

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 BCP 14, [RFC2119] (Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” March 1997.).

This specification uses XML Namespaces [W3C.REC‑xml‑names‑20060816] (Hollander, D., Layman, A., and T. Bray, “Namespaces in XML 1.0 (Second Edition),” August 2006.) to uniquely identify XML element names. It uses the following namespace prefix for the indicated namespace URI;

  "f": "http://purl.org/atompub/features/1.0"

This specification uses terms from the XML Infoset [W3C.REC‑xml‑infoset‑20040204] (Tobin, R. and J. Cowan, “XML Information Set (Second Edition),” February 2004.). However, this specification uses a shorthand; the phrase "Information Item" is omitted when naming Element Information Items. Therefore, when this specification uses the terms "element" and "attribute" it is referring, respectively, to the Element and Attribute Information Items in Infoset terms.

This specification uses the terms "atomUri" and "atomCommonAttributes" from the non-normative RELAX NG Compact schema included in [RFC4287] (Nottingham, M., Ed. and R. Sayre, Ed., “The Atom Syndication Format,” December 2005.). Where used, these serve the same purpose and have the same meaning as their use in [RFC4287] (Nottingham, M., Ed. and R. Sayre, Ed., “The Atom Syndication Format,” December 2005.).

Atom allows the use of IRIs [RFC3987] (Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005.). Every URI [RFC3986] (Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI): Generic Syntax,” January 2005.) is also an IRI, so a URI may be used wherever below an IRI is named. There are two special considerations: (1) when an IRI that is not also a URI is given for dereferencing, it MUST be mapped to a URI using the steps in Section 3.1 of [RFC3987] (Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005.) and (2) when an IRI is serving as an identifier, it MUST NOT be so mapped.

Any element defined by this specification MAY have an xml:base attribute [W3C.REC‑xmlbase‑20010627] (Marsh, J., “XML Base,” June 2001.). When xml:base is used, it serves the function described in section 5.1.1 of [RFC3986] (Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI): Generic Syntax,” January 2005.), establishing the base URI (or IRI) for resolving any relative references found within the effective scope of the xml:base attribute.

Any element defined by this specification MAY have an xml:lang attribute, whose content indicates the natural language for the element and its descendents. The language context is only significant for elements and attributes declared to be "Language-Sensitive". Requirements regarding the content and interpretation of xml:lang are specified in XML 1.0 [W3C.REC‑xml‑20060816] (Bray, T., Paoli, J., Yergeau, F., Maler, E., and C. Sperberg-McQueen, “Extensible Markup Language (XML) 1.0 (Fourth Edition),” August 2006.), Section 2.12.



 TOC 

3.  The f:features Element

The f:features element is used in an app:collection element or as the root element of a Features Document as a container for zero or more f:feature elements.

An f:features element MAY contain any number of f:feature elements but MUST NOT contain more than one with the same ref attribute value. The order in which f:feature elements appear within the f:features element is insignificant.

An app:collection element MUST NOT contain more than one f:features element.

  inlineFeatures =
    element f:features {
      (feature*,
       undefinedContent)
    }

  outOfLineFeatures =
    element f:features {
      attribute href { atomURI }
    }

  features = inlineFeatures | outOfLineFeatures

When used within an app:collection element, the f:features element MAY contain an "href" attribute, whose value MUST be an IRI reference identifying a Features Document. If the "href" attribute is provided, the f:features element MUST be empty.



 TOC 

4.  The f:feature element

The f:feature element is used within an f:features element to declare a collection's support for a feature.

  feature = element f:feature {
    atomCommonAttributes,
    attribute ref    { atomUri },
    attribute href   { atomUri }?,
    attribute label  { text }?,
    (anyElement)*
  }

  anyElement = element * - f:feature {
    (attribute * { text }
      | text
      | anyElement)*
  }

The ref attribute specifies a globally unique IRI identifying a feature. The value of the ref attribute MUST be compared on a case-sensitive, character-by-character basis. Relative references MUST NOT be used. The IRI is used strictly for identification and cannot be assumed to be dereferenceable.

An optional href attribute MAY be used to specify a dereferenceable IRI of a human-readable description of the feature. Relative references MAY be used.

The optional label attribute MAY be used to specify a human-readable label for the feature. The value of the label attribute is Language-Sensitive as defined by Section 2 of [RFC4287] (Nottingham, M., Ed. and R. Sayre, Ed., “The Atom Syndication Format,” December 2005.).

The f:feature element MAY contain a mix of text and any number of child elements and attributes from any XML namespace, with the exception of the f:feature element itself. Such markup is considered to be metadata applicable to the feature identified. Software agents MUST NOT stop processing or signal an error or change their behavior as a result of encountering such markup.

The presence of a f:feature element is an indication that the collection supports the feature identified. The lack of a f:feature element identifying a particular feature indicates that support for that feature is unspecified. This does not mean that the feature is not supported, only that the server has not explicitly declared support. There are no means by which a server can indicate that a given feature is unsupported.



 TOC 

4.1.  Example

The following is an example of a collection using the f:feature element to indicate its support for the app:draft element as defined by [RFC5023] (Gregorio, J. and B. de hOra, “The Atom Publishing Protocol,” October 2007.).

  <service
    xmlns="http://www.w3.org/2007/app"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:f="http://purl.org/atompub/features/1.0">
    <workspace>
      <atom:title>My Workspace</atom:title>
      <collection href="...">
        <atom:title>My Atom Collection</atom:title>
        <accept>application/atom+xml;type=entry</accept>
        <f:features>
          <f:feature
            ref="http://purl.org/atompub/features/1.0/supportsDraft" />
        </f:features>
      </collection>
    </workspace>
  </service>


 TOC 

5.  Feature Documents

A Feature Document contains a listing of f:feature elements that can be referenced by multiple app:collection elements. Separating the list of f:features out into a separate document enables and promotes the reuse of features across multiple collections.

The root of a Feature Document is the f:features element. The f:features element MUST NOT contain an href atribute. Feature documents are identified with the "application/atomfeature+xml" media type (see Section 9.1).



 TOC 

5.1.  Example

  <?xml version="1.0?>
  <features xmlns="http://purl.org/atompub/features/1.0">
    <feature ref="http://purl.org/atompub/features/1.0/supportsDraft" />
    <feature ref="http://example.org/foo/supportsFoo" />
  </features>

This Feature Document indicates support for the app:draft publishing control and a hypothetical extension.

The following is an example of a collection using the f:features element to reference a Feature Document.

  <service
    xmlns="http://www.w3.org/2007/app"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:f="http://purl.org/atompub/features/1.0">
    <workspace>
      <atom:title>My Workspace</atom:title>
      <collection href="...">
        <atom:title>My Atom Collection</atom:title>
        <accept>application/atom+xml;type=entry</accept>
        <f:features href="http://example.org/features.xml" />
      </collection>
    </workspace>
  </service>


 TOC 

6.  The "supportsDraft" Feature

The "supportsDraft" feature is used to indicate that a collection supports the use of the app:draft control element as defined by Section 13.1.1 of [RFC5023] (Gregorio, J. and B. de hOra, “The Atom Publishing Protocol,” October 2007.). The IRI of the "supportsDraft" feature is:

  http://purl.org/atompub/features/1.0/supportsDraft


 TOC 

7.  The "ignoresDraft" Feature

The "ignoresDraft" feature is used to indicate that a collection will ignore the use of the app:draft control element as defined by Section 13.1.1 of [RFC5023] (Gregorio, J. and B. de hOra, “The Atom Publishing Protocol,” October 2007.). The IRI of the "ignoresDraft" feature is:

  http://purl.org/atompub/features/1.0/ignoresDraft

A server MUST NOT declare support for both the "supportsDraft" and "ignoresDraft" features within the a single app:collection element.



 TOC 

8.  Security Considerations

Specific features supported by a collection may introduce security considerations and concerns beyond those discussed by the Atom Publishing Protocol and Atom Syndication Format specifications. Implementors must refer to the specifications and description of each feature to determine the security considerations relevant to each.

Implementations of this specification handle URIs and IRIs. See Section 7 of [RFC3986] (Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI): Generic Syntax,” January 2005.) and Section 8 of [RFC3987] (Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” January 2005.) for security considerations related to their handling and use.



 TOC 

9.  IANA Considerations

This specification uses a new media type that conforms to the registry mechanism described in [RFC4288] (Freed, N. and J. Klensin, “Media Type Specifications and Registration Procedures,” December 2005.).



 TOC 

9.1.  Content-type registration for 'application/atomfeature+xml'

A Feature Document, when serialized as XML 1.0, can be identified with the following media type:

MIME media type name:
application
MIME subtype name:
atomfeature+xml
Mandatory parameters:
None.
Optional parameters:
"charset":
This parameter has identical semantics to the charset parameter of the "application/xml" media type as specified in [RFC3023] (Murata, M., St. Laurent, S., and D. Kohn, “XML Media Types,” January 2001.).
Encoding considerations:
Identical to those of "application/xml" as described in [RFC3023] (Murata, M., St. Laurent, S., and D. Kohn, “XML Media Types,” January 2001.), section 3.2.
Security considerations:
As defined in this specification.
In addition, as this media type uses the "+xml" convention, it shares the same security considerations as described in [RFC3023] (Murata, M., St. Laurent, S., and D. Kohn, “XML Media Types,” January 2001.), section 10.
Interoperability considerations:
There are no known interoperability issues.
Published specification:
This specification.
Applications that use this media type:
No known applications currently use this media type.

Additional information:

Magic number(s):
As specified for "application/xml" in [RFC3023] (Murata, M., St. Laurent, S., and D. Kohn, “XML Media Types,” January 2001.), section 3.2.
File extension:
.atomfeature
Fragment identifiers:
As specified for "application/xml" in [RFC3023] (Murata, M., St. Laurent, S., and D. Kohn, “XML Media Types,” January 2001.), section 5.
Base URI:
As specified in [RFC3023] (Murata, M., St. Laurent, S., and D. Kohn, “XML Media Types,” January 2001.), section 6.
Macintosh File Type code:
TEXT
Person and email address to contact for further information:
James Snell <jasnell@gmail.com>
Intended usage:
COMMON
Author/Change controller:
IETF (iesg@ietf.org) Internet Engineering Task Force



 TOC 

10. Normative References

[RFC2119] Bradner, S., “Key words for use in RFCs to Indicate Requirement Levels,” BCP 14, RFC 2119, March 1997 (TXT, HTML, XML).
[RFC3023] Murata, M., St. Laurent, S., and D. Kohn, “XML Media Types,” RFC 3023, January 2001 (TXT).
[RFC3986] Berners-Lee, T., Fielding, R., and L. Masinter, “Uniform Resource Identifier (URI): Generic Syntax,” STD 66, RFC 3986, January 2005 (TXT, HTML, XML).
[RFC3987] Duerst, M. and M. Suignard, “Internationalized Resource Identifiers (IRIs),” RFC 3987, January 2005 (TXT).
[RFC4287] Nottingham, M., Ed. and R. Sayre, Ed., “The Atom Syndication Format,” RFC 4287, December 2005 (TXT, HTML, XML).
[RFC4288] Freed, N. and J. Klensin, “Media Type Specifications and Registration Procedures,” BCP 13, RFC 4288, December 2005 (TXT).
[RFC5023] Gregorio, J. and B. de hOra, “The Atom Publishing Protocol,” RFC 5023, October 2007 (TXT).
[W3C.REC-xml-20060816] Bray, T., Paoli, J., Yergeau, F., Maler, E., and C. Sperberg-McQueen, “Extensible Markup Language (XML) 1.0 (Fourth Edition),” World Wide Web Consortium FirstEdition REC-xml-20060816, August 2006 (HTML).
[W3C.REC-xml-infoset-20040204] Tobin, R. and J. Cowan, “XML Information Set (Second Edition),” World Wide Web Consortium Recommendation REC-xml-infoset-20040204, February 2004 (HTML).
[W3C.REC-xml-names-20060816] Hollander, D., Layman, A., and T. Bray, “Namespaces in XML 1.0 (Second Edition),” World Wide Web Consortium FirstEdition REC-xml-names-20060816, August 2006 (HTML).
[W3C.REC-xmlbase-20010627] Marsh, J., “XML Base,” World Wide Web Consortium FirstEdition REC-xmlbase-20010627, June 2001 (HTML).


 TOC 

Appendix A.  Acknowledgements

The author acknowledges the feedback from the other members of the IETF Atom Publishing working group during the development of this specification.



 TOC 

Author's Address

  James M Snell
 
Phone: 
Email:  jasnell@gmail.com
URI:  http://snellspace.com


 TOC 

Full Copyright Statement

Intellectual Property