Supongo que utilizas PHP y MySQL para generar sitios web; también llevo un tiempo en esto. Y me encontrado en situaciones de generar 'demasiado' código HTML, resultando demasiado engorroso o molesto dentro de un PHP. Por ejemplo: títulos de tablas, elementos relacionados, controles de formularios, etc.
Uno de los aspectos que me atrae del XML, justamente, es la posibilidad de generar mis propias etiquetas. Esto simplifica y aclara el código generado.
Ejemplo: <form><calendario name="fecha_ingreso"/></form>, en vez de <form><input type="text" name="fecha_ingreso"><input type="button" value="calendario"></form>
¿cuando usar uno y cuando otro?....Simple:
Continua usando MySQL como lo que es: un DBMS. En él almacenas y obtienes el contenido 'en crudo' de cada página.
El XML lo utilizas para formatear y presentar el contenido; es decir, separarlo del diseño de presentación. También lo puedes utilizar para transportar datos entre aplicaciones ( un txt bien diseñado sirve igual...o mejor ;) )
Y el PHP, como hasta ahora, sirve de puente entre ambos.
Las ventajas son: no tienes que rediseñar la BD, y tus datos se mantienen eficientemente gestionados y almacenados, y están disponibles para otras aplicaciones, p. ej. C++Builder; mantienes separado el formato de presentación de los datos con CSS o XSL; y puedes generar tus propias etiquetas, lo cual ayuda a clarificar y simplificar el código.
Bien, espero que haya servido. Queda abierto el debate.
Me disculpo por lo simple de los ejemplos.
Atentamente, Alejandro.