XML johdatus: DTD. Jaana Holvikivi



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

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

XML-merkkaus. Merkkidata, prosessointikomennot, kommentit

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

6 DTD ja dokumentin tyyppimääritys

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

6 DTD ja dokumentin tyyppimääritys

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

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

XML rakenteen suunnittelu. Jaana Holvikivi

Elementtien tyyppideklaraatiot

6 DTD ja dokumentin tyyppimääritys

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

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

Johdatus XML teknologioihin

10 XML ja dokumenttien tyyppimäärittely

XML / DTD / FOP -opas Internal

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

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

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

P e d a c o d e ohjelmointikoulutus verkossa

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

PIC-koodin luominen URF-tietokantaan Participant Portal

9 XML perusteet

Luento 2: XML:n syntaksi

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

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

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke

Tiedon esitys tietokoneessa. Jyry Suvilehto T Johdatus tietoliikenteeseen ja multimediatekniikkaan kevät 2010

Sivuston tiedotprintersupportnu mbercare.com

Tietojen toimittaminen Skeemat Viestit Kansallisen tulorekisterin perustamishanke

3 Verkkosaavutettavuuden tekniset perusteet

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

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

Extensible Stylesheet Language (XSL)

Avoimet standardit ja asiakirjamuodot Suomen julkisessa hallinnossa: teoriasta käytäntöön

XML and databases 246

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Työnantajan erillisilmoitukset Kansallisen tulorekisterin perustamishanke

Sivuston tiedotmysiteworthcheck.com

CSE-A1200 Tietokannat

Sivuston tiedotqbsupportcustom erservice.com

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

XML - perusteet. Ctl230: Luentokalvot Miro Lehtonen

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke

Luento 12: XML ja metatieto

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

Johdatus rakenteisiin dokumentteihin

XML-saatavuuskysely. XML-tiedoston kuvaus. versio

Sivuston tiedotwixaccounting.com

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

XML Finland seminaari : Office 2007 XML dokumenttituotannossa

5 Merkkaus: XML protokollana

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke

Sivuston tiedotqbooksupportpho nenumber.com

5 Merkkaus: XML protokollana

Tietojen toimittaminen Skeemat Käsittelypalaute Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke

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

2. Käsiteanalyysi ja relaatiomalli

Sivuston tiedotwindowsrepublic.com.au

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

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

XML Technologies and Applications - harjoitustyö -

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

Sivuston tiedotakcpshop.de.websiteoutlook.com

7 DTD ja entiteetit: dokumentin fyysinen rakenne

Sivuston tiedotreviewproducts.org

Sivuston tiedotsiteoptimer.com

Sivuston tiedotgoogle.com

Tietojen toimittaminen Skeemat Viestit Kansallisen tulorekisterin perustamishanke

è è è RDF-perusteet 7 RDF-perusteet

Luento 7: XML-ohjelmointirajapinnat

10 XML ja dokumenttien tyyppimäärittely

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

Sivuston tiedotemreemir.com

Luento 3: Tietorakenteiden esittäminen

Tietojen jakelu Skeemat Lokitiedot Kansallisen tulorekisterin perustamishanke

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

12 Dokumenttiluokan toteuttamisesta

Sivuston tiedotakcp-sensor.de

Sivuston tiedotskillers.tech

2 Rakenteisten dokumenttien perusteet

9 XML perusteet

9 XML perusteet

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

Johdatus Ohjelmointiin

Onecapital Invoicer XML API

Sivuston tiedotmp3list.pro

Tietojen toimittaminen Skeemat Käsittelypalaute Kansallisen tulorekisterin perustamishanke

7 DTD ja entiteetit: dokumentin fyysinen rakenne

Sivuston tiedotdigitalagency.hyp ersaiyan.com

SÄHKE-hanke. Tekninen mallintamisen Siirtotiedoston metatietokuvaukset

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

12 Dokumenttiluokkien suunnittelusta

Sivuston tiedottools.seo-zona.ru

Helsingin yliopisto / TKTL XML-Metakieli XML Schema

Transkriptio:

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 Jaana Holvikivi 2

DTD <!-- Dokumentin tyyppijulistus (DTD) esimerkki (osa) --> <!ELEMENT university (department+)> <!ELEMENT department (name, address)> <!ELEMENT name (#PCDATA)> <!ELEMENT address (#PCDATA)> Dokumentin tyyppijulistus eli rakenne-esittely yksi sääntö/elementti nimi sisältö dokumentti-ilmentymien "kielioppi" 19.1.2013 Jaana Holvikivi 3

DTD:n käyttö validoiva jäsennin tarkistaa että dokumentti on DTD:n mukainen tunnisteiden johdonmukainen käyttö eri sovellusten DTD-standardit yhteinen sanasto 19.1.2013 Jaana Holvikivi 4

Hyvinmuodostuneisuus XML-dokumentti on hyvinmuodostettu (wellformed) jos se sisältää täsmälleen yhden juurielementin ja muut mahdolliset elementit alkavat ja päättyvät saman elementin sisällä eli elementit ovat tasapainossa, vastaa XML-määrittelyn asettamia hyvinmuodostetun dokumentin rajoituksia, ja sen jokainen jäsennetty entiteetti on hyvinmuodostettu 19.1.2013 Jaana Holvikivi 5

Validius XML-dokumentti on validi jos dokumenttiin kuuluu DTD tai skeema dokumentti on hyvinmuodostettu dokumentti noudattaa DTD-määrittelyä Validius voidaan tarkistaa validoivalla jäsentimellä dokumentti kokonaisuudessaan ("erä") interaktiivinen 19.1.2013 Jaana Holvikivi 6

Dokumenttityypin esittely DTD ja ilmentymä eri tiedostoissa, rakennemäärittelyn ulkoinen osajoukko, ilmentymään tulee <!DOCTYPE catalog SYSTEM "catalog.dtd"> DTD ja ilmentymä samassa tiedostossa: rakennemäärittelyn sisäinen osajoukko <!DOCTYPE catalog [... catalog-dtd tähän kohtaan ]> yhdistelmä mahdollinen sekä sisäinen että ulkoinen rakennemärittelyn osajoukko <!DOCTYPE catalog SYSTEM "catalog.dtd" [ <!ENTITY % paramodel "#PCDATA SUB SUP">... ]> 19.1.2013 Jaana Holvikivi 7

Dokumenttityypin esittely 2 DTD ja ilmentymä eri tiedostoissa, PUBLIC julkinen standardi ilmentymään tulee <!DOCTYPE catalog PUBLIC "-//ORG_NAME//DTD CATALOG//EN"> - lippu(-/+) kertoo, ettei standardi ole kovin merkittävä ISO standardit alkavat "ISO... ORG_NAME kertoo DTD:n omistajan DTD tiedoston tyyppi CATALOG dokumentin nimi EN kielikoodi tyyppimäärittely voi sijaita XML-prosessorin omassa sisäisessä DTD-tietokannassa <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 19.1.2013 Jaana Holvikivi 8

Ulkoinen tai sisäinen DTD yleinen muoto: <! DOCTYPE document_element source location [internal subset of DTD] > esim. <!DOCTYPE Dictionary SYSTEM dictionary.dtd > Jaettu dokumenttityyppi: <!DOCTYPE Dictionary PUBLIC http://www.evtek.fi/dtd/dictionary.dtd > sisäinen: <!DOCTYPE MyMessage SYSTEM [!ELEMENT MyMessage (#PCDATA)]> sisäinen ja ulkoinen: <!DOCTYPE MyMessage SYSTEM mydtd.dtd [!ELEMENT MyElement (#PCDATA)]> 19.1.2013 Jaana Holvikivi 9

Elementtityypin esittely <! ELEMENT country (capital)> elementin nimi elementin sisältö sisällön esittely (content declaration), myös sisältömalli (content model) erotinmerkit (<!, >, (, )) ja avainsana (ELEMENT) 19.1.2013 Jaana Holvikivi 10

Lapsielementit peräkkäiset lapsielementit: <!ELEMENT country (cname, capital, population)> vaihtoehtoiset lapsielementit: <!ELEMENT country (cname official_name)> valinnaiset elementit: <!ELEMENT country (cname, capital, population?)> 19.1.2013 Jaana Holvikivi 11

Toisto * toisto: nolla tai useampi, valinnainen <!ELEMENT country (cname, capital, city*)> + toisto: yksi tai useampi, pakollinen <!ELEMENT country (cname, neighbour_country+)>? Kertaesiintymä, valinnainen [none] kertaesiintymä, pakollinen Toistuva ryhmä: <!ELEMENT country (cname, (city, city_population)*)> 19.1.2013 Jaana Holvikivi 12

Tietosisältö Dataa <!ELEMENT cname (#PCDATA)> "parsed character data" Elementtejä alielementtejä (lapsielementtejä) Yhdistelmä (mixed content) sekä dataa että elementtejä <!ELEMENT para (#PCDATA sub super)*> #PCDATAn on tultava ensin, ja on oltava toistuva ryhmä jossa on vaihtoehtoja 19.1.2013 Jaana Holvikivi 13

Tyhjä elementti ja ANY <!ELEMENT image EMPTY> ilmentymässä p.o. <image/> ei saa olla <image></image> jos tavallinen esittely <!ELEMENT im (...)> ilmentymässä joko <im/>, <im></im> tai <im>...</im> <!ELEMENT some ANY> sallii elementin sisällöksi minkä tahansa elementin, joka on esitelty joustava 19.1.2013 Jaana Holvikivi 14

Lyhyt esimerkki: Sanakirja <!ELEMENT dictionary (word_article)*> <!ELEMENT word_article (head_word, pronunciation, sense+)> <!ELEMENT head_word (#PCDATA)> <!ELEMENT pronunciation (#PCDATA)> <!ELEMENT sense (definition, example*)> <!ELEMENT definition (#PCDATA)> <!ELEMENT example (#PCDATA)> 19.1.2013 Jaana Holvikivi 15

Sanakirjan XML <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE dictionary SYSTEM "dict.dtd"> <dictionary> <word_article> <head_word> carry </head_word> <pronunciation> kaeri </pronunciation> 19.1.2013 Jaana Holvikivi 16

<sense> <definition> support the weight of and move from place to place </definition> <example> Railways and ships carry goods. </example> <example> He carried the news to everyone. </example> </sense> <sense> <definition> wear, possess </definition> <example> I never carry much money with me. </example> </sense> </word_article> 19.1.2013 Jaana Holvikivi 17

<word_article> <head_word>gossamer </head_word> <pronunciation> gosomo </pronunciation> <sense> <definition>fine, silky substance of webs made by small spiders </definition> </sense> </word_article> </dictionary> 19.1.2013 Jaana Holvikivi 18

Sisältömallin moniselitteisyys Vältä moniselitteisyyttä, esim. Väärin: (item?, item) Oikein: (item, item?) Väärin ((surname, employee) (surname, customer)) Oikein: (surname, (employee customer)) Sisältömalli joka sisältää sekä #PCDATA ja elementtejä rajoitukset estämään moniselitteisyyttä 19.1.2013 Jaana Holvikivi 19

Attribuuttiesittelyt Jokaiselle elementille voidaan esitellä (yksi tai useampi) attribuuttilista <!ATTLIST country population NMTOKEN #IMPLIED language CDATA #REQUIRED continent (Europe America Asia ) "Europe"> CDATA merkkidataa, mikä tahansa teksti Lueteltu tyyppi <!ATTLIST country continent (Europe America Asia ) "Europe"> voi saada ainoastaan luetellun arvon, myös oletusarvo 19.1.2013 Jaana Holvikivi 20

Attribuutin oletusarvot #REQUIRED attribuutille on annettava arvo #IMPLIED attribuutti voi puuttua jos tyyppi on lueteltu, voidaan antaa tietty arvo implied/required-attribuuteille ei voi antaa tiettyä arvoa Esimerkkejä: <!ATTLIST catalog type CDATA #REQUIRED> <!ATTLIST catalog type NMTOKEN #IMPLIED> <!ATTLIST catalog type (phone e-mail)> <!ATTLIST catalog type (phone e-mail) "phone"> 19.1.2013 Jaana Holvikivi 21

Attribuuttiesittelyt NMTOKEN name token <country population = "100"> NMTOKENS name token -luettelo välilyönnillä erotettuina välittävät tietoa prosessoreille/ sovelluksille. Määrittelevät validin nimen <!ATTLIST DATA AUTHORIZED_USERS NMTOKENS #IMPLIED> <DATA SECURITY="ON" AUTHORIZED_USERS = "IggieeB SelenaS GuntherB"> element content </DATA> 19.1.2013 Jaana Holvikivi 22

Attribuuttiarvojen tyypit ENTITY <!ENTITY mypicture "123.jpg"> <!ELEMENT pic EMPTY> <!ATTLIST pic picfile ENTITY...> ilmentymässä: <pic picfile="mypicture"> ENTITIES monta entiteettiarvoa ID Tunnus, yksikäsitteinen XML-nimi IDREF Viittaus ID attribuutilla määriteltyyn elementtiin IDREFS useampia viittauksia 19.1.2013 Jaana Holvikivi 23

Attribuutin vakioarvot ym. <!ATTLIST country position #FIXED "independent"> yksi mahdollinen arvo (ainoastaan) miksi voidaan kiinnittää tietty arvo tiettyä sovellusta varten voidaan antaa tietylle osalle tunnusarvo Elementille voi olla useampi esitelty attribuuttilista jos listoissa samannimisiä attribuutteja, on ensiksi esitelty voimassa attribuuttien arvot: pienet kirjaimet eroavat isoista varatut attribuutit, esim. xml:lang ja xml:space etuliite 'xml:' 19.1.2013 Jaana Holvikivi 24

Elementti vai attribuutti Milloin jotain pitäisi merkata elementillä, milloin attribuutilla? Elementillä jos on alirakenteita jos se näkyy tulostuksessa mutta sisältöä ei voida rajoittaa samalla tavalla kuin attribuutin yhteydessä Attribuutti jos ei ole alirakenteita jos on kysymyksessä "hallinnollisesta" tiedosta joka ei näy tulostuksessa voidaan rajoittaa esim. arvon tyypillä, oletusarvoilla jne. 19.1.2013 Jaana Holvikivi 25

Entiteetin esittely XML-dokumentti voi koostua useammasta entiteetistä päädokumentti = dokumenttientiteetti voi olla ainoa entiteetti "alidokumentit" = entiteettejä on oltava nimi viittaus dokumenttientiteetistä -> jäsennin tietää miten dokumentti koostetaan Kaikki entiteetit esitellään entiteetin esittely viitataan entiteettiin entiteettiviittauksen avulla sisäiset ja ulkoiset entiteetit jäsennetyt tai jäsentämättömät entiteetit 19.1.2013 Jaana Holvikivi 26

Sisäiset tekstientiteetit Ennaltamääritelty vakiomerkkijono Nimi,korvaava merkkijono Lainausmerkit vs. heittomerkit <!ENTITY sent 'His foot is 12" long'> <!ENTITY sent "His foot is 12" long"> Entiteettiviittaus vastaava merkkijono > > < < " " &apos; ' &amps; & < < A A < < (hexadecimal)... (Unicode) 19.1.2013 Jaana Holvikivi 27

Parametrientiteetti Lyhennystapa (ainoastaan ulkoisessa) DTD:ssä <!ENTITY % parapart "(emph supersc subsc)"> <!ELEMENT paragraph (%parapart bold)> <!ELEMENT list (%parapart item)*> <!ELEMENT paragraph (emph supersc subsc bold)> 19.1.2013 Jaana Holvikivi 28

Ulkoinen entiteetti Dokumenttientiteetin ulkopuolella Järjestelmätunnus <!ENTITY myfile SYSTEM "extra_files/file.xml"> Julkinen tunnus <!ENTITY myfile PUBLIC "... description..."> vaatii luettelon (indeksin) Binäärientiteetti Binääritietoa Myös esitysmuoto kerrottava <!ENTITY myphoto SYSTEM "/figures/photo.gif" NDATA GIF> Käyttö: Take a look at my photo <picture name="myphoto"/>. Ei viittauksia suoraan tekstistä 19.1.2013 Jaana Holvikivi 29

Entiteettiviittaus Yleinen tekstientiteettiviittaus ilmentymässä ei DTD:ssä entiteettihierarkia binäärientiteetti (jäsentämätön) ei viittauksia suoraan tekstistä ainoastaan attribuutin arvona parametrientiteetti DTD:ssä, ei ilmentymässä 19.1.2013 Jaana Holvikivi 30

Notaation esittely <!NOTATION PIXI SYSTEM ""> <!NOTATION TIFF SYSTEM "C:\APPS\Show_tiff.exe"> Notaatioon voidaan viitata entiteetin esitellyssä: <!ENTITY Logo SYSTEM "logo.tif" NDATA TIFF> Notaatio kertoo sovellukselle, miten jäsentelemättömiä entiteettejä käsitellään (esm. millä ohjelmalla tiedosto avataan) 19.1.2013 Jaana Holvikivi 31

Jos DTD puuttuu attribuuteilla ei voi olla oletusarvoja attribuuttien ainoa tyyppi on silloin merkkijono (CDATA) kaikki attribuutit ovat valinnaisia entiteettejä ei voida määritellä ainoat entiteetit, joita voidaan käyttää ovat ennalta määritellyt entiteetit (&apos;, jne.) vaikea sanoa mistä elementtien sisältö koostuu elementeistä, datasta vai molemmista 19.1.2013 Jaana Holvikivi 32

DTD:n suunnittelu Usein XML-järjestelmä vanhan järjestelmän tilalle siirryttäessä XML:ään joko voidaan käyttää standardi-dtd:tä ja tehdä mahdolliset muutokset luoda kokonaan uusi DTD tukea esim. yrityksen dokumenttimalleista (edustavista) esimerkkidokumenteista sekä niiden tekijöiltä 19.1.2013 Jaana Holvikivi 33

Dokumentin osien analysointi Dokumentin piirteistä, selvitä onko sillä nimi, vai voiko se puuttua esiintyykö kerran/useamman kerran mikä informaatio edeltää ja seuraa sitä (aina) voidaanko se jakaa osiin (joista voidaan selvittää nämä samat kysymykset) sisältääkö se vakiotekstiä (jota voitaisiin generoida automaattisesti) XML-dokumentti (tai sen osa) ehkä generoidaan suoraan tietokannasta silloin voidaan DTD:n kirjoittamisessa käyttää hyväksi mm. mahdolliset tietokantakaaviot 19.1.2013 Jaana Holvikivi 34

DTD:n suunnittelu standardi-dtd vai uusi? yhteensopivuustarpeet ja tiedon vaihto prosessointitarpeet tulevaisuuden tarpeet millaisia nimiä käytetään? elementti vs. attribuutti, kumpi valitaan? säännöt? sääntöjen järjestys? kommentit? modulaarisuus? nimeämistyyli, lyhyet vai kuvailevat nimet, isot vai pienet kirjaimet? elementtien rakenteisuus, järjestys, granulariteetti 19.1.2013 Jaana Holvikivi 35

Puudiagrammit maatila maatila isäntä emäntä maitotila metsätila <!ELEMENT maatila (isäntä, emäntä)> <!ELEMENT maatila (maitotila metsätila)> maitotila nimi #PCdata 19.1.2013 Jaana Holvikivi 36

Standardi-DTD:t, esim. http://www.xml.com/pub/rg/dtds http://www.xml.org/ http://xml.coverpages.org/ MathML, CML (kemia), UXF (UML exchange Format), SMIL (multimedia), RDF (Resource Description Framework), HumanML (luonnollinen kieli), DocBook, jne. http://www.ebxml.org/specs/ebbpss.dtd 19.1.2013 Jaana Holvikivi 37