/**
  * Parse and build a info control
  * 
  * @param DOMElement $data
  * @return InfoControl
  * @throws ParsingException
  */
 private function buildInfoControl(DOMElement $data)
 {
     $infoControl = null;
     if ($this->isPicNode($data)) {
         //use tao's implementation of portable custom interaction
         $infoControl = new PortableInfoControl($this->extractAttributes($data), $this->item);
         $infoControl->feed($this, $data);
     } else {
         $ciClass = '';
         $classes = $data->getAttribute('class');
         $classeNames = preg_split('/\\s+/', $classes);
         foreach ($classeNames as $classeName) {
             $ciClass = InfoControlRegistry::getInfoControlByName($classeName);
             if ($ciClass) {
                 $infoControl = new $ciClass($this->extractAttributes($data), $this->item);
                 $infoControl->feed($this, $data);
                 break;
             }
         }
         if (!$ciClass) {
             throw new ParsingException('unknown info control to be build');
         }
     }
     return $infoControl;
 }
 /**
  * Parse and build a info control
  * 
  * @param DOMElement $data
  * @return InfoControl
  * @throws ParsingException
  */
 private function buildInfoControl(DOMElement $data)
 {
     $infoControl = null;
     if ($this->isPicNode($data)) {
         // throws an exception if pic not present
         PortableModelRegistry::getRegistry()->getModel('PIC');
         //use tao's implementation of portable custom interaction
         $infoControl = new PortableInfoControl($this->extractAttributes($data), $this->item);
         $infoControl->feed($this, $data);
     } else {
         $ciClass = '';
         $classes = $data->getAttribute('class');
         $classeNames = preg_split('/\\s+/', $classes);
         foreach ($classeNames as $classeName) {
             $ciClass = InfoControlRegistry::getInfoControlByName($classeName);
             if ($ciClass) {
                 $infoControl = new $ciClass($this->extractAttributes($data), $this->item);
                 $infoControl->feed($this, $data);
                 break;
             }
         }
         if (!$ciClass) {
             throw new UnsupportedQtiElement($data);
         }
     }
     return $infoControl;
 }