imagingag ha scritto:
Buongiorno a tutti.
Io non riesco proprio a capire come validare la fattura elettronica. Nel file xsd di validazione e nelle fatture elettroniche di esempio c'è il link a questa risorsa http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 oppure a questa http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.0 che risponde "Siamo spiacenti, la pagina cercata non esiste!"
visitando
apro il link del documento ITHVQWPH73P42H501Y_X0024.xml che è
all'interno c'è il link alla risorsa https://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2 che non esiste. E cosi per le altre fatture e i file xsd.
Non trovo nessun riferimento ne a lamentele ne a spiegazioni. Chi mi aiuta ? Grazie.
Io mi sono personalizzato un esempio trovato nel sito del Dr.BoB in Delphi questo:
------------------------------------------------------------------------------------------------------
procedure TFwps.BitBtn3Click(Sender: TObject);
var
ninpfile:string;
XML, XSDL: Variant;
dir:string;
file1,file2:string;
begin
if pagecontrol3.activepage.Caption='Spedite' then begin
ninpfile:=FileListBox5.FileName;
end;
if pagecontrol3.activepage.Caption='Da_Spedire' then begin
ninpfile:=FileListBox4.FileName;
end;
if pagecontrol3.activepage.Caption='Da_Firmare' then begin
ninpfile:=FileListBox3.FileName;
end;
memo2.Lines.add(ninpfile);
if FileExists(ninpfile) then begin
dir:=extractfiledir(ninpfile);
XSDL := CreateOLEObject('MSXML2.XMLSchemaCache.4.0');
memo2.Lines.add(timetostr(time));
XSDL.validateOnLoad := True;
memo2.Lines.add(timetostr(time));
memo2.Lines.add('prego attendere circa 30 secondi');
XSDL.add('');
memo2.Lines.add('Schema Loaded: '+timetostr(time));
XML := CreateOLEObject('MSXML2.DOMDocument.4.0');
memo2.Lines.add(timetostr(time));
XML.validateOnParse := True;
memo2.Lines.add(timetostr(time));
XML.resolveExternals := True;
XML.schemas := XSDL;
memo2.Lines.add(timetostr(time));
XML.load(ninpfile); //XML nome file
memo2.Lines.add(timetostr(time));
if trim(XML.parseError.reason)='' then begin
memo2.lines.add('OK, nessun errore rilevato');
memo2.lines.add('');
end else begin
memo2.lines.add(XML.parseError.reason);
memo2.lines.add('');
end;
end;
end;
-------------------------------------------------------------
Funziona anche se è molto lento: circa 30 secondi per XML
e segnala errore la mancanza della PEC con 7 zeri nel cod destinatario
che invece non dovrebbe più essere considerato un errore.