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

Samankaltaiset tiedostot
XML-merkkaus. Merkkidata, prosessointikomennot, kommentit

XML johdatus: DTD. Jaana Holvikivi

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

6 DTD ja dokumentin tyyppimääritys

6 DTD ja dokumentin tyyppimääritys

Elementtien tyyppideklaraatiot

6 DTD ja dokumentin tyyppimääritys

10 XML ja dokumenttien tyyppimäärittely

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

XML rakenteen suunnittelu. Jaana Holvikivi

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

XML / DTD / FOP -opas Internal

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

CSE-A1200 Tietokannat

Luento 2: XML:n syntaksi

XML-saatavuuskysely. XML-tiedoston kuvaus. versio

XML - perusteet. Ctl230: Luentokalvot Miro Lehtonen

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

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

P e d a c o d e ohjelmointikoulutus verkossa

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

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

HELIA 1 (12) Outi Virkki Tiedonhallinta

Extensible Stylesheet Language (XSL)

Kuva xhtml-sivulla. Mirja Jaakkola

ULOSOTON HAKIJOIDEN LÄHETTÄMÄT SÄHKÖISET HAKEMUS- JA MUUTOSTIEDOT XML-TIEDOSTOMUODOSSA

XML Technologies and Applications - harjoitustyö -

9 XML perusteet

T2V2 Vaaratilanneilmoitussanomakuvaus

Tietojen toimittaminen Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Yhteentoimivuutta edistävien työkalujen kehittäminen

5 Merkkaus: XML protokollana

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke

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

JHS 143 Liite 1: SOVELTAMISOHJE USEAMMAN TIETOJÄRJESTELMÄN VÄLISEEN TIEDONSIIRTOON

M. Merikanto 2012 XML. Merkkauskieli, osa 2

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke

5 Merkkaus: XML protokollana

Tiedostomuotoinen ennakkoilmoitus

11 XML-entiteetit. Edellisistä laillisia ominaisuusyhdistelmiä ovat siis vain aikaisemmin luetellut viisi:

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

KUUKAUSI-ILMOITUSTEKNIIKAN TIETUEKUVAUS

Tietojen jakelu Skeemat Lokitiedot Kansallisen tulorekisterin perustamishanke

Helsingin yliopisto / TKTL XML-Metakieli XML Schema

T2V2 Turvallisuushavaintoilmoitussanomakuvaus

Muuttujien määrittely

INDUKTIIVISEN PÄÄTTELYN HARJOITUSPAKETTI ESIOPETUKSEEN

7 DTD ja entiteetit: dokumentin fyysinen rakenne

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

VeRan laboratoriotietojen siirtoformaatti

Suomalaisen julkishallinnon Vetuma-palvelu Vetuma-palvelun SAML-kutsurajapinnan metadata-tiedosto Versio: 3.5

Tietojen toimittaminen Skeemat Käsittelypalaute Kansallisen tulorekisterin perustamishanke

TyEL-ansiotietojen sähköinen ilmoittaminen

Datatähti 2019 loppu

XML merkintäkielten perusteet. Luento 3 Pekka Aarnio

INDUKTIIVISEN PÄÄTTELYN HARJOITUSPAKETTI ENSIMMÄISELLE LUOKALLE

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke

Mittaustietojen SAF-aineistokuvaus kaasudatahubiin

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

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

TEKNINEN MÄÄRITTELY. Matkahuollon toimipistehaun rajapinta. Ismo Koskinen

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke

Sosiaalihuollon asiakastiedon arkiston validointipalvelu

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke

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


Tietojen toimittaminen Skeemat Työnantajan erillisilmoitukset Kansallisen tulorekisterin perustamishanke

Toinen harjoitustyö. ASCII-grafiikkaa

SÄHKE-hanke. Tekninen mallintamisen Siirtotiedoston metatietokuvaukset

Tiedostomuotoinen ennakkoilmoitus

Tietokanta projektin alussa: create table kurssin_tila ( NOT NULL VARCHAR2(60) create table kurssin_tyyppi ( create table opintojakson_tyyppi (

Onecapital Invoicer XML API

Tietojen toimittaminen Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Tämä dokumentti sisältää kenttäkohtaiset ohjeet WS1 Sinfokseen lisätyistä Synkka-tuotetietopankin pakollisista kentistä

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

7 DTD ja entiteetit: dokumentin fyysinen rakenne

Kuvat. 1. Selaimien tunnistamat kuvatyypit

Opiskeluoikeudet. Kaaviokuva

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

Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Käsittelypalaute Kansallisen tulorekisterin perustamishanke

TESTIRAPORTTI - XMLREADER-LUOKKA Virtuaaliyhteisöjen muodostaminen Versio 1.0 (luonnos 2)

XSL Formatting Objects

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke

VUOSI-ILMOITUSTEKNIIKAN TIETUEKUVAUS Ohje sähköisen työsuhde- ja vuosi-ilmoituksen tekemiseen

Linkitetystä listasta perittyä omaa listaa käytetään muun muassa viestiin liittyvien vastausten säilömiseen.

Digitaalisen median tekniikat css tyylimääritykset

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

Automaattinen semanttinen annotointi

XML merkintäkielten perusteet. Luento 3 Pekka Aarnio

PIC-koodin luominen URF-tietokantaan Participant Portal

On autoja, henkilöitä, Henkilöllä on nimi Autolla on omistaja, joka on henkilö. Taulu AUTO(rekno, malli) Taulu HENKILO(nimi, )

Mikä Emma & Elias? Tunnus...4. Typografia Värit Kuosit...9. Valokuvat Kuvitukset Käyntikortit...12

Muutokset suoran sanoma-asioinnin webservicepalvelun

Palkkatietoilmoitus Esimerkki 18 Työkorvaus, tulonsaajana luonnollinen henkilö

15. Ohjelmoinnin tekniikkaa 15.1

AvoHILMO 1(17) Tekninen rakennekuvaus 2.1

Transkriptio:

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 tiedostossa (sisäinen määrittely) Eri tiedostossa (ulkoinen määrittely) Sopii usealle samantyyppiselle dokumentille Useassa tiedostossa 3Määrittelytiedostojen lukumäärällä ei ylärajaa 3Ulkoisiin tyypin määrittelyihin pitää viitata

DTD:n määrittely 1 Dokumenttityypin valinta (Document Type Declaration) 3Ulkoisen DTD:n esittely <?xml version= 1.0" standalone= no?> <!DOCTYPE omaxmldoc SYSTEM http://www.omasivu.com/xml/omaxmldoc.dtd 3DTD:n nimi = juurielementin nimi 3SYSTEM: DTD ulkoisessa tiedostossa 3PUBLIC: DTD:n looginen tunniste 3Myös molemmat mahdollisia

DTD:n määrittely 2 Esimerkkejä 3Sekä PUBLIC että SYSTEM -tunniste <!DOCTYPE books PUBLIC "-//LBIN//DTD IEEE Magazines//EN" "xmlarticle.dtd"> 3Sisäinen DTD <?xml version= 1.0" standalone= yes?> <!DOCTYPE omaxmldoc [ <!ELEMENT omaxmldoc (#PCDATA)> ]> 3Sekä ulkoinen että sisäinen DTD <!DOCTYPE omaxmldoc SYSTEM omaxmldoc.dtd [ <!ELEMENT omaxmldoc (#PCDATA)> ]>

Elementtien määrittely DTD:ssä Elementin mahdolliset sisältömallit 3DTD:n mukaan elementti voi sisältää Vain elementtejä Vain tekstiä Sekä tekstiä että elementtejä Ei mitään (tyhjä elementti, EMPTY sisältömalli) Mitä tahansa (ANY sisältömalli) 3DTD:ssä myös rajoituksia Elementtien määrälle Elementtien järjestykselle

Elementtityypin määrittely 1 Sisältönä vain elementtejä 3Määrittelyn muoto Alkutunniste: <!ELEMENT Elementin nimi (Sisältömalli) Lopputunniste: > 3<!ELEMENT kokonimi (etunimi, sukunimi)> 3Elementin sisältö suluissa Myös lapsielementtien järjestys ja lukumäärä

Elementtityypin määrittely 2 Toisto 3 Vähintään yksi etunimi <!ELEMENT kokonimi (etunimi, etunimi*, sukunimi)> <!ELEMENT kokonimi (etunimi+, sukunimi)> 3 Tasan kaksi etunimeä <!ELEMENT kokonimi (etunimi, etunimi, sukunimi)> 3 Toistuva ryhmä <!ELEMENT sukulaiset ((suhde, etunimet, sukunimi)*)>

Elementtityypin määrittely 3 Elementtien järjestys, välimerkit 3Esittelyjärjestystä noudatettava, 3Vapaa järjestys <!ELEMENT ominaisuudet (koko väri muoto)*> 3Vaihtoehtoiset elementit <!ELEMENT omistaja (hetu y-tunnus)> 3Valinnaiset elementit <!ELEMENT kokonimi (titteli?, nimi, lempinimi?)>

Elementtityypin määrittely 4 Sisältönä vain tekstiä 3<!ELEMENT etunimi (#PCDATA)> 3Parsable Character DATA Merkkidataa Myös merkkientiteettejä 3Sopii datan esittämiseen Arvot merkkijonoina

Esimerkki Yksinkertainen XML-dokumentti <?xml version="1.0"?> <!DOCTYPE kirpputori [ <!ELEMENT kirpputori <!ELEMENT päiväys <!ELEMENT aika (päiväys, aika, paikka, kommentti?)> (#PCDATA)> (#PCDATA)> (#PCDATA)> <!ELEMENT paikka <!ELEMENT kommentti (#PCDATA)> ]> <kirpputori> <päiväys>1.2.2003</päiväys> <aika>klo 12</aika> <paikka>helsinki</paikka> <kommentti>paljon tavaraa myynnissä.</kommentti> </kirpputori>

Elementtityypin määrittely 5 Sisältönä sekä tekstiä että elementtejä 3<!ELEMENT p (#PCDATA b i u)*> 3#PCDATA:n oltava ryhmän ensimmäisenä 3Elementtien määrää ei voi rajoittaa 3Elementien järjestys vapaa 3Tekstidokumenttien elementeille tyypillinen määrittely (mixed content) 3Muissa dokumenteissa kannattaa välttää

Elementtityypin määrittely 6 Tyhjä elementti 3<!ELEMENT kuva EMPTY> 3Tyypillinen käyttö: <kuva tiedosto= image.gif /> 3Kielletty: <kuva></kuva> 3<!ELEMENT kuva (kuvateksti?)> 3Nyt sallittu: <kuva></kuva> ja <kuva/>

Elementtityypin määrittely 7 Sisältönä mitä tahansa? 3<!ELEMENT jotain ANY> 3Sisältönä esiteltyjä elementtejä 3Joustavuus ei periydy 3Koska kannattaa käyttää? <jotain> <a><b><c><d>tekstiä</d></c></b></a> </jotain>

Elementtityypin määrittely 8 DTD:n suunnittelun hyvät tavat 3Vältä moniselitteisyyttä Väärin: <!ELEMENT omistaja ((nimi, hetu) (nimi?, y-tunnus))> Oikein: <!ELEMENT omistaja (nimi?, (hetu y-tunnus))> Väärin: <!ELEMENT kokojuttu (osa?, osa)> Oikein <!ELEMENT kokojuttu (osa, osa?)>

Attribuuttien määrittely DTD:ssä Säännöt attribuuttien esiintymiselle 3Attribuutti esiintyy aina elementin yhteydessä 3Määrittely elementtityypeittäin Kaikilla attribuuteilla pitää olla eri nimi Samannimiset määriteltävä erikseen eri elementtityypeille 3Jokaiselle attribuutille voidaan määritellä Tyyppi tai mahdollisten arvojen joukko Pakollisuus Oletusarvo

Attribuuttien määrittely 2 Määrittelyn muoto 3Alkutunniste: <!ATTLIST 3Elementin nimi 3Attribuuttien määrittely Attribuutin nimi Attribuutin tyyppi Oletusarvo 3Lopputunniste: >

Attribuuttien määrittely 3 Esimerkki <!ELEMENT kuva EMPTY> <!ATTLIST kuva tiedosto CDATA #REQUIRED korkeus CDATA #IMPLIED leveys CDATA #IMPLIED id ID #REQUIRED> <kuva tiedosto= kuva1.gif korkeus= 150 leveys = 150 id= kuva0123 > <kuva tiedosto= kuva2.gif id= kuva01234 >

Attribuuttien määrittely 4 Attribuuttien tyypit: CDATA 3CDATA (Character DATA) Yleisimmin käytetty Attribuutin arvot merkkidataa Varatut merkit pitää korvata merkkientiteteillä <!ELEMENT kuvio EMPTY> <!ATTLIST kuvio muoto CDATA #REQUIRED väri CDATA #REQUIRED> <kuvio muoto= pyöreä väri= punainen&sininen />

Attribuuttien määrittely 5 Attribuuttien tyypit: ID 3ID Elementtityypillä vain yksi ID-attribuutti Arvot yksilöiviä, XML-nimiä Ei voi alkaa numerolla Jokaisella elementillä ID-attribuutilla eri arvo <!ELEMENT kuva EMPTY> <!ATTLIST kuva kuvaid ID #REQUIRED> <kuva kuvaid= kuva1 /> <kuva kuvaid= kuva2 /> Väärin: <kuva kuvaid= 123 />

Attribuuttien määrittely 6 Attribuuttien tyypit: IDREF, IDREFS 3IDREF Viittaukset dokumentin sisällä 1:1-suhteet kahden elementin välillä Arvon oltava jonkin ID-attribuutin arvo 3IDREFS Kuin IDREF, mutta viittaukset useampaan elementtiin Yhdestä moneen -suhteet (1:n) elementtien välillä Arvot erotellaan välilyönnillä

Attribuuttien määrittely 7 ID, IDREF -esimerkki <!ELEMENT kuva EMPTY> <!ATTLIST kuva kuvaid ID #REQUIRED> <!ELEMENT taulukko EMPTY> <!ATTLIST taulukko taulukkoid ID #REQUIRED> <!ELEMENT viite EMPTY> <!ATTLIST viite kuvaidref IDREF #IMPLIED taulukkoidref IDREF #IMPLIED> <kuva kuvaid= kuva1 /> <kuva kuvaid= kuva2 /> <taulukko taulukkoid= t1 /> <p> Tekstistä viitataan kuvaan <viite kuvaidref= kuva1 /> ja taulukkoon <viite taulukkoidref= t1, mutta voidaan viitata myös väärin <viite taulukkoidref= kuva2 />. </p>

Attribuuttien määrittely 8 IDREFS-esimerkki <!ELEMENT kuva EMPTY> <!ATTLIST kuva kuvaid ID #REQUIRED> <!ELEMENT viite EMPTY> <!ATTLIST viite kuvaidref IDREFS #REQUIRED> <kuva kuvaid= k1 /><kuva kuvaid= k2 /><kuva kuvaid= k3 /> <!-- valideja esimerkkejä --> <viite kuvaidref= k1 /> <viite kuvaidref= k2 k3 /> <viite kuvaidref= k1 k1 k1 /> <!-- voi olla samoja ID-arvoja --> <!-- nämä eivät ole valideja --> <viite kuvaidref= /> <viite kuvaidref= k1, k2 />

Attribuuttien määrittely 9 Attribuuttien tyypit: ENTITY 3ENTITY Jäsentämättömien entiteettien käyttö dokumentissa Esim. kuvatiedostot ym. ei-tekstuaalinen sisältö <!NOTATION gif PUBLIC GIF > <!ENTITY BlueLine SYSTEM Blueline.gif NDATA gif> <!ELEMENT Separator EMPTY> <!ATTLIST Separator img ENTITY #REQUIRED> <Separator img= BlueLine />

Attribuuttien määrittely 10 Attribuuttien tyypit: ENTITIES 3ENTITIES Suhde ENTITY:yn sama kuin IDREFS:n suhde IDREF-attribuuttiin <!NOTATION gif PUBLIC GIF > <!ENTITY BlueLine SYSTEM blueline.gif NDATA gif> <!ENTITY RedLine SYSTEM redline.gif NDATA gif> <!ELEMENT Separator EMPTY> <!ATTLIST Separator img ENTITIES #REQUIRED> <Separator img= BlueLine RedLine />

Attribuuttien määrittely 11 Attribuuttien tyypit: NMTOKEN 3NMTOKEN (Name Token) Arvot rajoitetumpia kuin CDATA:ssa Arvona yksi sana, myös numerot sallittuja <!ELEMENT koodinimi EMPTY> <!ATTLIST koodinimi koodi NMTOKEN #REQUIRED xml:lang NMTOKEN #IMPLIED> <!-- valideja esimerkkejä --> <koodinimi koodi= 1829 /> <koodinimi koodi= :-. /> <!-- kiellettyjä esimerkkejä --> <koodinimi koodi= H&M /> <koodinimi koodi= H ja M />

Attribuuttien määrittely 12 Attribuuttien tyypit: NMTOKENS 3NMTOKENS Samat rajoitteet arvoille kuin NMTOKEN-tyyppisillä attribuuteilla Arvot erotetaan välilyönnillä <!ELEMENT koodinimet EMPTY> <!ATTLIST koodinimet koodit NMTOKEN S #REQUIRED> <!-- valideja esimerkkejä --> <koodinimet koodit= 12 34 56 78" /> <koodinimet koodit= - -. />

Attribuuttien määrittely 13 Attribuuttien tyypit: luetellut arvot 3Itse määritelty tyyppi Sopii rajoitetun arvojoukon määrittelyyn Vain määritellyt arvot sallittuja <!ELEMENT kuva EMPTY> <!ATTLIST kuva koko (pieni keskikoko iso) #REQUIRED> <!-- valideja esimerkkejä --> <kuva koko= pieni /> <kuva koko= iso /> <!-- Ei validi: --> <kuva koko= medium />

Attribuuttien määrittely 14 Attribuuttien tyypit: NOTATION 3NOTATION Tekstipohjaiset tiedostoformaatit XML-dokumentissa Ei tyhjissä elementeissä <!NOTATION ps PUBLIC PostScript level 3 > <!NOTATION base64 PUBLIC Base-64 encoded > <!ELEMENT para (#PCDATA)> <!ATTLIST para tyyppi NOTATION (ps base64) #REQUIRED> <!-- validi esimerkki --> <para tyyppi= ps >gsave 112 75 moveto 112 300 lineto showpage grestore</para>

Attribuuttien määrittely 15 Attribuuttien pakollisuus 3#REQUIRED Pakolliset attribuutit, aina läsnä validissa elementissä 3#IMPLIED Mahdollinen attribuutti <!ELEMENT kuva EMPTY> <!ATTLIST kuva tiedosto CDATA #REQUIRED koko CDATA #IMPLIED <!-- valideja esimerkkejä --> <kuva tiedosto= kuva1.gif koko= 150x100 > <kuva tiedosto= kuva2.gif >

Attribuuttien määrittely 16 Oletusarvot 3Jäsennin korvaa puuttuvat arvot oletusarvolla <!ELEMENT auto EMPTY> <!ATTLIST auto väri (punainen vihreä sininen) punainen > <auto väri= vihreä /> <auto /> <!-- Varatun attribuutin määrittely --> <!ELEMENT runo (#PCDATA)> <!ATTLIST runo xml:space (default preserve) "preserve">

Attribuuttien määrittely 17 Pakollinen arvo 3 #FIXED Attribuutin vakioarvo Ei pakollinen itse elementissä <!ELEMENT auto EMPTY> <!ATTLIST auto väri CDATA punainen #FIXED> <!-- validit elementit --> <auto väri= punainen /> <auto /> <!-- ei validi esimerkki --> <auto väri= sininen />