XML Sissejuhatus
XML (Extensible Markup Language) on W3C soovitatud üldotstarbeline markeerimise keel, mille eesmargiks on struktureeritud info jagamine erinevate infosüsteemide vahel, eelkõige veebipõhistes rakendustes. XML on laiendatav keel, mis tähendab, et alates ülessande püstitamisest, on võimalik defineerida oma elemente.
Mis vahe on XML'il ja HTML'il? XML ei asenda Html'i. XML on loodud info edasi kandmiseks aga HTML info kuvamiseks.
Näiteks kui sa kirjutad "Word'is" midagi siis see pole lihtsalt tekst ekraanil. Peale teksti lisad sa informatsiooni selle kohta kuidas kirjutatu hakkab välja nägema.
- Milline on kirja stiil (Times New Roman, Arial, Geneva jne.)?
- Mis värvi on tekst?
- Kui suur on tekst?
- Kui pikad on read?
- Kas teksti on lisatud pilte?
- Kas paragrahvid on eraldatud horisontaal joonega?
- ja nii edasi...
Enamikes tekstiprotsessorites on see info, milline peab tekst välja nägema, sinu eest varjatud. Märgiste keel on kood mis ütleb arvutile varjatud infot teksti-dokumendi kohta. Näiteks ülal toodud nimekirjas on kasutatud Html nimekirja märgiseid <ul> ja <li>.
Seletan veel. Oletame, et on olemas selline inimene nagu Ants Tamm. Arvuti näeb neid kahte sõna kui suvalist tähtede kogumit. Sina kui lugeja annad nendele sõnadele mõtte. Oletame, et antud juhul on Ants Tamm selle artikli autor. Mõnes teises situatsioonis tähendab sõnapaar "Ants Tamm" hoopis midagi muud.
- Eesti riigi kontekstis on Ants Tamm riigi kodanik
- Oma peres on ta kahe lapse isa
- Majanduse kontekstis on ta ettevõtja
- Hariduses on ta erakõrgkooli õppejõud
Seda nimekirja võiks jätkata veel ja veel. Point on selles, et ükski osa, Ants Tamme puudutavast infost ei ole määratletud Html'ga. Selleks, et arvuti saaks aru, et Ants Tamm pole lihtsalt tähemärkide kogum vaid hoopis midagi rohkemat, tuleb see informatsioon struktureerida. Lihtne näide on sinu aadressiraamat. Ka seal on oletatavasti informatsioon mingit moodi struktureeritud. Aadressid, nimed, kellaajad, kuupäevad telefoni numbrid jne.
Siin tulebki appi XML, mille kirjaviis on selline:
<?xml version="1.0" encoding="ISO-8859-1"?> <kodanik> <enimi>Ants</enimi> <pnimi>Tamm</pnimi> <amet>ettevõtja</amet> <teema>Olen tubli mees!</teema> </kodanik>
Esimene tekstirida on XML deklaratsioon milles määratakse XML versioon (1.0) ja kasutatav kodeering (ISO-8859-1 = Latin-1/West European character set).
Järgmine rida (<kodanik>), kirjeldab dokumendi juur-elementi.
Järgmised neli rida on juur-elemendi tütar-elemendid.
Viimane rida tähistab juur-elemendi lõppu.
Seega algab dokument juur-elemendiga, jätkub temaga suguluses olevate elementidega.
<juur> <tütar> <tütretütar>......</tütretütar> </tütar> </juur>
Kõik elemendid sisaldavad teksti ja atribuute nii nagu HTML'is.
Pane tähele. Kõik XML elemendi peavad olema suletud lõpumärgisega (</p>).
<p>See on paragrahv</p>
XML on tundlik s.t. et <teema> pole sama mis <Teema>.
<Teema>See on valesti>/teema> <teema>See on õieti</teema>
XML'is peavad elemendid olema õieti pesastatud:
<b><i>Selles reas on pesastatud valesti</b></i> <b><i>Selles reas on pesastatud õieti</i></b>
XML'is peavad atribuutide väärtused olema jutumärkides:
<teema daatum="10/02/2012">
Kommentaare XML'is kirjutatakse samamoodi nagu HTML'is
<--See on kommentaar-->
Milleks siiski XML'i õppida kui HTML on selge? Paljud veebirakendused saab tehtud kasutades selleks HTML'i, DHTML'i, Java't, ASP'i jne. Sama töö saab teha lihtsamaks, kasutades XML rakendusi.
- Saame ühendada andmebaasi Veebiga
- Saame kuvada samu andmeid erinevates formaatides
- Saame kohaldada informatsiooni vastavalt lugeja vajadustele
- Kergendab veebiserveri tööd
Lõppude lõpuks pole XML'i üldse raske õppida kui juba Html on selge. Pealegi on paljusid asju parem teha XML'i abil kui Html'iga.
Ühendus andmebaasidega
Enamik inimesi saab ühenduse andmebaasidega Veebis, kasutades selleks erinevaid programme. Näiteks CGI skript, PHP v. ASP. Kuid andmed ise pole määratletud andmebaasina seni kuni need konkreetselt on andmebaasis sees. Kui kasutada andmebaasiga ühenduse saamiseks Veebis XML'i siis see formaat sobitub andmebaasiga. See on omakorda XML'i eeliseks Html'i ees.
Erinevad andme formaadid
Nagu alguses sai öeldud, on XML dokument struktureeritud andmete kogum. Iga andme element on märgistatud sel moel, et arvuti tunneb, millega on tegemist. Näiteks kui sa sisestad oma aadressi raamatu XML'i siis oletatavasti on need andmed struktureeritud andme gruppidesse:
- nimi - ees ja perekonna
- aadress - tänav, number ja korter
- linn
- maakond v. vald
- postiindeks
- maa
Kui XML rakendus tunnistab andmeid igas eelpool mainitud andmegrupis siis saab luua vormingu kus on võimalik kõik andmed printida.
Luua vorming kus kõiki sissekandeid saab lisada aadressi-raamatusse.
Lõpuks saame luua vormingu kus kogu informatsioon hoitakse andmebaasis. Seega ühe sissekandega saame kasutada kolme erinevat rakendust.
Kohaldatud informatsioon
Dokumendid mis on kirjutatud XML'is on kergesti kohaldatavad erinevates formaatides. Näiteks Html'is kasutame pealkirjade kujundamiseks märgiseid; <h1> <h2> ja <h3>.
Kui nüüd sama kujundust proovida mobiil-telefonis, millel on WAP tugi, siis tulemus on täiesti erinev (eeldusel, et üldse mingi tulemus näha on).
Niisiis kui me tahame, et eelpool mainitud aadressi-raamat kuvataks veebis ja ka mobiiltelefonis, pole vaja luua kahte eraldi dokumenti (WML ja XHTML). Selle asemel loome lihtsalt vastavad reeglid andmebaasis, kuhu on XML'il lubatud juurdepääs.
Jaotatud laadimine
Üks XML'i hea omadus on see, et seda saab kasutada koos Java ja teiste vahenditega nii, et suurem osa info töötlemisest suunatakse serverilt kliendile. Näiteks eelpool mainitud XML dokument aadressi-raamatust. Kasutame Java rakendust andme töötluseks ja otsimiseks. Kasutades XML ja Java rakendust koos saame tulemuseks, et kogu töötlus ja otsing toimub kliendi pool. Seega vabastame serveri liigsest koormusest.
Lõpetuseks
Jäägu igaühe enda otsustada kas õppida XML'i või mitte. Meeles tasuks pidada seda, et palju asju saab teha XML'is efektiivsemalt kui Html'is. XML on võimas tööriist millega luua ja töödelda andmeid.
Näited:
Lihtne XML fail
Lihtne XML fail koos veaga
XML raamatukataloog