RE: Replacing the Label header with a DAV:labeled-version report

   From: Julian Reschke [mailto:julian.reschke@greenbytes.de]

   > From: Clemm, Geoff
   >
   > Julian didn't like the marshalling of this report, because it
   > makes it look like the properties are those of the VCR, when they
   > actually are properties of the version

   Yes, that's the problem, and I fear the new format doesn't address
   this.

   If the multistatus/response format is re-used for a REPORT (basically a
good
   thing), it must not break the existing semantics, in particular:

   - the properties reported must actually be the properties of the resource
   identified by the reported URI (DAV:href) and
   - the properties reported actually must be properties (!).

   If this is not the case, the response seems to indicate that there's a
   DAV:labeled-version-report property, which isn't the case.

If this is a problem, it is a problem with the 3253 definition of REPORT.
In particular, section 3.6 states:

   "If a Depth request header is included, the response MUST be a 207
   Multi-Status.  The request MUST be applied separately to the
   collection itself and to all members of the collection that satisfy
   the Depth value.  The DAV:prop element of a DAV:response for a
   given resource MUST contain the requested report for that resource."

So according to 3253, the DAV:prop elements MUST contain the requested
report (as if it were a property).

Since this was not considered a problem during any of the reviews of
3253, I'd need to hear some compelling reasons why this marshalling
has become a problem.  In particular, there is no rule that I know of
that states that the interpretation of a DAV:multistatus element must
be the same in all contexts in which it appears.  I know that this is
definitely not the case for other XML elements used by WebDAV (e.g.
the way the property elements are used in the request and response
bodies of a PROPPATCH differ significantly).

   So how about properly extending the response element, for instance:

     <?xml version="1.0" encoding="utf-8" ?>
     <D:multistatus xmlns:D="DAV:">

       <D:response>
	 <D:href>http://www.webdav.org/folder/</D:href>
	 <D:labeled-version-report>
	   <D:href>http://repo.webdav.org/his/23/ver/V5</D:href>
	   <D:propstat>
	     <D:prop>
	       <D:version-name>V5</D:version-name>
	     </D:prop>
	     <D:status>HTTP/1.1 200 OK</D:status>
	   </Dpropstat>
	 </D:labeled-version-report>
	 <D:status>HTTP/1.1 200 OK</D:status>
       </D:response>

      <D:response>
	 <D:href>http://www.webdav.org/folder/foo.html</D:href>
	 <D:labeled-version-report>
	   <D:href>http://repo.webdav.org/his/84/ver/V8</D:href>
	     <D:propstat>
	       <D:prop>
		 <D:version-name>V8</D:version-name>
	     </D:prop>
	     <D:status>HTTP/1.1 200 OK</D:status>
	   </D:propstat>
	 </D:labeled-version-report>
	 <D:status>HTTP/1.1 200 OK</D:status>
       </D:response>

     </D:multistatus>

That would be fine with me (and arguably is cleaner than what is
defined in 3253), but it is inconsistent with 3253, so unless there
is something seriously wrong with the 3253 marshalling, I think
consistency is more important here than aesthetics.

Cheers,
Geoff

Received on Saturday, 6 July 2002 19:34:16 UTC