Buenas!<div><br></div><div>Lo primero: feliz año a todos!</div><div><br></div><div>En cuanto al tema, sin duda XML y JSON son las mejores opciones. Ambos están soportados en múltiples lenguajes y nos permiten expresar toda la información que usamos en los ficheros de configuración.</div>
<div><br></div><div>Ahora, XML es muchísimo mas rico semánticamente, hasta el punto de dejarnos expresar casi cualquier cosa. Que sea mas costoso el parseo no es un problema por el momento, ya que simplemente leemos los ficheros de configuración una vez.</div>
<div><br></div><div>Quizá el único problema que veo es la complicación de describir la sintaxis del fichero, para posteriormente poder validar el fichero. En XML tenemos 2 opciones DTD o Schema [1]. El primero es relativamente simple y permite describir la estructura de un fichero. El segundo es muchísimo mas potente, permitiendo definir la estrutura y los tipos de datos.</div>
<div><br></div><div>Hace tiempo hice un ejemplo de XML Schema para mi proyecto fin de carrera [2]. Lo adjunto (jde.xsd) para que veáis la pinta que tiene. Después se pueden escribir ficheros tipo stdschema.xml (adjunto) y verificarlos en linea.</div>
<div><br></div><div>Para el parseo de XML usé una librería llamada tinyXML [3], muy pequeña y simple de usar, ya que libxml es horrorosa!!</div><div><br></div><div>Cómo lo&nbsp;veis?</div><div><br></div><div>Un saludo.</div><div>
David.<br><div><br></div><div><br></div><div>[1] <a href="http://es.wikipedia.org/wiki/XML#Validez">http://es.wikipedia.org/wiki/XML#Validez</a><br></div><div>[2]&nbsp;<a href="http://jde.gsyc.es/index.php/Dlobato_jde%2B">http://jde.gsyc.es/index.php/Dlobato_jde%2B</a></div>
<div>[3]&nbsp;<a href="http://www.grinninglizard.com/tinyxml/">http://www.grinninglizard.com/tinyxml/</a><br><div class="gmail_quote">El 23 de diciembre de 2008 10:45, Roberto Calvo <span dir="ltr">&lt;<a href="mailto:rocapal@gsyc.es">rocapal@gsyc.es</a>&gt;</span> escribió:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
En su día lo hablamos, como bien dices.<br>
<br>
JSON suele usarse en navegadores, para no tener que procesar XML (muy<br>
costoso). No se si tiene sentido utilizarlo en aplicación como fichero<br>
de configuración. Es cierto, que es más cómodo de usar un fichero en<br>
JSON, pero con XML te ofrece cosas como que puedes comprobar que esta<br>
bien formado el fichero de config.<br>
<br>
Incluso cuando se haga JDE distribuido, no se si tiene sentido utilizar<br>
JSON para el paso de parámetros o información entre componentes.<br>
<br>
Se escoja la opción que sea, lo que si haría es una app gráfica<br>
sencilla, para poder editar el fichero de config, pudiendo añadir<br>
drivers o esquemas con un click. Sino, puede ser un infierno el fichero<br>
de configuración.<br>
<br>
un saludo!<br>
<br>
El mar, 23-12-2008 a las 00:54 +0100, Darío Rodríguez escribió:<br>
<div><div></div><div class="Wj3C7c">&gt; Buenas a todos:<br>
&gt;<br>
&gt; Esta tarde hablando con Jose Maria sobre un parser para XML, para<br>
&gt; poder usarlo cuando pasemos archivos de configuración a los esquemas<br>
&gt; de JDE, me ha comentado que anteriormente se penso en JSON para esta<br>
&gt; misma tarea y que ya era hora de tomar una decisión y tener un formato<br>
&gt; común para la comunicación entre esquemas cuando sea necesaria.<br>
&gt;<br>
&gt; He rebuscado un poco por ahí y he visto varias alternativas para estos<br>
&gt; menesteres (leer y escribir archivos para intercambiar datos), os<br>
&gt; comento para entrar en situación:<br>
&gt;<br>
&gt; 1.- Sobre XML [1] bastante usado y con muchos parsers para C, he<br>
&gt; probado eXpat [2] pero sólo permite leer, una alternativa sería libxml<br>
&gt; [3] que sí escribe archivos.<br>
&gt;<br>
&gt; 2.- JSON [4] se pensó en el anteriormente y es muy usado en mundillo<br>
&gt; de la web como XML. Sobre este formato creo que puede decir más David<br>
&gt; Lobato que yo.<br>
&gt;<br>
&gt; 3.- Como otra alternativa he encontrado YAML [5] [6] aunque su<br>
&gt; libreria para C [7] pone que esta en desarrollo.<br>
&gt;<br>
&gt; 4.- Y por último OGDL [8] este formato es algo distinto ya que se<br>
&gt; sirve de grafos para organizar el parseado del archivo, como libreria<br>
&gt; tiene libogdl [9].<br>
&gt;<br>
&gt;<br>
&gt; Bueno la cuestión es ¿cuál escogemos?. Si conoceis otras altenativas<br>
&gt; comentarlas para poder realizar una buena elección.<br>
&gt;<br>
&gt; En mi opinión la duda esta entre XML y JSON, si pensamos en el futuro<br>
&gt; y queremos integrar JDE con algún servicio web puede que JSON se use<br>
&gt; más.<br>
&gt;<br>
&gt; ¿Qué opinais?<br>
&gt;<br>
&gt; Un saludo.<br>
&gt;<br>
&gt; Darío Rodríguez.<br>
&gt;<br>
&gt; [1] <a href="http://es.wikipedia.org/wiki/XML" target="_blank">http://es.wikipedia.org/wiki/XML</a><br>
&gt; [2] <a href="http://expat.sourceforge.net/" target="_blank">http://expat.sourceforge.net/</a><br>
&gt; [3] <a href="http://xmlsoft.org/" target="_blank">http://xmlsoft.org/</a><br>
&gt; [4] <a href="http://es.wikipedia.org/wiki/JSON" target="_blank">http://es.wikipedia.org/wiki/JSON</a><br>
&gt; [5] <a href="http://www.yaml.org/" target="_blank">http://www.yaml.org/</a><br>
&gt; [6] <a href="http://es.wikipedia.org/wiki/YAML" target="_blank">http://es.wikipedia.org/wiki/YAML</a><br>
&gt; [7] <a href="http://pyyaml.org/wiki/LibYAML" target="_blank">http://pyyaml.org/wiki/LibYAML</a><br>
&gt; [8] <a href="http://ogdl.sourceforge.net/" target="_blank">http://ogdl.sourceforge.net/</a><br>
&gt; [9] <a href="http://ogdl.sourceforge.net/api/c/" target="_blank">http://ogdl.sourceforge.net/api/c/</a><br>
</div></div>&gt; _______________________________________________<br>
&gt; Jde-developers mailing list<br>
&gt; <a href="mailto:Jde-developers@gsyc.es">Jde-developers@gsyc.es</a><br>
&gt; <a href="http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers" target="_blank">http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers</a><br>
<font color="#888888">--<br>
Roberto Calvo Palomino &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| Libre Software Engineering Lab (GSyC)<br>
Tel: (+34) 91 488 85 23 &nbsp; &nbsp; &nbsp; &nbsp; | Universidad Rey Juan Carlos<br>
Tel: (+34) 91 488 81 05 &nbsp; &nbsp; &nbsp; &nbsp; | Edif. Departamental II - Despacho 116<br>
<a href="mailto:rocapal@gsyc.es">rocapal@gsyc.es</a> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | c/Tulipán s/n 28933 Móstoles (Madrid)<br>
<a href="http://libresoft.es/" target="_blank">http://libresoft.es/</a><br>
<br>
GPG-KEY: <a href="http://gsyc.es/~rocapal/rocapal.gpg" target="_blank">http://gsyc.es/~rocapal/rocapal.gpg</a><br>
</font><br>_______________________________________________<br>
Jde-developers mailing list<br>
<a href="mailto:Jde-developers@gsyc.es">Jde-developers@gsyc.es</a><br>
<a href="http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers" target="_blank">http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers</a><br>
<br></blockquote></div><br></div></div>