Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Conversor XML a XML (aprendiendo XSLT) (https://www.clubdelphi.com/foros/showthread.php?t=88713)

Alex85 21-07-2015 14:37:48

Conversor XML a XML (aprendiendo XSLT)
 
Mi problema se traduce a dos simples conceptos, debo trasladar el modelo nuevo de facturación electrónica por medio de un esquema nuevo (XSD),
de la versión 3.1 a la 3.2 respectivamente, ya os aviso de antemano que no existe solución sencilla, ya que me he leído dos veces internet.

La cosa es la siguiente, tengo un esquema nuevo y un monton de facturas en un formato viejo e inválido, estoy intentando crear un XSLT a mano a partir del esquema, pero creo que moriré de viejo antes de poder terminarlo.

*¿Alguien conoce un método menos Cainita, negrero y moderno, para convertir archivos XML a otro XML mas modernito a partir de un esquema?

PD: Intenté sin éxito usar el conversor que nuestro querido gobierno facilita para este tipo de "problema", pero evidentemente no funciona.



Y no hago mas que obtener el siguiente error.

Excepción durante el proceso de conversión: cvc-complex-type.2.4.b: The content of element 'fe:Facturae' is not complete. One of '{FileHeader}' is expected.

estudié el esquema, modifiqué el documento, lo he intentado todo sin éxito,

¿Algún alma caritativa sería tan amable de ayudarme con mi problema?, gracias.

nlsgarcia 21-07-2015 15:13:58

Alex85,

¡Bienvenido al Club Delphi! :D

Nelson.

Alex85 21-07-2015 15:28:31

Gracias por la bienvenida :)

giulichajari 22-07-2015 02:05:06

Esa facturacion es de España o no?

Pues supongo que han añadido definiciones de campos.. o han quitado.
Eso no seria problema, simplemente los campos que en la fatura vieja no estan quedarian en blanco, porque esa info se perdio.
el problema es si cambio un mismo campo en si.. entonces vas a tener que detenerte a analizar, si el contenido viejo "entra en el campo nuevo".

Pero lo que haria seria crear un TClientDataSet con el formato nuevo, dado que este componente tiene los metodos LoadFromFile y SaveToFile.
Entonces cargas el documento viejo con load, (supongo que el mismo DataSet te va a tirar error si es que lo hay) y sino hay errores guardas con save. puedes hacer una rutina que tome todos los archivos del directorio, los cargue y guarde en otro.
Saludos

egostar 22-07-2015 17:21:06

Hola

Hay muchas herramientas en linea para hacer la transformación desde un XSL(XSLT) a XML en Google

Por ejemplo ésta

Saludos


La franja horaria es GMT +2. Ahora son las 09:28:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi