/**
  * @param  AbstractElement $node
  * @return void
  */
 public function removeNode(AbstractElement $node)
 {
     $name = $node->getName();
     if (!isset($this->nodes[$name])) {
         throw new \InvalidArgumentException("Unknown node!");
     }
     Document::setProperty($node, 'parent', null);
 }