Subject: [Bug 35] RFC2606 compliance

From: [email-masked]
Date: Tue, 31 Jan 2006 00:19:36 -0800

http://ietf.cse.ucsc.edu:8080/bugzilla/show_bug.cgi?id=35

[email-masked] changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |

------- Additional Comments From [email-masked]  2006-01-31 00:19 -------
Well, I think you have missed some aspects of the proposed changes (see
<http://greenbytes.de/tech/webdav/draft-reschke-webdav-rfc2518bis-latest.html#rfc.issue.bz035>).

In particular:

1) There is (and was) a namespace name mismatch in Section 9.2.2.

2) Move XML namespace URIs in a different domain so they aren't confused with
the WebDAV server in the examples.

3) Move the DAV:href in the lock owner examples into a different domain as well
(the contact info should reside on a different server, otherwise the example may
be confusing).

Changes:

Section 9.1.3., para. 3:
OLD:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:propfind xmlns:D="DAV:">
        <D:prop xmlns:R="http://www.example.com/boxschema/">
          <R:bigbox/>
          <R:author/>
          <R:DingALing/>
          <R:Random/>
        </D:prop>
      </D:propfind>
    >>Response

NEW:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:propfind xmlns:D="DAV:">
        <D:prop xmlns:R="http://ns.example.com/boxschema/">
          <R:bigbox/>
          <R:author/>
          <R:DingALing/>
          <R:Random/>
        </D:prop>
      </D:propfind>
    >>Response

Section 9.1.3., para. 5:
OLD:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:multistatus xmlns:D="DAV:">
        <D:response xmlns:R="http://www.example.com/boxschema/">
          <D:href>http://www.example.com/file</D:href>
          <D:propstat>
            <D:prop>
              <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>
        <D:responsedescription> There has been an access violation error.
        </D:responsedescription>
      </D:multistatus>

NEW:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:multistatus xmlns:D="DAV:">
        <D:response xmlns:R="http://ns.example.com/boxschema/">
          <D:href>http://www.example.com/file</D:href>
          <D:propstat>
            <D:prop>
              <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>
        <D:responsedescription> There has been an access violation error.
        </D:responsedescription>
      </D:multistatus>

Section 9.1.5., para. 5:
OLD:

      <?xml version="1.0" encoding="utf-8" ?>
      <multistatus xmlns="DAV:">
        <response>
          <href>http://www.example.com/container/</href>
          <propstat>
            <prop xmlns:R="http://www.example.com/boxschema/">
              <R:bigbox/>
              <R:author/>
              <creationdate/>
              <displayname/>
              <resourcetype/>
              <supportedlock/>
            </prop>
            <status>HTTP/1.1 200 OK</status>
          </propstat>
        </response>
        <response>
          <href>http://www.example.com/container/front.html</href>
          <propstat>
            <prop xmlns:R="http://www.example.com/boxschema/">
              <R:bigbox/>
              <creationdate/>
              <displayname/>
              <getcontentlength/>
              <getcontenttype/>
              <getetag/>
              <getlastmodified/>
              <resourcetype/>
              <supportedlock/>
            </prop>
            <status>HTTP/1.1 200 OK</status>
          </propstat>
        </response>
      </multistatus>

NEW:

      <?xml version="1.0" encoding="utf-8" ?>
      <multistatus xmlns="DAV:">
        <response>
          <href>http://www.example.com/container/</href>
          <propstat>
            <prop xmlns:R="http://ns.example.com/boxschema/">
              <R:bigbox/>
              <R:author/>
              <creationdate/>
              <displayname/>
              <resourcetype/>
              <supportedlock/>
            </prop>
            <status>HTTP/1.1 200 OK</status>
          </propstat>
        </response>
        <response>
          <href>http://www.example.com/container/front.html</href>
          <propstat>
            <prop xmlns:R="http://ns.example.com/boxschema/">
              <R:bigbox/>
              <creationdate/>
              <displayname/>
              <getcontentlength/>
              <getcontenttype/>
              <getetag/>
              <getlastmodified/>
              <resourcetype/>
              <supportedlock/>
            </prop>
            <status>HTTP/1.1 200 OK</status>
          </propstat>
        </response>
      </multistatus>

Section 9.1.5., para. 7:
OLD:

    Consistent with the previous example, resource
    http://www.example.com/container/ has six properties defined on it:
    bigbox and author in the "http://www.example.com/boxschema/"
    namespace, and creationdate, displayname, resourcetype, and
    supportedlock in the "DAV:" namespace.

NEW:

    Consistent with the previous example, resource
    http://www.example.com/container/ has six properties defined on it:
    bigbox and author in the "http://ns.example.com/boxschema/"
    namespace, and creationdate, displayname, resourcetype, and
    supportedlock in the "DAV:" namespace.

Section 9.1.5., para. 8:
OLD:

    The resource http://www.example.com/container/index.html, a member of
    the "container" collection, has nine properties defined on it, bigbox
    in the "http://www.example.com/boxschema/" namespace and,
    creationdate, displayname, getcontentlength, getcontenttype, getetag,
    getlastmodified, resourcetype, and supportedlock in the "DAV:"
    namespace.

NEW:

    The resource http://www.example.com/container/index.html, a member of
    the "container" collection, has nine properties defined on it, bigbox
    in the "http://ns.example.com/boxschema/" namespace and,
    creationdate, displayname, getcontentlength, getcontenttype, getetag,
    getlastmodified, resourcetype, and supportedlock in the "DAV:"
    namespace.

Section 9.1.6., para. 7:
OLD:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:multistatus xmlns:D="DAV:">
        <D:response>
          <D:href>/container/</D:href>
          <D:propstat>
            <D:prop xmlns:R="http://www.example.com/boxschema/">
              <R:bigbox><R:BoxType>Box type A</R:BoxType></R:bigbox>
              <R:author><R:Name>Hadrian</R:Name></R:author>
              <D:creationdate>1997-12-01T17:42:21-08:00</D:creationdate>
              <D:displayname>Example collection</D:displayname>
              <D:resourcetype><D:collection/></D:resourcetype>
              <D:supportedlock>
                <D:lockentry>
                  <D:lockscope><D:exclusive/></D:lockscope>
                  <D:locktype><D:write/></D:locktype>
                </D:lockentry>
                <D:lockentry>
                  <D:lockscope><D:shared/></D:lockscope>
                  <D:locktype><D:write/></D:locktype>
                </D:lockentry>
              </D:supportedlock>
            </D:prop>
            <D:status>HTTP/1.1 200 OK</D:status>
          </D:propstat>
        </D:response>
        <D:response>
          <D:href>/container/front.html</D:href>
          <D:propstat>
            <D:prop xmlns:R="http://www.example.com/boxschema/">
              <R:bigbox><R:BoxType>Box type B</R:BoxType>
              </R:bigbox>
              <D:creationdate>1997-12-01T18:27:21-08:00</D:creationdate>
              <D:displayname>Example HTML resource</D:displayname>
              <D:getcontentlength>4525</D:getcontentlength>
              <D:getcontenttype>text/html</D:getcontenttype>
              <D:getetag>"zzyzx"</D:getetag>
              <D:getlastmodified
                >Mon, 12 Jan 1998 09:25:56 GMT</D:getlastmodified>
              <D:resourcetype/>
              <D:supportedlock>
                <D:lockentry>
                  <D:lockscope><D:exclusive/></D:lockscope>
                  <D:locktype><D:write/></D:locktype>
                </D:lockentry>
                <D:lockentry>
                  <D:lockscope><D:shared/></D:lockscope>
                  <D:locktype><D:write/></D:locktype>
                </D:lockentry>
              </D:supportedlock>
            </D:prop>
            <D:status>HTTP/1.1 200 OK</D:status>
          </D:propstat>
        </D:response>
      </D:multistatus>

NEW:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:multistatus xmlns:D="DAV:">
        <D:response>
          <D:href>/container/</D:href>
          <D:propstat>
            <D:prop xmlns:R="http://ns.example.com/boxschema/">
              <R:bigbox><R:BoxType>Box type A</R:BoxType></R:bigbox>
              <R:author><R:Name>Hadrian</R:Name></R:author>
              <D:creationdate>1997-12-01T17:42:21-08:00</D:creationdate>
              <D:displayname>Example collection</D:displayname>
              <D:resourcetype><D:collection/></D:resourcetype>
              <D:supportedlock>
                <D:lockentry>
                  <D:lockscope><D:exclusive/></D:lockscope>
                  <D:locktype><D:write/></D:locktype>
                </D:lockentry>
                <D:lockentry>
                  <D:lockscope><D:shared/></D:lockscope>
                  <D:locktype><D:write/></D:locktype>
                </D:lockentry>
              </D:supportedlock>
            </D:prop>
            <D:status>HTTP/1.1 200 OK</D:status>
          </D:propstat>
        </D:response>
        <D:response>
          <D:href>/container/front.html</D:href>
          <D:propstat>
            <D:prop xmlns:R="http://ns.example.com/boxschema/">
              <R:bigbox><R:BoxType>Box type B</R:BoxType>
              </R:bigbox>
              <D:creationdate>1997-12-01T18:27:21-08:00</D:creationdate>
              <D:displayname>Example HTML resource</D:displayname>
              <D:getcontentlength>4525</D:getcontentlength>
              <D:getcontenttype>text/html</D:getcontenttype>
              <D:getetag>"zzyzx"</D:getetag>
              <D:getlastmodified
                >Mon, 12 Jan 1998 09:25:56 GMT</D:getlastmodified>
              <D:resourcetype/>
              <D:supportedlock>
                <D:lockentry>
                  <D:lockscope><D:exclusive/></D:lockscope>
                  <D:locktype><D:write/></D:locktype>
                </D:lockentry>
                <D:lockentry>
                  <D:lockscope><D:shared/></D:lockscope>
                  <D:locktype><D:write/></D:locktype>
                </D:lockentry>
              </D:supportedlock>
            </D:prop>
            <D:status>HTTP/1.1 200 OK</D:status>
          </D:propstat>
        </D:response>
      </D:multistatus>

Section 9.1.6., para. 9:
OLD:

    The resource http://www.example.com/container/ has six properties
    defined on it: 'bigbox' and 'author in the
    "http://www.example.com/boxschema/" namespace, DAV:creationdate, DAV:
    displayname, DAV:resourcetype, and DAV:supportedlock.

NEW:

    The resource http://www.example.com/container/ has six properties
    defined on it: 'bigbox' and 'author in the
    "http://ns.example.com/boxschema/" namespace, DAV:creationdate, DAV:
    displayname, DAV:resourcetype, and DAV:supportedlock.

Section 9.1.6., para. 12:
OLD:

    'bigbox' in the "http://www.example.com/boxschema/" namespace
    (another instance of the "bigbox" property type), DAV:creationdate,
    DAV:displayname, DAV:getcontentlength, DAV:getcontenttype, DAV:
    getetag, DAV:getlastmodified, DAV:resourcetype, and DAV:
    supportedlock.

NEW:

    'bigbox' in the "http://ns.example.com/boxschema/" namespace (another
    instance of the "bigbox" property type), DAV:creationdate, DAV:
    displayname, DAV:getcontentlength, DAV:getcontenttype, DAV:getetag,
    DAV:getlastmodified, DAV:resourcetype, and DAV:supportedlock.

Section 9.2.2., para. 3:
OLD:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:propertyupdate xmlns:D="DAV:"
                        xmlns:Z="http://example.com/ns/z39.50/">
        <D:set>
          <D:prop>
            <Z:authors>
              <Z:Author>Jim Whitehead</Z:Author>
              <Z:Author>Roy Fielding</Z:Author>
            </Z:authors>
          </D:prop>
        </D:set>
        <D:remove>
          <D:prop><Z:Copyright-Owner/></D:prop>
        </D:remove>
      </D:propertyupdate>
    >>Response

NEW:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:propertyupdate xmlns:D="DAV:"
              xmlns:Z="http://ns.example.com/standards/z39.50/">
        <D:set>
          <D:prop>
            <Z:authors>
              <Z:Author>Jim Whitehead</Z:Author>
              <Z:Author>Roy Fielding</Z:Author>
            </Z:authors>
          </D:prop>
        </D:set>
        <D:remove>
          <D:prop><Z:Copyright-Owner/></D:prop>
        </D:remove>
      </D:propertyupdate>
    >>Response

Section 9.2.2., para. 5:
OLD:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:multistatus xmlns:D="DAV:"
                     xmlns:Z="http://example.com/ns/z39.50">
        <D:response>
          <D:href>http://www.example.com/bar.html</D:href>
          <D:propstat>
            <D:prop><Z:Authors/></D:prop>
            <D:status>HTTP/1.1 424 Failed Dependency</D:status>
          </D:propstat>
          <D:propstat>
            <D:prop><Z:Copyright-Owner/></D:prop>
            <D:status>HTTP/1.1 409 Conflict</D:status>
          </D:propstat>
          <D:responsedescription> Copyright Owner can not be deleted or
            altered.</D:responsedescription>
        </D:response>
      </D:multistatus>

NEW:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:multistatus xmlns:D="DAV:"
              xmlns:Z="http://ns.example.com/standards/z39.50/">
        <D:response>
          <D:href>http://www.example.com/bar.html</D:href>
          <D:propstat>
            <D:prop><Z:Authors/></D:prop>
            <D:status>HTTP/1.1 424 Failed Dependency</D:status>
          </D:propstat>
          <D:propstat>
            <D:prop><Z:Copyright-Owner/></D:prop>
            <D:status>HTTP/1.1 409 Conflict</D:status>
          </D:propstat>
          <D:responsedescription> Copyright Owner can not be deleted or
            altered.</D:responsedescription>
        </D:response>
      </D:multistatus>

Section 9.2.2., para. 6:
OLD:

    In this example, the client requests the server to set the value of
    the "Authors" property in the "http://example.com/ns/z39.50/"
    namespace, and to remove the property "Copyright-Owner" in the
    "http://example.com/ns/z39.50/" namespace.  Since the Copyright-Owner
    property could not be removed, no property modifications occur.  The
    424 (Failed Dependency) status code for the Authors property
    indicates this action would have succeeded if it were not for the
    conflict with removing the Copyright-Owner property.

NEW:

    In this example, the client requests the server to set the value of
    the "Authors" property in the
    "http://ns.example.com/standards/z39.50/" namespace, and to remove
    the property "Copyright-Owner" in the same namespace.  Since the
    Copyright-Owner property could not be removed, no property
    modifications occur.  The 424 (Failed Dependency) status code for the
    Authors property indicates this action would have succeeded if it
    were not for the conflict with removing the Copyright-Owner property.

Section 9.10.7., para. 3:
OLD:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:lockinfo xmlns:D='DAV:'>
        <D:lockscope><D:exclusive/></D:lockscope>
        <D:locktype><D:write/></D:locktype>
        <D:owner>
          <D:href>http://www.example.com/~ejw/contact.html</D:href>
        </D:owner>
      </D:lockinfo>
    >>Response

NEW:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:lockinfo xmlns:D='DAV:'>
        <D:lockscope><D:exclusive/></D:lockscope>
        <D:locktype><D:write/></D:locktype>
        <D:owner>
          <D:href>http://example.org/~ejw/contact.html</D:href>
        </D:owner>
      </D:lockinfo>
    >>Response

Section 9.10.7., para. 5:
OLD:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:prop xmlns:D="DAV:">
        <D:lockdiscovery>
          <D:activelock>
            <D:locktype><D:write/></D:locktype>
            <D:lockscope><D:exclusive/></D:lockscope>
            <D:depth>infinity</D:depth>
            <D:owner>
              <D:href>http://www.example.com/~ejw/contact.html</D:href>
            </D:owner>
            <D:timeout>Second-604800</D:timeout>
            <D:locktoken>
              <D:href
              >urn:uuid:e71d4fae-5dec-22d6-fea5-00a0c91e6be4</D:href>
            </D:locktoken>
            <D:lockroot>
              <D:href
              >http://example.com/workspace/webdav/proposal.doc</D:href>
            </D:lockroot>
          </D:activelock>
        </D:lockdiscovery>
      </D:prop>

NEW:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:prop xmlns:D="DAV:">
        <D:lockdiscovery>
          <D:activelock>
            <D:locktype><D:write/></D:locktype>
            <D:lockscope><D:exclusive/></D:lockscope>
            <D:depth>infinity</D:depth>
            <D:owner>
              <D:href>http://example.org/~ejw/contact.html</D:href>
            </D:owner>
            <D:timeout>Second-604800</D:timeout>
            <D:locktoken>
              <D:href
              >urn:uuid:e71d4fae-5dec-22d6-fea5-00a0c91e6be4</D:href>
            </D:locktoken>
            <D:lockroot>
              <D:href
              >http://example.com/workspace/webdav/proposal.doc</D:href>
            </D:lockroot>
          </D:activelock>
        </D:lockdiscovery>
      </D:prop>

Section 9.10.7., para. 6:
OLD:

    This example shows the successful creation of an exclusive write lock
    on resource http://example.com/workspace/webdav/proposal.doc.  The
    resource http://www.example.come/~ejw/contact.html contains contact
    information for the creator of the lock.  The server has an activity-
    based timeout policy in place on this resource, which causes the lock
    to automatically be removed after 1 week (604800 seconds).  Note that
    the nonce, response, and opaque fields have not been calculated in
    the Authorization request header.

NEW:

    This example shows the successful creation of an exclusive write lock
    on resource http://example.com/workspace/webdav/proposal.doc.  The
    resource http://example.org/~ejw/contact.html contains contact
    information for the creator of the lock.  The server has an activity-
    based timeout policy in place on this resource, which causes the lock
    to automatically be removed after 1 week (604800 seconds).  Note that
    the nonce, response, and opaque fields have not been calculated in
    the Authorization request header.

Section 9.10.8., para. 5:
OLD:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:prop xmlns:D="DAV:">
        <D:lockdiscovery>
          <D:activelock>
            <D:locktype><D:write/></D:locktype>
            <D:lockscope><D:exclusive/></D:lockscope>
            <D:depth>infinity</D:depth>
            <D:owner>
              <D:href>http://www.example.com/~ejw/contact.html</D:href>
            </D:owner>
            <D:timeout>Second-604800</D:timeout>
            <D:locktoken>
              <D:href
              >urn:uuid:e71d4fae-5dec-22d6-fea5-00a0c91e6be4</D:href>
            </D:locktoken>
            <D:lockroot>
              <D:href
              >http://example.com/workspace/webdav/proposal.doc</D:href>
            </D:lockroot>
          </D:activelock>
        </D:lockdiscovery>
      </D:prop>

NEW:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:prop xmlns:D="DAV:">
        <D:lockdiscovery>
          <D:activelock>
            <D:locktype><D:write/></D:locktype>
            <D:lockscope><D:exclusive/></D:lockscope>
            <D:depth>infinity</D:depth>
            <D:owner>
              <D:href>http://example.org/~ejw/contact.html</D:href>
            </D:owner>
            <D:timeout>Second-604800</D:timeout>
            <D:locktoken>
              <D:href
              >urn:uuid:e71d4fae-5dec-22d6-fea5-00a0c91e6be4</D:href>
            </D:locktoken>
            <D:lockroot>
              <D:href
              >http://example.com/workspace/webdav/proposal.doc</D:href>
            </D:lockroot>
          </D:activelock>
        </D:lockdiscovery>
      </D:prop>

Section 9.10.9., para. 3:
OLD:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:lockinfo xmlns:D="DAV:">
        <D:locktype><D:write/></D:locktype>
        <D:lockscope><D:exclusive/></D:lockscope>
        <D:owner>
          <D:href>http://www.example.com/~ejw/contact.html</D:href>
        </D:owner>
      </D:lockinfo>

NEW:

      <?xml version="1.0" encoding="utf-8" ?>
      <D:lockinfo xmlns:D="DAV:">
        <D:locktype><D:write/></D:locktype>
        <D:lockscope><D:exclusive/></D:lockscope>
        <D:owner>
          <D:href>http://example.org/~ejw/contact.html</D:href>
        </D:owner>
      </D:lockinfo>

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.