- From: Clemm, Geoff <gclemm@rational.com>
- Date: Fri, 8 Jun 2001 17:41:34 -0400
- To: DeltaV <ietf-dav-versioning@w3.org>
Another approach would be to extend the type-o-rama appendix to say something like the following: ------------------------------------------------ A client should use the DAV:supported-live-property-set and DAV:supported-method-set to classify a resource in its GUI (e.g. to determine what icon to display). Some common combinations of supported live properties and methods that can be used to classify a resource include: ... (all the DAV:property-o-rama stuff). ------------------------------------------------ This will provide the information needed for different clients to iconify resources in a consistent way. I'm not sure the PROPPATCH example is really needed here though ... I believe this is better than just looking for a "key" property, because as folks have pointed out in this thread, it might be reasonable for some later defined resource to support a subset of the properties (e.g. just DAV:version-name). Of course, if a client only uses the semantics of DAV:version-name, it should just look for that property, and not check for the full list of properties that a "version" must support. Cheers, Geoff -----Original Message----- From: Tim Ellison [mailto:tim@peir.com] Sent: Friday, June 08, 2001 5:07 PM To: DeltaV Subject: Type appendix Here's a proposed appendix to the spec to clarify the type discussion we have been having recently. I suggest we call it "How to tell the difference between a Duck and an Alligator". Tim ========================= VERSIONING RESOURCE TYPE A versioning resource's type can be determined by examining the set of live properties it supports. For example, the supported live properties for the version history resource /foo are retrieved by >>REQUEST PROPFIND /foo HTTP/1.1 Host: bar.com Content-Type: text/xml; charset="utf-8" Content-Length: xxx <?xml version="1.0" encoding="utf-8" ?> <D:propfind xmlns:D="DAV:"> <D:prop> <D:supported-live-property-set/> </D:prop> </D:propfind> >> RESPONSE HTTP/1.1 207 Multi-Status Content-Type: text/xml; charset="utf-8" Content-Length: xxxx <?xml version="1.0" encoding="utf-8" ?> <D:multistatus xmlns:D="DAV:"> <D:response> <D:href>http://www.bar.com/foo</D:href> <D:propstat> <D:prop> <D:supported-live-property-set> <D:supported-live-property namespace="DAV:" name="creationdate"/> <D:supported-live-property namespace="DAV:" name="displayname"/> <D:supported-live-property namespace="DAV:" name="getcontentlanguage"/> <D:supported-live-property namespace="DAV:" name="getcontentlength"/> <D:supported-live-property namespace="DAV:" name="getcontenttype"/> <D:supported-live-property namespace="DAV:" name="getetag"/> <D:supported-live-property namespace="DAV:" name="getlastmodified"/> <D:supported-live-property namespace="DAV:" name="lockdiscovery"/> <D:supported-live-property namespace="DAV:" name="resourcetype"/> <D:supported-live-property namespace="DAV:" name="source"/> <D:supported-live-property namespace="DAV:" name="supportedlock"/> <D:supported-live-property namespace="DAV:" name="comment"/> <D:supported-live-property namespace="DAV:" name="creator-displayname"/> <D:supported-live-property namespace="DAV:" name="supported-method-set"/> <D:supported-live-property namespace="DAV:" name="supported-live-property-set"/> <D:supported-live-property namespace="DAV:" name="supported-report-set"/> <D:supported-live-property namespace="DAV:" name="workspace"/> <D:supported-live-property namespace="DAV:" name="version-controlled-configuration"/> <D:supported-live-property namespace="DAV:" name="version-set"/> <D:supported-live-property namespace="DAV:" name="root-version"/> </D:supported-live-property-set> </D:prop> <D:status>HTTP/1.1 200 OK</D:status> </D:propstat> </D:response> <D:responsedescription>OK</D:responsedescription> </D:multistatus> The following types are described in the DeltaV specification. The resources type is uniquely determined by the presence or absence of key supported live properties (inclusion in or omission from the reported property set) as follows: Version-controlled resource (+*) <DAV:supported-live-property-set> includes <DAV:auto-checkout/>. Version (*) <DAV:supported-live-property-set> includes <DAV:version-name/>. Version history <DAV:supported-live-property-set> includes <DAV:root-version/>. Workspace <DAV:supported-live-property-set> includes <DAV:workspace-checkout-set/>. Working resource (*) <DAV:supported-live-property-set> includes <DAV:checked-out/>. and <DAV:supported-live-property-set> does *not* include <DAV:auto-checkout/>. Version-controlled configuration (+) <DAV:supported-live-property-set> includes <DAV:baseline-controlled-collection/>. Baseline <DAV:supported-live-property-set> includes <DAV:baseline-collection/>. Activity <DAV:supported-live-property-set> includes <DAV:subactivity-set/>. Each resource type above marked with a plus-sign(+) can exist in a checked-in or checked-out state. The checked in state can be determined as follows: <DAV:supported-live-properties> includes <DAV:checked-in> means the resource is checked-in. <DAV:supported-live-properties> includes <DAV:checked-out> means the resource is checked-out. Each resource type above marked with an asterix(*) can exist as a collection resource or a non-collection resource. Determining whether a resource is a collection is described in RFC2518. <DAV:resourcetype> does not include <DAV:collection/> means the resource is not a collection. <DAV:resourcetype> includes <DAV:collection/> means the resource is a collection.
Received on Friday, 8 June 2001 17:42:13 UTC