UserPreferences

PaceAppDocuments


Abstract

Provides a top level discussion of Atom Publishing Protocol Documents similar to what is in the format spec. This gives us a single place to specify the namespace for APP documents, establishing the media type for documents, and specifying common attributes for all of the elements defined in the APP spec.

Specifies that APP document elements can have xml:base and xml:lang and support IRI's.

Status

Proposal

Rationale

Provides consistency with the Atom format spec

Proposal

(Insert the following as section 4 before the existing section 4)

4. Atom Publishing Protocol Documents

This specification describes two kinds of Atom Publishing Protocol Documents: Atom Collections Documents and Atom Introspection Documents.

An Atom Collection Document is a representation of an Atom collection, including metadata about the collection, and some or all of the members associated with it. Its root is the app:collection element.

An Atom Introspection Document represents one or more workspaces, which are server-defined groupings of collections. Its root is the app:service element.

namespace atom = "..." start = appCollection | appService

Both kinds of Atom Publishing Protocol Documents are specified in terms of the XML Information Set, serialised as XML 1.0 [W3C.REC-xml-20040204]. Atom Publishing Protocol Documents MUST be well-formed XML. This specification does not define a DTD for Atom Documents, and hence does not require them to be valid (in the sense used by XML).

Atom Collection Documents are identified with the "application/atomcol+xml" media type.

Atom Introspection Documents are identified with the "application/atomserv+xml" media type.

Atom allows the use of IRIs [RFC3987], as well as URIs [RFC3986]. Every URI is an IRI, so any URI can be used where an IRI is needed. While IRIs must, for many protocols, be mapped to URIs prior to dereferencing, they MUST NOT be so mapped for comparison when used in atom:id. Section 3.1 of [RFC3987] describes how to map an IRI to a URI when necessary.

Any element defined by this specification MAY have an xml:base attribute [W3C.REC-xmlbase-20010627]. When xml:base is used in an Atom Publishing Protocol Document, it serves the function described in section 5.1.1 of [RFC3986], 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" by this specification. Requirements regarding the content and interpretation of xml:lang are specified in XML 1.0 [W3C.REC-xml-20040204], Section 2.12.

  appCommonAttributes =
     attribute xml:base { atomUri }?,
     attribute xml:lang { atomLanguageTag }?,
     undefinedAttribute*

(modify all of the existing element definitions to the following)

  appCollection =
     element app:collection {
        appCommonAttributes,
        attribute next { text } ?,
        appMember* 
     }
     
     
  appMember =
     element app:member {
        appCommonAttributes,
        attribute title { text },
        attribute href { text },
        attribute hrefreadonly { text } ?,
        attribute updated { text }
     }
     
  appService =
     element app:service {
        appCommonAttributes,
        ( appWorkspace* 
          & anyElement* )
     }
     
  appWorkspace =
     element app:workspace {
        appCommonAttributes,
        attribute title { text },
        ( appCollection* 
          & anyElement* )
     }
     
  appCollection =
     element app:collection {
        appCommonAttributes,
        attribute title { text },
        attribute contents { text },
        attribute href { text },
        anyElement*
     }

(specify that the member, workspace and introspection collection elements are all Language-Sensitive)

Impacts

Notes


CategoryProposals