public function validateUrl($att, $params)
 {
     switch ($this->type) {
         case DiscoveryRule::DESC_TYPE_NSI:
             $parser = new NSIParser();
             if (!$parser->loadFile($this->url)) {
                 $this->addError('url', 'Check your URL and try again.');
                 return false;
             }
             switch ($this->protocol) {
                 case DiscoveryRule::PROTOCOL_HTTP:
                     if (!$parser->isTD()) {
                         $this->addError('url', 'The inserted URL does not contains a valid NSI Topology.');
                         return false;
                     }
                     return true;
                     break;
                 case DiscoveryRule::PROTOCOL_NSI_DS:
                     if (!$parser->isDS()) {
                         $this->addError('url', 'The inserted URL does not contains a valid service.');
                         return false;
                     }
                     $parser->parseLocalProvider();
                     $this->provider_nsa = $parser->getData()['local']['nsa'];
                     return true;
             }
             break;
         case DiscoveryRule::DESC_TYPE_NMWG:
             $parser = new NMWGParser();
             if (!$parser->loadFile($this->url)) {
                 $this->addError('url', 'Check your URL and try again.');
                 return false;
             }
             if (!$parser->isTD()) {
                 $this->addError('url', 'The inserted URL does not contains a valid NMWG Topology.');
                 return false;
             }
             return true;
     }
 }