Lightweight PROPFIND requests

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

Received on Tuesday, 28 May 2002 21:18:43 UTC