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


Atom Publishing Protocol Feature Discovery
draft-snell-atompub-feature-11.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 25, 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:feature element
    3.1.  Example
4.  The "supportsDraft" Feature
5.  The "ignoresDraft" Feature
6.  Security Considerations
7.  IANA Considerations
8.  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:feature element

The f:feature element is used in an app:collection element to declare the collection's support for a feature.

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

  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.

An app:collection 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 app:collection element is insignificant.

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 

3.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:feature
          ref="http://purl.org/atompub/features/1.0/supportsDraft" />
      </collection>
    </workspace>
  </service>


 TOC 

4.  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 

5.  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 

6.  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.



 TOC 

7.  IANA Considerations

This specification does not define any actions for IANA.



 TOC 

8. Normative References

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