/**
  * Short description of method buildObject
  *
  * @access private
  * @author Joel Bout, <*****@*****.**>
  * @param  DOMElement data
  * @return oat\taoQtiItem\model\qti\Object
  */
 private function buildObject(DOMElement $data)
 {
     $attributes = $this->extractAttributes($data);
     $returnValue = new Object($attributes);
     if ($data->hasChildNodes()) {
         $nonEmptyChild = $this->getNonEmptyChildren($data);
         if (count($nonEmptyChild) == 1 && reset($nonEmptyChild)->nodeName == 'object') {
             $alt = $this->buildObject(reset($nonEmptyChild));
             $returnValue->setAlt($alt);
         } else {
             //get the node xml content
             $pattern = array("/^<{$data->nodeName}([^>]*)?>/i", "/<\\/{$data->nodeName}([^>]*)?>\$/i");
             $content = preg_replace($pattern, '', trim($this->saveXML($data)));
             $returnValue->setAlt($content);
         }
     } else {
         $alt = trim($data->nodeValue);
         if (!empty($alt)) {
             $returnValue->setAlt($alt);
         }
     }
     return $returnValue;
 }