Créer du XML à partir de MySQL est aussi simple que PI
MySQL est un choix populaire parmi les bases de données, en particulier pour les données Webcentriques. Maintenant, il y a une autre raison d’aimer cette base de données : elle facilite l’intégration de vos données dans un document XML. Malheureusement, l’importation de XML dans MySQL ressemble plus à un gâteau au fromage au chocolat, mais il existe des solutions disponibles. Suivez simplement ce guide et vous serez sur le point d’intégrer des services Web à votre base de données en un rien de temps.
En partant de zéro
Avec la popularité croissante du XML, les développeurs ont trouvé une méthode facile pour présenter des ensembles de données de manière standardisée. À quoi ça ressemble d’autre ? Une base de données ! Il est naturel qu’il soit simple de convertir vos informations sans trop de tracas — et vous le pouvez.
Certains fabricants de bases de données propriétaires, tels que Microsoft et IBM, ont pris des mesures pour intégrer XML dans leurs systèmes. Cela n’est pas surprenant puisque ces deux sociétés sont toutes deux fortement impliquées dans le projet de normalisation XML.
Ne voulant pas être laissés pour compte, les créateurs de la base de données MySQL ont incorporé un moyen de générer un fichier de données XML. Il est pris en charge dans la version 3.23.48 et plus. Vous pouvez utiliser la ligne de commande ou faciliter le processus avec le langage de programmation de votre choix.
Pour commencer, vous pouvez télécharger la base de données MySQL gratuitement à partir de MySQL.com . La version actuelle est suffisante pour supporter cette fonctionnalité, et vous n’avez pas besoin de la compiler avec des paramètres spéciaux.
Remplissage de fruits
Une fois que vous avez installé, créé et rempli votre base de données, exécutez la commande suivante pour générer un fichier XML:
mysqldumpenamexml databasename
Si vous souhaitez l’enregistrer dans un fichier, utilisez simplement la méthode standard *NIX de sortie dans un fichier:
mysqldump –xml databasename >filename.xml
Ceci produit un document XML bien formé. Étant donné que XML est centré sur les données, si vous videz toute votre base de données et qu’elle ne contient aucune information, votre fichier donnera lieu à une série de balises vides basées sur les noms de table. Votre sortie devrait ressembler à ceci:
<?version xml = « 1.0 » ?>
<table1>
<field1>data1</field1>
<field2>data1</field2>
<field3>data1</field3>
<field1>data2</field1>
<field2>data2</field2>
<field3>data2</field3>
</table1>
<table2></table2>
Maintenant, vous êtes libre d’utiliser ce fichier de données avec n’importe quelle application que vous désirez. Cette méthode est utile de plusieurs façons. Non seulement cela créera une représentation standardisée de vos données, mais il peut également prendre un instantané de votre base de données (ou d’une partie de votre base de données) pour l’affichage. Plutôt que de faire des appels répétés au serveur de base de données, générez simplement un document XML lorsque votre base de données change et référencez-le à partir de pages Web ou de tout ce que vous utilisez. Cela peut localiser les appels de données, réduire la surcharge des appels fréquents vers une base de données et présenter facilement un sous-ensemble de vos informations pour améliorer les performances, la sécurité ou la localisation.
Crème glacée sur le côté
Il est vraiment facile d’obtenir du XML à partir de MySQL, mais que diriez-vous de l’autre sens? C’est un peu plus délicat. MySQL lui-même ne supporte pas cette fonction, et avec raison. La base de données n’a actuellement aucun moyen de valider le fichier XML. Cela peut entraîner un certain nombre de scénarios, allant d’une charge partielle à l’ignorance de balises et d’instructions mal formées, en passant par le simple fait de forcer la charge entière à échouer. MySQL ne prend en charge que les back-outs en cascade dans les versions de développement actuelles. Bien que ce ne soit pas joli d’un point de vue natif, vous avez quelques options.
Une solution est le DBIx de Perl::Module XML_RDB. Vous pouvez utiliser cette méthode pour importer et exporter du XML, bien que l’importation soit naturellement fortement dépendante d’un fichier XML correctement structuré. Pour obtenir les données, le module exécute essentiellement une requête et formate les résultats dans un fichier XML. Inversement, vous pouvez utiliser le module pour lire un fichier XML, créer une requête SQL et l’exécuter. Il existe également une option plus simple. Le module DBIx::XML_RDB est livré avec deux scripts utilitaires pour faciliter le processus : xml2sql.pl et sql2xml.pl . J’ai trouvé un excellent tutoriel sur l’utilisation de ce module Perl chez O’Reilly XML.com Site web. Cela vous guidera tout au long du processus.
Un autre effort plus généralisé provient du projet XML-SGBD de Ron Bourret. Il s’agit d’un effort continu pour prendre en charge les importations et les exportations XML avec des bases de données relationnelles utilisant Perl et Java. Il y a aussi un travail très intéressant qui prend en charge le mappage d’une base de données à une autre en utilisant XML comme middleware facilitant. Il s’agit d’un projet open source axé sur la communauté géré sur SourceForge.
D’autres langages, en particulier les langages de script Web, n’ont pas non plus ignoré la nécessité d’importer du XML dans des bases de données SQL. Il existe des efforts similaires pour Python, tels que les modules xml2sql et dtd2sql, décrits en détail dans cet article d’IBM, et quelques projets en cours pour PHP, tels que le projet « XML MySQL class ».
Délicieux
Avec ces utilitaires, importer et exporter du XML vers et depuis MySQL est facile! Étant donné que MySQL est populaire et gratuit, il a été le banc d’essai pour intégrer de nombreux langages de script en XML, et par conséquent, il existe un certain nombre de tutoriels et de scripts spécifiques à cette base de données. Avec la puissance d’une base de données relationnelle et la possibilité de créer facilement des fichiers XML, MySQL peut faire partie intégrante de votre solution de services Web.
Voulez-vous une tranche?
Quelles sont vos expériences avec XML et les bases de données relationnelles ? Rejoignez la discussion ci-dessous ou envoyez-nous un e-mail avec vos pensées.