Por si alguien sabe la solución , si la tiene... mientras seguiremos investigando...
Generar el XML RegistroAlta con IXML.
Código:
var FacturaIXML : SuministroInformacion.IXMLRegistroFacturacionAltaType;
FacturaIXML := NewXMLDocument.GetDocBinding('sum:RegistroAlta', SuministroInformacion.TXMLRegistroFacturacionAltaType, '') as SuministroInformacion.IXMLRegistroFacturacionAltaType;
FacturaIXML.DeclareNamespace('sum','https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroLR.xsd');
FacturaIXML.DeclareNamespace('sum1','https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/tike/cont/ws/SuministroInformacion.xsd');
// Si lo defino así , se le queda el Prefijo sum: de RegistroAlta en lugar de sum1: que es lo que interesa para Verifactu
FacturaIXML.IDVersion := '1.0';
// Para que el Prefijo sea sum1: se puede hacer así
FacturaIXML.AddChild('sum1:IDVersion').NodeValue := '1.0';
FacturaExpedida := NewXMLDocument.GetDocBinding('sum1:IDFactura', SuministroInformacion.TXMLIDFacturaExpedidaType, '') as SuministroInformacion.IXMLIDFacturaExpedidaType;
FacturaExpedida.IDEmisorFactura := DTFactura.FieldByName('EmisorNIF').AsString;
FacturaExpedida.NumSerieFactura := ReferenciaDocumento;
FacturaExpedida.FechaExpedicionFactura := StringReplace(DTFactura.FieldByName('FECH').AsString,FormatSettings.DateSeparator,'-',[rfReplaceAll, rfIgnoreCase]); // (dd-mm-yyyy)
FacturaIXML.ChildNodes.Add(FacturaExpedida);
Resto del fichero....
El problema que me he encontrado es que como el XML Tiene dos Prefijos , sum: en RegistroAlta y Sum1: En IDVersion y el resto , luego no puedo Recuperar el Objeto SuministroInformacion.IXMLRegistroFacturacionAltaType Correctamente.
Código:
var FacturaCargadaIXML : SuministroInformacion.IXMLRegistroFacturacionAltaType;
var XMLVerifactu : String;
XMLVerifactu := 'El XML creado con anterioridad...'
FacturaCargadaIXML :=
LoadXMLData(XMLVerifactu).GetDocBinding('sum:RegistroAlta', TXMLRegistroFacturacionAltaType, '') as SuministroInformacion.IXMLRegistroFacturacionAltaType;
FacturaCargadaIXML.XML es correcto, varga el XML , la carga , pero el FacturaCargadaIXML.IDVersion , etc... esta vacío , parece que no coloca los nodos en su sitio.
Antes de no poder usar LoadXMLData igual alguien tiene una solución.
Gracias y Saludos