Advanced collections and ordering

As currently specified, the advanced collections protocol does not cover
the case of specifying the Position header for an entity in an ordered
collection in the case that performing this operation would break the
rules of ordering for that collection.

Consider a collection created through

MKCOL /foo HTTP/1.1
Ordered: <>

that contains the elements A.html, B.pdf, and C.txt.  (Assume that
the specification of order for the collection means "sort alphabetically".)
Any PROPFIND on the collection should yield elements in the order
A.html, B.pdf, and C.txt.

If you then add an element to the collection:

MKREF /foo/Z.ref HTTP/1.1
Ref-Target: <>
Position: First

you are requesting that the collection-- which is defined to sort its
entries alphabetically-- return Z.ref, A.html, B.pdf, and C.txt, in
that order!  This could be rather surprising.

It seems to me that this should either 
(a) fail with 409 Conflict, since it is impossible to specify a position
    when there are sorting rules in order
(b) fail with 409 Conflict, since the new entry conflicts with the 
    ordering of the collection-- Position: Last would have resulted
    in 204 Created
(c) change the ordering of the collection to DAV:custom such that 
    the ordering is Z.ref, A.html, B.pdf, and C.txt.

I am inclined toward (a), for ease of implementation.  Changing a
collection from ordered to unordered is something that probably should
not be done lightly.  If someone really wants to change the
ordering, they can PROPPATCH the DAV:orderingtype to DAV:custom
and ORDERPATCH it from there.  (It might be good to specify that
a change of the DAV:orderingtype to DAV:custom from any other
value should preserve the ordering that was previously evident.)

%% Max Rible %% %% %%
%% "Before enlightenment:  sharpen claws, catch mice.                   %%
%%  After enlightenment:  sharpen claws, catch mice."            - me   %%

Received on Monday, 8 March 1999 18:07:19 UTC