/**
  * Create new SDElement with given namespace, tag name and attributes. Please
  * note that at time of construction the element will NOT have its children
  * available. Also it is possible that in some circumstances SDElements are
  * constructed without parent, so it is not advisable to do computations
  * in the constructors of child classes.
  * @param  SDElement $parent  the parent element for this node, if any
  * @param  string $tagName    the tag name
  * @param  array $attrs       the attributes
  */
 function __construct($parent, $name, $attrs = array()) {
   parent::__construct($parent);
   $this->name = $name;
   $this->attributes = $attrs;
 }
 /**
  * Construct a PI node with specified target and data
  *
  * @param  SDElement $parent  the owning element
  * @param  string $target  the PI target
  * @param  string $data  the data of the PI
  */
 function __construct($parent, $target, $data) {
   parent::__construct($parent);
   $this->setTarget($target);
   $this->setData($data);
 }