RE: property value clarification

On Tuesday, October 27, 1998, Greg Stein wrote:
> The specification is not clear on whether attributes of a property name
> element are considered to be part of its value. Specifically, take this
> example:
>
> <?xml version="1.0"?>
> <propertyupdate>
>   <set>
>     <prop>
>       <prop1 attr="value">
>         contents
>       </prop1>
>       <prop2 attr="value"/>
>     </prop>
>   </set>
> </propertyupdate>
>
> Is the above legal? What is the expected result from a PROPFIND?
>
> The examples (and text) for PROPFIND/PROPPATCH do not cover attributes
> at all. I presume they are legal for markup *within* a <prop1>..</prop1>
> element, but I haven't found anything discussing attributes on the
> <prop1> element itself.

It's amazing how such a simple question can directly lead to a *very*
complex issue space.

While it may seem reasonable to say that if an XML element in a PROPPATCH
has an attribute, this attribute needs to be persistently stored,
retrievable using PROPFIND, showing up in the same element in the PROPFIND
that it was located in the PROPPATCH. But, there are several issues which
you encounter as a result.

1) It may be quite reasonable for the server to NOT return the attributes
exactly as they were entered.  For example, with XML namespaces, the server
may decide to minimize the size of the output XML stream by using
appropriate XML namespace defaulting rules.  Thus an element which had an
attribute in PROPFIND isn't guaranteed to have that same attribute on a
PROPPATCH, though the results will be semantically equivalent. This makes it
difficult to specify the desired behavior for attributes.

2) A common implementation strategy for WebDAV properties is to store them
in a RDBMS.   These systems react poorly to random attributes in a property
stream (please dynamically add this column to the database :-)  While these
systems might be able to handle a set of known attributes (in effect
hardwired into the system), how a server would advertise this attribute set
to clients is undefined, part of the general problem known as "schema
discovery" which we (correctly, I believe) decided not to address.

My sense of the working group is there does not currently exist any
consensus on this topic.  Nor, given the depth of the issues, is it likely
that any consensus could be achieved quickly.  My recommendation is to leave
this issue unresolved, and be silent on this topic within the spec. (except,
perhaps, to note that we are intentionally silent) until the DASL group has
refined issues concerning typing, and there is more implementation
experience on properties.

- Jim

Received on Thursday, 29 October 1998 19:02:26 UTC