Note: In order to actually remove a node, jcr:removeNode is required on that node and jcr:removeChildNodes on the parent node. The distinction is provided in order to reflect implementations that internally model "remove" as a "delete" instead of an "unlink". A repository that uses the "delete" model can have jcr:removeChildNodes in every access control policy, so that removal is effectively controlled by jcr:removeNode.