Muy buenas!
Estoy tratando de generar desde Delphi un archivo XML de tipo Libro Cobros Emitidas. Utilizando el XML Data Binding generé la unit necesaria desde SuministroLR.xsd
El caso es que en una parte del código me lanza el error EIntfCastError: "interface not supported", pero no veo el fallo. Mi código es el siguiente (los datos fiscales son ficticios):
Código Delphi
[-]var
Libro: SuministroLR.IXMLSuministroLRCobrosEmitidas;
Cobro: SuministroLR.IXMLDatosPagoCobroType_sii;
Document: IXMLDocument;
FichEntrada: TextFile;
NumSerieFacturaAnterior: String;
Linea: WideString;
I, J: Integer;
begin
try
Document := TXMLDocument.Create(nil);
Document.ParseOptions := [poResolveExternals, poValidateOnParse];
Document.Options := Document.Options + [doNodeAutoIndent];
Document.NodeIndentStr := ' ';
Document.XML.Text := ' +
'xmlns:sii="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">';
Document.Active := True;
except
SWERROR := 1;
EXIT;
end;
try
Libro := GetSuministroLRCobrosEmitidas(Document);
Libro.AddChild('sii:Cabecera');
Libro.Cabecera.IDVersionSii := VERSION_SII;
Libro.Cabecera.AddChild('sii:Titular');
Libro.Cabecera.Titular.NombreRazon := 'Prueba'
Libro.Cabecera.Titular.NIF := 'A12345678';
Libro.AddChild('siiLR:RegistroLRCobros');
Libro.RegistroLRCobros[i].AddChild('siiLR:IDFactura');
Libro.RegistroLRCobros[i].IDFactura.AddChild('sii:IDEmisorFactura');
Libro.RegistroLRCobros[i].IDFactura.IDEmisorFactura.NIF := 'A12345678';
Libro.RegistroLRCobros[i].IDFactura.NumSerieFacturaEmisor := '170001';
Libro.RegistroLRCobros[i].IDFactura.FechaExpedicionFacturaEmisor := '20-08-2017';
Libro.RegistroLRCobros[i].AddChild('siiLR:Cobros');
Cobro := Libro.RegistroLRCobros[i].Cobros.Add;
Si muestro el XML mediante ShowMessage(Libro.XML) me va mostrando el árbol correctamente:
Código:
<siiLR:SuministroLRCobrosEmitidas xmlns:siiLR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd" xmlns:sii="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
<sii:Cabecera>
<sii:IDVersionSii>1.0</sii:IDVersionSii>
<sii:Titular>
<sii:NombreRazon>Prueba</sii:NombreRazon>
<sii:NIF>A12345678</sii:NIF>
</sii:Titular>
</sii:Cabecera>
<siiLR:RegistroLRCobros>
<siiLR:IDFactura>
<sii:IDEmisorFactura>
<sii:NIF>A12345678</sii:NIF>
</sii:IDEmisorFactura>
<sii:NumSerieFacturaEmisor>170001</sii:NumSerieFacturaEmisor>
<sii:FechaExpedicionFacturaEmisor>20-08-2017</sii:FechaExpedicionFacturaEmisor>
</siiLR:IDFactura>
<siiLR:Cobros/>
</siiLR:RegistroLRCobros>
</siiLR:SuministroLRCobrosEmitidas>
¿A alguien se le ocurre dónde puede estar fallando? Gracias de antemano.