XML
XML KOULUTUSTA VUONNA 2008
Kysy myös tuotekohtaisia koulutuksia, kuten Altova XMLSpy tai Cladonia Exchanger.
Kurssit saatavilla kautta Suomen. Tule ja varaa oma koulutustapahtumasi !
IT-koulutuksen asiantuntijasi, Koulutus- ja konsultointipalvelu KK Mediat
Esimerkki case: online luettelo pt.5
Datan konvertoiminen tietokannasta XML-muotoon
Yleisluontoisesti kaikki web-sovelluksessa tms. ohjelmistossa käsiteltävä rakenteellinen tieto kannattaa tallentaa nk. tietovarantoon, kuten tietokantapalvelimelle tai muuhun tietokantaan. Tässä projektissa luotavan XML-sovelluksen ongelmanratkaisun tavoitteena on tuottaa menetelmä, jonka avulla sovellukset joissa ei ole mahdollisuutta suoraan tietokantayhteyteen pystyvät käsittelemään ja esittämään tietokannassa olevaa dataa XML:n kautta. Eräs yleisin esimerkki tälläisestä on vaikkapa Flash- tai Java Applet -esitys, jonka kautta tietokannassa olevaa dataa halutaan tarjota; kumpikana ei sisällä mahdollisuutta suoraan tietokantayhteyteen, mutta molemmat pystyvät lukemaan XML-muotoista dataa /tietovirtaa.
Aiemmassa vaiheessa määrittelimme XML-datan rakenteen, tässä luvussa käsiteltävä vaihe on datan noutaminen tietokannasta halutussa formaatissa. Ja tarkasteelaan asiaa muutaman ohjelmointikielen avulla.
Lyhyesti prosessinkulku kaikissa ohjelmointikielissä on:
- Avaa tietokantayhteys (kts. tietokantayhteyden luominen ASP:ssä ja tietokantayhteyden luominen PHP:ssä)
- Suorita haluttu SQL-kysely (kts. SQL-kyselyn suorittaminen ASP:ssä ja SQL-kyselyn suorittaminen PHP:ssä)
- Tulosta tulosjoukko - normaalisti tulosjoukko tulostetaan HTML/XHTML-rakenteen sisään, mutta tässä tapauksessa arvot sijoitetaankin XML-rakenteen sisään.
Alla yksinkertaistettu (ei sisälllä virheenkäsittelyä) ratkaisu PHP:n avulla :
<?php
echo ("<?xml version="1.0" encoding="ISO 8859-1"?>" . "\n");
// Avataan tietokantayhteys
mysql_connect("palvelimen_osoite","kayttajatunnus","salasana");
// Valitaan tietokanta
mysql_selectdb("dbStamps");
// Suoritetaan haku tietokannasta
// tallennetaan tulokset muuttujaan $result
$SQL = "SELECT SQL_CACHE j_id,j_luettelonro, j_vuosi....";
$result = mysql_query($SQL);
// tarkistetaan onko tuloksia
if (mysql_num_rows($result)) {
echo ("<julkaisut>");
// käydään tulosjoukko lävitse
while ($row = mysql_fetch_object($result, MYSQL_BOTH)) {
echo "<julkaisu>";
echo "<j_id>$row->j_id</j_id>";
echo "<j_luettelonro>$row->j_luettelonro</j_luettelonro>";
echo "<j_vuosi>$row->j_vuosi</j_vuosi>";
echo "<j_nimellisarvo>$row->j_nimellisarvo</j_nimellisarvo>";
echo "<j_valuutta>$row->j_valuutta</j_valuutta>";
echo "<j_aihe>$row->j_aihe</j_aihe>";
echo "<j_kuvaus>$row->j_kuvaus</j_kuvaus>";
echo "</julkaisu>";
}
echo ("</julkaisut>"); }
}
Tutustu artikkelin muihin osiin:
»»» XML »»»Projekticase (osa 1) : yleisesittely
»»» XML »»»Projekticase (osa 2): Tietokantakuvaus
»»» XML »»»Projekticase (osa 3): XML-kuvaus tietokannan rakenteesta
»»» XML »»»Projekticase (osa 4): XML skeema tietokannan rakenteesta
»»» XML »»»Projekticase (osa 5): Datan konvertoiminen tietokannasta XML-muotoon
»»» XML »»»Projekticase (osa 6): XML-skeema datalle
»»» XML »»»Projekticase (osa 7): XSL/XSLT-muunnos datalle