Utiliser XML avec MySQL 5.1 (part 1/5)

juillet 17, 2009
Tags: ,

MySQL avec son modèle relationnel et XML avec son approche hiérarchique ont en commun la vocation d’organiser et de structurer des ensembles de données.

En regardant de plus près, ces technologies peuvent offrir des solutions complémentaires :

  • MySQL s’adapte à merveille à la gestion de systèmes d’informations éventuellement lourds et complexes,

  • XML a su devenir un langage universel permettant aux applications de communiquer et d’échanger des informations.

Leur complémentarité apparaît alors évidente : XML rend possible l’exploitation et le partage des informations contenues dans MySQL par des applications distantes.

Générer du XML avec les programmes clients mysql et mysqldump

La version de MySQL utilisée pour cette article est la 5.1.22.

Générer du XML avec MySQL est très simple. La première possibilité est d’utiliser le client texte mysql avec l’option xml ou X. Un fois connecté au serveur MySQL, les résultats des commandes sont sortis sous format XML comme ont peut le voir :

Générer du XML en mode console

shell> mysql -u daz -p –xml
mysql> SHOW SCHEMAS ; /*Liste de tous les schémas (databases)*/
<?xml version= »1.0″?>
<resultset statement= »show schemas » xmlns:xsi= »http://www.w3.org/2001/
XMLSchema-instance »>
<row>
<field name= »Database »>information_schema</field>
</row>
<row>
<field name= »Database »>world</field>
</row>
<row>
<field name= »Database »>xml</field>
</row>
</resultset>

mysql> USE xml /*connexion au schéma qui se nomme xml */
Database changed

mysql> SHOW TABLES ; /*Liste de toutes les tables du schéma xml*/
<?xml version= »1.0″?>
<resultset statement= »SHOW TABLES » xmlns:xsi= »http://www.w3.org/2001/
XMLSchema-instance »>
<row>
<field name= »Tables_in_xml »>rss</field>
</row>
</resultset>

L’exemple suivant nous montre que le résultat d’une requête peut être redirigé vers un fichier. On peut par exemple créer le fichier ville_fra.xml avec le contenu de la table city du schéma world ou plus généralement avec le résultat d’une requête.

Création d’un fichier XML avec le client texte mysql
shell>mysql -X -e » SELECT * FROM world.city WHERE countrycode = ‘fra’; » –default-character-set=utf8 > /xml_file/city_fra.xml

shell> more city_fra.xml
<?xml version= »1.0″?>
<resultset statement= »SELECT * FROM world.city WHERE countrycode = ‘fra' » xmlns:xsi= »http://www.w3.org/2001/XMLSchema-instance »>
<row>
<field name= »ID »>2974</field>
<field name= »Name »>Paris</field>
<field name= »CountryCode »>FRA</field>
<field name= »District »>Île-de-France</field>
<field name= »Population »>2125246</field>
</row>
<row>
<field name= »ID »>2975</field>
<field name= »Name »>Marseille</field>
<field name= »CountryCode »>FRA</field>
<field name= »District »>Provence-Alpes-Côte</field>
<field name= »Population »>798430</field>
</row>
<row>
<field name= »ID »>2976</field>
<field name= »Name »>Lyon</field>
</row>
</resultset>

L’autre façon d’exporter du SQL dans un fichier au format XML est d’utiliser le client texte qui permet de faire des sauvegardes (dump) mysqldump. Il devient alors possible d’obtenir un backup , structures et données, au format XML du schéma world:

Générer une sauvegarde au format XML
shell> mysqldump -u daz -p –xml –default-character-set=utf8 world > sauvegarde.xml
<?xml version= »1.0″?>
<mysqldump xmlns:xsi= »http://www.w3.org/2001/XMLSchema-instance »>
<database name= »world »>
<table_structure name= »city »>
<field Field= »ID » Type= »int(11) » Null= »NO » Key= »PRI » Extra= »auto_increment » />
</table_structure>
<table_data name= »city »>
<row>
<field name= »ID »>1</field>
</field>
</row>
</table_data>
</database>
</mysqldump>

(à suivre… utiliser XML avec MySQL 5.1 : Insérer du XML dans MySQL)

2 Responses to “Utiliser XML avec MySQL 5.1 (part 1/5)”

  1. […]  Utiliser XML avec MySQL 5.1 (part 1/5) () […]

  2. […]  Série Utiliser XML avec MySQL 5.1 (0 visite) […]