Helsingin yliopisto / TKTL XML-Metakieli XML Schema

Samankaltaiset tiedostot
XML-metakieli, k

XML merkintäkielten perusteet. Luento 3 Pekka Aarnio

XML merkintäkielten perusteet. Luento 3 Pekka Aarnio

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

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

3 XML Schema: datatyypit

Helsingin yliopisto/tktl XML-metakieli XPath

4 XML Schema: tyyppihierarkiat ja avaimet

Omat Lähdöt ohjelmointirajapinta: Versio 1.01

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

JUHTA Julkisen hallinnon tietohallinnon neuvottelukunta

Luento 3: Tietorakenteiden esittäminen

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

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

Julkishallinnon XML-skeemat v0.5 JHS-suositus

2 XML Schema: johdanto ja rakenteiden perusteet

P e d a c o d e ohjelmointikoulutus verkossa

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

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

2 XML Schema: johdanto ja rakenteiden perusteet

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

Schema ReitinTilaus.xsd

Luento 2: XML:n syntaksi

Hohde Consulting 2004

CSE-A1200 Tietokannat

Schema Asiakasprofiili.xsd

Ohjelmointi 2. Jussi Pohjolainen. TAMK» Tieto- ja viestintäteknologia , Jussi Pohjolainen TAMPEREEN AMMATTIKORKEAKOULU

Java-kielen perusteet

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

17. Javan omat luokat 17.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

XML johdatus: DTD. Jaana Holvikivi

Ohjelmointi 1 Taulukot ja merkkijonot

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

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

Opintosuoritukset. Kaaviokuva

tään painetussa ja käsin kirjoitetussa materiaalissa usein pienillä kreikkalaisilla

JHS 170 Julkishallinnon XML-skeemat

17. Javan omat luokat 17.1

20. Javan omat luokat 20.1

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

FINVOICE- VÄLITYSPALVELU ILMOITTAMISPALVELUN SOVELTAMISOHJE

JHS XXX Julkishallinnon XML-skeemat

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

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

Tietojen toimittaminen Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Sosiaalihuollon asiakasasiakirjojen tietomallinnus Tietomallit teknisen asiakirjamäärittelyn näkökulmasta

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Tietueet. Tietueiden määrittely

Digitaalisen median tekniikat. JSP ja XML

XQuery tietokannan kyselykielenä

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke

PAIKKATIETOIKKUNAN LUETTELOPALVELU KÄYTTÖOHJE

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke

Java-kielen perusteet

Algebralliset tietotyypit ym. TIEA341 Funktio ohjelmointi 1 Syksy 2005

ILMOITTAMISPALVELUN SOVELTAMISOHJE

18. Abstraktit tietotyypit 18.1

Opiskeluoikeudet. Kaaviokuva

JHS 162 Paikkatietojen mallintaminen tiedonsiirtoa varten Liite 1 UML-mallinnus

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

DRG (Diagnosis Related Groups) sovellusrajapinta

Luento 4: XPath ja XLink

T2V2 Vaaratilanneilmoitussanomakuvaus

Sisällys. 18. Abstraktit tietotyypit. Johdanto. Johdanto

15. Ohjelmoinnin tekniikkaa 15.1

RAKENNEKUVAUSTEN HYÖDYNTÄMINEN KONFIGUROINTITIEDOSTOJEN VALIDOINNISSA. Aki Ollenberg

7/20: Paketti kasassa ensimmäistä kertaa

Muuttujien määrittely

\+jokin merkki tarkoittaa erikoismerkkiä; \n = uusi rivi.

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke

Tyyppejä ja vähän muutakin. TIEA341 Funktio ohjelmointi 1 Syksy 2005

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

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

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Apuja ohjelmointiin» Yleisiä virheitä

JHS XXX Julkishallinnon XML-skeemat

XML-merkkaus. Merkkidata, prosessointikomennot, kommentit

Rakenteiset tietotyypit Moniulotteiset taulukot

Algoritmit 2. Luento 7 Ti Timo Männikkö

Kielioppia: toisin kuin Javassa

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

7. Näytölle tulostaminen 7.1

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

Kääreluokat (oppikirjan luku 9.4) (Wrapper-classes)

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

Taulukot. Jukka Harju, Jukka Juslin

Modulaariset tietosisältömäärittelyt Tilannekatsaus

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

Massahaun tulosten tulkintaa

VeRan laboratoriotietojen siirtoformaatti

Tieto- ja tallennusrakenteet

SÄHKE-hanke. Abstrakti mallintaminen Tietomallin (graafi) lukuohje

Transkriptio:

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ä tuki määritysten evoluutiolle upotettu dokumentaatio perustuu tietotyyppimäärityksiin yksinkertaiset (merkkauksia sisältämättömät) rakenteiset Elementtimääritys kytkee elementin tietotyyppiin yksinkertaiseen tai rakenteiseen Attribuuttimääritys kytkee attribuutin yksinkertaiseen tietotyyppiin 1 2 Esimerkkidokumentti: <b:card xmlns:b="http://businesscard.org"> <b:name>john Doe</b:name> <b:title>ceo, Widget Inc.</b:title> <b:email>john.doe@widget.com</b:email> <b:phone>(202) 555-1414</b:phone> <b:logo b:uri="widget.gif"/> </b:card> Esimerkki dokumentti: Nimiavaruuden nimi tässä kontekstissa käytettävän nimiavaruuden tunnistava URI <b:card xmlns:b="http://businesscard.org"> <b:name>john Doe</b:name> <b:title>ceo, Widget Inc.</b:title> <b:email>john.doe@widget.com</b:email> <b:phone>(202) 555-1414</b:phone> <b:logo b:uri="widget.gif"/> </b:card> [B&S] 3 4 <schema xmlns="http://www.w3.org/2001/xmlschema" xmlns:b="http://businesscard.org" targetnamespace="http://businesscard.org"> <element name="card" type="b:card_type"/> <element name="name" type="string"/> <element name="title" type="string"/> <element name="email" type="string"/> <element name="phone" type="string"/> <element name="logo" type="b:logo_type"/> <attribute name="uri" type="anyuri"/> <schema xmlns="http://www.w3.org/2001/xmlschema" xmlns:b="http://businesscard.org" targetnamespace="http://businesscard.org"> <element name="card" type="b:card_type"/> <element käytettävät name="name" type="string"/> <element nimiavaruudet name="title" type="string"/> määriteltävä <element name="email" type="string"/> nimiavaruus <element name="phone" type="string"/> <element name="logo" type="b:logo_type"/> <attribute name="uri" type="anyuri"/> [B&S] 5 6 1

<schema xmlns="http://www.w3.org/2001/xmlschema" xmlns:b="http://businesscard.org" targetnamespace="http://businesscard.org"> <element name="card" type="b:card_type"/> <element name="name" type="string"/> <element name="title" type="string"/> tietotyyppikytkentöjä <element name="email" type="string"/> <element name="phone" type="string"/> <element name="logo" type="b:logo_type"/> <attribute name="uri" type="anyuri"/> <complextype name="card_type"> <element ref="b:name"/> valinnaisia <element ref="b:title"/> <element ref="b:email"/> <element ref="b:phone" minoccurs="0"/> <element ref="b:logo" minoccurs="0"/> rakenteinen tyyppi <complextype name="logo_type"> <attribute ref= b:uri" use="required"/> </schema> :n tietotyyppi 7 [B&S] 8 / yksinkertaiset tyypit Nimiavaruus dokumentissa: target URI b:card xmlns:b="http://businesscard.org xmlns:xsi="http://www.w3.org/2001/xmlschemainstance" xsi:schemalocation="http://businesscard.org business_card.xsd"> <b:name>john Doe</b:name> <b:title>ceo, Widget Inc.</b:title> Sijainti-URI <b:email>john.doe@widget.com</b:email> <b:phone>(202) 555-1414</b:phone> <b:logo b:uri="widget.gif"/> </b:card> 9 Yksinkertainen tietotyyppi on joukko merkkijonoja, joihin liittyy semanttinen tulkinta Esim. decimal: desimaaliluvuksi tulkittava merkkijono merkkijonojen välille määritelty järjestys XML schema:ssa määritellään joukko primitiivityyppejä sekä mekanismit johdettujen tyyppien määrittelyyn rajoitteiden, listakonstruktion ja yhdisteen avulla ennalta määritelty merkitys 10 primitiivityypit johdettuja tyyppejä string any Unicode string boolean true, false,1,0 decimal 3.1415 valinnainen aikävyöhyketieto float 6.02214199E23 double 42E970 datetime 2004-09-26T16:29:00-05:00 time 16:29:00-05:00 date 2004-09-26 hexbinary 48656c6c6f0a base64binary SGVsbG8K anyuri http://www.brics.dk/ixwt/ QName rcp:recipe, recipe... [B&S] 11 määrittelee valmiiksi myös joitain johdettuja tyyppejä positiveinteger nonpositiveinteger long ID IDREF NMTOKEN Name jne 12 2

johdettuja tyyppejä johdettuja tyyppejä Rajoitteet johdettujen tyyppien määrittelyssä Rajoite esitetään piirremäärityksen (facet) avulla length, minlength, maxlength pattern (säännöllinen lauseke) enumeration (luetteloalkio) whitespace (tyhjän tilan käsittely) maxinclusive, maxexclusive, mininclusive, minexclusive (ala ja ylärajoja) totaldigits, fractiondigits Ala- ja ylärajat <simpletype name="score_from_0_to_100"> <restriction base="integer"> <mininclusive value="0"/> <maxinclusive value="100"/> 13 14 johdettuja tyyppejä johdettuja tyyppejä Säännöllinen lauseke rajoittimena <simpletype name="percentage"> <restriction base="string"> <pattern value="([0-9] [1-9][0-9] 100)%"/> Luettelo rajoittimena <simpletype name="kieli"> <restriction base="string"> <enumeration value="en" /> <enumeration value="fi" /> 15 Listatyyppi perustyypeistä <simpletype name="integerlist"> <list itemtype="integer"/> Tyhjätilamerkein eroteltu lista perustyypin mukaisia merkijonoja, yllä kokonaislukuja 16 johdettuja tyyppejä / rakenteiset tyypit Yhdistetyyppi <simpletype name="suomiruotsi_sana"> <union> <simpletype> <restriction base="suomenkielen_sana"/> <simpletype> <restriction base="ruotsinkielen_sana"/> </union> Attribuuttiin voidaan kytkeä vain yksinkertaisia tyyppejä. Elementteihin voidaan kytkeä joko yksinkertaisia tai rakenteisia tyyppejä (complex type) Nimestään huolimatta rakenteisen tyypin määrittely on oikeastaan elementin sisällön ja/tai elementin attribuuttien määrittely määrittelyssä ei viitata alkeellisempiin tietotyyppeihin vaan viittaukset kohdistuvat elementteihin ja attribuutteihin 17 18 3

/ rakenteiset tyypit / rakenteiset tyypit Rakenteisen tyypin määrittely muodostuu elementti- tai attribuuttiviittauksista, jotka kootaan erityisten rakenne-elementtien avulla rakenteiksi elementtiviittaus <element ref="nimi" /> attribuuttiviittaus <attribute ref="nimi" /> Rakenne esitetään peräkkäisyys-, valinta-, kokoelmaelementtien avulla sequence-elementti sulkee sisäänsä peräkkäiset elementit a-elementtiä seuraa b-elementti, esitetään tällöin <complextype name= ab > 19 20 / rakenteiset tyypit / rakenteiset tyypit choice-elementti sulkee sisäänsä vaihtoehtoiset elementit jokin elementeistä a, b tai c esitetään: <complextype name= oneof_abc > <choise> <element ref= n:c /> </choise> Toisto esitetään elementtiviittauksen attribuuttien minoccurs ja MaxOccurs avulla. Näiden oletusarvona on 1. Toistomääreet voi liittää myös rakenne-elementteihin Esim. a?b*cc?: mahdollisesti a, sitten 0-n b:tä sitten 1-2 c:tä <complextype name= repeating > <element ref= n:a minoccurs= 0 /> <element ref= n:b minoccurs= 0 maxoccurs= unbounded > <element ref= n:c maxoccurs= 2 > 21 22 / rakenteiset tyypit / rakenteiset tyypit Järjestämättömän kokoelman määrittelyyn on tarjolla -elementti a,b ja vähintään yksi c missä tahansa järjestyksessä <> <element ref= n:c maxoccurs= unbounded /> </> Elementtiviittaus identifioi tietyn elementtityypin. Sen asemesta voidaan käyttää any-elementtiä viittaamaan mihin tahansa elementtityyppiin. Tarvittaessa any-elementtiin voidaan liittää namespace - attribuutti, jolla rajoitetaan situt elementit kyseiseen nimiavaruuteen kuuluviin, a XHTML:ään <complextype name="whateverxhtml"> <any namespace="http://www.w3.org/1999/xhtml" minoccurs=0 maxoccurs="unbounded"> 23 24 4

/ rakenteiset tyypit / rakenteiset tyypit Rakenne-elementtien sisäkkäistä käyttöä on rajoitettu, seuraavat upotukset kiellettyjä: sequence choise choise sequence Rakenteiseen tyyppiin voidaan liittää myös attribuuttiviittauksia. Jos tyyppiin sisältyy sekä elementtirakenne että attribuuttiviittauksia, on edellisen oltava määrityksessä aiemmin. Attribuuttiviittaukseen voidaan sisällyttää attribuutti use[arvot: optional (oletusarvona) ja required] kuvaamaan pakollisuutta 25 26 / rakenteiset tyypit / rakenteiset tyypit <complextype name="order_type" mixed="true"> <choice> <element ref="n:address"/> <element ref="n:email" minoccurs="0" maxoccurs="unbounded"/> <element ref="n:phone"/> </choice> <attribute ref= n:id" use="required"/> rakenneosa merkkitietoa ja elementtejä attribuuttiosa [B&S] 27 Edellä esitetyillä rakenteilla ei pystytä määrittelemään elementtejä, joiden sisältö on säädeltyä merkkitietoa ja joilla on attribuutteja Oma rakenteensa <complextype name="styled_text"> <simplecontent> <extension base="string"> <attribute ref="n:style" use="required" /> </extension> </simplecontent> Sisältönä merkkijono ja pakollisena attribuuttina style 28 / rakenteiset tyypit / rakenteiset tyypit Myös restriction-rakennetta voi käyttää <complextype name="labelled_short_styled_text"> <simplecontent> <restriction base= n:styled_text"> <maxlength value="20 /> rajoite <attribute ref="n:label" /> </simplecontent> näillä siis attribuutti style ja mahdollisesti label 29 Edellisen kaltaista laajennusmekamismia voi käyttää myös rakenteisten tyyppien yhteydessä <complextype name= ab > käytetään hyväksi aiempaa määritystä <complextype name= abc > <complexcontent> <extension base= n:ab /> <element ref= n:c /> </complexcontent> 30 5

/ rakenteiset tyypit / rakenteiset tyypit :ssa on rakenteen määrittelyyn tarjolla myös DTD:n nimettyjä parametrikohteita vastaava group-rakenne, samoin attributegroup: <group name="heading"> <choise> <element ref="xhtml:h1" /> <element ref="xhtml:h2" /> <element ref="xhtml:h2" /> </choise> </group> korvaa <complextype name="block" midex="true"> <choise minoccurs="0" maxoccurs="unbounded"> <element ref="xhtml:p" /> <group ref="xhtml:heading" /> </choise> <complextype> 31 Edellä kaikki elementti- ja tyyppimäärittelyt on esitetty erillisinä nimettyinä elementteinä (global style). Näin ei välttämättä tarvitse tehdä, vaan elementtimäärittelyn voi upottaa rakenteisen tyypin määrittelyyn. 32 / rakenteiset tyypit / rakenteiset tyypit Nimetyt erilliset elementit: <element name="card type="b:card_type"/> <element name="name type="string"/> <complextype name="card_type"> <element ref="b:name"/>... Vaihtoehtona upotettu määrittely: <element name="card > <complextype> <element name="name type="string"/>... </element> [B&S] 33 [B&S] 34 / rakenteiset tyypit / modulaarisuus Myös attribuuttimäärittelyt voidaan upottaa. Upotetuilla määrityksillä ei ole nimeä, joten niitä ei voi käyttää uudelleen Upotettuja määrityksiä käyttämällä saadaan kompaktimpi esitys Kielen määrittely voidaan koota osista <include > Lisää sama nimiavaruuteen sisältyviä määrityksiä <redefine > Lisää sama nimiavaruuteen sisältyviä määrityksiä, mutta mahdollistaa joidenkin kohteiden uudelleenmäärittely extension, restriction -tekniika <import > Lisää toiseen nimiavaruuteen kuluvat määrittelyt 35 36 6

/ modulaarisuus <schema xmlns="http://www.w3.org/2001/xmlschema" targetnamespace="http://businesscard.org"> <include schemalocation="business_card_misc.xsd"/> <include schemalocation="business_card_logo.xsd"/> </schema> :ssa on mahdollista määritellä myös elementtien yksikäsitteisiä tunnisteita ja viittauksia niihin Määrittely käyttää XPATH:ia joten siihen palataan myöhemmin [B&S] 37 38 Katso esimerkki http://www.brics.dk/ixwt/examples/recipes.xsd 39 7