Tyyli- ja muunnoskielet


XSL Transformations 1.0 (XSLT)

W3C Recommendation - marraskuu 1999

XSLT on XML -syntaksia noudattava muunnoskieli. Sen avulla XML-dokumenttien rakenteita voidaan muokata tai dokumentit voidaan muuntaa kokonaan toista rakennemäärittelyä noudattaviksi, esimerkiksi HTML:ksi. XSLT:tä voidaan käyttää myös muuttamaan XML-dokumentit täysin XML:stä eroavaa kieltä noudattavaksi. Esimerkiksi XML-dokumentista voidaan poistaa merkkaus, jolloin lopputuloksena saadaan puhdas tekstidokumentti, tai dokumentti voidaan tulostusta varten muuntaa noudattamaan LaTeX:n muotoilukoodeja.

XSLT ei ole täydellinen muunnos- tai ohjelmointikieli, vaan sillä on omat rajoituksensa. Näistä rajoituksista ja tämänhetkisten XSLT-sovellusten hitaudesta ja lastentaudeista huolimatta XSLT on osoittautunut hyvin suosituksi ja monipuoliseksi teknologiaksi. Mielestäni XSLT:hen kannattaa ehdottomasti tutustua - katso linkkisivulta viitteitä määrittelyä helpommin ymmärrettäviin teksteihin.

XSLT käyttää XPath -kieltä mm. käsiteltävien elementtien valitsemiseen ja valintaehtoihin. Aivan yksinkertaisiin muunnoksiin XPathin osaamista ei tarvita mutta käytännössä XSLT ja XPath kulkevat niin tiukasti yhdessä, että jälkimmäisen osaaminen on pakollista.

Alunperin XSLT oli osa XSL-ehdotusta ja se on suunniteltu XSL -muotoilukielen (XSL-FO) tarpeiden pohjalta. Osaksi tästä johtuen usein puhutaan pelkästä XSL:stä riippumatta siitä tarkoitetaanko sekä XSL-FO:ta että XSLT:tä vaiko vain jompaa kumpaa niistä. Suosittelen käytettäväksi XSLT-nimeä XSL:n sijaan silloin kuin todellakin puhutaan vain muunnoskielestä ilman tyyliominaisuuksia - keskustelu ja ennen kaikkea avunanto tulee paljon helpommaksi.

Kenelle tarkoitettu: Niille, jotka joko haluavat muuntaa XML-dokumenttinsa johonkin toiseen muotoon tai haluavat käyttää XSL-FO-tyylisääntöjä.

Määrittely:XSL Transformations (XSLT)

Muita läheisiä määrittelyjä:XSL , XPath , TRaX , DSSSL , Omnimark

Linkkejä: katso linkkisivu


Extensible Stylesheet Language 1.0 (XSL tai XSL-FO)

W3C Candidate Recommendation - marraskuu 2000

XSL on muotoilukieli, jolla voidaan kuvata XML-dokumentin ulkoasu. XSL:n avulla määritellään fontit, marginaalit, listat, otsikoiden muodot, sivunumeroinnit, jne. XSL:llä voidaan tehdä myös monimutkaisempia ulkoasuun liittyviä asioita kuten alaviitteitä, sarakkeita tai taulukoita. XSL noudattaa XML -syntaksia sekä käyttää epäsuorasti hyödykseen CSS :ssä määriteltyjä ominaisuuksia.

Tällä hetkellä XSL on vielä aika lailla kesken, eikä sitä hyödyntäviä sovelluksia ole kuin muutama. Jo nyt alkaa kuitenkin vaikuttaa siltä, ettei XSL täytä vaativampien käyttäjien toiveita - XSL:stä ei taideta saada täysiveristä korvaajaa esimerkiksi LaTeX:lle. XSL:ään voi muutenkin suhtautua varauksella, sillä se on saanut osakseen kovaa kritiikkiä erityisesti CSS:n kannattajilta. Kritiikistä ja epäilyistä huolimatta XSL on kohtuullisen käyttökelpoinen teknologia, vaikka se ei kykenekään täyttämään kaikkia siihen kohdistettuja odotuksia.

XSL on kokonaisuudessaan iso ja varsin vaikealukuinen määrittely. Suosittelen mieluummin lukemaan jonkin aihetta käsittelevän oppaan kuin itse määrittelyä. Mutta pitäkää varanne: suurin osa tällä hetkellä saatavissa olevista oppaista käsittelee vanhempia XSL:n versioita ja niistä on hyvin vähän hyötyä määrittelyn uudempia versioita luettaessa!

Usein XSL ja XSLT sekoitetaan keskenään mutta tässä on oltava varovainen; vaikka määrittelyt kuuluvat yhteen eivät ne silti tarkoita samaa asiaa. XSL muodostuu kahdesta osasta: XSLT:stä ja XSL-FO:sta. XSLT:ä käytetään muuntamaan alkuperäinen dokumentti uudeksi XML- dokumentiksi, johon on lisätty XSL-FO:n muotoilukomennot. Tästä uudesta dokumentista voidaan sitten asemointisovelluksen avulla tuottaa esimerkiksi tulostettavaksi tarkoitettu PDF-dokumentti.

Kenelle tarkoitettu: Niille, joilla on tarvetta tuottaa XML-dokumentteja luettavassa muodossa joko paperille tai sähköiseen muotoon (kuten PDF:ksi)

Määrittely:Extensible Stylesheet Language (XSL)

Muita läheisiä määrittelyjä:XSLT , XPath , CSS , DSSSL , FOSI


Cascading Style Sheets, Level 2 (CSS)

W3C Recommendation - toukokuu 1998

CSS on XSL :n ohella toinen tyylikieli, jota voidaan käyttää XML-dokumenttien ulkoasun kuvaamiseen. Oikeastaan CSS on kaksi määritelyä: CSS1 ja sen päälle rakentuva CSS2. Koska CSS1 sopii vain HTML-sivujen ulkoasun kuvaamiseen ja vasta CSS2 soveltuu HTML:n lisäksi myös XML-dokumenteille, jätän CSS1:n sen kummemmin esittelemättä.

Perinteiset ulkoasun kuvaamiseen liittyvät seikat, kuten fontit, marginaalit, listat ja taulukot onnistuvat CSS:n avulla. Lisäksi sillä voidaan tehdä esimerkiksi automaattisia numerointeja sekä tyylisäännöt erilaisille sovelluksille tai laitteille. CSS:n silmiinpistävimpiä piirteitä on sen syntaksi, joka ei lainkaan ole sukua XML :lle. '<'- ja '>'-merkkeihin tottuneesta se saattaa aluksi vaikuttaa hankalalta, mutta ei kannata antaa ensivaikutelman hämätä. CSS on suurimmaksi osaksi varsin yksinkertainen kieli, jonka avulla on helppo tehdä testejä ja kokeiluja.

CSS on XSL:n kilpailija ja kummallakin kielellä voidaan tehdä paljolti samankaltaisia asioita. XSL:ään nähden CSS:n suurin haitta on muunnosominaisuuksien puute. CSS:ssä voidaan piilottaa elementtejä, mutta sen avulla ei voi muuttaa dokumentin rakennetta - piilotettu elementti on edelleen olemassa, vaikka se ei näykään käyttäjälle. Toisaalta CSS-sääntöjä voidaan helposti muunnella dynaamisesti esimerkiksi DOM2 -rajapinnan läpi ja DOM:a hyödyntämällä voidaan saadaan aikaan vastaavia muunnoksia kuin XSL:llä.

Valinta CSS:n ja XSL:n välillä riippuu lähinnä käytettävistä sovelluksista - tosin kummatkin ovat vielä surkeasti tuettuja (vasta tulossa olevat XML-kykyiset selaimet kuten Mozilla tai Opera 4.0 sisältävät käyttökelpoisen CSS-tuen). Itse käyttäisin XML- dokumenttien paperi/PDF-tulostuksiin XSL:ää ja samojen dokumenttien esittämiseen selaimissa tai muissa sovelluksissa CSS:ää.

Kenelle tarkoitettu: Niille, jotka haluavat näyttää XML-dokumenttinsa esimerkiksi selaimissa.

Määrittely:Cascading Style Sheets, Level 2

Muita läheisiä määrittelyjä:XSL , DSSSL


Muita tyyli- ja muunnoskieliä


Sivua on edellisen kerran päivitetty: 23.01.2001
Kommentteja voi lähettää Henri Ruinille osoitteeseen ruini@cs.helsinki.fi