UserPreferences

PaceConfigurableCollectionOrdering2


Abstract

Same as PaceConfigurableCollectionOrdering without the "app:created" and "ordered by app:created" stuff.

Status

Open (ThomasBroyer)

Rationale

PaceConfigurableCollectionOrdering adds a new element app:created and defines that a Collection Feed could be ordered by that new value. WG members might find it a little "too much" relative to draf-atom-protocol-09, so here's a version of the Pace with only atom:updated- and app:modified-based orderings.

Given that there is now only two possible orderings, the "app:details-level" is changed to an "app:minor-changes-shown" element.

See PaceConfigurableCollectionOrdering for the whole rationale.

Proposal

Replace the second paragraph of section 9 in draft-atom-protocol-09 with:

   The ordering of entries in the feed depends on the value of the
   "app:minor-changes-shown" element (see section 10.3).

Add the following two new subsections in section 10:

10.3 The "app:minor-changed-shown" element

   appMinorChangesShown = element app:minor-changes-shown {
      atomCommonAttributes,
      "yes" | "no"
   }

   The "app:minor-changes-shown" element MAY appear as a child of an
   "atom:feed" which represents a Collection. The "app:minor-changes-shown"
   element, if it does appear in a feed, MUST only appear at most one time.
   The "app:minor-changes-shown" element is considered foreign markup
   as defined in Section 6 of [RFC4287].

   The "app:minor-changes-shown" element's content MUST be either "yes" or
   "no". If the "app:details-level" is not provided, both clients and servers
   MUST behave as if it were present with a value of "no".

   The value "no" signifies that entries are ordered by their
   "atom:updated" value.

   The value "yes" indicates that entries are ordered by their
   "app:modified" value (see section 10.4).

   Both clients and servers MUST ignore foreign attributes present in the
   "app:minor-changes-shown" element.

10.4 the "app:modified" element

   appModified = element app:modified { atomDateConstruct }

   The "app:modified" element MAY appear as a child of an "atom:entry"
   which is being created or updated via the Atom Publishing Protocol.
   The "app:modified" element, if it does appear in an entry, MUST only
   appear at most one time. The "app:modified" element is considered
   foreign markup as defined in Section 6 of [RFC4287].

   The "app:modified" element is a Date construct indicating the instant
   in time when the entry was last modified. The "app:modified" element
   is very similar to the Last-Modified HTTP header, thus, when included
   in an Atom Entry Document, its value SHOULD be the same as the one of
   the Last-Modified HTTP header applying to the entity.

   If the "app:modified" element is not present, clients MUST behave as
   if it were present with the same value as the "atom:updated" element.

   If the "app:modified" element is present in an Atom Entry sent to a
   server in the body of a POST or PUT request, the server MUST ignore
   it and its value.

In section 7.2.3 (the "app:collection" element), replace the second sentence with:

   Two child elements are defined here for app:collection: app:accept and
   app:minor-changes-shown.

Add the following new subsection to section 7.2:

7.2.5 The "app:minor-changes-shown" element

   The app:collection element MAY contain one "app:minor-changes-shown"
   element. The "app:minor-changes-shown" element is defined in section
   10.3.

   When used as a child of app:collection, its value is a hint for
   clients and SHOULD have the same value as the "app:minor-changes-shown"
   present in the Atom Feed referenced by the app:collection's "href"
   attribute. Note that the "app:minor-changes-shown" element within an
   app:collection does not override the actual media type returned within
   the Collection's Atom Feed.

Impacts

Example usage: clients could warn users that the server's configuration is not optimized for the use they want (online or offline mode), so they could fix the server's configuration (if they can, of course).

Notes

This Pace uses the "app" namespace rather than the "pub" one, as if PaceOneAppNamespaceOnly had been accepted, but it does not depend on it.


CategoryProposals