by Manuel Aranda » Sat Dec 03, 2005 12:22 pm
Hola de nuevo Leandro. Mira yo no tengo ni la más remota idea de XML y de momento, ningún interés ni tiempo para aprenderlo, pero un dia me encontré con el mismo problema que tú y encontré una solución, creo que poco ortodoxa pero que funciona perfectamente y como suelo seguir la máxima de que "si algo funciona bien no lo toques" pues eso, así me estoy arreglando.
Si miras en la página 5 de las especificaciones técnicas tienes un ejemplo.
Lo que yo hago es crearme una dbf temporal con un solo campo alfanumérico de gran longitud. Siguiendo el ejemplo anteriormente citado, cada una de las lineas las meto como un nuevo registro, así:
<? xml version="1.0" encoding........ seria el primer registro
<mas xml........................seria el segundo registro
................................................. y así sucesivamente. al llegar a las lineas de datos solo tienes que fusionar los literales de esas lineas con tus datos (eso sí tienes que tener en cuenta las especificaciones de los campos por si tienes que recortar o añadir algunos espacios, etc)
Una vez finalizado el proceso haces un COPY FIELDS DATOS->Dato TO &cNombreFi DELIMITED WITH BLANK y ya tienes el fichero creado. No olvides ponerle la extensión XML.
Problemas que pueden presentarse:
1º que el fichero no cumpla con las especificaciones XML y tenga un error en la estructura. Para detectarlo solo tienes que ejecutarlo con el IEXPLORER y si existe un problema de este tipo te lo detectará.
2º que algún campo no cumpla con las especificaciones técnicas del esquema XSD. Detectar este segundo problema ya no es tan fácil (sin tener mucha idea de XML, claro) a menos que tengas un programa de validación del fichero o esperar a que el receptor te lo devuelva con los errores detectados.
Venga ánimo, seguro que puedes con ello.
Un saludo,
Manuel Aranda