Dado por algúna razón en tu módulo base al finalizar el proceso de timbrado siguiendo el código el valor que regresa el metodo CFD.Datos.XML por alguna razon pierde la Primera línea <?xml version="1.0" encoding="UTF-8"?> esto no se si es a proposito o hay algún error en el código.
Yo utilizo este valor debido a que al terminar el proceso de sellado y timbrado yo guardo el String completo del xml en un campo Memo de mi base de datos para poder despues regenerarlo de forma remota sin tener que estar en la misma PC donde se guardo originalmente el archivo xml.
Al estar haciendo un visor para poder ver el xml en mi sistema y resulta que cuando lo exporto de mi campo memo en la base de datos, no llevaba la primera línea y por tal motivo no me lo reconoce el TBrows el formato xml.
Yo estoy pensando agregarla manualmente "<?xml version="1.0" encoding="UTF-8"?>" + CFD.Datos.XML al agregarlo a mi campo memo pero no se si sea correcto esto. Tu que opinas.
Gracias por la atención a la presente.

DESCARGA SOFTWARE PARA FACTURA ELECTRONICA DE AQUI.
Facturacion, Validacion, Addendas, Librerias de programacion, etc.
CARTA PORTE V3.1
ECODEX TIENE ESTOS NUEVOS DATOS DE CONTACTO :
Comercializacion y Ventas - Evelia Vicke evicke@ecodex.com.mx 33-16-03-03-48
Soporte - Humberto Guerrero soporte@ecodex.com.mx 33-34-90-46-03
.
El metodo CFD.Datos.XML Pierde la primera línea
-
- Mensajes: 7
- Registrado: Mié Abr 06, 2011 7:55 pm
- Dado
- Mensajes: 15981
- Registrado: Mar Jul 06, 2010 7:56 pm
Re: El metodo CFD.Datos.XML Pierde la primera línea
Respuesta corta : es correcto lo que vas a hacer, agregarlo manualmente.
Respuesta larga : Una de las restricciones del lenguaje Delphi "puro" es que no tiene metodos para lidiar con el DTD (<?xml encoding....etc>), ese solo puede estar presente en el TXMLDocument.
Si tengo conocimiento de esa restriccion y yo personalmente hago lo que propones, agregarlo manualmente cuando lo voy a exportar o grabar o en general usar como una string.
Hay otra forma y seria exponiendo el TXMLDocument adyacente en la unidad cfdCore pero encontre problemas de compatibilidad entre Delphi version 7 y Delphi version 2009, mas alla de las normales del Unicode como que no es la misma implementacion, incluso si ves en mi codigo hay una linea comentada :
Ah! casi lo olvido, el DTD DEBE ESTAR EN SU PROPIA LINEA, segun las especificaciones del Consorcio W3, en otras palabras DEBES USAR :
(nota el #13#10 que representa un CRLF)
Respuesta larga : Una de las restricciones del lenguaje Delphi "puro" es que no tiene metodos para lidiar con el DTD (<?xml encoding....etc>), ese solo puede estar presente en el TXMLDocument.
Si tengo conocimiento de esa restriccion y yo personalmente hago lo que propones, agregarlo manualmente cuando lo voy a exportar o grabar o en general usar como una string.
Hay otra forma y seria exponiendo el TXMLDocument adyacente en la unidad cfdCore pero encontre problemas de compatibilidad entre Delphi version 7 y Delphi version 2009, mas alla de las normales del Unicode como que no es la misma implementacion, incluso si ves en mi codigo hay una linea comentada :
Con esa propiedad trataba de pasarlo como se debe con todo y el DTD pero como comento, me dio problemas en Delphi 2009+//property AsString : string read getAsString; //No funciona en D2009+ usar directamente CFD.Datos.XML, es lo mismo
Ah! casi lo olvido, el DTD DEBE ESTAR EN SU PROPIA LINEA, segun las especificaciones del Consorcio W3, en otras palabras DEBES USAR :
Código: Seleccionar todo
"<?xml version="1.0" encoding="UTF-8"?>" + #13#10 + CFD.Datos.XML
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!
-
- Mensajes: 7
- Registrado: Mié Abr 06, 2011 7:55 pm
Re: El metodo CFD.Datos.XML Pierde la primera línea
Muchas gracias Cubo, ya lo hice y si funciona bien.