XML rakenteen suunnittelu. Jaana Holvikivi

Samankaltaiset tiedostot
XML - perusteet. Ctl230: Luentokalvot Miro Lehtonen

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

M. Merikanto 2012 XML. Merkkauskieli, osa 2

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

XML johdatus: DTD. Jaana Holvikivi

Extensible Stylesheet Language (XSL)

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

2. PEHMEÄ XHTML XRAJAHTML

6 DTD ja dokumentin tyyppimääritys

XML-merkkaus. Merkkidata, prosessointikomennot, kommentit

Johdatus XML teknologioihin

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

6 DTD ja dokumentin tyyppimääritys

6 DTD ja dokumentin tyyppimääritys

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

Johdatusta selainohjelmointiin

3 Verkkosaavutettavuuden tekniset perusteet

XML / DTD / FOP -opas Internal

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

XHTML aloitus. Sisällys

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

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

Elementtien tyyppideklaraatiot

XSLT - ohjelmoinnin perusteet. Jaana Holvikivi Metropolia

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

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

Luento 7: XML-ohjelmointirajapinnat

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

Hohde Consulting 2004

Helsingin yliopisto/tktl XML-metakieli XPath

VERKKOSOVELLUSTEN OHJELMOINTI, JOHDATUS PHP:HEN

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

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Luku- ja merkkikoodit. Digitaalitekniikan matematiikka Luku 12 Sivu 1 (15)

XSL-muunnokset. 9 XSL-muunnokset

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

TIEDEJUTTUKURSSI FM VILLE SALMINEN

MITÄ JAVASCRIPT ON?...3

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

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

Helsingin yliopisto Tietojenkäsittelytieteen laitos XML-metakieli

4. Lausekielinen ohjelmointi 4.1

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

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

XML johdanto, uusimmat standardit ja kehitys

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

Luento 2: XML:n syntaksi

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

Tietojen toimittaminen Skeemat Käsittelypalautteen kysely Kansallisen tulorekisterin perustamishanke

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke

Digitaalisen median tekniikat. JSP ja XML

Ohjelmoinnin perusteet Y Python

Korpusten käsittely clt131, P Luento 6

Java-kielen perusteet

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

Kieliversiointityökalu Java-ohjelmistoon. Ohje

9 XML perusteet

TYYLIT. Word Tyylit

Tietojen jakelu Skeemat Lokitiedot Kansallisen tulorekisterin perustamishanke

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

CLT131 Korpusten käsittely Viides luento

Sivuston tiedotwindowsrepublic.com.au

Cascading Style Sheets

Sivuston tiedotakcpshop.de.websiteoutlook.com

Tietojen jakelu Skeemat Palvelupyyntö Kansallisen tulorekisterin perustamishanke

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke

4. Lausekielinen ohjelmointi 4.1

Digitaalisen median tekniikat xhtml

Digitaalisen median tekniikat xhtml Harri Laine 1

5. HelloWorld-ohjelma 5.1

10 XML ja dokumenttien tyyppimäärittely

Ohjelmoinnin perusteet Y Python

Sivuston tiedotmysiteworthcheck.com

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

Tietojen toimittaminen Skeemat Vastaanottokuittaus Kansallisen tulorekisterin perustamishanke

Digitaalisen median tekniikat css tyylimääritykset

05/09/2007. Digitaalisen median tekniikat, s2007 HY/TKTL, XHTML osa 1. Harri Laine 1. XHTML-merkkauskieli. Digitaalisen median tekniikat xhtml

05/09/2007. Digitaalisen median tekniikat, s2007 HY/TKTL, XHTML osa 1. Harri Laine 1. XHTML-merkkauskieli. Digitaalisen median tekniikat xhtml

Digitaalisen median tekniikat xhtml

9 XML perusteet

3 XHTML-dokumenttien anatomia

5 Merkkaus: XML protokollana

Ohjelmoinnin perusteet Y Python

Tietojen toimittaminen Skeemat Mitätöintitiedot Kansallisen tulorekisterin perustamishanke

Ohjelmoinnin perusteet Y Python

Sivuston tiedotreviewproducts.org

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

Java-kielen perusteita

12 Dokumenttiluokan toteuttamisesta

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva

6. Muuttujat ja Java 6.1

Sivuston tiedotqbsupportcustom erservice.com

Luento 4: XPath ja XLink

Xetor Tietotekniikan sovellusprojekti

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

DOORSin Spreadsheet export/import

XML Technologies and Applications - harjoitustyö -

Transkriptio:

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 aina p.o. vastaavat alku- ja lopputunnisteet elementtien nimien täytyy noudattaa XML:n sääntöjä elementin täytyy sisältyä täysin toiseen elementtiin (ei limittäin!) elementtihierarkia juuri = dokumenttielementti - yksi ainoa! Puumuotoinen rakenne Hyvinmuodostuneisuus (= well-formed)! 19.3.2015 Jaana Holvikivi 3

Dokumenttipuu Luettelo Teos ISBN Kirjailija Nimi Etunimi Sukunimi Syntymävuosi 19.3.2015 Jaana Holvikivi 4

Puuterminologia Juuri, solmut, lehdet haarat vanhempi - lapset (äidit - tyttäret, isät - pojat) sisarukset esivanhemmat, jälkeläiset nimet 19.3.2015 Jaana Holvikivi 5

Ancestor Parent / ancestor Node Sibling Attribute Child /descendant Namespace Descendant 19.3.2015 Jaana Holvikivi 6

Rakenteisuus (granulariteetti) 1 <country> <state> Washington, Seattle </state> <state> Washington D.C., Washington </state> </country> 19.3.2015 Jaana Holvikivi 7

Rakenteisuus 2 <country> <state> <state_name>washington</state_name> <capital>seattle</capital> </state> <state> <state_name>washington D.C.</state_name> <capital>washington</capital> </state> </country> 19.3.2015 Jaana Holvikivi 8

Rakenteisuus 3 mitä enemmän rakennetta sitä enemmän tunnisteita hieno vs. karkea hienorakenteinen - tarkempi etsintä muotoilu 19.3.2015 Jaana Holvikivi 9

Design: data vs rakenne Esimerkkejä: http://users.metropolia.fi/~jaanah/eldoccp /material/pract2bmenu1.xml http://users.metropolia.fi/~jaanah/eldoccp /material/pract2bmenushort.xml 19.3.2015 Jaana Holvikivi 10

Erota data rakenteesta <cafe> <dishes> <dish type= main kind= seafood > <name>seafoodplatter</name> <price>28</price> </dish> <dish type= starter kind= vegetable > <name>redbeet salad</name> <price>8,50</price> </dish> 19.3.2015 Jaana Holvikivi 11

Attribuutit (määritteet) Elementin ominaisuuden tai sisällön tarkenne Liitetään alkutunnisteisiin (tai tyhjien elementtien tunnisteisiin) attribuutin nimi ja arvo aina vain yksi arvo 'arvossa' voi olla mitä tahansa merkkejä <book author= Zadie Smith">... </book> <text keywords="xml SGML">... </text> 19.3.2015 Jaana Holvikivi 12

Varatut attribuutit xml:lang dokumentin kieli ISO 639 (kielet) (+ ISO 3166, maat) tai käyttäjän määrittelemä tai IANA xml:space kuuluuko 'white space' tulosteeseen vai ei arvot: preserve tai default 19.3.2015 Jaana Holvikivi 13

xml:lang <product> <paragraph xml:lang="en">... </paragraph> <paragraph xml:lang="fi">... </paragraph> </product> 19.3.2015 Jaana Holvikivi 14

xml:lang <p xml:lang="en"> The quick brown fox jumps over the lazy dog.</p> <p xml:lang="en-gb">what colour is it?</p> <p xml:lang="en-us">what color is it?</p> <sp who="faust" desc='leise' xml:lang="de"> <l>habe nun, ach! Philosophie,</l> <l>durchaus studiert mit heißem Bemüh'n.</l> </sp> 19.3.2015 Jaana Holvikivi 15

Attribuutti vai lapsielementti? attribuuteilla ei voi olla useampia kuin yksi arvo attribuutteja ei voi laajentaa, elementeille sen sijaan voidaan luoda lapsielementtejä attribuutin avulla ei ilmaista rakennetta attribuutteja käsitellään ohjelmakoodissa eri tavalla kuin elementtejä attribuuttiarvojen testaaminen DTD:n suhteen rajoittunutta 19.3.2015 Jaana Holvikivi 16

Merkkausesittelyt Sisältävät käskyjä XML-prosessorille alku: <! Loppu: > dokumenttityypin rakenne, osien esittelyt, jne. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> Kommentit <!-- Tämä on kommentti --> CDATA <![CDATA[tekstiä 4>2 ei &xml-prosessoida]]> 19.3.2015 Jaana Holvikivi 17

Entiteetit Tietoyksikkö - nimetty ja itsenäinen osa, jota käytetään erilaisten sisältöjen säilyttämiseen. esim. duplikaatteja varten, tai suuren dokumentin jako pienempiin osiin sisäiset entiteetit vakiomerkkijonot ulkoiset entiteetit jäsennetty - korvaustekstit binäärientiteetit - piirustukset, kuvat, ääni, video 19.3.2015 Jaana Holvikivi 18

Entiteettien käyttö Jos esim. entiteetti &metrop; sisältää merkkijonon "Metropolia ammattikorkeakoulu" voimme kirjoittaa Opiskelupaikkani on &metrop;. Älä käytä < tai > varatut entiteetit: < ja > tietyt prosessorit pystyvät käsittelemään käyttäjä kirjoittaa esim. kaavassa < ja > prosessori kääntää merkkijonoiksi < ja > 19.3.2015 Jaana Holvikivi 19

Entiteettien prosessointi XML-prosessorin tulee käsitellä entiteettejä oikein korvata tekstiä sisällyttää binäärientiteetit dokumenttiin esittää entiteetin määrätyllä tavalla 19.3.2015 Jaana Holvikivi 20

Prosessointikomennot Prosessointikomento on dokumenttiin liitetty komento tai ohje, jonka XML-jäsennin välittää dokumenttia käsittelevälle sovellukselle. erotusmerkit <? ja?> esimerkki: XML-esittely: <?xml version="1.0" encoding="iso-8859-1" standalone='yes'?> versio on 1.0 merkistö ei ulkoisia määrittelyjä <?xml-stylesheet type="text/xsl" href="center.xsl"?> 19.3.2015 Jaana Holvikivi 21

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, jokainen jäsennetty entiteetti on hyvinmuodostettu 19.3.2015 Jaana Holvikivi 22

XML parseri eli prosessori pysähtyy virheeseen, ei yritä tulkita päinvastoin kuin HTML-selaimet IE:een sisältyy MSXML (uudemmat versiot paremmin standardia noudattavia) muissakin selaimissa parseri Apache projekti Xerces (Java, C++) Saxon Visual Studio.NET 19.3.2015 Jaana Holvikivi 23

Merkkikoodistot: esimerkki ASCII A esitetään bittijonona 1 tavu/ byte = 8 bittiä 0 1 0 0 0 0 0 1 A Encoding 19.3.2015 Jaana Holvikivi 24

ASCII -merkistö Character ASCII Code Character ASCII Code A 100 0001 0 011 0000 B 100 0010 1 011 0001 C 100 0011 2 011 0010 D 100 0100 3 011 0011 E 100 0101 4 011 0100 F 100 0110 5 011 0101 G 100 0111 6 011 0110 H 100 1000 7 011 0111 I 100 1001 8 011 1000 J 100 1010 9 011 1001 K 100 1011 Space 010 0000 L 100 1100. 010 1110 M 100 1101 ( 010 1000 N 100 1110 + 010 1011 O 100 1111 & 010 0110 P 101 0000 $ 010 0100 Q 101 0001 * 010 1010 R 101 0010 ) 010 1001 S 101 0011 ; 011 1011 T 101 0100, 010 1100 U 101 0101-101 1111 V 101 0110? 011 1111 W 101 0111 : 011 1010 X 101 1000 = 011 1101 Y 101 1001 19.3.2015 Jaana Holvikivi 25

Merkkikoodistot ASCII American Standard Code for Information Interchange 7 bittiä 2 7 = 128 8 bittiä 2 8 = 256 ANSI, ISO Latin-1: 8 bittisiä Unicode (IBM, Microsoft, Sun) 16 bittinen: 2 16 = 65 536 http://www.unicode.org/charts/ ISO 10646 neljä tavua 19.3.2015 Jaana Holvikivi 26

Tyhjät välit (white space) välilyönti, rivinvaihto, sarkaimet character Unicode value tab #x9 newline #xa carriage return #xd space #x20 rivinvaihto eri käyttöjärjestelmissä: MacOS CR Unix LF Windows CR LF 19.3.2015 Jaana Holvikivi 27

Tyhjät välit (white space) jatkuu HTML jättää näyttämättä XML: periaatteessa säilyttää normalisointi = ylimääräisen tyhjän poistaminen elementtien välillä olevat tyhjät välit poistetaan rivinvaihdot korvataan välilyönnillä lohkon alusta ja lopusta poistetaan tyhjät välit literaaliarvon ympäriltä poistetaan lainausmerkit entiteettiviittaukset korvataan vastaavilla merkkijonoilla jos halutaan, että tyhjät välit säilyvät: white-space: pre /* normal, nowrap */ 19.3.2015 Jaana Holvikivi 28