Open fferraro87 opened 5 years ago
Ciao, scusa il ritardo della risposta: puoi mandarmi per email l'XML originale?
Ciao, grazie per la risposta, si dimmi a quale indirizzo spedirlo
La trovi in uno qualsiasi dei miei commit: https://github.com/Slamdunk/php-validatore-fattura-elettronica/commit/75fe8c22a2c7b11460b1f80af2038f1439b525d5.patch
Con l'ultima release di qualche giorno fa v1.2-patch20190830.1 non viene generato alcun errore, puoi provare aggiornando la libreria?
Ok provo con l'ultima versione perchè avevo provato tempo fa con la vecchia. Grazie
mmm ora ho un altro tipo di errore :
Fatal error: Uncaught SlamFatturaElettronica\Exception\InvalidXsdStructureComplianceException: DOMDocument::schemaValidateSource(): Invalid Schema in C:\xampp3\htdocs\zimbra_admin\vendor\slam\php-validatore-fattura-elettronica\lib\Validator.php:36 Stack trace: #0 C:\xampp3\htdocs\zimbra_admin\validazione_fattura.php(22): SlamFatturaElettronica\Validator->assertValidXml('<?xml version="...') #1 {main} thrown in C:\xampp3\htdocs\zimbra_admin\vendor\slam\php-validatore-fattura-elettronica\lib\Validator.php on line 36
questo è il codice che sto utilizzando :
use SlamFatturaElettronica\Validator;
$fattura_scelta = filter_input(INPUT_GET, 'validazione', FILTER_SANITIZE_STRING);
$feValidator = new Validator();
$pathfile = "fatture/".$fattura_scelta;
$feValidator->assertValidXml(file_get_contents($pathfile));
Vedo che stai usando Windows: questa libreria è testata solo su Linux, potresti provare su questo OS se ti da lo stesso errore?
Si, sto sviluppando in locale su windows, adesso ho messo online e mi da questo errore :
Fatal error: Uncaught SlamFatturaElettronica\Exception\InvalidXsdStructureComplianceException: DOMDocument::schemaValidateSource(): Element '{http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2}FatturaElettronica': No matching global declaration available for the validation root. in /var/www/vhosts/servizi.levita.cloud/httpdocs/vendor/slam/php-validatore-fattura-elettronica/lib/Validator.php:36 Stack trace: #0 /var/www/vhosts/servizi.levita.cloud/httpdocs/validazione_fattura.php(22): SlamFatturaElettronica\Validator->assertValidXml('<?xml version="...', 'MessaggiTypes_v...') #1 {main} thrown in /var/www/vhosts/servizi.levita.cloud/httpdocs/vendor/slam/php-validatore-fattura-elettronica/lib/Validator.php on line 36
Come detto, su Windows non posso aiutarti, mi spiace, per favore prova con Linux
No no questo errore è su Linux (centos 7)
Scusa hai ragione, comunque non mi torna l'errore: l'XML che mi hai spedito non ha nessun tag {http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2}FatturaElettronica
.
Non so bene perché usi il filter_input
, ma il seguente semplice script con l'esatto XML che mi hai spedito non ritorna alcun errore:
use SlamFatturaElettronica\Validator;
require __DIR__ . '/vendor/autoload.php';
$file = __DIR__ . '/IT03398160543_3S.XML';
$fileContent = file_get_contents($file);
$feValidator = new Validator();
$feValidator->assertValidXml($fileContent);
Provato con PHP 7.3 e questa libreria alla versione v1.2-patch20190830.1
Da quello che vedo
{http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2}FatturaElettronica
è lo schema location che trovi nel tag FatturaElettronica, adesso provo con php 7.3, uso filter_input perchè prendo il nome del file dal post di un altro form
anche togliendo il filter_input dà sempre lo stesso errore :
require_once 'vendor/autoload.php';
use SlamFatturaElettronica\Validator;
$pathfile = "fatture/IT03398160543_3S.xml";
$feValidator = new Validator();
$fileContent = file_get_contents($pathfile);
$feValidator->assertValidXml($fileContent);
Non so che dirti, se non riesco a riprodurre l'errore non posso fare molto.
Puoi provare a creare una Pull-Request che genera l'errore in Travis?
Ma può essere che non riesce a recuperare nulla da quel link http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 ? faccio un po' di test e provo casomai apro una pullrequest
Ciao, ho utilizzato questo codice :
e ricevo questo errore :
Come posso risolverlo?
Grazie