Clarifications on RFC2518

Sorry to ask such probably stupid questions to a large group BUT, I would like some clarifications on some parts of the spec

1)  Properties.

On page 10 it reads: "The property namespace is flat; that is, no hierarchy of properties is explicitly recognized ... it is not possible to define the same property twice on a singe resource ... "

The spec then goes on  to give lots of examples with hierarchical properties.  I assume from this that the examples on PROPFIND works as follows:

<R:bigbox>
    <R:BoxType> Box type A </R:BoxType>
</R:bigbox>

Is stored in the webdav server as property name <R:bigbox> with a value of <R:BoxType> Box type A </R:BoxType>

Is this correct???  It seems to be correct especially when you have examples like

<Z:authors>
        <Z:Author> Jim Whitehead</Z:Author>
        <Z:Author> Roy Fielding</Z:Author>
<Z:authors>

which obviously violates the rules on page 10 unless the entire <Z:Author> structure is stored as the value for <Z:authors>

Assuming everything I have said is true (the only way I made sense of the spec and its examples) then how should a webdav server respond to PROPFIND when the property name is 

<K:Foo/Bar>

Should it try to be intelligent and respond with 
<K:Foo>
      <K:Bar> value </K:Bar>
</K:Foo>

or do the simple

<K:Foo/Bar> value </K:Foo/Bar>


The simple way also means that if <K:Foo> and <K:Foo/Bar> are defined, propfind will return
<K:Foo> value </K:Foo>
<K:Foo/Bar> value </K:Foo/Bar>

instead of the XML you would expect.

I see the reasoning behind this if everything I wrote is true.  If it is, maybe the spec should be changed to either give more concrete Property examples up front, or remove so many hierarchical properties from the rest of the examples.

2)  I see a lot of discussion on COPY and MOVE and how they should work.  No one (as far as I have read) has mentioned the fact that both do state "If a resource exists at the destination and the Overwrite header is "T" then prior to performing the copy the server MUST perform a DELETE with "Depth: infinity" on the destination resource.

I can't think of any system (or utility) I have used that does this. Most would overwrite the file if it already existed but not destroy any other files which might have been there.

Thus

COPY

foo--            TO          foo--
     |                                |
     -text.htm                   - list.htm

Gives the directory foo with simply text.htm in it instead of what I expected which is foo with BOTH list.htm and text.htm

I looked in the FAQ and old emails for answers and couldn't find this mentioned...


Thanks for any help,
Kevin   

Received on Wednesday, 10 March 1999 21:37:20 UTC