Subject: Re: xml:space

From: "Jason Crawford" <[email-masked]>
Date: Sat, 25 May 2002 16:50:59 -0400

In the following posting,

http://lists.w3.org/Archives/Public/w3c-dist-auth/2002JanMar/0254.html

Julian requests that we denote in rfc2518 that spaces are significant in
property values.

Is this agreeable to everyone?   Would someone like to offer some precise
wording?   If so, please
clarify if specific properties can specify otherwise.

Thanks :-)

J.

------------------------------------------
Phone: 914-784-7569,   [email-masked]

---

From: "Julian Reschke" <[email-masked]>
Date: Sun, 26 May 2002 12:31:40 +0200

> From: [email-masked]
> [mailto:[email-masked]]On Behalf Of Jason Crawford
> Sent: Saturday, May 25, 2002 10:51 PM
> To: Julian Reschke
> Cc: [email-masked]
> Subject: Re: xml:space
>
>
>

OK, I'd propose to add to section 4.4 the simple statement:

"White space in property values is significant. The XML attribute xml:space
MUST not be used to change white space handling."

Also, we should make sure that all examples follow this rule.

(If somebody disagrees, I'd like to see examples of interoperability where
white space indeed is handled as insignificant).

---

From: "Jim Whitehead" <[email-masked]>
Date: Tue, 28 May 2002 16:40:01 -0700

> clarify if specific properties can specify otherwise.

This is a good clarification to make.

- Jim

---

From: Jim Luther <[email-masked]>
Date: Tue, 28 May 2002 18:18:41 -0700

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: "Julian Reschke" <[email-masked]>
Date: Wed, 29 May 2002 08:41:45 +0200

> [mailto:[email-masked]]On Behalf Of Jim Luther
> Sent: Wednesday, May 29, 2002 3:19 AM
> To: [email-masked]
> Subject: Lightweight PROPFIND requests
>
>

It's legal according to the DTD, and I don't think that RFC2518 explicitly
forbids it. It certainly works with our server.

> DAV properties are shoulds, or are MUSTs under certain conditions).

That's probably the cheapest workaround -- but I'd try to stay with the
former solution. If this breaks somewhere, please report the issue.

---

From: Stefan Eissing <[email-masked]>
Date: Wed, 29 May 2002 13:30:48 +0200

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:
>
> 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:29:41 -0700

> former solution. If this breaks somewhere, please report the issue.

Thanks for the quick feedback. As you may have guessed, I'm attempting 
to reduce the number of transactions and the  amount of data transferred 
(and parsed) to the minimum possible. I'll continue to test our client 
for interoperability against all servers I can get access to and report 
any problems found.

- Jim

---

From: Jim Luther <[email-masked]>
Date: Wed, 29 May 2002 09:56:19 -0700

> former solution. If this breaks somewhere, please report the issue.

I found a server which requires you to ask for at least one property... 
Microsoft-IIS/5.0 (Windows 2000 Professional). If you ask for no 
properties, it replies with "400 Bad Request". The other servers I 
tested (Apple iDisk, Xythos Sharemation, Apache 1.3/mod_dav 1.0.2, 
Greenbytes SAP Portals Enterprise Portal WebDAV Interface) all work 
correctly with no properties.

So in the name of interoperability, I'll be asking for the resourcetype 
property like this:

<?xml version="1.0" encoding="utf-8" ?>
<D:propfind xmlns:D="DAV:">
<D:prop>
<D:resourcetype/>
</D:prop>
</D:propfind>

- Jim