Helsingin yliopisto Tietojenkäsittelytieteen laitos XML-metakieli

Samankaltaiset tiedostot
Helsingin yliopisto Tietojenkäsittelytieteen laitos XML-metakieli

M. Merikanto 2012 XML. Merkkauskieli, osa 2

Helsingin yliopisto/tktl XML-metakieli XPath

XML - perusteet. Ctl230: Luentokalvot Miro Lehtonen

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

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

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

Digitaalisen median tekniikat. JSP ja XML

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

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

Extensible Stylesheet Language (XSL)

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

XML rakenteen suunnittelu. Jaana Holvikivi

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

XML / DTD / FOP -opas Internal

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Luento 3: Tietorakenteiden esittäminen

CSE-A1200 Tietokannat

8 XSLT-muunnoskieli XSLT-muunnoskieli

Johdatus rakenteisiin dokumentteihin

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

Pinot, jonot, yleisemmin sekvenssit: kokoelma peräkkäisiä alkioita (lineaarinen järjestys) Yleisempi tilanne: alkioiden hierarkia

Sivuston tiedotmysiteworthcheck.com

Sivuston tiedotqbooksupportpho nenumber.com

XSL-muunnokset. 9 XSL-muunnokset

Digitaalisen median tekniikat Harri Laine 1

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

3 Verkkosaavutettavuuden tekniset perusteet

Sivuston tiedotgoogle.com

Luento 1: Johdanto merkintäkieliin

Sivuston tiedotwindowsrepublic.com.au

Luento 7: XML-ohjelmointirajapinnat

Sivuston tiedotqbsupportcustom erservice.com

XML johdatus: DTD. Jaana Holvikivi

A TIETORAKENTEET JA ALGORITMIT

Hohde Consulting 2004

Sivuston tiedotreviewproducts.org

Sivuston tiedottools.seo-zona.ru

9 XML perusteet

5 Merkkaus: XML protokollana

Sivuston tiedottools.seo-zona.ru

XML johdanto, uusimmat standardit ja kehitys

XML-merkkaus. Merkkidata, prosessointikomennot, kommentit

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

5 Merkkaus: XML protokollana

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

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

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

Sivuston tiedotakcp-sensor.de

Sivuston tiedotskillers.tech

Sivuston tiedotemreemir.com

Johdatus XML teknologioihin

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

Hohde Consulting 2004

Sivuston tiedotmarking.seoonline.xyz

Est.kand Kandidaatintyö ja seminaari: L A T E Xin käyttöönotto

Sivuston tiedotmp3list.pro

Datatähti 2019 alku. task type time limit memory limit. A Kolikot standard 1.00 s 512 MB. B Leimasin standard 1.00 s 512 MB

Sivuston tiedotpechaticentr.ru

Sivuston tiedotsiteoptimer.com

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

Sivuston tiedotwixaccounting.com

Korpusten käsittely clt131, P Luento 6

Johdanto. Kiinteistöhuoltoyhtiö tarvitsee järjestelmän huoltopyyntöjen hallinnointiin

Sivuston tiedotakcpshop.de.websiteoutlook.com

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

Sivuston tiedotdigitalagency.hyp ersaiyan.com

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

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

Putteri Käyttöliittymä ja ulkoasu

Luento 12: XML ja metatieto

Sivuston tiedotle-vintage.fr

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

ARVO - verkkomateriaalien arviointiin

Sosiaalihuollon asiakastiedon arkiston validointipalvelu

Sivuston tiedotawebsiteguy.com

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

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

TIE Ohjelmistojen suunnittelu

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

2 Rakenteisten dokumenttien perusteet

Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke

Algoritmit 2. Luento 6 Ke Timo Männikkö

11.4. Context-free kielet 1 / 17

Sivuston tiedotsanrongvang.vn

Sivuston tiedotwebstatinfo.com

CLT131 Korpusten käsittely Viides luento

Sivuston tiedotaskgeek.io

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

TIE Ohjelmistojen suunnittelu

Sivuston tiedotscholich-bess.de

Sosiaalihuollon asiakastiedon arkiston validointipalvelu. Käyttöohje

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

Sivuston tiedotdidactum.com.w3 snoop.com

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Luento 4: XPath ja XLink

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

6.4. Järjestyssuhteet

Transkriptio:

Tietomuodoista Merkkauksista Merkkauskielistä XML-tietomalli Tietomuodoista Tiedon tuottamiseen, muokkaukseen ja hyväksikäyttöön voi osallistua useita ohjelmia eri alustoilla eri ohjelmointikielillä toteutettuja Yhteistoiminnan mahdollistamiseksi tarvitaan jaettu tiedonvälitysmuoto binäärinen, esim. kuvamuodot tekstuaalinen esimerkiksi CSV (comma separated values) yksinkertaiselle taulukkomuotoiselle datalle monipuolisempia rakenteita mutkikkaammilla tekniikoilla 1 2 Kiinteämuotoisissa rakenteissa tiedon osilla on kiinteä sijaintipaikka tietorakenteessa. Merkkaus (marking) Vaihtuvamuotoisissa rakenteissa osia voi puuttua osat voivat olla hyvin erikokoisia osien järjestystä tai sisältymistä ei voida välttämättä ennakoida osa on jotenkin osoitettava osien merkkaaminen mahdollistaa pääsyn tietoon Merkkaus merkkauksella tieto eristetään ympäristöstään mikä tieto on kyseessä, mistä tiedon esitys alkaa, mihin asti, missä muodossa tieto esitetään muoto voi olla sidottu tiedon tyyppiin, mutta voi olla myös tapauskohtainen 3 4 Merkkaus edellyttää ainakin yhden merkkialkion käyttöä. Merkkialkio voi olla joko alkumerkintä tai loppumerkintä. Molempiakin voi käyttää. Pelkkä alkumerkintä riittää erottelemaan samankaltaisia tietokohteita, esimerkiksi \section teoksen lukuja toisistaan. Jos kohteita on eri tyyppisiä voidaan tarvita eksplisiittinen rajaus valitsemaan merkkauksen kohde, esimerkiksi merkkaus \bold{lihavoitua tekstiä}, tekee rajauksen kaarisuluilla ja määrittää tyypin avainsanalla \bold merkkialkioiden on erotuttava muusta tekstistä yllä olevissa esimerkeissä \-merkillä alkavat sanat tulkitaan merkkialkioiksi Merkkaus HTML-kielessä (kuten myös XML-kielissä) käytetään alkumerkintöjä (begin tag) ja loppumerkintöjä (end tag). Kummatkin alkavat merkillä < (pienempi kuin, less than) ja päättyvät merkkiin > (suurempi kuin, greater than). Näiden välissä on alkumerkinnässä elementin tyyppinimi 1 ja loppumerkinnässä sama tyyppinimi / -merkin jälkeen, esim. <title>otsake</title> Huom: atk-sanakirjassa tag-sanan suomennos on L tägi L 1) lisäksi attribuuttilausekkeita 5 6 1

HTML ja XML-kielet muistuttavat merkkaustavan puolesta toisiaan HTML:ssä merkkauksissa käytettävät elementtien tyyppinimet on kiinnitetty HTML:llä laadittu dokumentti on tarkoitettu esitettäväksi selaimessa, joten eri elementtityypeille on oletusarvoiset esitystavat XML-kielten elementtinimet ovat kielen määrittelijän vapaasti valittavissa XML-elementtien oletusarvoinen esitystapa selaimissa on varsin yksinkertainen, vain hierarkia näkyy HTML perustuu SGML- standardiin (Standard Generalized Markup Language) SGML on metakieli - perusrakenne ja tapa määritellä kieli yleiskäyttöinen vähän rajoituksia varsin monimutkainen, vähän ja kalliita työkaluja SGML standardin 1. versio vuodelta 1986 kieliä suurten dokumenttien esittämiseen, julkaisutoimintaan 7 8 XML-rakenne XML on yksinkertaistettu osajoukko SGML:stä rakenteita rajoitettu Ensimmäinen standardiversio vuodelta 1998, viimeisimmät versiot 2006 ( sekä 1.0 että 1.1 - edelliselle laaja tuki, jälkimmäisessä erilainen suhtautuminen merkistöihin, parempi laajennettavuus) XHTML on HTML:ää vastaava XML-standardiin perustuva dokumenttien esityskieli (erot harjoitustehtävänä) XML-kieliä moniin tarkoituksiin: XHTML, SVG (grafiikka), CML (Chemical..), WML (WAP-sivut), ebxml (electronic business), WSDL (web services), XML on tarkoitettu hierarkkisesti jäsennetyn tiedon tekstimuotoisen esitystavan määrittelyyn Lähtökohtana on hierarkkisesti jäsennetty tieto Hierarkia muodostuu toisiinsa sisältyvistä elementeistä Seuraavilla sivuilla on esimerkki xmlreseptikielestä 9 10 XML-rakenne, esimerkki osa 1(M&S) XML-rakenne, esimerkki osa 2(M&S) <collection> <description>recipes suggested by Jane Dow</description> <recipe id="117"> <comment> <title>rhubarb Cobbler</title> Rhubarb Cobbler made with bananas as the main sweetener. <date>wed, 14 Jun 95</date> It was delicious. <ingredient name="diced rhubarb" amount="2.5" unit="cup"/> </comment> <ingredient name="sugar" amount="2" unit="tablespoon"/> <nutrition calories="170" fat="28%" <ingredient name="fairly ripe banana" amount="2"/> <ingredient name="cinnamon" amount="0.25" unit="teaspoon"/> carbohydrates="58%" protein="14%"/> <ingredient name="nutmeg" amount="1" unit="dash"/> <related ref="42">garden Quiche is also yummy</related> <preparation> </recipe> <!-- should bananas be diced, too. It looks funny with the whole ones--> <step> </collection> Combine all and use as cobbler, pie, or crisp. </step> </preparation> 11 12 2

XML-rakenne, esimerkki Esimerkin kielessä on päädytty esittämään raaka-ainetiedot attribuuttien avulla. Toinen suunnittelija olisi voinut päätyä erilaiseen ratkaisuun, esimerkiksi <ingredient name="diced rhubarb" amount="2.5" unit="cup"/> olisikin esitetty hierarkiana <ingredient> <name preparation= diced >rhubarb</name> <amount unit= cup >2.5</amount> </ingredient> ja kolmas johonkin muuhun tapaan Hierarkian lähtökohtana on tiedon jäsentäminen hierarkkisena rakenteena, joka voidaan esittää puuna solmu (node) E B F A C D juuri (root) lehti (leaf) särmä (edge) 13 14 B:n, C:n ja D:n isä (parent of B,C, ad D) B A C D A:n lapsisolmut (Children of A) A:n sisältö (Contents of A) B A C D E:n ja F: n esi-isät (ancestors of E and F) A:n jälkeläiset (descendants of A) E F C:n velisolmu (sibling of C) E F 15 16 description collection step recipe id:117 title date ingredient ingredient preparation comment nutrition related Rhubarb Cobbler Wed. 14 Jun 95 name: diced rhubarb amount:2.5 unit:cup <!-- Should bananas Combine Rhubarb Chobbe calories:170 Garden related:42 17 Eri tyyppisiä solmuja: Tekstisolmu (text nodes): kuvassa suunnikas dokumentin tekstitietoa aina lehtisolmu tekstisolmut eivät voi olla puussa vierekkäisinä veljessolmuina - välissä pitää olla jokin muu solmu Elementtisolmu (element node) kuvassa nurkista pyöristetty suorakaide dokumentin rakenneosaa kuvaava solmu jälkeläissolmujen kooste elementtisolmulla aina nimi (name) -kuvaa solmun merkitystä 18 3

Attribuuttisolmu (attribute node) kuvassa suorakaide liittyy elementtisolmuun, eli isäsolmuna on elementtisolmu esittää täsmentävää tietoa elementistä nimi - arvo - parina sama nimi ei voi toistua useassa elementtiin liittyvässä attribuuttisolmussa attribuuttisolmut ovat tavallaan eri ulottuvuudessa kuin muut solmut, esimerkiksi XPath-tietomallissa attribuuttisolmuja ei pidetä elementtien lapsina vaikka elementtejä pidetäänkin attribuuttisolmujen isinä Kommenttisolmu (comment node) kuvassa kuusikulmio sisältönä kommenttiteksti kuten ohjelmointikielen kommentti, huom.: esimerkin solmu comment ei ole kommenttisolmu, vaan elementti nimeltä comment kommentti esitetään tekstimuodossa kuten html:ssä eli <!-- kommentti --> 19 20 Ohjesolmu (processing instruction node) ei kuvassa sisältönä kohde ja siihen liittyvä arvo käytetään metatiedon välittämiseen työkaluille jos työkalu tunnistaa kohdenimen se osaa tulkita arvon merkityksen kohteena voisi olla esim. "xml-stylesheet" jolloin XSLT-käsittelijä tunnistaisi kohteen ja tulkitsisi arvona annetun URL:n osoittavan käytettävään XSLTtyylitiedostoon Juurisolmu (root node) kuvassa pieni ympyrä Jokaisella xml-puulla on juurisolmu, joka kuvaa koko dokumenttia juurisolmun lapsina on kommenttisolmuja, ohjesolmuja sekä yksi elementtisolmu, jota kutsutaan dokumentin juurielementiksi (root element) juurielementti on siis eri asia kuin juurisolmu (katso esimerkki selaimessa, example1.xml) 21 22 XML-rakennemallissa solmujen järjestys on merkityksellinen ja sillä voidaan välittää informaatiota esimerkiksi resepti-rakenteessa <preparation>elementtien <step>-alielementtien järjestys kuvaa valmistusvaiheiden järjestystä attribuuttisolmujen järjestyksellä ei kuitenkaan ole merkitystä 23 xml-rakenteinen dokumentti esitetään Unicodekoodattuna tekstinä Elementin aloittaa alkumerkintä: alussa "<"-merkki, seuraavana elementin (tyyppi)nimi seuraavana elementtiin liittyviä attribuutteja vastaavat nimi-arvo parit muodossa nimi="arvo" tai muodossa nimi='arvo' tyhjätilamerkein (white space) eroteltuina lopuksi ">"-merkki Tyhjä elementti voidaan merkitä lopettamalla alkumerkintä merkkiparilla "/>". Vaihtoehtona on käyttää loppumerkintää <tyhjä></tyhjä> 24 4

Elementin sisältöön kuuluvien solmujen tekstiesitykset sijoitetaan elementin alku- ja loppumerkintöjen väliin puun solmujen järjestyksen mukaisesti. Teksti-, kommentti- ja ohjesolmujen sisältö viedään tekstiesitykseen sellaisenaan. Elementin lopettaa loppumerkki alkaa "</"-merkkityhdistelmällä seuraavana elementin (tyyppi)nimi lopuksi ">"-merkki Alku- ja loppumerkinnöissä olevien elementtinimien pitää olla samat kirjoitusasua myöten (case sensitive) Tekstin esitystapana on Unicode-merkistö. Oletusarvoisesti käytetään UTF-8 koodaustapaa. Myös muita koodaustapoja voi käyttää. Suomenkielisessä tekstissä iso-8859-15 lienee käyttökelpoinen. Merkkejä "<" ja "&" saa käyttää vain niille varattuihin erityistarkoituksiin. Muulloin ne on korvattava < ja & viittauksilla. Muutamia muitakin viittauksia on määritelty, tosin paljon vähemmän kuin HTML:ssä (> &apos; ") Yleinen viittaus Unicode-merkkiin on muotoa &#N; tai &#xh;, missä N on Unicode merkin desimaaliarvo ja H vastaava heksakoodi. 25 26 Tulkitsematta jätettävä CDATA-lohko (CDATA section) mahdollistaa myös erikoismerkkien '<' ja '&' käyttämisen ilman viittaustekniikka. CDATA-lohkon alkumerkki CDATA-lohkon loppumerkki Lauseke <![CDATA[a<b & b>c]]> vastaa tekstiä a<b & b>c Merkkikoodaus määritellään yleensä dokumentin alussa ohjeella, esim. <?xml version= 1.0 encoding= iso-8859-1?> Kommentin esitystapa <! kommentti --> Ohjeen esitystapa <?kohde arvo?> Koko kohdenimen jälkeinen osa tulkitaan arvoksi olipa se minkä muotoinen tahansa 27 28 Nimetyt kohteet ja viittaukset XML:ssä Koska tekstiesityksen pitää vastata puurakennetta täytyy elementtien tekstiesitysten olla aidosti sisäkkäisiä <small_example> <first>this is</first> <second>so right</second> </small_example> <small_example> <first>this is<second> </first>so wrong</second> </small_example> Elementit eivät ole aidosti sisäkkäisiä 29 XML-tekstiin voidaan sisällyttää viittauksia nimettyihin kohteisiin (entity references) Dokumentti itsessään on nimetty kohde Nimetty kohde (entity) voi olla dokumentin sisäinen (internal) tai ulkoinen (ulkoinen). Ulkoiset kohteet ovat tyypillisesti erillisiä tiedostoja tai muita resursseja Aiemmin esillä olleet erikoismerkit &,<,, ja > ovat valmiiksi nimettyjä kohteita, joiden nimet ovat amp, lt, apos, quot ja gt Viittaukset näihin kohteisiin ovat: &, < jne 30 5

Nimetyt kohteet ja viittaukset XML:ssä Nimetyt kohteet ja viittaukset XML:ssä Nimetyt tekstikohteet ovat merkkijonoja, joilla (ainakin loogisesti) korvataan niihin osoittava viittaus. Merkkijonoon voi sisältyä merkkauksia ja viittauksia. Viittauksen rakenne: &nimi; Olkoon merkkijono University of Helsinki nimetty kohteksi univ (<!ENTITY univ "University of Helsinki">) Jos tekstissä on viittaus &univ se korvataan tekstillä University of Helsinki joka paikassa missä viittaus esiintyy 31 Viittauksia nimettyihin kohteisiin voi käyttää myös attribuuttien arvoissa rajoituksia, esim. ei merkkauksia Ulkoiseen tekstimuotoiseen kohteeseen kohdistuva viittaus aiheuttaa kohteen tekstin ottamisen osaksi XML-dokumenttia mahdollistaa dokumentin jakamisen osiin Ulkoinen nimetty kohde voi olla myös binäärinen. Näihin viitataan kohdearvoisilla attribuuteilla, eikä tällöin käytetä tekstiviittausten kaltaista korvausta. 32 Dokumentin osia <?xml version="1.1" encoding="iso-8859-1"?> rakennemäärittely <!DOCTYPE features SYSTEM "example.dtd"> <features a="b"> <?mytool here is some information specific to mytool?> El señor está bien, garçon! Copyright 2005 <![CDATA[ <this is not a tag> ]]> <!-- always remember to specify the right character encoding --> </features> käsittelyohje merkkiviittaus CDATA-lohko kommentti 33 6