BPROPPATCH Method

Topic Last Modified: 2006-06-13

The WebDAV BPROPPATCH Method is similar to the PROPPATCH Method but it is used to set properties on one or more target resources.

The request body for the BPROPPATCH Method is the same as the PROPPATCH Method with the addition of the target XML Element at the same level as the prop XML Element.

The response for the BPROPPATCH Method is the same as the 207 (Multi-Status) response for the PROPPATCH Method.

If all properties on all resources are successfully updated (resulting in a status code of 200) and the Brief Header was included on the request, the entire response body may be omitted.

When a PROPPATCH Method or a BPROPPATCH Method request contains a Brief Header with a value of "t", every propstat XML Element with a status of 200 (OK) is omitted from the 207 (Multi-Status) response. If all operations on all resources are completed successfully, the 200 (OK) response may be returned instead of a 207 (Multi-Status) response.

The BPROPPATCH Method is not supported in transactions.

Note

See Authentication and Security Using WebDAV for more information.

The list of WebDAV Protocol Status Codes in the following table is not comprehensive. For information about 500-level status codes, see WebDAV Status Codes: 500s.

Status Codes

The following are response codes that can be expected to be used in a 207 (Multi-Status) response for this method.

Status Code Meaning

200 (OK)

The command succeeded.

403 (Forbidden)

The client is unable to alter one of the properties.

404 (Not Found)

The file was not found.

409 (Conflict)

The client has provided an inappropriate value for this property. For example, the client tried to set a read-only property.

423 (Locked)

The destination resource is locked.

424 (Method Failure)

The method cannot be supported in a transaction.

507 (Insufficient Storage)

The server did not have enough storage space to record the property.

Example

The following example illustrates a WebDAV BPROPPATCH Method being successfully used to set the author property on file1 and file2 to "Don Funk".

The following example illustrates a WebDAV BPROPPATCH Method being used to set the author property of file1, file2, and file3 to "Don Funk". Various errors are shown in the response.

Request

BPROPPATCH /container/ HTTP/1.1
Host: www.contoso.com
Content-type: text/xml
Content-Length: xxxx
Brief:t

<?xml version="1.0" ?>
<D:propertyupdate xmlns:D="DAV:" xmlns:R="https://www.contoso.com/boxschema/">
   <D:target>
        <D:href>file1</D:href>
        <D:href>file2</D:href>
   </D:target>
   <D:set>
        <D:prop>
                <R:author>Don Funk</R:author>
        </D:prop>
   </D:set>
</D: propertyupdate>

Response

   HTTP/1.1 200 OK
   Content-Type: text/xml
   Content-Length: xxxx

Request

BPROPPATCH /container/ HTTP/1.1
Host: www.contoso.com
Content-type: text/xml
Content-Length: xxxx

<?xml version="1.0" ?>
<D:propertyupdate xmlns:D="DAV:" xmlns:R="https://www.contoso.com/boxschema/">
   <D:target>
        <D:href>file1</D:href>
        <D:href>file2</D:href>
        <D:href>file3</D:href>
   </D:target>
   <D:set>
        <D:prop>
                <R:author>Don Funk</R:author>
        </D:prop>
   </D:set>
</D: propertyupdate>

Response

HTTP/1.1 207 Multi-Status
   Content-Type: text/xml
   Content-Length: xxxx

   <?xml version="1.0" ?>
   <D:multistatus xmlns:D="DAV:" xmlns:R="https://www.contoso.com/boxschema/">
     <D:response>
          <D:href>https://www.contoso.com/container/file1</D:href>
          <D:propstat>
               <D:status>HTTP/1.1 200 OK</D:status>
               <D:prop>
                    <R:author/>
               </D:prop>
          </D:propstat>
     </D:response>
     <D:response>
          <D:href>https://www.contoso.com/container/file2</D:href>
          <D:propstat>
               <D:prop>
                    <R:author/>
               </D:prop>
               <D:status>HTTP/1.1 409 Conflict</D:status>
          </D:propstat>
     </D:response>
     <D:response>
          <D:href>https://www.contoso.com/container/file2</D:href>
          <D:status>HTTP/1.1 404 Not Found</D:status>
     </D:response>
   </D:multistatus>

See Also

Other Resources

PROPPATCH Method
Brief Header