Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Tekninen viestintä 12.02.2013 Ohjelmointia teknisille viestijöille.

Samankaltaiset esitykset


Esitys aiheesta: "Tekninen viestintä 12.02.2013 Ohjelmointia teknisille viestijöille."— Esityksen transkriptio:

1 Tekninen viestintä 12.02.2013 Ohjelmointia teknisille viestijöille

2 Tekninen viestintä 12.02.2013 XML:n käsittely

3 Miksi XML:ää pitäisi käsitellä? o Vaikka XML on merkintäkieli, ei kieli itsessään sisällä tageja eikä ota kantaa siihen, miten XML:n avulla talletettu tieto esitetään käyttäjälle o XML:n avulla kuka tahansa voi luoda omaan tarpeeseensa sopivan merkintäkielen o Wikipediassa yli 200 XML-sovellusta: http://en.wikipedia.org/wiki/List_of_XML_ma rkup_languages http://en.wikipedia.org/wiki/List_of_XML_ma rkup_languages

4 Materiaalin luettavuus o XML-muotoon tallennettu tieto on periaatteessa luettavaa sellaisenaan o Luettavuuden parantamiseksi tieto muunnetaan usein toiseen, luettavampaan muotoon o Koska XML ei ota kantaa sisällön muotoiluun, voidaan tieto muuntaa moneen erilaiseen muotoon - yksilähteistäminen

5 Järjestelmien vaihto o Monilla yrityksillä on käytetty omaan tarpeeseen räätälöityä XML-formaattia o Vanhoista XML-formaateista yleisiin standardeihin siirtyminen käy monesti nopeiten tiedostoja konvertoimalla

6 Materiaalin soveltaminen o Monet työkalut käyttävät XML:ää tiedon tallentamiseen o Joskus muista ohjelmistoista tulevaa tietoa täytyy hyödyntää dokumentaatiossa o Tällöin materiaali täytyy muuntaa dokumentaatioon sopivaan muotoon joko koneellisesti tai käsin

7 Miten XML:ää käsitellään o Yksi yleisimmistä tavoista käsitellä XML:ää on sen muuntaminen muodosta toiseen XSL:n avulla o Dokumenttien muuntamisessa on kolme pääelementtiä: o Valmiin dokumentin ulkoasun kuvaaminen o XML-dokumentin osien valitseminen o XML-dokumentin elementtien käsittely o Tästä johtuen XSL koostuu kolmesta kielestä

8 XSL Formatting Objects o XSL Formatting Objects (XSL-FO) on XML-pohjainen merkintäkieli, jolla kuvataan kuinka XML-dokumentti esitetään painojulkaisussa tai PDF-muodossa o XSL-FO –dokumentti sisältää CSS-tyylitiedostojen kaltaisia, elementtikohtaisia muotoiluohjeita o XSL-FO –dokumentti luodaan XSL Transformations – kielen avulla ja on usein välivaihe valmista julkaisua laadittaessa

9 XSL Formatting Objects <fo:simple-page-master master-name="A4" page-width="297mm" page-height="210mm" margin-top="1cm" margin-bottom="1cm" margin-left="1cm" margin-right="1cm"> * PC * Mac Millintarkat muotoiluohjeet, joiden perusteella esim. PFD tuotetaan Ohjeilla voidaan vaikuttaa niin marginaaleihin kuin listojen käyttäytymiseen seuraavalle sivulle siirryttäessä

10 XSL Transformations o XSL Transformations (XSLT) on XML-pohjainen kieli, jonka avulla XML-dokumentteja voi muuntaa: o toisiksi XML-dokumenteiksi o muiksi merkintäkieliksi (html, xhtml) o tekstiksi o XSLT-dokumentti sisältää ohjeet kuinka XML- dokumentti tulee muuntaa toiseksi merkintäkieleksi tai tekstiksi

11 XSL Transformations o Jotta dokumentteja voidaan muuntaa XSLT- dokumentin – XSLT-tyylitiedoston – avulla, tarvitaan XSLT-prosessori o XSLT-prosessori osaa tulkita XSLT- tyylitiedoston muokkausohjeet ja laatia niiden perusteella muunnetun dokumentin

12 XSL Transformations XML-dokumenttiXSLT-dokumentti XSLT-prosessori Muunnettu dokumentti

13 XSLT-prosessorit o XSLT-prosessoreja on sekä ilmaisia, että maksullisia o Jokainen XSLT-prosessori käsittelee kieltä hieman omalla tavallaan, joten tyylitiedostoa laadittaessa sen toimivuutta on hyvä testata muutamilla eri prosessoreilla o Oxygen XML Editor sisältää useita ilmaisia XSL- prosessoreita, joita voi kätevästi vaihdella

14 XPath o Jotta XSLT-tyylitiedosto voisi poimia osia lähdedokumentista ja muuntaa sen sisältöä muodosta toiseen, täytyy tyylitiedoston valita osia lähdedokumentista o XML-dokumentin puurakenteen osien, solmujen, merkitsemiseen ja valitsemiseen käytetään XPath-kieltä task title taskbody context p steps step cmd uicontrol step cmd info

15 Demotuokio esimerkki1.xsl: Testi-sheet esimerkki1.xml Hei Maailma!

16 XSL-tyylitiedoston laatiminen o Juurielementin xmlns-attribuutti määrittää käytettävän nimiavaruuden, http://www.w3.org/1999/XSL/Transform ja nimiavaruuteen sisältyvien elementtien etuliitteen xsl. Lisäksi juurielementissä määritetään käytettävä XSLT-kielen versio o XSLT-prosessorit tunnistavat nimiavaruuden perusteella kaikki etuliitettä xsl käyttävät elementit XSLT-ohjeiksi ja osaavat sen perusteella prosessoida lähdedokumentin <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> XML-deklaraatio. ”Seuraava materiaali on XML:ää” Juurielementti. ”Tämä on tyylitiedosto”

17 XSL-tyylitiedoston laatiminen o Oxygen tuottaa oletusarvoisesti HTML-tiedostoja XSL- konversiossa o Jos konversion halutaan tuottavan jotain muuntyyppistä materiaalia, esim. XML:ää, täytyy templaatissa määrittää tuotettava materiaali: <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">

18 Templaatin määrittäminen o Tyylitiedostot koostuvat yhdestä tai useammasta templaatista, jotka kohdistuvat tiettyyn XML-elementtiin. o match-attribuutti määrittää mitä elementtiä templaatti prosessoi o Templaatin sisällä on ohjeet siihen, miten kyseinen elementti käsitellään Templaatti. ”Kuinka dokumentin juurielementti käsitellään”

19 Tyyliohjeiden antaminen o value-of –elementti poimii kohdedokumenttiin select-attribuutissa mainitun elementin arvon Tyyliohje. ”Valitse tähän arvo elementistä teksti”

20 Tyylitiedoston valinta o Jotta XML-tiedosto ja XSLT-prosessori tietäisivät mitä tyylitiedostoa XML- dokumentin muokkaamiseen käytetään, täytyy tyylitiedosto määrittää XML- dokumentin alussa Tyylitiedoston valinta. ”Käsittele minut href- attribuutissa mainitulla tyylitiedostolla”

21 Harjoitus: Tehtävä 1 HTML Cheat Sheet … Otsikkotasot Tekstikappale XSL Cheat Sheet Elementin nn käsittelevä templaatti Valitse elementin nn arvo

22 Tekninen viestintä 12.02.2013 XSLT-prosessointi

23 Miten XSLT-prosessori toimii o XML-dokumentti koostuu hierarkkisista solmuista: o Elementtisolmut o Tekstisolmut o Attribuuttisolmut o Kommenttisolmut o XSLT-tyylitiedostossa tulee olla ohje miten kukin solmu käsitellään Elementti: topic Elementti: para Teksti: Ohje Elementti: para Teksti: Paina nappia Elementti: bold Teksti: Käynnistä Teksti: Käynnistääksesi…

24 Miten XSLT-prosessori toimii o Useimmissa tyylitiedostoissa lähdedokumentin käsittely kannattaa aloittaa juurielementistä, dokumenttisolmusta: …

25 Arvojen valitseminen o Jos samanlaisia sisältöelementtejä on useita, pelkkä elementin arvon valitseminen ei riitä o Jokainen elementti täytyy käsitellä erikseen. Tätä varten XSL:ssä on for-each-ohje: esimerkki2.xsl

26 Arvojen valitseminen o Topic-elementin alla olevat para-elementin valitaan vuorotellen käsittelyyn ja valitun para-elementin kohdalle luodaan uusi tekstikappale. Käyttämällä select-attribuutin arvoa ”.”, saadaan poimittua sillä hetkellä valittuna olevan elementin arvo. ”Valitse vuorotellen kaikki topic-elementin alla olevat para-elementit…” ”…ja luo p-elementti, ja valitse sen sisään äsken valitun para-elementin sisältö”

27 for-each == itse pahuus o for-each –silmukan käyttöä kannattaa kuitenkin välttää o Niiden käyttäminen tekee tyylitiedostoista kankeita ja hidastaa dokumenttien prosessointia o Jos lähdedokumentti sisältää toistuvia elementtejä, ne voidaan prosessoida templaattien avulla kuten dokumentin juuritasokin http://korintic.deviantart.com/

28 Templaattien laatiminen o XSLT:lle ominainen tapa valita ja käsitellä sisältöä on laatia templaatti jokaista käsittelyä tarvitsevaa elementtiä varten. esimerkki3.xsl

29 Demotuokio esimerkki3.xsl: Ohje Ohje esimerkki3.xml Mikäli haluat tarkastella arkistoitua tapahtumaa, valitse tapahtuma listasta ja napsauta Tarkastele. Jos haluat tulostaa kaikki haun tulokset, valitse tulosteen ulkoasuksi Luettelo. Jos hakutuloksessa on mukana enemmän kuin 2 000 tapahtumaa, voidaan tuloste ottaa vain Luettelo-muodossa.

30 Sisältöelementtien käsitteleminen o XSLT-prosessori ei käsittele uutta templaattia käskemättä o Tämä tapahtuu xsl:apply-templates –elementin avulla: o xsl:apply-templates ohjeistaa prosessoria käsittelemään muut templaatit, ja select-attribuutin arvo valitsee mihin solmuihin käsittely kohdistuu esimerkki3.xsl ”Lisää tähän kohtaan templaatin avulla käsiteltyjä para- elementtejä”

31 Pintaa syvemmälle o Templaattien avulla voidaan käsitellä myös syvemmällä rakenteessa olevia elementtejä, esimerkiksi listojen jäseniä, koska templaateista voi kutsua toisia templaatteja: esimerkki4.xsl <xsl:apply-templates select="/topic/para" /> <xsl:apply-templates select="/topic/list" /> esimerkki4.xsl

32 Pintaa syvemmälle o Koska päätason templaatista valittiin käsiteltäväksi solmu /topic/list… o …viitataan list-elementtiä käsittelevässä templaatissa suoraan item-elementtiin ilman koko polkua: esimerkki4.xsl

33 Sisältöelementtien käsitteleminen o Jos XSLT-prosessori ei löydä templaattia, johon tyylitiedosto viittaa, XSLT-prosessori käsittelee valitun kontekstin kaikki lapsielementit XSLT:iin sisäänrakennetuilla templaateilla o Sisäänrakennetut templaatit pyrkivät varmistamaan, että kaikki dokumentissa käytetyt elementit käsiteltäisiin

34 Elementtien käsittely o Sisäänrakennetun templaatin match- attribuutin arvo * osuu kaikkiin elementteihin o Ilman select-attribuuttia käytetty apply-templates –ohje valitsee kaikki senhetkisen elementin lapsielementit ja käsittelee ne templaateilla ”Valitse kaikki elokuvat/elokuva – elementin lapsielementit, ja käsittele ne sopivilla templaateilla”

35 Elementtien käsittely o Tekstisolmuun törmätessään XSLT- prosessori käsittelee sen toisella oletustemplaatilla o text()-funktiolla valitaan tekstisolmu ja value-of –ohjeen select- attribuutin arvo ”.” valitsee tekstisolmun sisällön ”Jos vastaan tulee solmu, joka sisältää elementtien sijaan tekstiä, valitse kaikki teksti”

36 Elementtien käsittely o Näin item-elementtien sisältökin saadaan tuotettuun dokumenttiin. Sekä elementit että niiden sisältö valitaan oletustemplaateilla. o Koska item-elementit haluataan erillisten li- elementtien sisälle, täytyy niille kuitenkin laatia oma templaattinsa – muuten ne tulostuvat yhtenä jonona

37 Harjoitus: Tehtävä 2 HTML Cheat Sheet … Otsikkotasot Tekstikappale Numeroitu lista Numeroimaton lista Listan elementti Lihavointi Kursiivi XSL Cheat Sheet Elementin nn käsittelevä templaatti Valitse elementti nn, ja käsittele se templaatilla Valitse elementin nn arvo

38 Tekninen viestintä 12.02.2013 Document-orientation vs. Data-orientation

39 XML-sisältötyypit o Dataorientoitunut XML – Elementit sisältävät vain yhdentyyppistä tietoa o Dokumenttiorientoitunut XML – Elementit sisältävät useantyyppistä tietoa

40 XML-sisältötyypit DATAORIENTOITUNUT XML Kana 8 Leghorn Lehmä 10 Hereford DOKUMENTTIORIENTOITUNUT XML Click to open the Edit view You can now edit items marked in italic typeface. Click File Save to save the changes.

41 XML-sisältötyypit o Jotta dokumentti- orientoitunutta XML- materiaalia voitaisiin käsitellä, templaattien käyttö on lähes pakollista o Vain templaatteja käyttämällä voidaan varmistua, että kaikki tietyn elementin lapsielementit käsitellään Vipstaakin käyttöohje Mikäli haluat tarkastella arkistoitua tapahtumaa, valitse tapahtuma listasta ja napsauta Tarkastele. Jos haluat tulostaa kaikki haun tulokset, valitse tulosteen ulkoasuksi Luettelo. Jos hakutuloksessa on mukana enemmän kuin 2 000 tapahtumaa, voidaan tuloste ottaa vain Luettelo -muodossa. Muut toiminnot Sähköpostin lähetys Arkistointi Valuuttakurssit Sähköposti-ilmoitus lähetetään, jos Tila -sarakkeessa on tieto "Virhe".

42 Templaatti vs. value-of o Jos käsiteltävä elementti sisältää ainoastaan tekstiä, value-of on tehokkaampi tapa käsitellä sisältö o value-of –ohje ei huomioi muita käsiteltävän elementin sisältämiä elementtejä – se poimii vain niiden sisältämän tekstin

43 Templaatti vs. value-of Jos käsiteltävässä sisällössä on useita lapsielementtejä, täytyy se käsitellä templaatin avulla Tällöin elementtien vaatimat muotoilut saa toteutettua siististi templaattien sisällä Oletustemplaattien avulla usean lapsielementin sisällä olevat sisällöt saa poimittua kätevästi kohdedokumenttiin

44 Templaatti vs. value-of o Koska lapsielementit ovat useimmiten sekalaisessa järjestyksessä, kaiken sisällön poimimiseksi oikeassa järjestyksessä on käytettävä templaatteja: … esimerkki5.xsl esimerkki5.xsl ”Poimi kaikki juurielementin alla olevat elementit ja käsittele ne sopivalla templaatilla” ”Käy läpi kaikki lapsielementit, ja käsittele ne sopivilla templaateilla”

45 Templaatti vs. value-of o Näin myös para-elementin alla olevat elementit voidaan käsitellä (tai jättää käsittelemättä, jos niille ei haluta erityistä muotoilua) esimerkki5.xsl ”Poimi bold- elementin sisältö b- elementin sisään. Oleta samalla, ettei bold-elementtien sisällä ole muita elementtejä…”

46 Templaatti vs. value-of Dokumentin nimi olisi mahdollista poimia myös value-of –ohjeella: …mutta tämä johtaisi ongelmiin oletustemplaattien poimiessa header-elementin arvon toistamiseen kohdedokumenttiin esimerkki5.xsl

47 Harjoitus: Tehtävä 3 HTML Cheat Sheet … Otsikkotasot Tekstikappale Numeroitu lista Numeroimaton lista Listan elementti Lihavointi Kursiivi XSL Cheat Sheet Elementin nn käsittelevä templaatti Valitse elementti nn, ja käsittele se templaatilla Valitse kaikki lapsielementit ja käsittele ne templaatilla Valitse elementin nn arvo

48 Elementit eri konteksteissa o Templaattien avulla samannimisiä elementtejä voidaan käsitellä eri tavalla kontekstista riippuen Vipstaakin käyttöohje Mikäli haluat tarkastella arkistoitua tapahtumaa, valitse tapahtuma listasta. Sähköposti-ilmoitus lähetetään sellaisista poikkeustilanteista, joista kirjautuu siirtopäiväkirjalle merkintä. Mallikuva

49 Elementit eri konteksteissa o Templaatteihin voi määrittää kontekstin, jossa niitä käytetään XPathin avulla: esimerkki6.xsl esimerkki6.xsl ”Poimi topic- elementin alla oleva header- elementti” ”Poimi figure- elementin alla oleva header- elementti”

50 Attribuutit o XML-dokumenteissa käytetään usein myös attribuutteja tiedon tallentamiseen o Valitun elementin attribuutin arvon voi poimia @-ohjeen avulla: esimerkki7.xsl ”Luo img-elementti, lisää sille src- attribuutti ja poimi sille arvo image- elementin href- attribuutista.”

51 Attribuutit o Attribuuttien arvoa ei ole pakko siirtää toisten attribuuttien arvoiksi – niitä voi myös käyttää tavallisen tekstin joukossa:. [Source: ] esimerkki7.xsl

52 Attribuutit o Linkkejä laadittaessa on hyvä ottaa huomioon linkkiteksti, eli siis käsitellä mahdolliset linkkielementin sisältämät elementit:

53 Attribuutit o Attribuutteja voi käyttää myös templaattien määreinä. Näin käsiteltäväksi voidaan poimia elementtejä, jotka sisältävät tietyn attribuutin tai attribuutin arvon <xsl:template match="emphasis[@style = bold ]"> esimerkki7.xsl Mikäli haluat tarkastella arkistoitua tapahtumaa, valitse tapahtuma listasta ja napsauta <emphasis style="bold">Tarkastele. esimerkki7.xml ”Jos vastaan tulee emphasis- elementti, jonka style-attribuutin arvo on bold, ota se käsittelyyn”

54 Ehdot XSLT:stä o Attribuutin arvon valintaan ei välttämättä tarvita kahta templaattia, vaan oikean muotoilun voi valita ehtojen avulla esimerkki8.xsl

55 Ehdot XSLT:stä o choose-elementti aloittaa ehdon o Sen lapsena täytyy olla vähintään yksi when- elementti, joka sisältää testin (tosi/epätosi) o Ehto voi sisältää useita when-elementtejä ja otherwise-elementin, joka kertoo mitä tehdään, jos yksikään edeltävä ehto ei täyty

56 Ehdot XSLT:stä o Ehtoja käyttämällä voi myös tutkia missä kontekstissa elementti esiintyy ja välttyä näin käyttämästä useita eri konteksteihin sovitettuja templaatteja: ”Jos emoelementti on tyypiltään topic”

57 Tekninen viestintä 12.02.2013 Lopputehtävä

58 Vaihtoehto A o Laadi Python-ohjelma, jonka avulla käyttäjä voi purkaa paketin translations.zip. Oletuksena on, että ohjelmaa suoritettaessa paketti ja python-tiedosto ovat samassa hakemistossa o Ohjelman tulee kysyä käyttäjältä puretaanko paketista kaikkien kielten tiedostot omiin alihakemistoihinsa, vai haluaako käyttäjä purkaa vain yhden kielen tiedostot. o Käyttäjä saa syöttää purettavan kielen koodin. Jos käyttäjän syöttämää kieltä ei löydy, ohjelman tulee ilmoittaa kielet, joita paketissa on [Lista voi olla kovakoodattu] o Ennen purkamista, ohjelman tulee kysyä käyttäjältä hakemisto, johon tiedostot puretaan. Jos hakemistoa ei ole olemassa, ohjelman tulee kysyä haluaako käyttäjä luoda tämän hakemiston, vai haluaako käyttäjä syöttää uuden hakemiston

59 Vaihtoehto B o Laadi yksi tyylitiedosto, jolla saat muunnettua tiedostot ohje1.xml, ohje2.xml ja ohje3.xml DITA Concept –moduuliksi


Lataa ppt "Tekninen viestintä 12.02.2013 Ohjelmointia teknisille viestijöille."

Samankaltaiset esitykset


Iklan oleh Google