Estoy analizando el código de la addenda para Soriana, ya he logrado añadirla y enviarla al servidor de prueba. (Todavia es un borrador mi aplicación y esta 99% basada en tu codigo fuente).
Ahora bien, al proveedor al que le compramos el generador de CFDs ha vuelto a meter las p@titas y debido al pendiente que tiene con nosotros de añadir las addendas, metio una corrección que le deja basura a todos mis CFDs (incluso si no necesitan addenda) en el area del schema:
Código: Seleccionar todo
version="2.0"
xmlns="http://www.sat.gob.mx/cfd/2"
xmlns:basurita="http://basurita"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd http://www.basurita.com/cfd http://www.basurita.com.mx/cfd/basurita.xsd">
Total, mi intencion es limpiar la referencia del schema, y no logro determinar que usar, a como veo el codigo, una vez generado el CFD ya es de solo lectura y no puedo "tocar" nada extra excepto la addenda... (ojala este equivocado).
Intente atacando a los memos (aunque sospecho debo usar el CFD u otra variable en FacturaE), y usando la funcion ReemplazaCad. Pero en un caso me deja dos espacios que no se que son (¿fin de linea?), y en otro caso no lo reemplaza. Reemplazo en el memo con lo siguiente, pero me deja dos espacios que no logro determinar que son (sospecho son fin de linea):
Código: Seleccionar todo
Memo7.Lines.Text:= RemplazaCad( '', ' http://www.basura.com/cfd http://www.basura.com.mx/cfd/basura.xsd', Memo7.Lines.Text);
Código: Seleccionar todo
Memo7.Lines.Text:= RemplazaCad('xmlns="http://www.sat.gob.mx/cfd/2"','xmlns="http://www.sat.gob.mx/cfd/2" xmlns:basura="http://www.basura.com/cfd"', Memo7.Lines.Text);
Código: Seleccionar todo
version="2.0"
xmlns="http://www.sat.gob.mx/cfd/2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd">
Código: Seleccionar todo
CFD.Set_xmlns('xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd"')
Código: Seleccionar todo
FacturaEForm.CFD.SetAttribute('xmlns:xsi','http://www.w3.org/2001/XMLSchema-instance');
FacturaEForm.CFD.SetAttribute('xsi:schemaLocation','http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd');
Código: Seleccionar todo
Attempt to modify a read-only node.
Código: Seleccionar todo
FacturaEForm.XMLDoc.SchemaRef:= 'xmlns="http://www.sat.gob.mx/cfd/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sat.gob.mx/cfd/2 http://www.sat.gob.mx/sitio_internet/cfd/2/cfdv2.xsd';
S