XML

20.11.1998

Joni Bask, Antti Nuopponen
Ti
Teknillinen Korkeakoulu
anuoppon@cc.hut.fi

Tiivistelmä

Tämä dokumentti kuvaa www-sivujen esittämiseen käytettävän HTML kielen seuraaja ehdokkaan XML:n (extensive markup language), joka on hypertekstin kuvaus kieli, johon on lisätty HTML:stä puuttuvia ominaisuuksia. Dokumentti ei ole tarkoitettu tyhjentäväksi XML oppaaksi, eikä se tarjoa XML:n syntaksista tietoa, vaan kuvaa XML:ää laajemmalta kannalta käyden läpi se taustalla olevat standardit, HTML:n puutteet, XML standardi perheen sekä XML-dokumentin rakenteen. XML tulee olemaan Internetin käytetyin kuvauskieli muutaman vuoden kuluttua.

1. Johdanto

XML (extensive markup language) kehittäminen alkoi tarpeesta parantaa WWW (World wide web) sivujen kuvauksessa käytettävän HTML (Hypertext markup language) puutteita. Samalla XML:n tuli olla helposti opittavaa ja spesifikaaatio haluttiin pitää suppeana. XML pohjaa julkaisuteollisuudessa käytettyyn dokumenttien esityskieleen SGML:n (Standard generalized markup language). SGML on kansainvälinen standardi vuodelta 1986 se kehitettiin jotta dokumentin julkaisu saataisiin laitteistoriippumattomaksi. SGML:ssä on monimutkaisia ja vähän käytettyjä piirteitä jotka eivät sovi verkkojulkaisuun. XML:ssä onkin näitä piirteitä karsittu. XML standardissa määritellään millaisia XML-dokumenttien tulisi olla ja lisäksi hieman XML-parseria. Parseri on ohjelma joka lukee XML-dokumentteja ja esittää ne sitten määrittelyn mukaan. XML:ään liittyy läheisesti muitakin standardeja: XLL (extensive linking language) jolla määritellään hyperteksti linkityksiä ja XSL (extensive style language) jka käsittelee dokumentin ulkoasuun liittyviä asioita. Yhdessä näitä kutsutaan XML-standardiperheeksi. XML tulevaisuus näyttää hyvältä suurimmat internetselain valmistajat ovat alkaneet tukea standardia. XML:n oletetaankin yleistyvän muutaman vuoden sisällä

2. XLM-Standardin taustat

2.1 Taustalla olevat standardit

XML-standardin taustalla on kaksi standardia SGML (Standard Generalized Markup Language) ja UNICODE/ISO 10646. SGML on kansainvälisen ISO-standardin 8879 vuonna 1986 määrittelemä metakieli, jolla määritellään muita kieliä[2]. Se määrittelee syntaksin merkkauskielelle, jolla voidaan kuvata ja koodata dokumentin rakenne. SGML ei määrittele dokumenttien käsittely sääntöjä, eikä niiden ulkoasua, vaan on tarkoitettu dokumenttien rakenteen merkkauksen määrittelyyn. UNICODE puolestaan on merkkien koodausjärjestelmä, joka tukee kaikkien maailman yleisimpien kielien kirjoitusmerkkejä. UNICODE on suunniteltu tukemaan eri kielillä kirjoitetun tekstin käsittelyä ja esittämistä. UNICODE on tällä hetkellä ainoa käytössä oleva järjestelmä, jossa merkin esittämiseen käytetään 16 bittiä[2].

2.2 HTML:n heikkoudet

Vaikka HTML on helppoa oppia, yksinkertaista ja universaalia on siinä lukuisia puutteita. HTML ei muunmuassa tarjoa linkkien tarkistamiseen mitään apua, vaan ylläpitäjät joutuvat tarkistamaan linkkejä, jotka esimerkikksi muuttuneen dokumentin nimen johdosta eivät enää toimi. HTML:n syntaksia ei voi myöskään automaattisesti tarkistaa, vaan selaimet pyrkivät jättämään virheeliset kohdat pois. Koska HTML dokumentit ovat hierarkiselta rakenteeltaan yksitasoisia ei hakuja voi kohdistaa tarkkaan, eikä dokumentin sisällä voi navikoida kuin dokumentin laatian ehdoilla. HTML dokumenttia ei voi myöskään dynaamisesti päivittää ilman dokumentin uudelleen kirjoittamista serverille, jossa se on. HTML ei myöskään tue kansainvälisiä erikoismerkkejä. Koska HTML sisältää näin paljon puutteita on selvää, että sen tilalle tarvitaan uusi kuvauskieli, joka tukee myös yllämainittuja asioita. XML on tarkoitettu olemaan tämä kieli.

3. XML standardiperhe

3.1 XML standardi, tavoitteet ja lähtökohdat

XML standardi (Bray, Paoli & Sperberg-McQueen, 1997) on kehitetty SGML standardin pohjalta. SGML:ssä on ominaisuuksia joita haluttiin verkkokäyttöön vanha HTML ei näitä ominaisuuksia tukenut. Esim. Tiedon uudelleenkäytettävyys eri yhteyksissä on hyödyllistä. Lisäksi XML mahdollistaa integraation perinteisen julkaisun ja verkkojulkaisun välillä. SGML dokumentista on helppo tehdä konversio XML formaattiin [1]. SGML kokonaisuutena ei kuitenkaan sovi verkkojulkaisuun jossa julkaisijoina toimivat usein tavalliset ihmiset, eivät alan ammattilaiset. XML:ssä onkin SGML:n raskaimpia ja ammattimaisimpia piirteitä karsittu. XML standardin yksityiskohtaiset tavoitteet ovat:

1.XML:ää pitää pystyä käyttämään Internetissä;
2.XML:n on oltava laite- ja ohjelmistoriippumaton niin, että monet erilaiset sovellukset voivat sitä hyödyntää;
3.Yhteensopivuus SGML:n kanssa;
4.XML:ää käsittelevien ohjelmien kirjoittamisen on oltava helppoa;
5.XML-dokumenttien on oltava sellaisia, että mikä tahansa XML-prosessori osaa käsitellä niitä eli dokumenttien käsittelyyn vaikuttavia piirteitä on rajoitetusti;
6.XML-dokumenttien tulisi olla luettavia ja selkeitä;
7.XML-määrityksen pitäisi valmistua nopeasti;
8.XML-määrityksen suunnittelun on oltava tarkkaa ja huolellista;
9.XML-dokumenttien tekemisen on oltava helppoa;
10.XML:n määrittelykielen mukaiset tunnisteet saavat olla pitkiä. [1]

3.2 XLL linkkistandardi

Linkki on dokumentin eri osia tai dokumentteja yhdistävä viittaus. Nykyisin HTML määrittelee vain yhdensuuntaisia linkkejä. XLL:n avulla saadaan käyttöön monipuolisia kaksisuuntaisia linkkejä, jotka ovat mahdollisesti tyypitettyjä. Myös linkkien käyttäytyminen voidaan määritellä. XLL linkkistandardi perustuu kolmelle muulle standardille: URL, TEI, HyTime. [1]

3.2.1 URL (Uniform resource locator)

URL on internetissä yleisesti käytetty standardi jolla voidaan määritellä resurssin osoite verkossa. jos XML dokumentti sisältää HREF(viittaus) kentässään URL:n niin on kyseessä viitaus jollekin toiselle koneelle.

3.2.2 TEI (text encoding initiative)

TEI on kansainvälinen hanke tekstin elektronisen esittämisen kehittämiseksi. Se tukee erityisesti normaalia tekstiä kuten romaaneja, erikoismerkit jäävät vähemmälle huomiolle. XML hyödyntää TEI:tä niiltä osin jotka liittyvät rakenteisen dokumentin eri osien linkityksessä. TEI:n ns. XPointerin avulla voidaan tekstiin tehdä sekä absoluuttisia että suhteellisia linkityksiä. Viittaukset tapahtuvat erityisten avainsanojen avulla. Avainsanoja ovat esim. CHILD, ROOT, HERE, CHAP ...

3.2.3 HyTime (Hypermedia/Time-based Structuring Language)

XLL standardi ei itseasiassa vielä käytä HyTime standardia, mutta se on kuitenkin mainittu. HyTime liittää dokumentteihin aikakriittisiä toimintoja. Tulevaisuudessa Internet II tulee tarjoamaan esim. QoS (Quality of service) ja muita reaaliaikaisuuteen liittyviä palveluja käyttäjilleen. Todennäköisesti Hytime liittetään XLL standardiin on Internet II tuloa laajempaan käyttöön.

3.3 XSL-tyylistandardi

XSL-tyylistandardi määrittelee esitysmuodon XML-dokumentin elementteille. Standardia suunnitellaan sopivaksi erityisesti verkkojulkaisuun. XSL:n kehityksen tavoite on tuottaa erityinen tyylikieli verkossa esitettävien dokumenttien ulkoasun määrittelemiseksi. XSL on upotettuna XML:ään, XML siis sisältää XSL-tyylimäärityksiä. XSL:n avulla voidaan dokumenteissa käyttää hienostuneita tekstin muotoilumäärityksiä ilman että tarvitsee osata mitään erityistä ohjelmointikieltä. Lisäominaisuutana on että XSL:n avulla käyttäjät voivat laajentaa XSL:ää eli liittää siihen omia tyylimäärityksiään, jotka sopivat heidän yksilöllisiin tarpeisiinsa. Kuten koko XML:n niin myös XSL:n tavoitteena on että tyylikieli täytyy olla helppoa ja selkeästi luettavaa.

XSL-tyylistandardi perustuu lähinnä SGML-dokumenttien esittämiseen tarkoitettuun tyylikieleen DSSSL:ään (Document Style Semantics and Specification Language) (ISO/IEC 1996; ks. myös DSSSL Online 1996; Prescod 1997), HTML-dokumenttien esittämiseen kehitettyyn CSS-kieleen (Cascading Style Sheets) ja erityisesti CSS:n laajennuksiin (Lie, 1997; Stevahn, 1997; Lie & Bos, 1996; ). CSS-tyylikieli on riittävä määrittämään yksinkertaisten XML-dokumenttien ulkoasun. Vaativampiin rakenteisten dokumenttien muunnos- ja muotoilutehtäviin käytetään XSL-tyylikieltä. (A Proposal, 1997). [1]

XSL-tyylistandardi yhdistää hyvät puolet DSSSL:stä ja CSS:stä. DSSSL mahdollistaa rakenteisten dokumenttien muotoilun. Kuten SGML yleensä on DSSSL myös liian monimutkainen ja vaikea sopiakseen yleiseen käyttöön verkkojulkaisussa. XSL:ään integroitaessa sitä onkin karsittu. CSS-kieli on taas tarkoitettu näytöllä esitettävien dokumenttien ulkoasun määrittelyyn. Siinä onkin perusominaisuuksina elektronisen julkaisun erityispiirteitä kuten vierityspalkit ja linkit. CSS kehitettiin lähinnä HTML-dokumenttien esittämistä varten. XSL-tyylistandardi tukee CSS:ää joten XML -ja HTML-dokumentit ovat yhteensopivia. Tämä helpotaa paljon XML:n käyttöönottoa.

Millaisia ominaisuuksia CSS ja DSSSL tuovat dokumenttien ulkoasun määrittelyyn? CSS:ssä on 35 dokumentin muotoilupiirrettä, jotka on ryhmitelty viideksi kokonaisuudeksi (kirjasin, väri ja tausta, teksti, laatikko, luokittelu). Sillä voidaan määritellä tarkasti sivujen ulkoasu elementtien sijoittelun ja visuaalisuuden osalta. Muotoilupiirteet voivat periytyä elementeissä vanhemmalta lapselle. Erilaisia tyylimäärityksiä (dokumentin tuottajan, käyttäjän) voi yhdistää niin että mahdolliset yhteentörmäykset erilaisten tyylimääritysten välillä voidaan välttää. CSS:n kyselykieli on alkeellinen. Kyselyssä elementit etsitään käsittelyä varten ainoastaan niitä edeltävien elementtien avulla. CSS-tyylikielellä voidaan vaikuttaa myös tulostamiseen siten että sivun vaihto, tulostettava alue dokumentista sekä se, mikä alue dokumentista tulostetaan milläkin medialla, määritellään tyyleillä. CSS-tyylikieli saadaan käyttöön viittaamalla suoraan tyylimäärityksiin varsinaisesta dokumentista joko LINK- tai STYLE-elementin avulla. (Lie, 1997; Stevahn, 1997; Lie & Bos, 1996; ). [1]

DSSSL on monipuolinen dokumenttien esitysmuodon standardoitu määrittelykieli. Kaksi sen yleisimpää dokumenttien käsittelytapaa ovat muunnos- ja muotoilukäsittelyt. Näiden lisäksi se määrittelee dokumenttien rakenteeseen kohdistuvan kyselykielen, jolla voidaan tehdä kyselyjä ja hakuja dokumenttiin elementtien käsittelyä varten. Muunnoskäsittelyt tehdään muunnoskielen avulla. Dokumentit noudattavat muunnoskäsittelyn jälkeen jotain toista rakennemäärittelyä kuin mitä alkuperäinen dokumentti noudatti. Muunnoskäsittelyjä käytetään mm. dokumenttien yhdistämiseen, indeksien ja sisällysluetteloiden luomiseen sekä muihin vastaaviin prosesseihin, joissa hyödynnetään dokumenttien rakenteisesti tallennettua tietoa. Osa muunnoskäsittelyn tehtävistä voidaan tehdä muotoilukäsittelyssä tyylikielellä, esim. sisällysluettelot. Tyylikieli kuvaa, kuinka dokumentti muotoillaan, eli sillä määritellään esitysmuoto. DSSSL:ssä on 300 muotoilupiirrettä ja 70 muotoiluluokkaa. Luokkia on mahdollisuus muotoilla tai määrittää omia muotoiluluokkia ja -piirteitä. Muotoilupiirteet periytyvät vanhemmalta lapselle. Erilaisia tyylimäärityksiä on myös mahdollisuus yhdistää. Tyylimääritykset tehdään erillään varsinaisesta dokumentista. Ne liitetään dokumenttiin viittaamalla dokumentin rakennemäärittelyssä haluttuun tyylimääritykseen. (ISO/IEC 1996; ks. myös DSSSL Online 1996; Prescod 1997). [1]

XSL:ssä tekstin esitysmuoto määrätään kahden säännön avulla: construction rule (vastaa DSSSL:n muunnoskäsittelyjä) ja style rule (muotoilukäsittely). Kummatkin käskyt koostuvat kahdesta osasta, ensin määritellään kohteeksi tuleva elementti ja sitten toimenpide joka siihen kohdistetaan.

4. XLM-dokumentin rakenne

XML pohjautuu konseptiin, jonka mukaan dokumentit koostuvat joukosta objekteja. Objekti voi sisältää yhden tai useamman loogisen elementin. Jokaisella elementillä voi olla tiettyjä attribuutteja, jonka mukaan dokumenttia tulee prosessoida. XML tarjoaa muodollisen syntaksin, jonka mukaan objektien, elementtien ja attribuuttien väliset riippuvuudet voidaan kuvata ja siten rakentaa XML:n mukainen dokumentti. [2]

4.1 DTD

DTD (Document Type Definition) on rakennemäärittely, joka määrittelee dokumentin hierarkisen rakenteen. Hierarkinen rakenne koostuu elementeistä, joilla kaikilla on oma nimi, sekä näiden näiden elementtejen välisestä hierarkisesta järjestyksestä. Kuhunkin elementtiin liittyvät attribuutit määritellään DTD:ssä. Jokaisella atribuutilla on nimi ja arvo.

4.2 Looginen ja fyysinen rakenne

XML-dokumenteilla on sekä looginen, että fyysinen rakenne, joista muodostuu toimiva kokonaisuus. XML-dokumentin on oltava joko validi tai hyvin muodostettu (well-formed). Validit XML-dokumentit ovat aina myös hyvin muodostettuja. XML-prosessori tunnistaa XML-dokumenttien hierarkkisen rakenteen joko DTD:n perusteella (validit XML-dokumentit) tai elementtien alku- ja lopputunnisteiden avulla (hyvin muodostetut XML-dokumentit). Dokumentissa elementtien nimet, ja mahdolliset attribuutit erotetaan varsinaisesta dokumentista kulmasuluilla kuten SGML:ssä. Erona SGML:n syntaksiin on kuitenkin se, että XML:ssä kappaleet täytyy myös lopettaa. Tällä saavutetaan se, että elementit ovat yksiselitteisesti määriteltyjä, joka helpottaa dokumenttien automaattista käsittelyä.
4.2.1 Fyysinen rakenne
XML-dokumentin fyysinen rakenne koostuu erilaisista kokonaisuuksista, entiteeteistä, joilla kaikilla on nimi ja sisältö. Sisältönä voi olla mm. kuva tai tekstiä. Jokainen entiteetti on tallennettu itsenäisesti, ja niihin viitataa juuri- eli dokumenttientiteetissä. Entiteetit ovat määritelty dokumentin DTD:ssä. XML-prosessori aloittaa dokumentin käsittelyn juuresta ja kokoaa dokumenttiin kuuluvat entiteetit juuressa annettujen käsittelyohjeiden mukaan.
4.2.2 Hyvin muodostettu dokumentti
XML-dokumenttiin ei välttämättä tarvitse liittyä DTD:tä, tällaista dokumenttia kutsutaan hyvin muodostuneeksi (well-formed). XML-dokumentti on hyvin, jos siihen liittyy vähintään yksi elementti, ja se noudattaa kaikkia syntaksissa määriteltyjä hyvin muodostuneen dokumentin sääntöjä. Jos hyvin muodostetussa XML-dokumentissa on entiteettejä on ne määriteltävä esittelyosassa. Esittely osaa ei välttämättä sisälly XML-dokumentiin.[2]

5 Yhteenveto

Nykyään internetin aikakaudella, kun sadat miljoonat ihmiset surffailevat päivittäin internetissä tarvitaan tehokas tapa muodostaa sivuja internettiin, ja ylläpitää niitä. HTML on vielä standardi tässä asiassa, mutta koska siinä on nykymittakaavassa katsottuna paljon puutteita ei se voi sellaisenaan jatkaa www-sivujen esityskielenä enää pitkään. Ihmiset alkavat esimerkiksi vaatia sivuilta parempaa navigoitavuutta, ja sivujen parempaa ajanmukaisuutta. Tästä seuraa se ettei HTML enää riitä sivujen tekoon, vaan tarvitaan jotain uutta ja parempaa. XML:n on tarkoitus olla tätä, ja sen tulevaisuus näyttääkin hyvältä, koska Netscape on päättänyt että sen selaimen versiossa 5 on tuki XML:lle, sekä myös Internet Explorer:in versiosta 4 löytyy tuki XML:lle. Aika näyttää miten käy.

6 Lähdeluettelo

1. Anon. XML:n käyttö verkkosovelluksissa. 28.10.1998. [Viitattu 20.11.1998] http://www.jyu.fi/~sautakki/media/xml.htm.

2. Heikkila, J. & Tuomisto, J. XML vs. HTML. 1998. [viitattu 20.11.1998] http://www.tcm.hut.fi/Opinnot/Tik-111.350/esitykset/Xml/multi.htm .

Lisätietoja

http://www.w3.org/TR/NOTE-XSL-970910.
Sivu, joka sisältää ehdotuksen XML standardiksi.

http://www.xmlinfo.com/ .
XML info sivu, joka tarjoaa tietoa XML:stä ja sen käytöstä.

http://www.gca.org/conf/xml/xml_what.htm .
XML ohjelmistoja ja sovelluksia, sekä artikkeleja aiheesta.

http://www.arbortext.com/xmlwp.html .
Ammatilaisille suunnattu XML sivu.

http://sunsite.unc.edu/pub/sun-info/standards/xml/why/xmlapps.htm.
XML:ää, javaa ja webin tulevaisuutta käsittelevä artikkeli.

http://www.w3.org/TR/WD-xml-link.
XML linking language aiheinen sivu, jolla drafti XLinkistä.

http://www.w3.org/TR/PR-xml.html .
XML kehitys dokumentti.

http://www.w3.org/TR/NOTE-MCF-XML/MCF-tutorial.html.
Tutoriaali MFC:stä, joka on toteuttettu XML:nä avulla.

http://www.w3.org/TR/WD-xml-970807.
XML drafti syyskuulta 1997

http://www.w3.org/XML/ .
W3C:n XML sivu. Sivulla kerrotaan XML:ään liittyvistä tapahtumista ja julkaisuista

http://www.oasis-open.org/cover/xml.html .
SGML:ää ja XML:ää käsittelevä sivu. Sisältää linkkejä aiheesta, sekä muun muassa tietoja aihetta käsittelevistä kirjoista.

http://www.evitech.fi/~tittams/ed98/refmat/ .
XML aiheinen sivu, jolla ohjeita XML lähteille.

http://www.ifi.uio.no/~larsga/download/xml/xml_eng.html.
XML:ää ja HTML:n huonoja puolia käsittelevä artikkeli.

http://www.w3.org/TR/NOTE-XMLsubmit.html.
Web kokoilmien tekemistä XML:llä käsittelevä sivu.

http://www.w3.org/TR/WD-smil.
Dokumnetti SMIL:stä eli Synchronized Multimedia Integration Language.

http://www.ucc.ie/xml/#FAQ-GENERAL .
XML:ää perustasolla käsittelevä sivu. Käsittelee myös SGML:ää

http://www.cs.caltech.edu/~adam/papers/xml/x-marks-the-spot.html.
Internetin kuvauskielien evoluutiota käsittelevä dokumentti.

http://www.inman.com/news/9712/971202t.htm .
Ajatuksi siitä, miten XML tulee muuttamaan verkkoa.