RE: Reconsidering DTDs and validity (was RE: I-D ACTION:draft-ietf-webdav-rfc2518bis-03.txt)

> From: w3c-dist-auth-request@w3.org
> [mailto:w3c-dist-auth-request@w3.org]On Behalf Of Joe Orton
> Sent: Sunday, June 22, 2003 1:08 PM
> To: w3c-dist-auth@w3.org
> Subject: Re: Reconsidering DTDs and validity (was RE: I-D
> ACTION:draft-ietf-webdav-rfc2518bis-03.txt)
>
>
>
> I think it's important to retain some of the ordering constraints given
> by the DTD fragments in 2518 - specifically it is useful that a client

I really don't care much about the issue. However, we really really need to
decide this, and then stay consistent. The current situation obviously is
problematic.

*If* we decide that ordering *is* relevant, we should clarify that both
servers and clients must reject messages that do not comply. I don't want to
end up in a situation where some clients work with non-compliant servers,
while others don't.

However, my feeling is that *currently* almost everybody ignores the
ordering, and that server behaviour is *not* consistent. Thus from a
standards progress point of view, it would make sense for RFC2518bis just to
state that the ordering is irrelevant.

> can assume that in the response element, a propstat MUST be preceded by
> an href.
>
> Since a propstat cannot be interpreted without knowing which URI it
> applies to, if this constraint is missing, the client is required to be
> able to batch propstats in memory until the href arrives.  With this
> constaint, propstats can always be processed on the fly.

Stream processing of response bodies is a very interesting problem. However,
I think even if you can rely on ordering, it is still hard. For instance,
how do you process:

   <D:multistatus xmlns:D="DAV:">
     <D:response>
          <D:href>http://www.foo.bar/file</D:href>
          <D:propstat>
               <D:prop xmlns:R="http://www.foo.bar/boxschema/">
                    <R:bigbox>
                         <R:BoxType>Box type A</R:BoxType>
                    </R:bigbox>
                    <R:author>
                         <R:Name>J.J. Johnson</R:Name>
                    </R:author>
               </D:prop>
               <D:status>HTTP/1.1 200 OK</D:status>
          </D:propstat>
          <D:propstat>
               <D:prop><R:DingALing/><R:Random/></D:prop>
               <D:status>HTTP/1.1 403 Forbidden</D:status>
               <D:responsedescription> The user does not have access to
   the DingALing property.
               </D:responsedescription>
          </D:propstat>
     </D:response>
    This is malformed: &
   </D:multistatus>

A compliant client must reject this reponse, because the body is malformed.

BTW: you will need to batch the propstat element until you've reached the
DAV:status element (confirming it's a "200") anyway. I don't see a big
difference to waiting for the closing response tag.


Julian



--
<green/>bytes GmbH -- http://www.greenbytes.de -- tel:+492512807760

Received on Sunday, 22 June 2003 10:22:58 UTC