Das Erstellen von XML aus MySQL ist so einfach wie PI
MySQL ist eine beliebte Wahl unter Datenbanken, insbesondere für webzentrische Daten. Jetzt gibt es noch einen weiteren Grund, diese Datenbank zu lieben — sie macht die Integration Ihrer Daten in ein XML-Dokument so einfach wie möglich. Leider ähnelt der Import von XML in MySQL eher einem Schokoladenkäsekuchen, aber es gibt Lösungen. Folgen Sie einfach dieser Anleitung und Sie sind in kürzester Zeit auf dem Weg, Webdienste in Ihre Datenbank zu integrieren.
Von vorne anfangen
Mit der wachsenden Beliebtheit von XML haben Entwickler eine einfache Methode gefunden, um Datensätze standardisiert darzustellen. Wie klingt das sonst noch? Eine Datenbank! Es ist nur natürlich, dass es einfach sein sollte, Ihre Informationen ohne viel Aufhebens zu konvertieren – und Sie können.
Einige Hersteller proprietärer Datenbanken wie Microsoft und IBM haben Schritte unternommen, um XML in ihre Systeme zu integrieren. Dies ist keine Überraschung, da diese beiden Unternehmen beide stark am XML-Standardisierungsprojekt beteiligt sind.
Um nicht zurückgelassen zu werden, haben die Entwickler der MySQL-Datenbank ein Mittel zum Generieren einer XML-Datendatei integriert. Es wird in Version 3.23.48 und höher unterstützt. Sie können die Befehlszeile verwenden oder den Vorgang mit der Programmiersprache Ihrer Wahl vereinfachen.
Um loszulegen, können Sie die MySQL-Datenbank kostenlos von MySQL.com . Die aktuelle Version reicht aus, um diese Funktion zu unterstützen, und Sie müssen sie nicht mit speziellen Parametern kompilieren.
Fruit filling
Sobald Sie Ihre Datenbank installiert, erstellt und gefüllt haben, führen Sie den folgenden Befehl aus, um eine XML-Datei zu generieren:
mysqldump –xml databasename
Wenn Sie diese in einer Datei speichern möchten, verwenden Sie einfach die standardmäßige *NIX-Methode zur Ausgabe in eine Datei:
mysqldump –xml databasename > filename .xml
Dies erzeugt ein wohlgeformtes XML-Dokument. Da XML datenzentrisch ist, führt Ihre Datei zu einer Reihe leerer Tags, die auf den Tabellennamen basieren, wenn Sie Ihre gesamte Datenbank sichern und keine Informationen enthalten. Ihre Ausgabe sollte ungefähr so aussehen:
<?xml version=“1.0″?>
<table1>
<field1>data1</field1>
<field2>data1</field2>
<field3>data1</field3>
<field1>data2</field1>
<field2>data2</field2>
<field3>data2</field3>
</table1>
<table2></table2>
Jetzt können Sie diese Datendatei mit jeder gewünschten Anwendung verwenden. Diese Methode ist in vielerlei Hinsicht nützlich. Es erstellt nicht nur eine standardisierte Darstellung Ihrer Daten, sondern kann auch einen Snapshot Ihrer Datenbank (oder eines Teils Ihrer Datenbank) zur Anzeige erstellen. Anstatt den Datenbankserver wiederholt aufzurufen, generieren Sie einfach ein XML-Dokument, wenn sich Ihre Datenbank ändert, und verweisen Sie von Webseiten oder was auch immer Sie verwenden darauf. Auf diese Weise können Datenaufrufe lokalisiert, der Overhead häufiger Aufrufe einer Datenbank reduziert und eine Teilmenge Ihrer Informationen für eine verbesserte Leistung, Sicherheit oder Lokalisierung problemlos dargestellt werden.
Eis auf der Seite
Es ist wirklich einfach, XML von MySQL zu bekommen, aber wie wäre es mit der anderen Richtung? Das ist ein bisschen kniffliger. MySQL selbst unterstützt diese Funktion nicht, und das aus gutem Grund. Die Datenbank hat derzeit keine Möglichkeit, die XML-Datei zu validieren. Dies kann zu einer Reihe von Szenarien führen, die von einer Teillast über das Ignorieren fehlerhafter Tags und Anweisungen bis hin zum einfachen Erzwingen des Fehlschlags der gesamten Last reichen. MySQL unterstützt nur kaskadierende Back-Outs in aktuellen Entwicklungsversionen. Obwohl es aus nativer Sicht nicht schön ist, haben Sie einige Optionen.
Eine Lösung ist Perls DBIx::XML_RDB-Modul. Sie können diese Methode sowohl zum Importieren als auch zum Exportieren von XML verwenden, obwohl der Import verständlicherweise stark von einer korrekt strukturierten XML-Datei abhängt. Um die Daten abzurufen, führt das Modul im Wesentlichen eine Abfrage aus und formatiert die Ergebnisse in einer XML-Datei. Umgekehrt können Sie mit dem Modul eine XML-Datei lesen, eine SQL-Abfrage erstellen und ausführen. Es gibt auch eine einfachere Option. Das Modul DBIx::XML_RDB wird mit zwei Hilfsskripten ausgeliefert, um den Prozess zu vereinfachen: xml2sql.pl und sql2xml.pl . Ich habe ein großartiges Tutorial zur Verwendung dieses Perl-Moduls bei O’Reilly gefunden XML.com Webseite. Es wird Sie durch den Prozess führen.
Eine andere, allgemeinere Anstrengung kommt von Ron Bourrets XML-DBMS-Projekt. Dies ist ein fortlaufender Versuch, XML-Importe und -Exporte mit relationalen Datenbanken unter Verwendung von Perl und Java zu unterstützen. Es gibt auch einige sehr interessante Arbeiten, die die Zuordnung einer Datenbank zu einer anderen mithilfe von XML als Middleware unterstützen. Dies ist ein Community-orientiertes Open-Source-Projekt, das auf SourceForge verwaltet wird.
Andere Sprachen, insbesondere Webskriptsprachen, haben die Notwendigkeit, XML in SQL-Datenbanken zu importieren, ebenfalls nicht ignoriert. Es gibt ähnliche Bemühungen für Python, wie die Module xml2sql und dtd2sql, die in diesem Artikel von IBM ausführlich beschrieben werden, und einige Projekte für PHP, wie das Projekt „XML MySQL class“.
Lecker
Mit diesen Dienstprogrammen ist das Importieren und Exportieren von XML in und aus MySQL einfach! Da MySQL beliebt und kostenlos ist, war es der Test für die Integration vieler Skriptsprachen in XML, und daher gibt es eine Reihe von Tutorials und Skripten, die speziell für diese Datenbank entwickelt wurden. Mit der Leistungsfähigkeit einer relationalen Datenbank und der Möglichkeit, XML-Dateien einfach zu erstellen, kann MySQL ein integraler Bestandteil Ihrer Webservices-Lösung sein.
Möchten Sie ein Stück?
Was sind Ihre Erfahrungen mit XML und relationalen Datenbanken? Nehmen Sie an der Diskussion teil oder senden Sie uns eine E-Mail mit Ihren Gedanken.