Foros del Web » Programación para mayores de 30 ;) » Programación General »

Otra pregunta para expertos

Estas en el tema de Otra pregunta para expertos en el foro de Programación General en Foros del Web. Hola, mi pregunta sobre XML tiene que ver más con la usabilidad del lenguaje. He aprendido un poco a manejar XML mediante DOM, pero el ...
  #1 (permalink)  
Antiguo 10/08/2007, 01:36
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 21 años
Puntos: 3
Otra pregunta para expertos

Hola, mi pregunta sobre XML tiene que ver más con la usabilidad del lenguaje. He aprendido un poco a manejar XML mediante DOM, pero el problema con el que me he topado es que no tengo claro en qué ocasiones usarlo, y en cuáles no.

Mi duda está en si es factible usar XML como puente de intercambio de información entre un lenguaje dinámico y una base de datos, como por ejemplo entre PHP y MySQL. Ya sé que en realidad no es necesario esto, porque PHP y MySQL no necesitan XML para intercomunicarse. Pero lo pregunto por si resulta práctico para algún caso.

Aparte de usarse como puente de intercambio de información entre lenguajes diferentes, como ActionScript de Flash y PHP, en qué casos generales es más práctico el uso de XML?

Os agradecería mucho vuestros consejos.
  #2 (permalink)  
Antiguo 10/08/2007, 06:25
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Re: Otra pregunta para expertos

Hola, te comento que XML es solamente un modo de almacenar información, es solamente un archivo de texto plano que tiene cierto formato para guardar la info...

Cual es la utilidad ? que muchos programas pueden leer esa info...Por ejemplo, quieres poner en tu web noticias de forosdelweb, entonces simplemente haces un programa que lea el RSS (archivo XML) del foro y lo imprimes en tu página...

o quieres que la info de un formulario se almacene en un XML para luego con PHP leerlo y guardarlo en una base de datos...

Siempre es como un almacenamiento intermedio, para hacer procesos batch por ejemplo, pero no sirve entre interface directa entre php y sql, eso va directo...

También es muy usada en los webservice y en ajax, para que varios programas puedan usar la misma info...

Espero que te sirvan estas palabras...

Saludos
__________________
Esteban Quintana
  #3 (permalink)  
Antiguo 10/08/2007, 08:03
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 21 años
Puntos: 3
Re: Otra pregunta para expertos

Hola monoswim, gracias por responder.

Cita:
o quieres que la info de un formulario se almacene en un XML para luego con PHP leerlo y guardarlo en una base de datos...
este caso concreto que has nombrado, para qué casos sería útil almacenar un formulario previamente en XML, y luego leerlo y guardarlo con PHP en una BD, si directamente se pueden guardar los datos del formulario en la BD con PHP? Son preguntas que me hago como estas.

Otra cuestión es lo típico de las noticias en blogs y otros tipos de webs. Son perfectamente implementables en base de datos sin necesidad de XML. Yo de hecho en mi nueva web que me estoy haciendo ahora, me había creado una tabla mysql de noticias. Y ahora estoy en la duda de si es mejor usar XML en este caso.

O sea, que deben de haber unas pautas para en un caso concreto, poder decantarse por una tecnología o la otra, o tener que usar ambas conjuntamente. Ahí es a donde quiero llegar.
  #4 (permalink)  
Antiguo 10/08/2007, 12:28
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Re: Otra pregunta para expertos

Si, pero el tema es cuando queires colocar noticias que sean generadas en otro sitio, que no tenga acceso a la base de datos...

Poir ejemplo si en mi sitio quiero colocar los posts del foro de forosdelweb, tengo que leer el RSS, no puedo conectarme a la base de datos de forosdelweb...

Y lo de guardar info en XML para luego pasarla a sql yo lo uso mucho porque en si la única info que subo a la SQL es la que luego servirá para hacer búsquedas...Que son muy rápidas en SQL y muy lentas en XML, y hay info que la dejo directametne en el xml...

no siempre es bueno subir todo a la SQL, consume recursos del servidor...Si es info que será de solo lectura o que será administrada solo por una persona sola, yo prefiero el XML...

Se entendió o me enredé mucho ? jeje

Saludos
__________________
Esteban Quintana
  #5 (permalink)  
Antiguo 10/08/2007, 14:55
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Re: Otra pregunta para expertos

Cita:
Iniciado por monoswim Ver Mensaje
Hola, te comento que XML es solamente un modo de almacenar información, es solamente un archivo de texto plano que tiene cierto formato para guardar la info...
[...]
yo no utilizaría la palabra "almacenar"... XML es para describir información, que pueda estar de manera permanente en un fichero es extra... ¿me explico? :-/

Cita:
Iniciado por Tigervlc Ver Mensaje
este caso concreto que has nombrado, para qué casos sería útil almacenar un formulario previamente en XML, y luego leerlo y guardarlo con PHP en una BD, si directamente se pueden guardar los datos del formulario en la BD con PHP? Son preguntas que me hago como estas.
Todo es relativo, depende de la cantidad de procesos y recursos de una aplicación, pero solo hago la nota que no toda la información tiene por que ir a una Base de Datos .

Cita:
Iniciado por Tigervlc Ver Mensaje
Otra cuestión es lo típico de las noticias en blogs y otros tipos de webs. Son perfectamente implementables en base de datos sin necesidad de XML. Yo de hecho en mi nueva web que me estoy haciendo ahora, me había creado una tabla mysql de noticias. Y ahora estoy en la duda de si es mejor usar XML en este caso.

O sea, que deben de haber unas pautas para en un caso concreto, poder decantarse por una tecnología o la otra, o tener que usar ambas conjuntamente. Ahí es a donde quiero llegar.
Como dije anteriormente, XML no es para almacenar información... quizá sea factible utilizarlo para almacenar datos concretos (perfectamente descriptibles), no variantes y/o de uso no frecuente...

Te diré que existen aplicaciones que usan XML en lugar de una Base de Datos, pero no lo hacen porque sea mejor, sino que existen como alternativas cuando no es posible contar con una BD... que habrá los casos.

¿Ejemplos de uso de XML?
Cuando requieras describir algo y contar con un modelo jerárquico (muy diferente al modelo relacional de las Bases de Datos)... las posibilidades son demasiadas.

Dos ejemplos rápidos sacados de la manga :
1. En descripción de menús:
Código HTML:
<menu>
    <grupo nombre='Archivo'>
        <opcion etiqueta='Nuevo...' />
        <opcion etiqueta='Abrir...' />
        <opcion etiqueta='Guardar...' />
    </grupo>
    <grupo nombre='Editar'>
    </grupo>
</menu>
<!-- Nota que esto podría ser utilizado por cualquier lenguaje en cualquier aplicación --> 
2. Descripción de configuraciones:
Código HTML:
<config>
     <ubicacion dirEntrada='/home/app/source' dirSalida='/home/app/compilado' />
     <debug modo='activo' nivel='warning' path='/home/app/debug.log' formato='Y-m-d %description' />
     <dependencias>
         <archivo path='./algo.h' />
         <paquete nombre='make' />
     </dependencias>
</config> 
... me los acabo de inventar (las etiquetas, no el uso).


Cita:
Iniciado por monoswim Ver Mensaje
Y lo de guardar info en XML para luego pasarla a sql yo lo uso mucho porque en si la única info que subo a la SQL es la que luego servirá para hacer búsquedas...Que son muy rápidas en SQL y muy lentas en XML, y hay info que la dejo directametne en el xml...
Me mareaste ... ahí sí no entendí la situación ...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #6 (permalink)  
Antiguo 10/08/2007, 15:53
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 21 años
Puntos: 3
Re: Otra pregunta para expertos

Muchas gracias a ambos por las aclaraciones. Me son de mucha ayuda, de verdad. Espero no aburriros, pero necesito aclararme aún más las ideas:

Bueno, lo que ya tengo clarísimo es que para construir menus con navegación jerárquica, y configuraciones, XML es la solución, mucho mejor que una base de datos. Igual que XML es necesario para hacer de puente de intercambio de información entre dispositivos, aplicaciones, plataformas o lenguajes totalmente diferentes como Flash/Actionscript y PHP.

Entonces, según coincidís los dos, hoy en día es más habitual que no toda la información de una web se almacene en una BD, sino que sólo parte de ella, y que haya información que se pueda dejar en un XML, es así? cómo saber qué información guardar en un XML y cuál almacenar en la BD?

Por ejemplo, en el caso de la web que estoy haciendo, tengo ya implementadas varias secciones de mi menu que lo que hacen es algo típico como mostrar galerías de diseños o fotografías, con varias miniaturas por página, y al clicar cada miniatura, se muestra en mayor tamaño en un pop-up. Ahora mismo las tengo implementadas en tablas de mySQL. P.ej:

tengo una sección de ilustraciones con su tabla ilustraciones, y sus correspondientes campos:
idilustracion -> para indexar cada ilustración de forma única (clave primaria)
tnpath -> ruta a miniatura
path -> ruta a imagen grande
notas -> texto sobre la ilustración

Entonces, a lo que voy: Este método de trabajo y similares, sería mejor implementarlos en XML? p.ej algo así:

Código HTML:
<ilustraciones>
     <ilustracion id="0" tnpath="miniaturas/imagen0.jpg" path="imagenes/imagen0.jpg">
          <notas>texto descriptivo bla bla bla bla ....</notas>
     </ilustracion>
     <ilustracion id="1" tnpath="miniaturas/imagen1.jpg" path="imagenes/imagen1.jpg">
          <notas>texto descriptivo bla bla bla bla ....</notas>
     </ilustracion>
     <ilustracion id="2" tnpath="miniaturas/imagen2.jpg" path="imagenes/imagen2.jpg">
          <notas>texto descriptivo bla bla bla bla ....</notas>
     </ilustracion>

.....

</ilustraciones> 

Última edición por Tigervlc; 10/08/2007 a las 15:59
  #7 (permalink)  
Antiguo 11/08/2007, 08:30
Avatar de monoswim
$moderador{'Esteban'}
 
Fecha de Ingreso: febrero-2002
Ubicación: Buenos Aires - Argentina
Mensajes: 8.762
Antigüedad: 22 años, 3 meses
Puntos: 90
Re: Otra pregunta para expertos

Cita:
cómo saber qué información guardar en un XML y cuál almacenar en la BD?
Depende del tipo de información y para que se use, pregunta, la galeríade tu sitio, porque lo tienen dinámico desde una SQL y no lo dejas simplemente en el HTML ? para que lo colocas en la SQL ?

SQL, tiene 2 grandes funcionalidades,

1) hacer relaciones entre tablas: por ejemplo, tienes una tabla de paises (id_pais, nombre_pais) y una tabla de ciudades (id_cuidad, id_pais, nombre_ciudad) para sql es muy facil traerte las ciudades de determinado pais...en XML es bastante más complicado...

2) Realizar búsquedas: En sql es uy cómodo realizar distintas búsquedas a través de los distintos campos...y sobretodo en distintas tablas...

Ahora bien, si tu galería se mostrará en la misma página siempre, no realizarás búsquedas en la galería y todo el mundo verá la misma galería, y no hay relaciones entre la galería y otras tablas...para mi no es necesario almacenarlo en una SQL...Preferiría un XML o un HTML o cualquier archivo tipo texto plano...

Ahorta bien si la galería tiene 500 artículos que tienen descripción, y el usuario realizará búsquedas para encontrar el producto que quiere (como mercado libre) y ese artículo está relacionado al autor que lo publicó, y demás...SI o SI usaría una SQL

Se entiende un poquito mejor ahora ?

La misma galería vista para 2 funcionalidades distintas...

Saludos
__________________
Esteban Quintana
  #8 (permalink)  
Antiguo 11/08/2007, 11:10
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 21 años
Puntos: 3
Re: Otra pregunta para expertos

ok, ya lo voy teniendo más claro, muchas gracias

Entonces en mi caso sería preferible XML, porque opción de búsqueda la verdad es que no me hace falta. Implementarlo todo en HTML si que no lo haría. Prefiero dejar el HTML para la estructura únicamente. Además, en mi caso uso PHP, y por ello de momento me vale con tener solo una página web (index.php)
  #9 (permalink)  
Antiguo 13/08/2007, 09:23
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 9 meses
Puntos: 102
Re: Otra pregunta para expertos

Usar XML o una Base de Datos son solo opciones, no hay respuesta absoluta de cuál es mejor, todo es relativo.

Ya monoswim mencionó cuestiones importantes como la facilidad de una BD para realizar búsquedas, el volumen de datos a manejar (con XML se puede complicar) y la diferencia de modelos de ambas opciones (Relacional - Jerárquico). Te tocará valorar la mejor opción para lo que realices.

A manera personal, para lo que explicas, no le veo mucha relevancia entre tomar una u otra e incluso una tercera como el manejo de archivos planos con el establecer un estilo en los nombres de archivos... lo que manejes mejor, lo que entiendas mejor, lo que se te adapte mejor, será la mejor opción.

Saludos
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #10 (permalink)  
Antiguo 13/08/2007, 16:26
 
Fecha de Ingreso: mayo-2003
Mensajes: 527
Antigüedad: 21 años
Puntos: 3
Re: Otra pregunta para expertos

Pues muchas gracias de nuevo jam.
Tengo las cosas mucho más claras gracias a los dos.

Saludos!!
  #11 (permalink)  
Antiguo 01/02/2008, 16:33
 
Fecha de Ingreso: febrero-2008
Mensajes: 1
Antigüedad: 16 años, 3 meses
Puntos: 0
Re: Otra pregunta para expertos

DISCULPA Q T MOLESTE REVISE TODO LO Q COMENTAS SOBRE XML Y NECESITARIA Q ME AYUDES SI SE PUEDE:

Necesito conectar mi base q tengo en XML a cualquier aplicacion sea en HTML, Java, etc mi problema es q no se como hacerlo necesito generar unos reportes pero nose como conecto porfa ayudame
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:46.