Subject: RE: Lightweight PROPFIND requests

From: "Clemm, Geoff" <[email-masked]>
Date: Wed, 29 May 2002 08:20:18 -0400

Good point Stefan.  Unfortunately, this use case was not
something the writers of 2518 thought of, and they explicitly
disallowed the use of a non-Infinity Depth header for DELETE.

We should add this to the list of features we'd like to add/change
in RFC 2518.

Cheers,
Geoff

-----Original Message-----
From: Stefan Eissing [mailto:[email-masked]]
Sent: Wednesday, May 29, 2002 7:31 AM
To: Jim Luther
Cc: [email-masked]
Subject: Re: Lightweight PROPFIND requests

That of course opens the question why DELETE on a collection
with Depth: 0 is forbidden. There seems to be a use case
for this and it is easy for a server to implement.

Jim, did you make any tests how servers respond to a Depth: 0
DELETE request?

//Stefan

Am Mittwoch den, 29. Mai 2002, um 03:18, schrieb Jim Luther:

> There are a few times when the Mac OS X WebDAV file system client 
> needs to use the PROPFIND method with "Depth: 1" on a collection 
> resource to determine if it contains any children resources. For 
> example, POSIX requires that my rmdir code must not delete a 
> directory (collection) unless it is empty. Since the WebDAV DELETE 
> method doesn't work that way (it deletes all children), my code 
> uses the PROPFIND method with "Depth: 1" to determine if the 
> DELETE method can be called on the empty collection, or if 
> ENOTEMPTY should be returned because the collection has children. 
> I don't need any properties from that PROPFIND, just the list of 
> children.
>
> I tried this:
>
> <?xml version="1.0" encoding="utf-8"?>
> <D:propfind xmlns:D="DAV:">
> <D:prop>
> </D:prop>
> </D:propfind>
>
> and it works with mod_dav. However (and this is my question), is 
> this legal by the rule <!ELEMENT prop ANY>? I looked through the 
> XML docs to see how ANY was defined but couldn't tell it allowed 
> an empty set.
>
> If that's illegal and I must I ask for at least one property, I'll 
> just ask for the resourcetype property since it looks like the 
> only property that MUST be defined for all DAV compliant resources 
> (all of the other DAV properties are shoulds, or are MUSTs under 
> certain conditions).
>
> Thanks,
>
> - Jim Luther
>
>

---

From: Jim Luther <[email-masked]>
Date: Wed, 29 May 2002 07:13:53 -0700

No, I didn't test DELETE with Depth: 0 because (as Geoff also pointed 
out) RFC 2518 says "A client MUST NOT submit a Depth header with a 
DELETE on a collection with any value but infinity."

- Jim