Remove this resource (recursive).

Preconditions (ensured by caller):

  • there are no conflicting locks or If-headers

  • if support_recursive_delete() is False, and this is a collection, all members have already been deleted.

When support_recursive_delete is True, this method must be prepared to handle recursive deletes. This implies that child errors must be reported as tuple list [ (<ref-url>, <DAVError>), … ]. See

This function

  • removes this resource

  • if this is a non-empty collection, also removes all members. Note that this may only occur, if support_recursive_delete is True.

  • For recursive deletes, return a list of error tuples for all failed resource paths.

  • removes associated direct locks

  • removes associated dead properties

  • raises HTTP_FORBIDDEN for read-only resources

  • raises HTTP_INTERNAL_ERROR on error

This method MUST be implemented by all providers that support write access.