Utilizzo Delphi e finora ho validato il file della Fattura Elettronica con questo codice:
> Procedure VerificaFE(const AXmlText: string): Boolean;
> var
> XML, XSDL: Variant;
> XmlErr: TStringList;
> fnFileName: TFileName;
> begin
> Result := False;
>
> try
> XSDL := CreateOLEObject('MSXML2.XMLSchemaCache.4.0');
> XSDL.validateOnLoad := True;
> XSDL.add(XmlFETargetNamespace, XmlFEXsdUrl);
>
> XML := CreateOLEObject('MSXML2.DOMDocument.4.0');
> XML.validateOnParse := True;
> XML.resolveExternals := True;
> XML.schemas := XSDL;
> Result := XML.loadxml(AXmlText);
> except
> Raise;
> end;
> end;
Poiché la libreria MSXML 4.0 non è disponibile di default sul Windows 10 finora l’ho scaricata dal sito della M$, il guaio è che M$ ha ritirato questa libreria eliminandone il download.
Sono costretto, pertanto, a utilizzare MSXML 6.0 ma se modifico il codice come segue:
try
XSDL := CreateOLEObject('MSXML2.XMLSchemaCache.6.0');
XSDL.validateOnLoad := True;
XSDL.add(XmlFETargetNamespace, XmlFEXsdUrl);
A questa riga ottengo l’eccezione “La DTD non è consentita”.
Non riesco ad andare avanti.
Potrei modificare il file XSD che l’Agenzia delle Entrate mette a disposizione e togliendo i riferimenti al “www.w3.org” ma vorrei evitare di modificare i files ufficiali di validazione perché ne dovrei monitorare continuamente l’eventuale rilascio di nuovi.
Qualcuno saprebbe indirizzarmi su cosa controllare/modificare?
Grazie.