/**
  * Constructor - instantiates one base_nested_element, specifying its basic info.
  *
  * @param string $name name of the element
  * @param array  $attributes attributes this element will handle (optional, defaults to null)
  * @param array  $final_elements this element will handle (optional, defaults to null)
  */
 public function __construct($name, $attributes = null, $final_elements = null)
 {
     parent::__construct($name, $attributes);
     $this->final_elements = array();
     if (!empty($final_elements)) {
         $this->add_final_elements($final_elements);
     }
     $this->children = array();
     $this->optigroup = null;
     $this->used[] = $name;
 }