skapa XML från MySQL är lika enkelt som PI
MySQL är ett populärt val bland databaser, särskilt för Webcentric data. Nu finns det en annan anledning att älska den här databasen—det gör det enkelt att integrera dina data i ett XML-dokument. Tyvärr är import av XML till MySQL mer som chokladostkaka, men det finns lösningar tillgängliga. Följ bara den här guiden och du kommer att vara på väg att integrera webbtjänster med din databas på nolltid.
från början
med XML: s växande popularitet har utvecklare hittat en enkel metod för att presentera dataset på ett standardiserat sätt. Vad mer låter det som? En databas! Det är bara naturligt att det ska vara enkelt att konvertera din information utan mycket krångel—och du kan.
vissa proprietära databastillverkare, som Microsoft och IBM, har vidtagit åtgärder för att integrera XML i sina system. Detta kommer inte som någon överraskning eftersom dessa två företag båda är starkt involverade i XML-standardiseringsprojektet.
inte vill vara kvar, skaparna av MySQL databas införlivade ett sätt att generera en XML-datafil. Det stöds i version 3.23.48 och uppåt. Du kan använda kommandoraden eller underlätta processen med det programmeringsspråk du väljer.
för att komma igång kan du ladda ner MySQL-databasen gratis från MySQL.com. den aktuella versionen är tillräcklig för att stödja den här funktionen, och du behöver inte kompilera den med några speciella parametrar.
fruktfyllning
när du har installerat, skapat och fyllt i din databas, kör följande kommando för att generera en XML-fil:
mysqldump –xml databasename
om du vill spara detta i en fil, använd bara standard *NIX-metoden för utmatning till en fil:
mysqldump –xml databasename > filnamn.xml
detta ger ett välformat XML-dokument. Eftersom XML är datacentrisk, om du dumpar hela databasen och den inte innehåller någon information, kommer din fil att resultera i en serie tomma taggar baserat på tabellnamnen. Din produktion ska se ut så här:
<?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>
nu är du fri att använda denna datafil med alla program du önskar. Denna metod är användbar på ett antal sätt. Det kommer inte bara att skapa en standardiserad representation av dina data, men det kan också ta en ögonblicksbild av din databas (eller del av din databas) för visning. Snarare än att göra upprepade samtal till databasservern, bara skapa ett XML-dokument när databasen ändras och referera till det från webbsidor eller vad du använder. Detta kan lokalisera samtal för data, minska kostnaderna för frekventa samtal till en databas och enkelt presentera en delmängd av din information för förbättrad prestanda, säkerhet eller lokalisering.
glass på sidan
det är verkligen lätt att få XML från MySQL, men vad sägs om den andra riktningen? Det är lite svårare. MySQL själv stöder inte denna funktion, och med goda skäl. Databasen har för närvarande inget sätt att validera XML-filen. Detta kan resultera i ett antal scenarier, allt från en dellast till att ignorera felaktiga taggar och uttalanden för att helt enkelt tvinga hela belastningen att misslyckas. MySQL stöder endast kaskad back-outs i nuvarande utvecklingsversioner. Även om det inte är vackert från en inbyggd synvinkel, har du några alternativ.
en lösning är Perls DBIx::Xml_rdb modul. Du kan använda den här metoden för att både importera och exportera XML, men förståeligt är importen starkt beroende av en korrekt strukturerad XML-fil. För att få data kör modulen i huvudsak en fråga och formaterar resultaten i en XML-fil. Omvänt kan du använda modulen för att läsa en XML-fil, skapa en SQL-fråga och köra den. Det finns också ett enklare alternativ. DBIx:: XML_RDB-modulen levereras med två verktygsskript för att underlätta processen: xml2sql.pl och sql2xml.pl. jag hittade en bra handledning om att använda denna Perl-Modul på O ’Reilly’ s XML.com webbplats. Det kommer att leda dig genom processen.
en annan, mer generaliserad ansträngning kommer från Ron Bourrets XML-DBMS-projekt. Detta är ett pågående försök att stödja XML-import och export med relationsdatabaser med Perl och Java. Det finns också några mycket intressant arbete som stöder kartläggning en databas till en annan med hjälp av XML som underlättar middleware. Detta är ett community-orienterat open source-projekt som hanteras på SourceForge.
andra språk, särskilt Webbskriptspråk, har inte ignorerat behovet av att importera XML till SQL-databaser heller. Det finns liknande ansträngningar för Python, till exempel xml2sql-och dtd2sql-modulerna, som beskrivs i detalj i den här artikeln från IBM, och ett par projekt i arbetena för PHP, till exempel ”XML MySQL class” – projektet.
härlig
med dessa verktyg är det enkelt att importera och exportera XML till och från MySQL! Eftersom MySQL är populärt och gratis har det varit testbädden för att integrera många skriptspråk i XML, och som ett resultat finns det ett antal handledning och skript som är specifika för denna databas. Med kraften i en relationsdatabas och möjligheten att enkelt skapa XML-filer kan MySQL vara en integrerad del av din Webbtjänstlösning.
vill du ha en skiva?
vilka är dina erfarenheter med XML och relationsdatabaser? Gå med i diskussionen nedan eller skicka ett e-postmeddelande med dina tankar.