Librería para que MySQL devuelva XML
Ya hace tiempo comentamos como hacer para que MySQL devolviera los datos en formato XML mediante procedimientos almacenados. En este caso se trata de la librerÃa lib_mysqludf_xql que permite mediante un conjunto de funciones mostrar la salida de las consultas en formato XML, sin necesidad de utilizar lenguajes de programación tipo PHP o Ruby.
Esta librerÃa usa xmlwriter de libxml2, la cual es una librerÃa muy rápida sin caché, además escapa directamente las entidades XML y trata de forma muy eficiente la memoria cuando el contenido crece.
Un ejemplo de uso serÃa el siguiente:
SELECT xql_agg('classes' AS `xql:root`,
xql_element('class', null, concat(grade, suffix) AS name, teacher))
FROM schoolclass;
Y el resultado serÃa el siguiente:
<classes>
<class name="1A" teacher="Pullen"/>
<class name="2A" teacher="Berg"/>
<class name="3A" teacher="Heijden"/>
<class name="3B" teacher="Ven"/>
<class name="4A" teacher="Theunissen"/>
<class name="4B" teacher="Huizingh"/>
<class name="4C" teacher="Groot"/>
<class name="5A" teacher="Brongers"/>
<class name="5B" teacher="Zijlstra"/>
<class name="6A" teacher="Brommer"/>
<class name="7A" teacher="Nimwegen"/>
<class name="7B" teacher="Lede"/>
<class name="8A" teacher="Spaansen"/>
<class name="8B" teacher="Wiersma"/>
</classes>