/** * validarXml * Valida qualquer xml do sistema NFe com seu xsd * NOTA: caso não exista um arquivo xsd apropriado retorna false * @param string $xml path ou conteudo do xml * @return boolean */ public function validarXml($xml = '') { $aResp = array(); $schem = IdentifyNFe::identificar($xml, $aResp); if ($schem == '') { return true; } $xsdFile = $aResp['Id'] . '_v' . $aResp['versao'] . '.xsd'; $xsdPath = NFEPHP_ROOT . DIRECTORY_SEPARATOR . 'schemes' . DIRECTORY_SEPARATOR . 'NFe' . DIRECTORY_SEPARATOR . $this->aConfig['schemesNFe'] . DIRECTORY_SEPARATOR . $xsdFile; if (!is_file($xsdPath)) { $this->errors[] = "O arquivo XSD {$xsdFile} não foi localizado."; return false; } if (!ValidXsd::validar($aResp['xml'], $xsdPath)) { $this->errors[] = ValidXsd::$errors; return false; } return true; }
/** * Valida o xml contra o xsd * * @param string $xml * @return boolean */ public function valida($xml = '') { if (empty($xml)) { $xml = $this->xml; } $xsdfile = dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR . 'schemes' . DIRECTORY_SEPARATOR . $this->objConfig->schemes . DIRECTORY_SEPARATOR . $this->signTag . '-' . $this->objConfig->schemes . '.xsd'; if (!ValidXsd::validar($xml, $xsdfile)) { $this->errors = ValidXsd::$errors; return false; } return true; }