20.11.1998
Joni Bask, Antti Nuopponen
Ti
Teknillinen Korkeakoulu
anuoppon@cc.hut.fi
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.
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ä
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].
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.
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]
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]
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.
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 ...
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.
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.
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]
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 .
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.