Extensible Stylesheet Language (XSL)

Samankaltaiset tiedostot
XML kielioppi. Elementtien ja attribuuttien määrittely. Ctl230: Luentokalvot Miro Lehtonen

XSL Formatting Objects

Helsingin yliopisto/tktl XML-metakieli XSLT XSL - extensible stylesheet language XSLT

9.16 XSLT ja nimiavaruudet (1/3): literaali oletusnimiavaruus

XSLT - ohjelmoinnin perusteet. Jaana Holvikivi Metropolia

XSL-muunnokset. 9 XSL-muunnokset

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002

XML-merkkaus. Merkkidata, prosessointikomennot, kommentit

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

XML rakenteen suunnittelu. Jaana Holvikivi

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

Ensimmäiset XPath-lausekkeet

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Digitaalisen median tekniikat. JSP ja XML

Hohde Consulting 2004

XML - perusteet. Ctl230: Luentokalvot Miro Lehtonen

6 XML-työkalut 1. 6 XML-työkalut

XML / DTD / FOP -opas Internal

Vaasan yliopiston toimintaa tukevat informaatiopalvelut ovat käytettävissä WWW:n kautta.

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

XML-datan kysely. Topi Sarkkinen. Seminaarityö. Helsinki HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

XML, XHTML ja CSS. T Hypermediadokumentin laatiminen. Mikko Pohja

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

Helsingin yliopisto/tktl XML-metakieli XSL-FO XSL - extensible stylesheet language XSL-FO

Web-teknologiat. XML-datan kysely Topi Sarkkinen

Interfacing Product Data Management System

Johdatus rakenteisiin dokumentteihin

Johdatus XML teknologioihin

XML johdanto, uusimmat standardit ja kehitys

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

Sosiaalihuollon asiakirjastandardi kehittyy. Konstantin Hyppönen Erikoissuunnittelija Tietojenkäsittelytieteen laitos Kuopion yliopisto

XML johdatus: DTD. Jaana Holvikivi

Johdatusta selainohjelmointiin

HTML5 -elementit jatkuu

Helsingin yliopisto/tktl XML-metakieli XPath

XSL-muunnokset. 9 XSL-muunnokset

Helsingin yliopisto/tktl XML-metakieli XSL-FO XSL-FO. XSL-FO sivut

8 XSLT-muunnoskieli XSLT-muunnoskieli

è è è XSL-muunnokset 9 XSL-muunnokset

3 Verkkosaavutettavuuden tekniset perusteet

XML Technologies and Applications - harjoitustyö -

Helsingin yliopisto Tietojenkäsittelytieteen laitos XML-metakieli

XSLT - ohjelmaesimerkkejä. Jaana Holvikivi Metropolia

XML & CSS. WWW-sovellus??

Muotoilutoliot. XSL:n muotoiluoliot. Muotoiluolio. Muotoilualueet. Lohkoalueiden sijoittelu. Muotoilualueiden sijoittelu. Rivialueiden ominaisuuksia

Hohde Consulting 2004

CSS - tyylit Seppo Räsänen

Digitaalisen median tekniikat css tyylimääritykset

M. Merikanto 2012 XML. Merkkauskieli, osa 2

XQuery tietokannan kyselykielenä

Hohde Consulting 2004

TIEDEJUTTUKURSSI FM VILLE SALMINEN

Luento 7: XML-ohjelmointirajapinnat

TYYLIT. Word Tyylit

Proseduraalinen dokumentti: sisältö, rakenne ja ulkoasu yhdessä, esim. worddokumentti

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus

Digitaalisen median tekniikat css tyylimääritykset

Cascading Style Sheets

6 DTD ja dokumentin tyyppimääritys

XML merkintäkielten perusteet. Luento 2 - XSLT Pekka Aarnio

Helsingin yliopisto Tietojenkäsittelytieteen laitos XML-metakieli

Luento 4: XPath ja XLink

Helsingin yliopisto/tktl XML-metakieli k2013 CSS XML-dokumenttien käsittely. XML-dokumenttien käsittely

3 Verkkosaavutettavuuden tekniset perusteet

Digitaalisen median tekniikat css tyylimääritykset Harri Laine 1

Digitaalisen median tekniikat. Luento 3: CSS

StanForD-XML. Juha-Antti Sorsa, Tapio Räsänen, Vesa Imponen

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

T Hypermediadokumentin laatiminen. Sisältö. Tavoitteet. Mitä on www-ohjelmointi? Arkkitehtuuri (yleisesti) Interaktiivisuuden keinot

WORD TYYLILLÄ. Tietohallintokeskus Miksi tyylit? Tyylien lisääminen: joko jälkikäteen tai etukäteen

CSE-A1200 Tietokannat

Digitaalisen median tekniikat Harri Laine 1

Ylläpitodokumentti. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Helsingin yliopisto/tktl XML-metakieli CSS XML-dokumenttien käsittely. XML-dokumenttien käsittely

6 DTD ja dokumentin tyyppimääritys

W3C, Web-teknologiat ja XML

SISÄLLYS. Johdanto JOHDATUS XML:n PARIIN 1.1 Extensible Markup Languge XML:n edut Mitä XML:llä tehdään? 3


XHTML - harjoitus. Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa. Tiedoston tallennus notepad (muistio) ohjelmassa:

P e d a c o d e ohjelmointikoulutus verkossa

Luento 3: Tietorakenteiden esittäminen

ez Publish ja Toolbar yleisohjeet

valitsin on useimmiten html-elementti, jolle tyyli halutaan luoda

6 DTD ja dokumentin tyyppimääritys

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke

Tutkija Mikko Salmenperä. huone: sd109. TTY / Systeemitekniikan laitos. puh: mikko.salmenpera@tut.fi

in condition monitoring

Code Camp for Girls. Sanna Nygård. Lokakuussa

9 XML perusteet

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015

Tuomas Komulainen LUOVA LOMAKE ANALYSOINTITYÖKALU

4 Johdanto XML-maailmaan

Ulkoasun muokkaus CSS-tiedostossa

HTML ja CSS. Tästä se lähtee: portfolio-sivusto. Sivuston pääkansio, jonka sisällä on kaikki sivustoon kuuluvat alikansiot ja tiedostot.

Verkkosivut perinteisesti. Tanja Välisalo

Helsingin yliopisto Tietojenkäsittelytieteen laitos XML-metakieli (2011) Harri Laine 1. Jäsennys ja sarjallistaminen

Microsoft Visual Studio 2005

Tekstinkäsittelyn jatko. KSAO Liiketalous 1

Digitaalisen median tekniikat, s2007 HY/TKTL. Harri Laine 1. Kurssin sisällöstä. Digitaalisen median tekniikat. Kurssin sisällöstä

Transkriptio:

Extensible Stylesheet Language (XSL) Tyylitiedostojen määrittely Ctl230:Luentokalvot 25.10.2004 Miro Lehtonen

Johdanto Dokumenttien muotoilu tyylitiedostoilla 3XML: yleistetty merkkaus Kuvaa sisällön muttei esitystapaa 3Muotoilun määritys erillään 3Tyylitiedostot Muotoilusäännöt kullekin elementille Kirjasintyyppi, koko, tyyli, kappaleiden välit Numerointi, vakiotekstit, sivutus Useita muotoiluvaihtoehtoja samalle dokumentille

Erilaisia tyylitiedostoja Tyylitiedostojen määrittelykieliä 3 SGML-tyylit Virallinen SGML-tyylikieli DSSSL Cascading Style Sheets (CSS) Sovellusohjelmien omat kielet, esim. Framemaker 3XML-dokumenttien muotoilu CSS Extensible Stylesheet Language (XSL) Sovelluskohtaiset ratkaisut

XSL-standardiperhe Alunperin yksi, nykyään kolme 3XSL Transformations (XSLT) http://www.w3.org/tr/xslt 3XML Path Language (XPath) http://www.w3.org/tr/xpath Myös osa Xlink- ja XQuery-standardeja 3XSL Formatting Objects (XSL-FO) http://www.w3.org/tr/xsl

XSL-tyylinmäärittely Ulkoasun määrittely 3Dokumenteilla XML-kielioppi xmlns:fo= http://www.w3.org/1999/xsl/format 3Esitystavan mallintaminen?! <fo:block>tämä on <fo:wrapper style= bold >XSL</fo:wrapper>dokumentti.</fo:block> Tämä on XSL-dokumentti. <p>tämä on <b>html</b>-dokumentti.</p> Tämä on HTML-dokumentti.

XSLT - transformaatiot 1 Muunnoskieli XML-dokumenteille 3XML-dokumenttien formaatin muunnos XML Ù HTML XML Ù XHTML XML Ù XML (mm. xsl-dokumentit) XML Ù PDF (epäsuorasti) 3XML-dokumenttien muotoilu selaimia varten 3Esim hello.xsl

XSLT - transformaatiot 2 XML-syntaksin edut 3 XML-kielioppi xmlns:xsl= http://www.w3.org/1999/xsl/transform 3Validointi XML-työkaluilla 3Suunnittelua voi opastaa (XML-editorit) 3Talletus XML-varastoon Elementtitason versionhallinta 3Automaattisesti luotavat XSL-dokumentit XSL lukee ja kirjoittaa XSL:ää

XPath XML-dokumentin sisällön paikantaminen 3Käyttötapauksia Dokumentin osien tunnistaminen Binääriarvoiset testit Numeerinen laskenta Merkkijonojen muokkaus 3 Xpath-kielioppi Perustuu XML-dokumentin loogiseen rakenteeseen Dokumenttipuun polut

XSL & XSLT & Xpath Yhteiskäyttö 3Kaikissa muunnoksissa XSLT ja XPath 3XML-dokumenttien muunnos XSL-muotoon: <xsl:template match= Chapter//Paragraph[@class= Important ] > <fo:block font-style= bold > <xsl:apply-templates/> </fo:block> </xsl:template> 3 XSL arkikielessä XSL-standardi, XSLT-standardi, molemmat sekä Xpath 3 XSL-tyylitiedosto?

XSLT & XPath Voidaanko edes erottaa? 3XSLT:n ja XPointerin päällekkäiset osat: XPath 3Muuttujat XSLT: arvon sijotus XPath: muuttujan arvon käyttö 3Funktiot Molemmissa spesifikaatioissa määrittelyjä XSLT: key() XPath: string-length()

XSL & CSS Tarvitaanko kahta tyylinmäärittelykieltä? 3CSS sopii XML-tyylinmäärittelykieleksi Yksinkertainen kirjoittaa Ei dokumentin osien uudelleen järjestämistä Ei dokumenttipuuta muistissa Selain muotoilee elementti kerrallaan Näytetään sitä mukaa kun luetaan 3XSL (XSLT+XSL-FO) Monimutkaiset muotoiluoperaatiot Usein palvelimella tapahtuva prosessointi

XSLT & SQL Analogia pinnan alla 3Paljon yhteistä Datan valinta: SELECT - XPath Kyselyoperaatiot, perusaritmetiikka, vertailu- ja merkkijono-operaatiot Voidaan turvautua perinteisiin ohjelmointikieliin Sulkeuma-ominaisuus Syöte- ja tulosdatan formaatit samoja: taulut - puut 3Mitä on tietokanta ilman SQL:ää? XML ilman XSLT:tä?

XSL- ja XSLT-prosessorit Erikoistuneet XML-prosessorit 3XSLT-dokumentin yhdistäminen XML-dataan Muunnokset mm. HTML- ja XSL-dokumentiksi Kolmen puun käsittely 3Julkaisu XSL-prosessori: XSL PDF, XSL text Internet-selain: HTML www-sivu 3Useita toteutuksia saatavilla Saxon Java, Xalan-Java, Xalan-C++, Microsoft MSXML3, MSXML4

XSLT-ohjelmointi Peruselementit

<xsl:template> Muunnossäännöt 3XSL-dokumentissa vähintään yksi, ei ylärajaa 3Syötedokumentin elementti valitsee korkeintaan yhden match-attribuutti 3Sisältää tulosmuodon määrittelyn <xsl:template match= section > <html:div class= section > <xsl:apply-templates/> </html:div> </xsl:template>

Muunnossäännön valinta match-attribuutin arvo 3match= / Dokumentin juurisolmu 3 match= section Nykyisen solmun kaikki lapsielementit, joiden nimi on section 3Nykyinen solmu (current node) XSLT-prosessorin valitsemasta solmusta tulee nykyinen solmu Eri muunnossäännöillä eri nykyiset solmut

Solmujen oletuskäsittely Oletetut säännöt (implied template) 3Ensimmäisen käsitellään juurielementti 3Jos mitkään tarkemmat säännöt eivät sovellu: <xsl:template match= * / ><xsl:apply-templates/></xsl:template> 3Voidaan määritellä myös eri tavoilla, esim: <xsl:template match= * / ><!-- tätä ei näytetä --></xsl:template>

<xsl:apply-templates/> Lapsisolmujen prosessointi 3Nykyisen solmun lapsisolmuja ei käsitellä, ellei erikseen määritellä <xsl:apply-templates/> <xsl:apply-templates select= * /> 3Myös elementit, joissa vain tekstisisältöä 3Sisällön piilottaminen: 3Esim. books.xsl <xsl:template match= title > <xsl:apply-templates/> </xsl:template> <xsl:template match= comment />

<xsl:apply-templates/> Solmujoukon valinta: select-attribuutti 3Attribuutin arvona solmujoukko (node-set) 3Myös absoluuttinen viittaus on mahdollinen <xsl:apply-templates select= /juuri//kohde /> 3Valikoiva ja toistuva käsittely 3Käsittelyjärjestyksen määrääminen 3Esim: poem.xsl

Tekstisolmut Elementtisolmujen lapsisolmut 3Tekstiin viittaus: solmutesti text() Tekstisolmuilla ei ole nimiä 3Attribuutteihin viittaus: @attribuutin_nimi 3Oletussääntö sisäänrakennettuna XSLTprosessoriin: <xsl:template match= text() @* > <xsl:value-of select=. /> </xsl:template>

Uuden tekstin lisääminen Sekä uusi merkkaus että teksti 3Tekstin lisäys sisältöä ennen ja/tai sen jälkeen 3Tunnisteiden lisäys Hyvinmuodostuneisuuden säilyttävä <xsl:template match= chapter > <!-- ennen sisältöä --> <xsl:apply-templates/> <!-- sisällön jälkeen --> </xsl:template> <xsl:template match= huomautus > HUOM! <xsl:apply-templates/> </xsl:template> <xsl:template match= huomautus > <xsl:text>huom! </xsl:text> <xsl:apply-templates/> </xsl:template>

<xsl:value-of select=.. /> Elementtien ja attribuuttien merkkijonoarvot 3Tyhjä elementti, pakollinen attribuutti: select 3Nykyisen elementin arvo <xsl:value-of select=. /> 3Lapsielementin arvo <xsl:value-of select= lapsielementti /> 3Attribuutin arvo <xsl:value-of select= @attribuutin_nimi />

Tyylitiedostot Rakenne, käyttö, whitespace, tulostus

Tyylitiedostot Muunnossääntökokoelma 3Tyylin valinta Sisäinen tyylinmäärittely (upotettu XSLT) Ulkoiset tyylitiedostot 3Viittaus ulkoiseen tyylitiedostoon <?xml-stylesheet type= text/xml href= tyyli.xsl?> Useat viittaukset sallittuja 3Viittaus ohjelmallisesti, komentoriviesimerkki: XSLTProsessori omatyyli.xsl omadoc.xml tulos.xml

<?xml-stylesheet?> Prosessointikomennon tulkinta 3Pakolliset pseudo-attribuutit: href ja type W3C: type= text/xml tai type= application/xml Microsoft IE5: type= text/xsl 3Valinnaiset pseudo-attribuutit title= tyylitiedoston_nimi media= print tms. (HTML 4.0) charset= iso-8859-15 - määritelty myös XMLdokumentissa alternate= no - ensisijainen tyylitiedosto alternate= yes - vaihtoehtoinen tyylitiedosto

<xsl:stylesheet> Tyylitiedoston juurielementti 3Pakollinen attribuutti: version= 1.0 Prosessori validoi vain nykyisen ja aikaisemmat versiot Eteenpäin yhteensopivuus 3Oletusarvoinen attribuutti xmlns:xsl="http://www.w3.org/1999/xsl/transform" 3Synonyymi <xsl:transform>

Modulaariset tyylitiedostot 1 Muunnossääntöjen uusiokäyttö 3Eri tyylitiedostojen yhteiset osat erikseen Tulosformaateista riippumattomat säännöt 3<xsl:include href= tyyli.xsl /> Absoluuttinen tai suhteellinen URI 3XSLT-prosessori korvaa viittauksen tiedostolla Korvaus merkki merkiltä ennen prosessointia Ei päällekkäisiä määrittelyjä Yksi tiedosto sisällytetään korkeintaan kerran

Modulaariset tyylitiedostot 2 Edellistä laajempi yhteiskäyttö 3<xsl:import href= tyyli.xsl /> Viittaukset juurielementin ensimmäisinä lapsina 3Voi sisältää päällekkäisiä määrittelyjä Sama tiedosto voidaan sisällyttää useasti Säännöillä eri prioriteetit eri tiedostoissa Itseään ei voi sisällyttää 3XSLT-prosessori kokoaa yhdeksi tyylitiedostoksi

Upotetut tyylitiedostot Sisäinen XSLT 3Vain standalone-dokumenteissa Yhden tiedoston lataaminen kahden sijaan 3Ei tuettu kaikissa XSLT-prosessoreissa <?xml-stylesheet type= text/xml href= #omatyyli?> <kirja> <xsl:stylesheet xmlns:xsl=... version= 1.0 id= omatyyli > <xsl:template match= xsl:stylesheet /> <!-- ei tulosteta XSL-osaa -->... </xsl:stylesheet> <otsikko>...</otsikko>... </kirja>

Whitespace-merkkien hallinta 1 Ylimmän tason elementit 3<xsl:strip-space elements= * /> 3<xsl:preserve-space elements= runo taulukko /> 3Pakollisen attribuutin arvona lista elementinnimiä 3 Oletusmäärittely <xsl:preserve-space elements= * /> 3Koskee tekstisolmuja, jotka koostuvat ainoastaan whitespace-merkeistä

Whitespace-merkkien hallinta 2 Mitä jää jäljelle? Mitä voidaan säilyttää? 3Joskus molemmat pätevät Prioriteettien mukaan joko säilytetään tai riisutaan Ei kuitenkaan kumoa xml:space-attribuutin arvoa 3Jotkut XML-jäsentimet riisuvat automaattisesti Ei saada takaisin 3Whitespace-merkkien riisuminen Poisto dokumenttipuusta Ei voida kopioida eikä laskea numeroitaessa solmuja 3Sopii elementeille ilman #PCDATA-sisältöä

<xsl:text> </xsl:text> Whitespace-merkit XSL-dokumentissa 3Vain muunnossäännön sisällä 3Vain tekstisisältöä <xsl:template match= nimi > [ <xsl:value-of select=. /> ] </xsl:template> <xsl:template match= nimi > <xsl:text/>[ <xsl:value-of select=. /> ]<xsl:text/> </xsl:template> <xsl:template match= nimi > <xsl:value-of select= etunimi /> <xsl:text> </xsl:text> <xsl:value-of select= sukunimi /> </xsl:template>

Tulosformaatit Ylimmän tason elementti <xsl:output /> <xsl:output method= xml version= 1.0 encoding= iso-8859-1 omit-xml-declaration= yes standalone= no doctype-public= omadtd//fi doctype-system= omadtd.dtd cdata-section-elements= code script indent= yes media-type= text/xml /> Muita mahdollisia arvoja html, text Tulosformaatin versio Merkkikoodaus Tulostetaanko <?xml version...?> Standalone-attribuutti ja sen arvo PUBLIC ID SYSTEM ID Näiden elementtien tekstisisältö tulostetaan CDATA-jaksoina Tulosformaatin sisennys Tulosformaatin MIME-tyyppi

Tulosformaattina XML <xsl:output method= xml /> <!-- myös XHTML --> 3Oletusformaatti XML, paitsi jos Tulosdokumentin juurielementin nimi on HTML 3Tulosdokumentti joko hyvinmuodostettu Dokumenttientiteetti tai Ulkoinen jäsennetty entiteetti Myös nimiavaruuksien vaatimukset huomioidaan 3Erikseen ei tueta Sisäistä DTD-määrittelyä Entiteettiviittauksia

Tulosformaattina HTML <xsl:output method= html /> 3Oletuksena HTML 4.0 Elementtien nimien tunnistus 3Tyhjille elementeille vain alkutunniste 3Arvottomat attribuutit <OPTION SELECTED> 3URI-arvoiset attribuuttien erikoismerkit %HH, & 3Erikoismerkkejä ei korvata: <script>, <style>

Tulosformaattina teksti <xsl:output method= text media-type= text/plain /> 3Tekstisolmujen merkkijonoarvot kopioidaan 3Puun muita solmuja ei huomioida 3Koodaus voidaan määritellä (encoding) Erikoismerkit koodauksen mukaan, ei korvauksia 3Attribuutti media-type ei vaikuta tulosdokumenttiin Voi silti vaikuttaa esim. tiedostonimeen, tallennustapaan, HTTP-protokollan otsikoihin jne.