Projekti Organisaatio Lainsäädäntöprosessi Julkaisut Linkit Yhteystiedot

 


XML-kieli

XML-kieli syntyi 1990-luvun lopulla tilanteeseen missä Internetin käyttö oli laajentunut entisestä lähinnä tutkijoiden tietoverkosta globaaliksi, myöskin kaupallisia ja julkishallinnon tarkoituksia palvelevaksi tietoverkoksi. World Wide Web (WWW) ja siihen kehitetty HTML-kieli tarjosivat helposti omaksuttavan teknologiaperustan Internetin käyttöönottoon myöskin ympäristöissä missä ei ollut vahvaa tietoteknistä osaamista. WWW:n myötä Internet-verkkoon kytkeytyi mitä erilaisimpia käyttäjiä ja ohjelmistoja, joilla oli tarvetta kommunikoida keskenään. Käyttäjät kuitenkin puhuivat ja kirjoittivat erilaisilla luonnollisilla kielillä, ohjelmistojen tietosisältöjen esitystavat olivat täysin kirjavia ja kommunikoinnin välineenä käytettiin tekstimuotoisen tiedon lisäksi kuvia, ääntä, video- ja animaatioesityksiä.

Tähän kommunikointiin tarvittiin yhteisiä pelisääntöjä. WWW:n ja sen käytön kehittämiseen muodostunut organisaatio World Wide Web Consortium (W3C) otti tehtäväkseen näiden pelisääntöjen kehittämisen. W3C hyväksyi 1998 XML-kielen määrittelyn (XML-spesifikaation) Extensible Markup Language (XML) 1.0. Spesifikaatio sisälsi säännöt sille millaisina kokonaisuuksian tietoa Internetissä välitetään ja miten nämä kokonaisuudet esitetään. Vuonna 2004 XML-kielestä on julkaistu uusi versio 1.1..


XML-dokumentti

XML-muotoinen tieto esitetään ja sitä välitetään ohjelmalta toiselle XML-dokumentteina. XML-dokumentti voi koostua useasta tiedostosta, tiedostot voivat olla eri tiedostomuodoissa. Nämä tiedostot, joita XML-kielessä kutsutaan entiteeteiksi, muodostavat XML-dokumentin fyysisen rakenteen. Fyysisestä rakenteesta saattaa muodostua multimediakokonaisuus, missä tekstin lisäksi on vaikkapa musiikkia ja liikkuvaa kuvaa. Fyysisen rakenteen osaset kytkeytyvät aina toisiinsa tekstimuotoisen dokumenttientiteetin (juurientiteetin) välityksellä.

XML-dokumentin teksti koostuu merkeistä, jotka koodataan tietokonetta varten Unicode-standardin koodeilla. Unicode on tarkoitettu yhdenmukaiseksi koodaustavaksi maailman kaikilla luonnollisilla kielillä kirjoitettujen tietosisältöjen esittämiseen tietokoneille, riippumatta esimerkiksi siitä mihin suuntaan ihmiset kielen merkkejä lukevat (vaikkapa ylhäältä alas tai vasemmalta oikealle).


Merkkauskieli (Markup Language)

Tietokoneen luettavaksi ja tulkittavaksi tarkoitettu tieto esitetään usein jollain merkkauskielellä (markup language). Merkkauskielen avulla tekstiin lisätään ylimääräisiä merkkausmerkkejä (markup), joilla välitetään lisätietoa lukijalle, varsinaisen primäärisen tietosisällön lisäksi. XML-kielessä merkkausta käytetään dokumentin loogisen rakenteen ilmaisemiseen ja eräiden muiden tietojen välittämiseen tietokoneelle.

XML-dokumentin looginen rakenne koostuu nimetyistä elementeistä. Dokumentilla on aina yksi juurielementti, jonka sisällä muut elementit ovat. XML-dokumentin looginen rakenne elementtien hierarkkinen rakenne, missä kaikki elementit juurielementtiä lukuunottamatta sisältyvät osana johonkin toiseen elementtiin. Jos esimerkiksi XML-dokumentin juurielementin nimi olisi hallituksen_esitys voisi perustelut-elementti olla juurielementin lapsielementti.

Elementtien merkkaus tapahtuu merkkien < ja > sisään kirjoitetuilla elementtien nimillä. Loppumerkkaus erottuu alkumerkkauksesta kauttaviivalla /. Elementtien alkumerkkauksia kutsutaan alkutunnisteiksi ja loppumerkkauksia lopputunnisteiksi. Esimerkiksi perustelut-nimisen elementin alku osoitetaan alkutunnisteella <perustelut> ja loppu osoitetaan lopputunnisteella </perustelut>.

Elementtien alkutunnisteisiin on mahdollista lisätä attribuutteja. Niiden avulla elementteihin kytkeytyy merkkauksessa muutakin tietoa kuin pelkästään elementin nimi. Attribuutilla voidaan ilmaista vaikkapa elementin sisällön kieli. Esimerkiksi alkutunnisteen <perustelut lang=fi> attribuutin lang arvo fi kertoo, että tunnistetta seuraavan elementin kieli on suomi.
Esimerkki XML-merkatusta tekstistä


Mitä tarkoittaa se, että kieli on laajennettava (Extensible)?

Laajennettavuus on tärkeä XML:n ominaisuus. XML-spesifikaatiossa ei määritellä (muutamaa attribuutin nimeä lukuunottamatta) elementtien tai attribuuttien nimiä eikä määritellä valmiita elementtirakenteita. XML:n käyttäjät voivat siis määritellä omia XML-pohjaisia kieliään, missä elementtien ja attribuuttien nimet ja dokumenttirakenteet on valittu tiettyjä sovellusalueita varten. XML-pohjaisia kieliä on määritelty kansainvälisissä organisaatioissa laajaan käyttöön (esimerkiksi XHTML web-julkaisemiseen), kansallisissa organisaatioissa tietyn maan julkishallinnon tarpeisiin (esimerkiksi valtiopäiväasiakirjoille) ja yrityksissä tai yritysryhmittymissä niiden omiin tarpeisiin.

XML-kieleen liittyy osana määrittelykieli, jonka avulla voidaan määritellä dokumenttityyppejä tiettyjä dokumenttiluokkia varten. Dokumenttityypin määrittelyssä (Document Type Definition, lyhennetään DTD) määritellään dokumenteissa käytettävien elementtien ja attribuuttien nimet ja dokumenttien looginen rakenne. Silloin kun dokumenttiin liitetään tällainen määrittely, voivat XML-ohjelmistot tarkistaa, että dokumentti todella noudattaa sääntöjä. Määrittelymekanismi tekee XML:stä metakielen eli kielen jolla voidaan kuvata toisia kieliä.

<< Takaisin etusivulle


Lisätietoa

Salminen, A. (2005). XML pähkinänkuoressa. XML-kurssin johdatusjakso. Jyväskylän yliopisto, Tietojenkäsittelytieteiden laitos. pdf

Salminen, A. (2000-2005). XML family of languages. Overview and classification of W3C specifications. Englanninkielinen yhteenveto W3C:ssä määritellyistä XML-kieliperheen kielistä. Sivu toimii myös portaalina W3C:n spesifikaatioihin. Portaalia on päivitetty vuodesta 2000 alkaen. html

Julkishallinnon XML-strategian toteuttaminen. Valtiovarainministeriö, työryhmämuistioita 7/2004. pdf

Julkishallinnon XML-strategia. Valtiovarainministeriön strategiatyöryhmän raportti 13.02.2003. pdf

Koli, A. (2003). XML julkisen hallinnon sähköisten palveluiden kehittämisessä. Insinöörityö, Espoon-Vantaan Teknillinen ammattikorkeakoulu. pdf

The XML Cover Pages. Laaja Robin Coverin ylläpitämä sivusto XML-sovelluksista. html