Subject: RE: deltaV (draft 14) questions

From: "Clemm, Geoff" <[email-masked]>
Date: Thu, 12 Apr 2001 00:07:07 -0400

From: Julian F. Reschke [mailto:[email-masked]]

   a few questions/comments:

   1) 2.2.4	DAV:supported-live-property-set (protected)

   <!ATTLIST supported-live-property namespace NMTOKEN "DAV:">
   namespace value: an XML namespace

   This seems to indicate that only properties in the DAV: namespace
   can be live properties, which I think is wrong.

The NMTOKEN "DAV:" construct just says that if no namespace
attribute is specified, it defaults to "DAV:".  An explicit
namespace attribute overrides this default.

   2) General comment regarding new required properties for all resources

   Unless I'm making a mistake, this makes propfind/allprop extremly
   chatty...

In 14.1, we have added the statement that a server SHOULD NOT return
any versioning properties in an allprop PROPFIND.

   Regarding "supported-method-set" -- what is it for? If I really
   would need to know this, couldn't I just do OPTIONS on the
   resource?

You often want to populate a "tree explorer" GUI with this
information.  If it is a property, you can use a Depth PROPFIND to get
this information for the whole tree in one request.  Otherwise, you
would have to do a separate OPTIONS call for every member of the tree.

   Regarding "supported-live-property-set": this *is* very useful, but
   it seems it could be implemented simpler and more effective by
   extending propfind/propname to include this information, for
   instance:

   >>Request

      PROPFIND  /container/ HTTP/1.1
      Host: www.foo.bar
      Content-Type: text/xml; charset="utf-8"
      Content-Length: xxxx

      <?xml version="1.0" encoding="utf-8" ?>
      <propfind xmlns="DAV:">
	<propname includeTypeInfo="yes"/>
      </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" ?>
      <multistatus xmlns="DAV:">
	<response>
	     <href>http://www.foo.bar/container/</href>
	     <propstat>
		  <prop xmlns:R="http://www.foo.bar/boxschema/"
   xmlns:dav="DAV">
		       <R:bigbox dav:type="dead" />
		       <R:author dav:type="dead" />
		       <creationdate dav:type="protected" />
		       <displayname dav:type="live" />
		       <resourcetype dav:type="protected" />
		       <supportedlock dav:type="protected" />
		  </prop>
		  <status>HTTP/1.1 200 OK</status>
	     </propstat>
	</response>
      </multistatus>

   Obviously this could also be made propfind/propinfo (new propfind
   type), and it could also use child elements rather than attributes
   (<creationdate><protected /></creationdate>...).

The "live-property" property effectively provides the basis for this
query (i.e. the detailed information will appear as child elements of
the live-property element).  In general, nested elements are better
than attributes, since element values have structure while attribute
values are just strings.

   3. 2.1.1	Creating a Version-Controlled Resource and
      2.3.1	DAV:checked-in (protected)

   OK, under core versioning, every version is a resource on it's own.
   Does this mean that a server has to assign a unique URL and make
   the version resource visible under this URL, for instance for
   PROPINFO? Or is this optional?

It is required.

Cheers,
Geoff