Un fichero XML en principio no es más que un fichero de texto plano con una estructura jerárquica estricta definida por etiquetas con apertura y cierre, dentro de cada etiqueta van los datos.
Un ejemplo sencillo puede ser;
[?xml version=" 1.0 " encoding=" UTF-8 " standalone= " yes "?]
[ficha]
[nombre] Angel [/nombre]
[apellido] Barbero [/apellido]
[direccion] c/Ulises, 36 [/direccion]
[/ficha]
Lleva una cabecera que define la versión de xml del documento, la forma en que se ha codificado el documento y si el documento va acompañado de un DTD (Declaración de Tipo de Documento ) o no.
Un DTD define la estructura y semántica del XML, pero en eso no vamos a entrar ahora.
Veamos otro ejemplo un poquito más complejo;
[?xml version=" 1.0 " encoding=" UTF-8 " standalone= " yes "?]
[movies]
[movie]
[title]Raising Arizona[/title]
[writer]Ethan Coen[/writer]
[writer]Joel Coen[/writer]
[producer]Ethan Coen[/producer]
[director]Joel Coen[/director]
[actor]Nicolas Cage[/actor]
[actor]Holly Hunter[/actor]
[actor]John Goodman[/actor]
[comments]A classic one-of-a-kind screwball love story.[/comments]
[/movie]
[movie]
[title]Midnight Run[/title]
[writer]George Gallo[/writer]
[producer]Martin Brest[/producer]
[director]Martin Brest[/director]
[actor]Robert De Niro[/actor]
[actor]Charles Grodin[/actor]
[comments]The quintessential road comedy.[/comments]
[/movie]
[/movies]
La cabecera, un elemento padre "
Si lo analizamos un poco podemos ver cierto parecido con la manera que tenemos de tratar la información en Velneo, una tabla maestra de películas y por ejemplo las tablas escritores, productores, directores y actores relacionadas con esta mediante históricas ( escritores-películas, productores-películas, etc... ).
Generar este XML desde Velneo es algo tan fácil como:
Fichero: Abrir -] xml, d + "\\xml\\nombre_fichero.xml", Lectura/escritura. Crea o Limpia
Fichero: Grabar línea -] xml, "[?xml version=\c1.0\c encoding=\cUTF-8\c standalone=\cyes\c?]"
Fichero: Grabar línea -] xml, "[movies]"
Búsqueda -] PELICULAS
if -] n ! 0
Ordenar Lista -] %TITULO%
Recorrer lista sólo lectura
Fichero: Grabar línea -] xml, "[movie]"
Fichero: Grabar línea -] xml, "[title]" + %TITULO% + "[/title]"
Cargar histórico -] ESCRITORES-PELICULAS, CODPELI
Recorrer lista sólo lectura
Fichero: Grabar línea -] xml, "[writer]" + %NOMBRE% + "[/writer]"
etc...
Hay que ser estricto a la hora de cerrar todos los tags que abrimos y que la anidación sea correcta y ya está.
Esto puede complicarse mucho más pero, básicamente, cargando lista, recorriendola, multipartiendola, cargando históricos, tenemos solucionado en cuatro pasos la generación de ficheros XML bién formados, que en la gran mayoría de los casos satisfacen la demanda de datos de terceros.
Como complemento a esto os diré que en el almacén de objetos hay una utilidad lista para su uso llamada parseador XML que con pocas modificaciones sirve para almacenar ficheros XML en tablas nativas Velneo.
Yo además la he utilizado para comprobar que el documento XML almacenado está bién formado y que los datos almacenados son consistentes.
Todo ello en un par de horas, utilizando las plantillas y el amacén de objetos.
Ahora sigo preguntándome; qué problema de tratamiento de información se me puede plantear que no pueda resolver con Velneo?
No hay comentarios:
Publicar un comentario