2 XML Schema: johdanto ja rakenteiden perusteet

Koko: px
Aloita esitys sivulta:

Download "2 XML Schema: johdanto ja rakenteiden perusteet"

Transkriptio

1 2 XML Schema: johdanto ja rakenteiden perusteet Kun XML-dokumentteja tarkastellaan kommunikoivien järjestelmien välisinä viesteinä, on tärkeää että viestiformaatista on sovittu täsmällisesti. Yleisemmin tarkasteltuna tarvitaan paitsi (universaaleja) sanastoja, myös (universaaleja) skeemoja sekä (universaaleja) datatyyppejä (näihin palaamme myöhemmin). Kuten tunnettua, XML DTD ei tarjoa riittävää menetelmää em. sovellusten toteuttamiseen. Erityisesti, XML DTD ei kykene (hyvin) käsittelemään nimiavaruuksia, eikä tarjoa käyttökelpoista menetelmää datatyyppien määrittelyyn. XML Schema eli XML-skeemat esittelee keinon määritellä tietorakenteiden tyyppi URI-nimiin pohjautuviin nimiavaruuksiin vedoten (rajoitteina), sekä tarjoaa keinon monipuolisten datatyyppien määrittelyyn. Määrityksille löytyy jatkossa käyttöä myös varsinaisten XML-viestiformaattien ulkopuolella. 16

2 2.1 Välisoitto Pyrkimys kohti tiedon mekaanista hallintaa johtaa väistämättä kohti tiedon täsmällistä kuvailua Mutta ennen kuin kuvailu onnistuu, pitää tietoa osata mallintaa (ymmärrys vs. formalisointi vs. mekaaninen käsittely) Kysymys mitä mallinnetaan, miten ja millä tarkkuudella, jää lopulta sovelluskohtaisesti ratkaistavaksi 17

3 2.2 Esimerkki (1/2) Tarkastellaan esimerkin vuoksi tilannetta jossa halutaan välittää tilaustiedoista XML-muodossa (Ks. XML Schema Primer & po.xml) <?xml version="1.0"?> <purchaseorder orderdate=" "> <shipto country="us"> <name>alice Smith</name> <street>123 Maple Street</street> <city>mill Valley</city> <state>ca</state> <zip>90952</zip> </shipto> <billto country="us"> <name>robert Smith</name> <street>8 Oak Avenue</street> <city>old Town</city> <state>pa</state> <zip>95819</zip> </billto>... 18

4 2.3 Esimerkki (1/2), jatkuu <comment>hurry, my lawn is going wild!</comment> <items> <item partnum="872-aa"> <productname>lawnmower</productname> <quantity>1</quantity> <USPrice>148.95</USPrice> <comment>confirm this is electric</comment> </item> <item partnum="926-aa"> <productname>baby Monitor</productName> <quantity>1</quantity> <USPrice>39.98</USPrice> <shipdate> </shipdate> </item> </items> </purchaseorder> Tuttu rakenne, XML-dokumentti (so. nimetty dokumenttientiteetti) Tunnista osat... 19

5 2.4 Peruskäsitteitä ja huomioita Elementti on tyypiltään ns. kompleksinen jos sillä on lapsielementtejä tai attribuutteja (Complex Type), muutoin ns. yksinkertainen (Simple Type) - yksinkertaiset tyypit ovat käytännössä "datatyyppejä" tai listoja (mutta huomaa että yksinkertainenkin tyyppi voidaan määritellä itse) Attribuutit ovat aina tyypiltään yksinkertaisia Yksittäistä dokumenttia (tarkemmin: dokumenttiluokan esiintymää, Instance) tutkimalla ei selviä kaikki dokumentin tulkinnassa tarvittava tieto. Erityisesti, emme voi päätellä - minkälaisen rakenteen puitteissa tietoa on sallittua kuvata (vaihtelu) - mitä datatyyppejä rakenne sisältää (esim. päivämäärä) - mitä oletusarvoja tms. dokumentin tulkinnassa tarvitaan... tarvitsemme siis skeematietoa tulkinnan tueksi Eräs tuttu "skeemakieli" dokumentin tyypin määrittämiseen on XML DTD 20

6 2.5 Esimerkki: XML DTD (1/3) Lisäämme dokumenttiin eksplisiittisen tyyppitiedon: <?xml version="1.0"?> <!DOCTYPE purchaseorder SYSTEM "po.dtd"> <purchaseorder orderdate=" ">...</purchaseorder> Dokumentti voi nyt olla validi jos se noudattaa ilmoittamaansa tyyppimäärittelyä XML DTD ei kuitenkaan pysty mallintamaan tietoa kovin yksityiskohtaisesti Eräs mallinnus (po.dtd): <!-- po.dtd ON > <!ENTITY % USAddress "name,street,city,state,zip"> <!ENTITY % shipattrs "country NMTOKEN #FIXED 'US'"> <!ENTITY % itemattrs "partnum NMTOKEN #REQUIRED"> <!ELEMENT purchaseorder (shipto, billto, comment?, items)> <!ATTLIST purchaseorder orderdate CDATA #REQUIRED> 21

7 <!ELEMENT shipto (%USAddress;)> <!ATTLIST shipto %shipattrs;> <!ELEMENT billto (%USAddress;)> <!ATTLIST billto %shipattrs;> <!ELEMENT items (item*)> <!ELEMENT item (productname, quantity, USPrice, comment?, shipdate?)> <!ATTLIST item %itemattrs;> <!ELEMENT name (#PCDATA)> <!ELEMENT street (#PCDATA)> <!ELEMENT city (#PCDATA)> <!ELEMENT state (#PCDATA)> <!ELEMENT zip (#PCDATA)> <!ELEMENT comment (#PCDATA)> <!ELEMENT productname (#PCDATA)> <!ELEMENT quantity (#PCDATA)> <!ELEMENT USPrice (#PCDATA)> <!ELEMENT shipdate (#PCDATA)> <!ELEMENT partnum (#PCDATA)> 22

8 2.6 Esimerkki: XML DTD (3/3) Huomioita: - rajoittunut tietomalli, elementtien ja attribuuttien määrittelyn epäsymmetria (esim. #PCDATA vs. CDATA/NMTOKEN) - erikoinen syntaksi, eikä mahdollista määritellä esim. uudelleenkäytettävää elementin tietomallia muutoin kuin parametrientiteettien avulla - ei tukea nimiavaruuksille (ei tosin tässä esimerkissä haittaa) - ei datatyyppejä (esim. "päivämäärä") - dokumentointi päälleliimattujen kommenttien avulla - mutta idea melko yksinkertainen ja esitys tiivis (mieti mitä näin jää kuitenkin sanomatta) Rakennetaan seuraavaksi "vastaava" mutta rikkaampi tyyppimääritys/tietomalli XML-skeemamäärittelyn avulla... 23

9 2.7 XML Schema Suositus XML-skeemoista täydentää XML-perhettä yleiskäyttöisellä teksti- ja viestiformaattien mallinnuskielellä (vrt. tietokantasuunnittelu) 1. suositus vuonna 2001, määrittelyteknisiä päivityksiä 2004 Osat: - XML Schema Part 0: Primer (Second Edition),... Part 1: Structures ja Part 2: Datatypes Kommentteja - "yleinen näkemys" on, että suositus on hyvin ilmaisuvoimainen, mutta "tarpeettoman" monimutkainen ja hankala käyttää - seuraa DTD:n linjaa hyvässä ja pahassa (skeeman tulkinta saattaa esim. muuttaa dokumentin tietosisältöä oletusarvojen yms. takia) - jako rakenteiden ja datatyyppien välillä on hyvä; osaa 2 käytetään laajasti myös erillään osasta 1 (myös tällä kurssilla) 24

10 2.8 Esimerkki, mallinnus XML-skeeman avulla Ks. (po.xsd) <xsd:schema xmlns:xsd=" <xsd:annotation> <xsd:documentation xml:lang="en"> Purchase order schema for Example.com. Copyright 2000 Example.com. All rights reserved. </xsd:documentation> </xsd:annotation> <xsd:element name="purchaseorder" type="purchaseordertype"/> <xsd:element name="comment" type="xsd:string"/> <xsd:complextype name="purchaseordertype"> <xsd:sequence> <xsd:element name="shipto" type="usaddress"/> <xsd:element name="billto" type="usaddress"/> <xsd:element ref="comment" minoccurs="0"/> 25

11 <xsd:element name="items" type="items"/> </xsd:sequence> <xsd:attribute name="orderdate" type="xsd:date"/> </xsd:complextype> <xsd:complextype name="usaddress"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="street" type="xsd:string"/> <xsd:element name="city" type="xsd:string"/> <xsd:element name="state" type="xsd:string"/> <xsd:element name="zip" type="xsd:decimal"/> </xsd:sequence> <xsd:attribute name="country" type="xsd:nmtoken" fixed="us"/> </xsd:complextype> <xsd:complextype name="items"> <xsd:sequence> <xsd:element name="item" minoccurs="0" maxoccurs="unbounded"> <xsd:complextype> <xsd:sequence> 26

12 <xsd:element name="productname" type="xsd:string"/> <xsd:element name="quantity"> <xsd:simpletype> <xsd:restriction base="xsd:positiveinteger"> <xsd:maxexclusive value="100"/> </xsd:restriction> </xsd:simpletype> </xsd:element> <xsd:element name="usprice" type="xsd:decimal"/> <xsd:element ref="comment" minoccurs="0"/> <xsd:element name="shipdate" type="xsd:date" minoccurs="0"/> </xsd:sequence> <xsd:attribute name="partnum" type="sku" use="required"/> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> <!-- Stock Keeping Unit, a code for identifying products --> <xsd:simpletype name="sku"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-[a-z]{2}"/> 27

13 </xsd:restriction> </xsd:simpletype> </xsd:schema> Viittaus ko. skeematiedostoon voidaan vihjeenä liittää XML-dokumentiin (vaan ei ole pakko), esim. (nyt ei määriteltyä nimiavaruutta): <purchaseorder orderdate=" " xmlns:xsi=" xsi:nonamespaceschemalocation="po.xsd">... Tällöin validointi (skeeman suhteen) esim. Xerces-parserilla (ks. onnistuu komennolla: java -classpath... dom.counter -s -v po.xml Kokeile verkossa, ks. esim. 28

14 2.9 Validointi: huomautuksia Dokumentti validoidaan skeeman suhteen periaatteessa samoin kuten DTD:nkin tapauksessa. Keskeisiä eroja: - skeemojen kielioppi on melko monimutkainen ja laajentaa DTD:n määrittelyä käsitteellisesti (ei kuitenkaan korvaa [yleisiä] entiteettejä) -...mahdollisuus rajata dokumenttiluokan rakenne paljon tarkemmin - XML-dokumentista (ns. esiintymästä, instance) ei ole pakko löytyä suoraa viittausta validoinnissa käytettävään skeemaan (joskin voi löytyä) jäsennin voi pakottaa validoinnin - validointi voi kiinnittyä erikseen nimetyn skeematiedoston ohella myös nimiavaruuden perusteella "Jokainen DTD voidaan esittää XML-skeemana muttei toisinpäin" Huom. XML Schema ei kuitenkaan ole "yleisin/vahvin ajateltavissa oleva" XML-skeemakieli määrityksen nimi (yleisnimi) on siten harhaanjohtava! 29

15 2.10 XML-skeeman yleisrakenne Skeema on XML-dokumentti (tai useita dokumentteja) joka määrittelee XMLdokumenttiluokan keskeisesti rajoitteiden ja oletusarvojen varassa: schema include import redefine annotation simpletype complextype element attribute attributegroup group Käytännössä skeema voi efektiivisesti tarkoittaa kaikkia niitä skeemamäärityksiä johon tarkasteltavan dokumentin esiintymäosa viittaa (evaluointi nimiavaruuksien perusteella) 30

16 2.11 Tyyppimäärittelyn perusteet (1/2) Tyyppimäärittely on elementtien ja attribuuttien tapauksessa oleellisesti samanlainen - attribuuteilla ei kuitenkaan voi olla sisältönä elementtejä tai toisia attribuutteja, niinpä attribuuttien tyypin on aina oltava yksinkertainen Elementin tai attribuutin tyyppi voidaan pääsääntöisesti määritellä kahdella tavalla. Ensimmäinen tapa on määritellä tyyppi implisiittisesti elementin tai attribuutin nimen ja esittelyn yhteydessä (ns. Anonymous Type): <xsd:element name="quantity"> <xsd:simpletype> <xsd:restriction base="xsd:positiveinteger"> <xsd:maxexclusive value="100"/> </xsd:restriction> </xsd:simpletype> </xsd:element> 31

17 2.12 Tyyppimäärittelyn perusteet (2/3) Toinen tapa on määritellä nimetty tietotyyppi johon elementin tai attribuutin esittelyssä viitataan -...tällöin siihen voidaan myös viitata useasti Esimerkki, nimetty yksinkertainen tyyppi: <xsd:attribute name="partnum" type="sku" use="required"/>... <xsd:simpletype name="sku"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-[a-z]{2}"/> </xsd:restriction> </xsd:simpletype> 32

18 2.13 Tyyppimäärittelyn perusteet (3/3) Esimerkki, nimetty kompleksinen tyyppi: <xsd:element name="shipto" type="usaddress"/> <xsd:element name="billto" type="usaddress"/>... <xsd:complextype name="usaddress"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> <xsd:element name="street" type="xsd:string"/> <xsd:element name="city" type="xsd:string"/> <xsd:element name="state" type="xsd:string"/> <xsd:element name="zip" type="xsd:decimal"/> </xsd:sequence> <xsd:attribute name="country" type="xsd:nmtoken" fixed="us"/> </xsd:complextype> Vertaa vastaavaa määrittelyä DTD:n ja parametrientiteetin avulla 33

19 2.14 Elementtien määrittely, perusteet Elementtien määrittely tapahtuu analogisesti DTD:n tavoin (esim. kertojat), joskin syntaksi on uusi ja mukana on lisämääreitä, esim.: <xsd:element name="article" type="xsd:string" minoccurs="0" maxoccurs="unbounded" processcontents="strict" default="hello World!" nillable="true" /> Yleisessä tapauksessa määreet valitaan 14 attribuutin joukosta. Esimerkki uudesta piirteestä: nillable <article xsi:nil="false"/> Esittelyn yhteydessä voidaan viitata (type) paitsi nimettyyn tietotyyppiin (esim. xsd:string, USAdress), myös toisaalla määriteltyyn elementtiin (ref): <xsd:element ref="comment" minoccurs="0"/> Huomaa että skeema ei määrittele mikä päätasolla luetelluista elementeistä (global) on dokumentin esiintymän juurielementti, ts. skeemamäärittely on aina suhteellinen (parseri toki aina tietää esiintymän juurielementin!) 34

20 2.15 Validoinnin tarkkuus Elementin tyyppimäärittelyn attribuutti processcontents (skip lax strict) tarjoaa keinon sisällyttää dokumentteihin (wf) osia joiden tyyppi voi olla tietyssä mielessä epämääräinen, vrt. esim. <element name="htmlexample"> <complextype> <sequence> <any namespace=" minoccurs="1" maxoccurs="unbounded" processcontents="skip"/> </sequence> </complextype> </element> Arvo skip: Elementin sisältöä ei edes yritetä validoida Arvo lax: Elementin sisältö validoidaan vain siltä osin kuin se onnistuu (eli ilmoitettuihin nimiavaruuksiin vedoten) Arvo strict (oletus): Elementin tulee olla validoitavissa kokonaisuudessaan 35

21 2.16 Elementtien tietomallin määrittely: "DTD:stä tutut" Tietomalli rakennetaan keskeisesti operaattorien sequence, choice, group ja all avulla, esim. "(((shipto, billto) singleusaddress), comment?, items)" : <xsd:complextype name="purchaseordertype"> <xsd:sequence> <xsd:choice> <xsd:group ref="shipandbill"/> <xsd:element name="singleusaddress" type="usaddress"/> </xsd:choice> <xsd:element ref="comment" minoccurs="0"/> <xsd:element name="items" type="items"/> </xsd:sequence> <xsd:attribute name="orderdate" type="xsd:date"/> </xsd:complextype> <xsd:group id="shipandbill"> <!--HUOM: group@minoccures, maxoccurs.. --> <xsd:sequence> <xsd:element name="shipto" type="usaddress"/> <xsd:element name="billto" type="usaddress"/> </xsd:sequence> </xsd:group> 36

22 2.17 Elementtien tietomallin määrittely: all Operaattori all: luetellut elementit esiintyvät missä tahansa järjestyksessä Esim. <xsd:complextype name="purchaseordertype"> <xsd:all> <xsd:element name="shipto" type="usaddress"/> <xsd:element name="billto" type="usaddress"/> <xsd:element ref="comment" minoccurs="0"/> <xsd:element name="items" type="items"/> </xsd:all> <xsd:attribute name="orderdate" type="xsd:date"/> </xsd:complextype> Käyttöön (lapsellisia :-) rajoituksia: käytössä vain päätasolla (ei ryhmittelyyn tietomallin sisällä), lapset eivät saa olla ryhmiä, lapsille sallittu vain esiintymistä kuvaavat kertoimet 0 tai 1,... 37

23 2.18 Attribuuttien liittäminen elementtiin (1/2) Tarkastellaan ensin elementtiä jolla sisältönä vain merkkidataa...esim... <internationalprice currency="eur">423.46</internationalprice>...tapahtuu siten että "laajennetaan" valittua tietotyyppiä attribuutilla: <xsd:element name="internationalprice"> <xsd:complextype> <xsd:simplecontent> <xsd:extension base="xsd:decimal"> <xsd:attribute name="currency" type="xsd:string"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> </xsd:element> Jos attribuutteja on useita, ne vain luetellaan jossakin järjestyksessä 38

24 2.19 Attribuuttien liittäminen elementtiin (2/2) Lapsielementtejä omaavien elementtien attribuuttien esittelyt luetellaan heti elementin tietomallin jälkeen complextype-elementin sisällä: <element name="item"> <complextype> <sequence> <xsd:element ref="comment" minoccurs="0"/> <xsd:element name="items" type="items"/> </sequence> <attribute name="desc" type="xsd:string"/> <!-- jne. --> </complextype> </element>...sama pätee yhdistelmäsisältöisille elementeille 39

25 2.20 Yhdistelmäsisältöinen elementti (1/2) Yhdistelmäsisältöinen tietomalli ilmoitetaan attribuutilla mixed: <xsd:element name="letterbody"> <xsd:complextype mixed="true"> <xsd:sequence> <xsd:element name="salutation"> <xsd:complextype mixed="true"> <xsd:sequence> <xsd:element name="name" type="xsd:string"/> </xsd:sequence> </xsd:complextype> </xsd:element> <xsd:element name="quantity" type="xsd:positiveinteger"/> <xsd:element name="productname" type="xsd:string"/> <xsd:element name="shipdate" type="xsd:date" minoccurs="0"/> <!-- etc. --> </xsd:sequence> </xsd:complextype> </xsd:element> 40

26 2.21 Yhdistelmäsisältöinen elementti (2/2) Sallittu esiintymä: <letterbody> <salutation>dear Mr.<name>Robert Smith</name>.</salutation> Your order of <quantity>1</quantity> <productname>baby Monitor</productName> shipped from our warehouse on <shipdate> </shipdate>.... </letterbody> Huom. toisin kuin DTD, XML-skeema voi rajoittaa yhdistelmäsisältöisen elementin lapsielementtien esiintymisjärjestystä ja lukumäärää (ts. valinnat sequence, choice, all ovat merkitseviä) 41

27 2.22 Tyhjä elementti Kaikille elementeillä ei ole sisältöä. Tyhjän elementin määrittely hoidetaan (hieman erikoisesti) rajoittimella Käytössä on lyhennemerkintä: <xsd:element name="br"> <xsd:complextype/> </xsd:element> Jos tyhjällä elementillä on attribuutteja (kuten yleensä), tarvitaan kompleksinen tietotyyppi: <xsd:element name="internationalprice"> <xsd:complextype> <xsd:complexcontent> <xsd:restriction base="xsd:anytype"> <xsd:attribute name="currency" type="xsd:string"/> <xsd:attribute name="value" type="xsd:decimal"/> </xsd:restriction> </xsd:complexcontent> </xsd:complextype> </xsd:element> 42

28 2.23 Rajoitteeton elementti(tyyppi): anytype Jos kaikki (merkki- ja lapsielementtisisältö) käy, voidaan määritellä <xsd:element name="anything" type="xsd:anytype"/> Potentiaalinen mallinnuksen vaaranpaikka piilee siinä, että tämä on typeattribuutin oletusarvo, ts. samaa tarkoittaa myös <xsd:element name="anything"/> Huom. - DTD-mallinnuksessa ANY-tyyppinen elementti on (kukaties) käyttökelpoinen kun halutaan määritellä DTD jossa on "reikiä" (so. kohtia joista voi löytyä "mitä tahansa") -...skeemojen tapauksessa sellaisen elementin tietomalli jota ei haluta määritellä "tässä ja nyt" voidaan kuitenkin esittää järkevämmin kuin anytype-tyyppisenä (nimiavaruuksiin vedoten, vrt. esim. processcontents) 43

29 2.24 Attribuuttien määrittely Attribuutit määritellään siis kompleksisten tyyppien osana: <xsd:element name="internationalprice"> <xsd:complextype> <xsd:simplecontent> <xsd:extension base="xsd:decimal"> <xsd:attribute name="currency" type="xsd:string"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> </xsd:element> Attribuuttien määrittelyyn liittyvät keskeisesti attribuutit - use: optional required prohibited (oletuksena arvo optional) - default: oletusarvon ilmoittaminen - fixed: pakotettu arvo - minoccurs/maxoccurs: esiintymiskerrat (0/1) 44

30 2.25 Vaihtoehtoisten attribuuttiarvojen määrittely Tuttu <!ATTLIST X shipby (air land any) #IMPLIED> määritellään taas rajoitteiden avulla <xsd:attribute name="shipby"> <xsd:simpletype> <xsd:restriction base="xsd:string"> <xsd:enumeration value="air"/> <xsd:enumeration value="land"/> <xsd:enumeration value="any"/> </xsd:restriction> </xsd:simpletype> </xsd:attribute> Datatyyppien käyttö laajentaa merkittävästi tapaa jolla attribuuttien (tai elementtien!) arvoalueita voidaan määritellä Yleisesti arvo voidaan määritellä esim. säännönmukaisen lausekkeen avulla (tähän palataan myöhemmin) 45

31 2.26 Attribuuttiryhmien määrittely Attribuutit liittyvät elementteihin, mutta skeemoissa ne voidaan määritellä myös viitattavina ryhminä - kompleksisen tietotyypin avulla tai attribuuttiryhmien avulla: <xsd:element name="item" minoccurs="0" maxoccurs="unbounded"> <xsd:complextype> <xsd:sequence> <xsd:element name="productname" type="xsd:string"/>... </xsd:sequence> <xsd:attributegroup ref="itemdelivery"/> </xsd:complextype> </xsd:element> <xsd:attributegroup id="itemdelivery"> <xsd:attribute name="partnum" type="sku" use="required"/> <xsd:attribute name="weightkg" type="xsd:decimal"/>.. </xsd:attributegroup> 46

32 2.27 Nimiavaruuksista Eräs keskeisimmistä skeemojen piirteistä on tuki nimiavaruuksille Skeemamäärittely voi sisältää ns. kohdenimiavaruuden (target namespace) johon skeeman ajatellaan esittelevän sanastonsa <schema xmlns=" xmlns:po=" targetnamespace=" elementformdefault="unqualified" attributeformdefault="unqualified"> <!--...Default oletusarvot-->... Nimiavaruuksien syntaksi sallii kuitenkin saman skeeman määrittelyn usein eri tavoin - skeemat kuitenkin esim. (ikävästi) sotkevat nimiavaruuksien prefiksinimet asiasisällön kanssa Määrittelyssä kannattaa tietenkin pyrkiä selkeyteen, hallittavuuteen ja yksinkertaisuuteen 47

33 2.28 Esimerkki: Purchase Order nimiavaruuksilla (1/2) <schema xmlns=" xmlns:po=" targetnamespace=" elementformdefault="unqualified" attributeformdefault="unqualified"> <element name="purchaseorder" type="po:purchaseordertype"/> <element name="comment" type="string"/> <complextype name="purchaseordertype"> <sequence> <element name="shipto" type="po:usaddress"/> <element name="billto" type="po:usaddress"/> <element ref="po:comment" minoccurs="0"/> <!-- etc. --> </sequence> <!-- etc. --> </complextype> 48

34 2.29 Esimerkki: Purchase Order nimiavaruuksilla (2/2) <complextype name="usaddress"> <sequence> <element name="name" type="string"/> <element name="street" type="string"/> <!-- etc. --> </sequence> </complextype> <!-- etc. --> </schema> Kommentteja: - huomaa skeeman oletusnimiavaruus (olisi voitu käyttää prefiksejä!) - viittaukset skeeman sisällä nimiavaruuksiin vedoten Esimerkkiskeema on käytännössä hieman erikoinen yhdistelmä nimiavaruuteen sidottuja (qualified) ja ilman nimiavaruutta (unqualified) sovellettavia nimiä 49

35 2.30 Esimerkkidokumentti, osa 1 <?xml version="1.0"?> <apo:purchaseorder xmlns:apo=" orderdate=" "> <shipto country="us"> <name>alice Smith</name> <street>123 Maple Street</street> <!-- etc. --> </shipto> <billto country="us"> <name>robert Smith</name> <street>8 Oak Avenue</street> <!-- etc. --> </billto> <apo:comment>hurry, my lawn is going wild!</apo:comment> <!-- etc. --> </apo:purchaseorder> Mieti mihin nimiavaruuteen elementit ja attribuutit kuuluvat! Ts. Prefiksillä apo koodatut nimet toimivat nyt globaaleina niminä 50

36 2.31 Esimerkki: Purchase Order, toinen versio Pakotetaan sitten nimiavaruus koko dokumenttiin: <schema xmlns=" xmlns:po=" targetnamespace=" elementformdefault="qualified" attributeformdefault="unqualified"> <element name="purchaseorder" type="po:purchaseordertype"/> <element name="comment" type="string"/> <complextype name="purchaseordertype"> <!-- etc. --> </complextype> <!-- etc. --> </schema> Ts. nyt ero piilee siinä, että kaikki elementit (joita ei erikseen muuksi kvalifioida) osoitetaan kohdenimiavaruuteen 51

37 2.32 Esimerkkidokumentti, versio 2 <?xml version="1.0"?> <purchaseorder xmlns=" orderdate=" "> <shipto country="us"> <name>alice Smith</name> <street>123 Maple Street</street> <!-- etc. --> </shipto> <billto country="us"> <name>robert Smith</name> <street>8 Oak Avenue</street> <!-- etc. --> </billto> <comment>hurry, my lawn is going wild!</comment> <!-- etc. --> </purchaseorder> Esiintymäosassa nimiavaruus voidaan ilmoittaa taas usein eri tavoin, siis myös kvalifioitujen nimien avulla (mv. prefiksejä käyttäen) 52

38 2.33 Kvalifioidut attribuutit Nimiavaruutta ei "yleensä" määritellä attribuuteille (paitsi standardoiduille globaaleille attribuuteille, vrt. esim. xlink:href, xi:include, tms.) Attribuutin nimiavaruus voidaan toki skeemassa kuitenkin pakottaa: <schema xmlns=" xmlns:po=" targetnamespace=" elementformdefault="qualified" attributeformdefault="unqualified">... <element name="secure"> <complextype> <sequence>... </sequence> <attribute name="publickey" type="base64binary" form="qualified"/> </complextype> </element> </schema> Tällöin dokumentin esiintymäosassa attribuutti publickey on pakko kvalifioida (nyt siis nimiavaruuteen 53

39 2.34 Lopuksi On aina suositeltavaa käyttää kvalifioituja nimiä itse XML Schema -sanaston yhteydessä, esim. xsd:element (vrt. oletusnimiavaruuden käyttö) Nimiavaruudet rikastavat tyyppimäärittelyn mahdollisuuksia, erityisesti: - ei pakotettua juurielementtiä -...niinpä eri nimiavaruuksiin pohjautuvien määrittelyjen yhdistely on mahdollista -... ja esim. tietyn skeeman mukaisten elementtirakenteiden upottaminen osaksi toisia skeemoja on mahdollista Skeema ja DTD voivat olla käytössä myös rinnakkain, - yleensä "järkevää" käyttöä on sieventää esim. nimiavaruuksia entiteettien avulla yms. 54

2 XML Schema: johdanto ja rakenteiden perusteet

2 XML Schema: johdanto ja rakenteiden perusteet 2 XML Schema: johdanto ja rakenteiden perusteet Kun XML-dokumentteja tarkastellaan kommunikoivien järjestelmien välisinä viesteinä, on tärkeää että viestiformaatista on sovittu täsmällisesti. Yleisemmin

Lisätiedot

XML-metakieli, k

XML-metakieli, k DTD:n puutteita DTD ei ole XML-muotoinen Jäsennys vaatii omat työkalut Eri dokumenttityyppien yhteiskäyttöä ei tueta DTD-määritelmien lainailua ja yhdistelyä ei voi validoida Tietotyyppejä on rajoitetusti:

Lisätiedot

4 XML Schema: tyyppihierarkiat ja avaimet

4 XML Schema: tyyppihierarkiat ja avaimet 4 XML Schema: tyyppihierarkiat ja avaimet Skeemat mahdollistavat yksinkertaisten rakenteiden ja tietotyyppien määrittelyn ohella myös muutakin käyttökelpoista. Erityisesti: - myös kompleksisia tyyppejä

Lisätiedot

Helsingin yliopisto / TKTL XML-Metakieli XML Schema

Helsingin yliopisto / TKTL XML-Metakieli XML Schema W3C:n tavoite kehittää parempi määrittelykieli ilmaisuvoimaisempi XML-rakenteinen itsedokumentoiva yksinkertainen Tekniseltä kannalta tuki nimiavaruuksille käyttäjän omat tietotyypit määritysten perintä

Lisätiedot

XML standardeja. nimiavaruudet, namespaces XHTML XML Schema linkitys. 26.3.2015 Jaana Holvikivi 1

XML standardeja. nimiavaruudet, namespaces XHTML XML Schema linkitys. 26.3.2015 Jaana Holvikivi 1 XML standardeja nimiavaruudet, namespaces XHTML XML Schema linkitys 26.3.2015 Jaana Holvikivi 1 Namespaces - ongelma mr. President zaphod

Lisätiedot

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

XML kielioppi. Elementtien ja attribuuttien määrittely. Ctl230: Luentokalvot Miro Lehtonen XML kielioppi Elementtien ja attribuuttien määrittely Ctl230: Luentokalvot 11.10.2004 Miro Lehtonen Dokumenttien mallinnus Säännöt dokumenttityypeille 3Mahdollisten dokumenttirakenteiden määrittely Samassa

Lisätiedot

XML and XML Schema 29

XML and XML Schema 29 XML and XML Schema 29 XML specification Technical XML spec. describes XML syntax using Extended Backus-Naur Format (EBNF), which is compact unequivocal easy to read and interpreted (by computers) EBNF

Lisätiedot

7 DTD ja entiteetit: dokumentin fyysinen rakenne

7 DTD ja entiteetit: dokumentin fyysinen rakenne è è è DTD ja entiteetit: dokumentin fyysinen rakenne 7 DTD ja entiteetit: dokumentin fyysinen rakenne Tietojenkäsittelyssä kaikki tieto talletetaan jonnekin. XML-dokumenttien fyysinen rakenne määräytyy

Lisätiedot

XML merkintäkielten perusteet. Luento 3 Pekka Aarnio

XML merkintäkielten perusteet. Luento 3 Pekka Aarnio XML merkintäkielten perusteet Luento 3 Pekka Aarnio 1 Luennon sisältö OSA 1: XML-Schema OSA 2: XML-Schema ja nimiavaruudet 2 Osa 1: sisältö Osa 1 1. Mikä on XML-Schema-kieli 2. Tietotyypit ja elementtien

Lisätiedot

XML merkintäkielten perusteet. Luento 3 Pekka Aarnio

XML merkintäkielten perusteet. Luento 3 Pekka Aarnio XML merkintäkielten perusteet Luento 3 Pekka Aarnio 1 Luennon sisältö OSA 1: XML-Schema OSA 2: XML-Schema ja nimiavaruudet 2 Osa 1: sisältö Osa 1 1. Mikä on XML-Schema-kieli 2. Tietotyypit ja elementtien

Lisätiedot

XML-pohjaiset rakennemäärittelyt

XML-pohjaiset rakennemäärittelyt -pohjaiset rakennemäärittelyt Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto Esitelmä Hyvin lyhyt versio: -perustainen kommunikointi edellyttää

Lisätiedot

NELLI-Tunnis. Käyttäjän tunnistus NELLI-tiedonhakuportaalissa yleisissä kirjastoissa. Versio 1.0. 16.5.2006 Ere Maijala Kansalliskirjasto

NELLI-Tunnis. Käyttäjän tunnistus NELLI-tiedonhakuportaalissa yleisissä kirjastoissa. Versio 1.0. 16.5.2006 Ere Maijala Kansalliskirjasto NELLI-Tunnis Käyttäjän tunnistus NELLI-tiedonhakuportaalissa yleisissä kirjastoissa Versio 1.0 16.5.2006 Ere Maijala Kansalliskirjasto Sisällysluettelo Johdanto...3 Tekniikka...3 Esimerkit...4 XML-Skeema...5

Lisätiedot

3 XML Schema: datatyypit

3 XML Schema: datatyypit 3 XML Schema: datatyypit XML Schema esittelee DTD-kieleen verrattuna jotakin aivan uutta: datatyypin käsitteen. Datatyyppi on pohjimmiltaan merkkijono jonka rakenne voidaan testata kuten elementinkin.

Lisätiedot

7 DTD ja entiteetit: dokumentin fyysinen rakenne

7 DTD ja entiteetit: dokumentin fyysinen rakenne DTD ja entiteetit: dokumentin fyysinen rakenne 7 DTD ja entiteetit: dokumentin fyysinen rakenne Tietojenkäsittelyssä kaikki tieto talletetaan jonnekin. XML-dokumenttien fyysinen rakenne määräytyy ns. entiteettien

Lisätiedot

P e d a c o d e ohjelmointikoulutus verkossa

P e d a c o d e ohjelmointikoulutus verkossa P e d a c o d e ohjelmointikoulutus verkossa XML-kielen perusteet Teoria ja ohjelmointitehtävät XML-kielen perusteet 3 Sisältö YLEISKATSAUS KURSSIN SISÄLTÖIHIN... 7 YLEISKATSAUS KURSSIN SISÄLTÖIHIN...

Lisätiedot

Paikkatiedot ja Web-standardit

Paikkatiedot ja Web-standardit Paikkatiedot ja Web-standardit Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto Esitelmä Hyvin lyhyt versio: World Wide

Lisätiedot

XML johdatus: DTD. Jaana Holvikivi

XML johdatus: DTD. Jaana Holvikivi XML johdatus: DTD Jaana Holvikivi Dokumenttityypin rakennemäärittely DTD = kielioppi esim. XML- esitykselle Elementit Attribuutit Entiteetit ja notaatiot Prosessointikomennot DTD:n suunnittelu 19.1.2013

Lisätiedot

Rakenteisten dokumenttien jatkokurssi, syksy 2006

Rakenteisten dokumenttien jatkokurssi, syksy 2006 Rakenteisten dokumenttien jatkokurssi, syksy 2006 MATHM-57200 Rakenteisten dokumenttien jatkokurssi, 5 op opetetaan syksyn 1-2 periodeilla Kotisivu: http://matriisi.ee.tut.fi/hmopetus/rdj/index.html Luennot:

Lisätiedot

6 DTD ja dokumentin tyyppimääritys

6 DTD ja dokumentin tyyppimääritys 6 DTD ja dokumentin tyyppimääritys Tietojenkäsittelyssä päähuomio ei yleensä ole tiedon matalan tason formaatissa vaan sovelluksissa joissa tietoa käytetään loogisesti jäsennettynä. XML-merkkaus tarjoaa

Lisätiedot

6 DTD ja dokumentin tyyppimääritys

6 DTD ja dokumentin tyyppimääritys 6 DTD ja dokumentin tyyppimääritys Tietojenkäsittelyssä päähuomio ei yleensä ole tiedon matalan tason formaatissa vaan sovelluksissa joissa tietoa käytetään loogisesti jäsennettynä. XML-merkkaus tarjoaa

Lisätiedot

GML-mallinnus. 1 Johdanto 1/27. Paikkatietojen mallintaminen tiedonsiirtoa varten. Liite III

GML-mallinnus. 1 Johdanto 1/27. Paikkatietojen mallintaminen tiedonsiirtoa varten. Liite III Paikkatietojen mallintaminen tiedonsiirtoa varten Liite III GML-mallinnus 1 Johdanto... 1 2 Yleistä... 2 3 GML kohdemalli... 3 3.1 Objekti/ominaisuus -rakenne... 3 3.2. Kohde... 4 3.3 Kohdejoukko... 6

Lisätiedot

XML-merkkaus. Merkkidata, prosessointikomennot, kommentit

XML-merkkaus. Merkkidata, prosessointikomennot, kommentit XML-merkkaus Merkkidata, prosessointikomennot, kommentit Merkkidata Elementtien ja attribuuttien arvot 3Merkkijonot elementtien tunnisteiden välissä 3Attribuuttien arvot 3Kielletyt merkit < & Voidaan korvata

Lisätiedot

Opiskeluoikeudet. Kaaviokuva

Opiskeluoikeudet. Kaaviokuva Opiskeluoikeudet Opiskeluoikeuksien tiedonsiirtoskeema. XML-skeema jonka avulla on tarkoitus siirtää useiden opiskeluoikeuksien tiedot kerralla. Skeeman voi myös lukea sisään muihin skeemoihin jolloin

Lisätiedot

3 Verkkosaavutettavuuden tekniset perusteet

3 Verkkosaavutettavuuden tekniset perusteet 3 Verkkosaavutettavuuden tekniset perusteet Saavutettavuuden toteuttaminen edellyttää lähtökohtaisesti tietoa laitteista ja sovelluksista, käyttäjistä ja käyttötavoista, sekä tekniikasta. Tekniikasta on

Lisätiedot

6 DTD ja dokumentin tyyppimääritys

6 DTD ja dokumentin tyyppimääritys 6 DTD ja dokumentin tyyppimääritys XML-merkkaus tarjoaa yhteensopivan ja yksinkertaisen perustan rakenteisten dokumenttien tms. rakenteisen tiedon käsittelyyn. Tietojenkäsittelyn sovelluksissa päähuomio

Lisätiedot

Opintosuoritukset. Kaaviokuva

Opintosuoritukset. Kaaviokuva Opintosuoritukset Opintosuoritukset-tiedonsiirtoskeema. XML-skeema jonka avulla voidaan siirtää useita opintosuoritusten tietoja kerralla. Skeeman voi myös lukea sisään muihin skeemoihin jolloin myös yksittäisiä

Lisätiedot

Luento 2: XML:n syntaksi

Luento 2: XML:n syntaksi Luento 2: XML:n syntaksi AS-0.110 XML-kuvauskielten perusteet Janne Kalliola XML:n syntaksi Peruskäsitteitä Rakennepalaset elementit leipäteksti attribuutit Nimiavaruudet Dokumentin rakenteen määrittely

Lisätiedot

SÄHKE-hanke. Tekninen mallintaminen SÄHKE-metatietojen XML Schema

SÄHKE-hanke. Tekninen mallintaminen SÄHKE-metatietojen XML Schema 04.02.2005 1 (5) SÄHKE-hanke SÄHKE-metatietojen XML Schema Versio ja pvm Laatinut Tarkpvm Tarkastanut Hyvpvm Hyväksynyt 2.0 / 04.02.2005 Anneli Rantanen 15.02.2005 Markus Merenmies 18.02.2005 Ohjausryhmä

Lisätiedot

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

Helsingin yliopisto Tietojenkäsittelytieteen laitos XML-metakieli (2011) Harri Laine 1. Jäsennys ja sarjallistaminen Jäsennys ja sarjallistaminen Tietorakenteen määrittely Hyvinmuodostettu / validi rakenne Rakenteen määrittely DTD XML-jäsentäjä (parser) on työkalu, joka pystyy muodostamaan puurakenteen tekstuaalisesta

Lisätiedot

XML-saatavuuskysely. XML-tiedoston kuvaus. versio 1.3.3 04.02.2008

XML-saatavuuskysely. XML-tiedoston kuvaus. versio 1.3.3 04.02.2008 XML-saatavuuskysely XML-tiedoston kuvaus versio 1.3.3 04.02.2008 Ecom Oy 2004-2008 XML-saatavuuskysely Versio 1.3.3 2/15 Sisällysluettelo Historia...3 Rakenteen hierarkinen esitys...4 Elementtien kuvaukset...5

Lisätiedot

CSE-A1200 Tietokannat

CSE-A1200 Tietokannat CSE-A1200 Tietokannat Osa kalvoista perustuu Juha Puustjärven luentokalvoihin kurssilta T-76.1143 sekä kurssin oppikirjaan 3.5.2016 CSE-A1200 Tietokannat 3.5.2016 1 / 39 Oppimistavoitteet: tämän luennon

Lisätiedot

Omat Lähdöt ohjelmointirajapinta: Versio 1.01

Omat Lähdöt ohjelmointirajapinta: Versio 1.01 Sivu 1(19) Omat Lähdöt ohjelmointirajapinta: Versio 1.01 Seasam House Oy Helsingin seudun liikenne Hyväksynyt: Päivämäärä: Hyväksynyt: Päivämäärä: www.seasam.com Sivu 2(19) Versio historia Versio 0.01

Lisätiedot

Helsingin yliopisto/tktl XML-metakieli XPath

Helsingin yliopisto/tktl XML-metakieli XPath XML-perusrakenteen ympärille on kehitetty tekniikoita ja standardeja kuvaamaan XML-rakenteisen tiedon käsittelyä sekä tietojen välisiä kytkentöjä. Näissä keskeinen tarve on pystyä osoittamaan operaatioiden

Lisätiedot

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

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002 , XHTML ja CSS T-111.361 Hypermediadokumentin laatiminen 2002 XHTML CSS XSL Sisältö EXtensible Markup Language W3C Recommendation helmikuu 1998 SGML:n osajoukko Standard Generalized Markup Language Kevyempi

Lisätiedot

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

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely. XML prosessointi Miten XML dokumentteja luetaan ja kirjoitetaan XML prosessori lukee ja välittää XML dokumentin sovellukselle. Se sisältää entieettikäsittelijän (mahdollisesti) XML jäsentimen Sovellus

Lisätiedot

Tekninen rajapinta Zip-tiedosto sovelluskehittäjälle Kansallisen tulorekisterin perustamishanke

Tekninen rajapinta Zip-tiedosto sovelluskehittäjälle Kansallisen tulorekisterin perustamishanke Versio 1.11 Kansallisen tulorekisterin perustamishanke SISÄLLYS 1 Versiohistoria... 3 2 Zip-tiedoston sisältö... 6 2.1 WSDL-kuvaukset... 6 2.2 XSD-skeematiedostot... 6 2.3 Sanomarakenne-esimerkit... 6

Lisätiedot

Tekninen rajapinta Zip-tiedosto sovelluskehittäjälle Kansallisen tulorekisterin perustamishanke

Tekninen rajapinta Zip-tiedosto sovelluskehittäjälle Kansallisen tulorekisterin perustamishanke Versio 1.07 Tekninen rajapinta Zip-tiedosto sovelluskehittäjälle Kansallisen tulorekisterin perustamishanke SISÄLLYS 1 Versiohistoria... 3 2 Zip-tiedoston sisältö... 6 2.1 WSDL-kuvaukset... 6 2.2 XSD-skeematiedostot...

Lisätiedot

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

9.16 XSLT ja nimiavaruudet (1/3): literaali oletusnimiavaruus 9.16 XSLT ja nimiavaruudet (1/3): literaali oletusnimiavaruus XSL-muunnos voi tietenkin tuottaa myös tiettyyn nimiavaruuteen liittyviä kohdedokumentteja (tarvitaan aina jo esim. XHTML-sovelluksissa!) Helpoimmillaan

Lisätiedot

JHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten Liite 3 GML-mallinnus

JHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten Liite 3 GML-mallinnus JHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten Liite 3 GML-mallinnus Versio: 12.01.2011 Julkaistu: Voimassaoloaika: toistaiseksi Sisällys 1 Johdanto... 1 2 Yleistä... 2 3 GML-kohdemalli... 3

Lisätiedot

XML / DTD / FOP -opas Internal

XML / DTD / FOP -opas Internal XML / DTD / FOP -opas Internal Reviewed: - Status: pending approval Approved by: - Author: Sakari Lampinen Revision: 1.0 Date: 15.10.2000 1 Termit DTD (data type definition) on määrittely kielelle, niinkuin

Lisätiedot

JHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten

JHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten JHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten Versio: 2.1 5.10.2012 Julkaistu: 31.10.2011 Voimassaoloaika: toistaiseksi Sisällys 1 Johdanto... 2 1.1 Suosituksen tausta... 2 1.2 Suosituksen

Lisätiedot

Elementtien tyyppideklaraatiot

Elementtien tyyppideklaraatiot Elementtien tyyppideklaraatiot Kuten tunnettua, XML-dokumenttien loogisen rakenteen peruspalasia ovat elementit, esim: hello world! Elementtien syntaksi seuraa suoraan XML-spesifikaation

Lisätiedot

13 Nimiavaruudet. kirjoitetaan muotoon (ja koodataan vähän lisätietoa) huomataan heti, mitä kirjoittaja ajaa takaa ja tarkoittaa. Vai huomataanko?

13 Nimiavaruudet. kirjoitetaan muotoon (ja koodataan vähän lisätietoa) huomataan heti, mitä kirjoittaja ajaa takaa ja tarkoittaa. Vai huomataanko? 13 Nimiavaruudet Huomautus: Otsikon voisi kuvaavammin kirjoittaa muodossa "structdoc:section". Syy selviää piakkoin Merkkauksen ideana on helpottaa tiedon ja metatiedon erottelua tarjoamalla dokumenteille

Lisätiedot

Julkishallinnon XML-skeemat v0.5 JHS-suositus

Julkishallinnon XML-skeemat v0.5 JHS-suositus Julkishallinnon XML-skeemat v0.5 JHS-suositus Keskustelutilaisuus 22.10.2008, Kansallismuseon auditorio Lasse Akselin TietoEnator lasse.akselin@tietoenator.com Sisällys Johdanto Nimeämissäännöt Skeemojen

Lisätiedot

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke Versio 1.05 Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Käsittelypalautteen kysely 2 (8) Versiohistoria Versio Päivämäärä

Lisätiedot

RDF ja RDFS. 8 RDF ja RDFS

RDF ja RDFS. 8 RDF ja RDFS 8 RDF ja RDFS RDF:n merkitys selkiytyy kun tarkastelemme RDFsanastojen määrittelyä (kuvailua). RDF-skeemat (RDF Schema) tarjoaa peruskäsitteet joiden varassa voidaan karkeasti luonnehtia esim. yksinkertaisten

Lisätiedot

Luento 12: XML ja metatieto

Luento 12: XML ja metatieto Luento 12: XML ja metatieto AS-0.110 XML-kuvauskielten perusteet Janne Kalliola XML ja metatieto Metatieto rakenne sanasto Resource Description Framework graafikuvaus XML Semanttinen Web agentit 2 1 Metatieto

Lisätiedot

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke Versio 1.05 Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke Tietojen jakelu Skeemat Palvelupyyntö 2 (11) Versiohistoria Versio Päivämäärä Kuvaus 1.0 12.6.2017 Dokumentti

Lisätiedot

è è è RDF-perusteet 7 RDF-perusteet

è è è RDF-perusteet 7 RDF-perusteet 7 RDF-perusteet Semanttisen Webin määrittelyteknisen ytimen muodostaa siis Resource Description Framework (RDF) -määritys. Tarkastellaan seuraavassa lyhyesti kielen (kaikille sovelluksille yhteisiä) primitiivejä

Lisätiedot

Schema ReitinTilaus.xsd

Schema ReitinTilaus.xsd Schema ReitinTilaus.xsd element ReitinTilaus ReitinTilaus children annotation Reittipiste complex documentatio n Sisältää MPK:n kuljetusoperaattorille tekemän

Lisätiedot

JHS 183 Julkisen hallinnon palvelujen tietomalli ja ryhmittely verkkopalveluissa Liite 3 XML-skeeman kuvaus ja esimerkit

JHS 183 Julkisen hallinnon palvelujen tietomalli ja ryhmittely verkkopalveluissa Liite 3 XML-skeeman kuvaus ja esimerkit JHS 183 Julkisen hallinnon palvelujen tietomalli ja ryhmittely verkkopalveluissa Liite 3 XML-skeeman kuvaus ja esimerkit Versio: 05.03.2013 Julkaistu: 28.2.2013 Voimassaoloaika: toistaiseksi Sisällys 1

Lisätiedot

JUHTA Julkisen hallinnon tietohallinnon neuvottelukunta

JUHTA Julkisen hallinnon tietohallinnon neuvottelukunta JHS 177 Paikkatietotuotteen määrittely Liite 2 Hallinnollisen jaotuksen XML skeema Versio: 1.0 Julkaistu: 21.10.2010 Voimassaoloaika: toistaiseksi Hallinnollinen jaotus esimerkin UML luokkakaaviosta johdettu

Lisätiedot

JHS XXX Julkishallinnon XML-skeemat

JHS XXX Julkishallinnon XML-skeemat JHS XXX Julkishallinnon XML-skeemat Versio: 0.5 Julkaistu: Voimassaoloaika: Sisällys 1 Johdanto... 2 2 Soveltamisala... 2 3 Termit ja määritelmät... 2 4 Sanastotyön ja XML-skeemojen yhteys... 2 5 XML-rakenteiden

Lisätiedot

Yhteentoimivuutta edistävien työkalujen kehittäminen

Yhteentoimivuutta edistävien työkalujen kehittäminen Yhteentoimivuutta edistävien työkalujen kehittäminen Semantiikkaa organisaatioiden välisen tiedonvaihdon helpottamiseksi Mikael af Hällström, Verohallinto Esityksen sisältö Taustatekijöitä (OKM:n hallinnonala,

Lisätiedot

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto Semanttinen Web Ossi Nykänen ossi.nykanen@tut.fi Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto Esitelmä "Semanttinen Web" Sisältö Konteksti: W3C, Web-teknologiat

Lisätiedot

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group 1.10.2010 1(15) Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group Graanintie 7 Tel. + 358 15 338 800 FIN-50190 MIKKELI Fax + 358 15 338 810 VERSIOHISTORIA Versio Pvm Tekijä Selite 1.0

Lisätiedot

XML johdanto, uusimmat standardit ja kehitys

XML johdanto, uusimmat standardit ja kehitys johdanto, uusimmat standardit ja kehitys Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto Esitelmä Hyvin lyhyt versio: on W3C:n suosittama

Lisätiedot

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke Versio 1.02 Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Vastaanottokuittaus 2 (10) Versiohistoria Versio Päivämäärä Kuvaus

Lisätiedot

XML rakenteen suunnittelu. Jaana Holvikivi

XML rakenteen suunnittelu. Jaana Holvikivi XML rakenteen suunnittelu Jaana Holvikivi XML suunnittelu Dokumentin ilmentymä elementit attribuutit (määritteet) entiteetit prosessointikäskyt 19.3.2015 Jaana Holvikivi 2 Elementtien sisäkkäisyys: säännöt

Lisätiedot

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Mitätöintitiedot 2 (10) Versiohistoria Versio Päivämäärä Kuvaus 1.0

Lisätiedot

JHS 170 Julkishallinnon XML-skeemat

JHS 170 Julkishallinnon XML-skeemat JHS 170 Julkishallinnon XML-skeemat Versio: 1.2 5.10.2012 Julkaistu: 30.3.2009 Voimassaoloaika: Toistaiseksi Sisällys 1 Johdanto... 2 2 Soveltamisala... 2 3 Termit ja määritelmät... 2 4 Sanastotyön ja

Lisätiedot

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke Versio 1.04 Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Mitätöintitiedot 2 (12) Versiohistoria Versio Päivämäärä Kuvaus 1.0

Lisätiedot

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

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

Lisätiedot

Tietojen jakelu Skeemat Lokitiedot Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Lokitiedot Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen jakelu Skeemat Lokitiedot Kansallisen tulorekisterin perustamishanke Tietojen jakelu Skeemat Lokitiedot 2 (15) Versiohistoria Versio äivämäärä Kuvaus 1.0 12.6.2017 Dokumentti julkaistu.

Lisätiedot

PAIKKATIETOIKKUNAN LUETTELOPALVELU KÄYTTÖOHJE

PAIKKATIETOIKKUNAN LUETTELOPALVELU KÄYTTÖOHJE PAIKKATIETOIKKUNAN LUETTELOPALVELU KÄYTTÖOHJE Sisällysluettelo Sisällysluettelo... 2 1. Yleistä Luettelopalvelusta... 3 2. Luettelopalvelun tulevia ominaisuuksia... 3 3. Käyttöoikeudet... 4 4. Lisenssit...

Lisätiedot

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

TIEA241 Automaatit ja kieliopit, syksy Antti-Juhani Kaijanaho. 30. marraskuuta 2015 TIEA241 Automaatit ja kieliopit, syksy 2015 Antti-Juhani Kaijanaho TIETOTEKNIIKAN LAITOS 30. marraskuuta 2015 Sisällys t Väitöstilaisuus 4.12.2015 kello 12 vanhassa juhlasalissa S212 saa tulla 2 demoruksia

Lisätiedot

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

Vaasan yliopiston toimintaa tukevat informaatiopalvelut ovat käytettävissä WWW:n kautta. 1. Julkaisutoiminnan peruskysymyksiä a) Mieti kohderyhmät b) Mieti palvelut c) Mieti palvelujen toteutus Vaasan yliopiston toimintaa tukevat informaatiopalvelut ovat käytettävissä WWW:n kautta. PALVELUKOKONAISUUDET:

Lisätiedot

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy Kehitysohje ETL-työkalu Versio Pvm Tekijä Kuvaus 0.1 15.1.2005 Timo Sallinen Ensimmäinen versio 0.2 26.1.2005 Timo Sallinen Täydenetty pohjaa 0.3 06.02.2005 Mika Suvanto Pieniä täydennyksiä ja oikolukua

Lisätiedot

XML-pohjaiset kyselyt

XML-pohjaiset kyselyt XML-pohjaiset kyselyt Miikka Antikainen 21.05.2008 Joensuun yliopisto Tietojenkäsittelytieteen laitos Pro gradu -tutkielma TIIVISTELMÄ Rakenteisen tiedon käyttö kasvaa yhä edelleen nykyajan tietojärjestelmissä,

Lisätiedot

5 Merkkaus: XML protokollana

5 Merkkaus: XML protokollana 5 Merkkaus: XML protokollana XML on siis ns. metakieli, joka käytännössä voidaan tulkita tavaksi merkitä ja tyypittää rakenteisia dokumentteja. XML on kuitenkin ennen kaikkea standardimuotoinen tietorakenne

Lisätiedot

Apuja ohjelmointiin» Yleisiä virheitä

Apuja ohjelmointiin» Yleisiä virheitä Apuja ohjelmointiin» Yleisiä virheitä Ohjelmaa kirjoittaessasi saattaa Visual Studio ilmoittaa monenlaisista virheistä "punakynällä". Usein tämä johtuu vain siitä, että virheitä näytetään vaikket olisi

Lisätiedot

OpusCapitaTYVI asiakasjärjestelmäliittymä 2.2

OpusCapitaTYVI asiakasjärjestelmäliittymä 2.2 OpusCapita TYVI AJL 1 (28) OpusCapitaTYVI asiakasjärjestelmäliittymä 2.2 Tekninen kuvaus versio 1.6 OpusCapita Group Oy Postintaival 7 FI-00230 HELSINKI, FINLAND Tel. +358 20 452 3000 Fax +358 20 452 9271

Lisätiedot

M. Merikanto 2012 XML. Merkkauskieli, osa 2

M. Merikanto 2012 XML. Merkkauskieli, osa 2 XML Merkkauskieli, osa 2 Esimerkki: XML-dokumentti resepti maitokaakao

Lisätiedot

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Käsittelypalautteen kysely 2 (7) Versiohistoria Versio Päivämäärä

Lisätiedot

LASKUTUSAINEISTON MUUTTAMINEN XML-MUOTOON

LASKUTUSAINEISTON MUUTTAMINEN XML-MUOTOON LASKUTUSAINEISTON MUUTTAMINEN XML-MUOTOON LAHDEN AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma Ohjelmistotekniikan suuntautumisvaihtoehto Opinnäytetyö Kevät 2006 Anu Pekurinen Lahden ammattikorkeakoulu

Lisätiedot

12 Dokumenttiluokan toteuttamisesta

12 Dokumenttiluokan toteuttamisesta 12 Dokumenttiluokan toteuttamisesta Tyypillisiä XML-sovellutuksia ovat esimerkiksi: - annettuun käyttötarkoitukseen räätälöity dokumenttityyppi (esim. painotalon ABC malli käsikirjoituksen rakenteelle)

Lisätiedot

XML ja SAS. Mitä tänä päivänä voidaan SASista tehdä XML-muotoon

XML ja SAS. Mitä tänä päivänä voidaan SASista tehdä XML-muotoon XML ja SAS Mitä tänä päivänä voidaan SASista tehdä XML-muotoon Sisältö XML SAS ja XML: ODS:n käyttäminen xml-tulosteisiin Libname enginen käyttäminen XML tulosteisiin XML mapperi Libname enginen käyttäminen

Lisätiedot

Luento 3: Tietorakenteiden esittäminen

Luento 3: Tietorakenteiden esittäminen Luento 3: Tietorakenteiden esittäminen AS-0.110 XML-kuvauskielten perusteet Janne Kalliola Tietorakenteiden esittäminen XML-dokumentti puuna Muunnokset muodosta toiseen Perustietorakenteet listat puut

Lisätiedot

C++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi

C++11 Syntaksi. Jari-Pekka Voutilainen Jari-Pekka Voutilainen: C++11 Syntaksi 1 C++11 Syntaksi Jari-Pekka Voutilainen 13.4.2012 2 Range-for Iteroi säiliön kaikki alkiot for-silmukassa. Säiliöltä vaaditaan begin- ja end-iteraattorit. Pätee kaikille C++11 STL-säiliöille, taulukoille,

Lisätiedot

Tietojen toimittaminen Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Viestit Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen toimittaminen Skeemat Viestit Kansallisen tulorekisterin perustamishanke Tietojen toimittaminen Skeemat Viestit 2 (14) Versiohistoria Versio Päivämäärä Kuvaus 1.0 12.6.2017 Dokumentti

Lisätiedot

Yleistä. Dokumentin mallintaminen. Dokumentin analysointi. Desktop publishing vs. XML. Tietokantakaavion analysointi. Dokumentin osien analysointi

Yleistä. Dokumentin mallintaminen. Dokumentin analysointi. Desktop publishing vs. XML. Tietokantakaavion analysointi. Dokumentin osien analysointi Dokumentin mallintaminen Yleistä Dokumentin analysointi DTD:n suunnittelu Standardi DTD:t Esimerkki: uuden DTD:n laatiminen Muuta Yleistä DTD:t tärkeitä rakenne validointi DTD:n muutokset voivat johtaa

Lisätiedot

XML:n käyttötavat työeläkejärjestelmässä. Versio 2

XML:n käyttötavat työeläkejärjestelmässä. Versio 2 XML:n käyttötavat työeläkejärjestelmässä 10.1.2005 XML-sanomastandardi 2(35) 1 Johdanto... 4 2 Standardi lyhyesti... 5 3 Skeemojen toteutuksesta... 6 3.1 Yleistä... 6 3.2 Kieli... 6 3.3 Merkistö... 6 3.4

Lisätiedot

Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke

Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke Versio 1.0 Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke Varmennepalvelu Rajapintakuvaus 2 (13) Versiohistoria Versio Päivämäärä Kuvaus 1.0 Dokumentti julkaistu. Varmennepalvelu

Lisätiedot

11 XML-entiteetit. <eg> Using HTML tag <FONT> is not recommended! </eg> <eg> Using HTML tag <FONT> is not recommended! </eg> XML-entiteetit

11 XML-entiteetit. <eg> Using HTML tag <FONT> is not recommended! </eg> <eg> Using HTML tag <FONT> is not recommended! </eg> XML-entiteetit 11 XML-entiteetit Entiteetit ovat tuttuja jo HTML-kielestä - entiteettien avulla dokumenttiin voidaan esim. liittää merkkijonoja, joille on annettu erisnimi Seuraava esimerkki liittää merkkidataan "

Lisätiedot

Johdatus rakenteisiin dokumentteihin

Johdatus rakenteisiin dokumentteihin -RKGDWXVUDNHQWHLVLLQGRNXPHQWWHLKLQ 5DNHQWHLQHQGRNXPHQWWL= rakenteellinen dokumentti dokumentti, jossa erotetaan toisistaan dokumentin 1)VLVlOW, 2) UDNHQQHja 3) XONRDVX(tai esitystapa) jotakin systemaattista

Lisätiedot

10 XML ja dokumenttien tyyppimäärittely

10 XML ja dokumenttien tyyppimäärittely 10 XML ja dokumenttien tyyppimäärittely XML tarjoaa perussyntaksin dokumenttien mielivaltaista merkkaamista varten Huomionarvoista: - merkkidatan ja merkkauksen koodauksen valinta (sama kaikille XMLdokumenteille)

Lisätiedot

Tietueet. Tietueiden määrittely

Tietueet. Tietueiden määrittely Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään

Lisätiedot

Tutkija Mikko Salmenperä. huone: sd109. TTY / Systeemitekniikan laitos. puh:

Tutkija Mikko Salmenperä. huone: sd109. TTY / Systeemitekniikan laitos. puh: Tutkija Mikko Salmenperä huone: sd109 TTY / Systeemitekniikan laitos puh: 040-849 0061 email: mikko.salmenpera@tut.fi Joko kaikilla on aihe? Harjoitustyöt Pitäisikö järjestää välinäyttö & komentointi työn

Lisätiedot

XQuery tietokannan kyselykielenä

XQuery tietokannan kyselykielenä XQuery tietokannan kyselykielenä Miro Lehtonen 31.10.2007 OUGF-syysseminaari Tietojenkäsittelytieteen laitos Sisältö Johdanto XQueryn perusteet + esimerkkejä Oracle ja XQuery Miro Lehtonen, XQuery tietokannan

Lisätiedot

13 Nimiavaruudet. kirjoitetaan muotoon (ja koodataan vähän lisätietoa) "huomataan heti", mitä kirjoittaja ajaa takaa ja tarkoittaa. Vai huomataanko?

13 Nimiavaruudet. kirjoitetaan muotoon (ja koodataan vähän lisätietoa) huomataan heti, mitä kirjoittaja ajaa takaa ja tarkoittaa. Vai huomataanko? 13 Nimiavaruudet Huomautus: Otsikon voisi kuvaavammin kirjoittaa muodossa "structdoc:section". Syy selviää piakkoin Merkkauksen ideana on helpottaa tiedon ja metatiedon erottelua tarjoamalla dokumenteille

Lisätiedot

Hohde Consulting 2004

Hohde Consulting 2004 Luento 5: XQuery AS-0.110 XML-kuvauskielten perusteet Janne Kalliola XQuery XQuery uudet funktiot sekvenssit muuttujat Iterointi järjestys suodatus järjestäminen Ehtorakenteet Muita toimintoja www.hohde.com

Lisätiedot

5 XML Query Language. Skeemojen opiskelun myötä olemme polulla joka luontevasti johtaa ajatukseen XMLdokumenteista

5 XML Query Language. Skeemojen opiskelun myötä olemme polulla joka luontevasti johtaa ajatukseen XMLdokumenteista 5 XML Query Language Skeemojen opiskelun myötä olemme polulla joka luontevasti johtaa ajatukseen XMLdokumenteista tietokantoina. Erityisesti, XML-skeema voi vaatia että tietty rakenne toimii (esiintymässä)

Lisätiedot

5 Merkkaus: XML protokollana

5 Merkkaus: XML protokollana 5 Merkkaus: XML protokollana XML on siis ns. metakieli, joka käytännössä voidaan tulkita tavaksi merkitä ja tyypittää rakenteisia dokumentteja. Kuten tunnettua, se tarjoaa puitteet esim. XHTML-kielen määrittelylle

Lisätiedot

W3C-teknologiat ja yhteensopivuus

W3C-teknologiat ja yhteensopivuus W3C-teknologiat ja yhteensopivuus Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto Esitelmä Hyvin lyhyt versio: W3C asettaa

Lisätiedot

5 XML Query Language. Skeemojen opiskelun myötä olemme polulla joka luontevasti johtaa ajatukseen XMLdokumenteista

5 XML Query Language. Skeemojen opiskelun myötä olemme polulla joka luontevasti johtaa ajatukseen XMLdokumenteista 5 XML Query Language Skeemojen opiskelun myötä olemme polulla joka luontevasti johtaa ajatukseen XMLdokumenteista tietokantoina. Erityisesti, XML-skeema voi vaatia että tietty rakenne toimii (esiintymässä)

Lisätiedot

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke Tietojen jakelu Skeemat Viestit 2 (20) Versiohistoria Versio Päivämäärä Kuvaus 1.0 12.6.2017 Dokumentti julkaistu.

Lisätiedot

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke Versio 1.04 Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke Tietojen jakelu Skeemat Viestit 2 (21) Versiohistoria Versio Päivämäärä Kuvaus 1.0 12.6.2017 Dokumentti julkaistu.

Lisätiedot

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke Versio 1.0 Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke Tietojen jakelu Skeemat Palvelupyyntö 2 (9) Versiohistoria Versio Päivämäärä Kuvaus 1.0 12.6.2017 Dokumentti

Lisätiedot