http://www.intertwingly.net/wiki/pie/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.
--
Thomas Broyer