Date: Wed, 22 Dec 1999 13:22:55 -0500 Message-Id: <9912221822.AA08687@tantalum> From: "Geoffrey M. Clemm" <geoffrey.clemm@rational.com> To: ietf-dav-versioning@w3.org In-Reply-To: <1999Dec22.104500.1250.1425599@otismtp.ott.oti.com> Subject: Re: Target-Selector I'd like to propose a syntactic variant on Tim's proposal: Instead of adding a "finally" clause to the Target-Selector header, let's replace the "Target-Selector" header with a "Workspace" and a "Revision-Selector" selector header. One advantage is that Workspace and Revision-Selector are more self-explanatory than Target-Selector. A Workspace header specifies either a Workspace URL or nothing, where nothing corresponds to the old "metadata" Target-Selector. A Revision-Selector specifies a label, an id, or a configuration. A Workspace header specifies target selection for the entire request. A Revision-Selector header overrides the Workspace header for the versioned resource identified by the Request-URL. workspace-hdr = "Workspace" ":" [ URL ] revision-selector-hdr = "Revision-Selector" ":" revision-selector revision-selector = "id" segment | "label" segment | "configuration" URL I'd like to keep the "id", "label" and "configuration" keywords to avoid ambiguity in case we decide to extend those namespaces. Cheers, Geoff From: Tim_Ellison@oti.com (Tim Ellison OTT) I'd like to propose a change to the Target-Selector as described in the protocol spec. Presently, the valid values are: workspace "<URI>" id "<revision id>" label "<label>" metadata The change would accomodate the situation where the client wants to select collection revisions using a workspace, and the final resource using a label or id. Without such a change the "id" target selector is of little/no use for selecting resources in collections (the collection will not have the same id as the "leaf" resource). The change would also allow the client to select a revision based directly upon an activity and provides extensibility for other selection schemes. target selector = Target-Selector ":" URI [ LWS "; finally" URI ] The use of URIs gives us extensibility for defining new selection mechanisms, and the optional "finally" clause allows clients to specify a different selector for the leaf. (I don't see any benefit for N selection methods.) Example URIs would be id:some_id, label:some_label, metadata:, and http://machine/resource where 'resource' is a workspace or activity or something else (the server gets to figure out which by looking at the resource type). Specifying a resource that cannot be used for selection results in a bad request. Example target selectors would be: Target-Selector: http://foo.com/mywork Target-Selector: http://foo.com/mywork ; finally id:Rev12FP Target-Selector: label:bar ; finally http://foo.com/actif1 Comments? Tim