Semistrukturerte data og XML

Like dokumenter
Semistrukturerte data og XML

og XML Where is the Life we have lost in living? Where is the wisdom we have lost in knowledge? Where is the knowledge we have lost in information?

Semistrukturerte data og XML

Læringsmål XML. Markering av tekst. SGML-familien. Forstå prinsippene bak XML og XHTML. Forstå hva XML kan brukes til og hvordan.

NOIS-PIAH XML-import Filformat

XML Schema. David Massey MBIB

Markeringsspråk og XML Nettsider og XHTML

UNIVERSITETET SQL-99. Institutt for Informatikk. INF Ellen Munthe-Kaas 1

MPEG-7. Problemstilling:

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

XML. Databaser Leksjon 14c: XML - 1

HVA ER XML? extensible Markup Language En standardisert måte å strukturere ulike typer data Åpent format Enkelt:

Markeringsspråk og XML

1. XML Grunnlag

UNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ragnar Normann 1

Teknisk håndbok SPESIFIKASJON. Påmelding i XML-FORMAT. versjon Status: Gjeldene. Påmelding XML format versjon 2.9

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)

Forslag til nasjonal standard for sending av vedlegg til nasjonale XML-meldinger

NKKN typeforslag versjon Definisjon av grunntypene

XML - kurs. XML-kurs for nybegynnere. ICONS Management Elisabeth Buntz

Grensesnittene mellom Legemiddelverket og de andre eresept-aktørene

Spørsmålskompilering del 1

Spørsmålskompilering del 1

Oblig 2: Prototype. Oblig 2: Mulig sekvens. Oblig 2: Grovstruktur. Oblig 2: The Candy-community. Begrenset prototype Teste teknologi:

Repetisjon: Normalformer og SQL

Bruk av base64-koding i hodemeldingen

Markeringsspråk og XML

Teknisk håndbok efaktura Spesifikasjon Påmelding i XML-format Innhold

Vedlegg til meldinger

XML Kurs for earkivar

INF2220: Forelesning 1. Praktisk informasjon Analyse av algoritmer (kapittel 2) (Binær)trær (kapittel )

INF2810: Funksjonell Programmering. Lokale variabler. Og trær.

INF2810: Funksjonell Programmering. Lokale variabler. Og trær.

Parallelle og distribuerte databaser del III

UNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) Institutt for Informatikk. INF Ellen Munthe-Kaas 1

ER-BASERT ABONNEMENT PÅ ENDRINGER FRA GREP

Binære søketrær. En ordnet datastruktur med raske oppslag. Sigmund Hansen

Markeringsspråk og XML

Object [] element. array. int [] tall

INF1040 Oppgavesett 5: XML

ER-BASERT ABONNEMENT PÅ ENDRINGER FRA GREP

Datastrukturer. Stakker (Stacks) Hva er en datastruktur? Fordeler / Ulemper. Generelt om Datastrukturer. Stakker (Stacks) Elementære Datastrukturer

Integritetsregler i SQL

Markeringsspråk og XML

UNIVERSITETET. Indeksering. Hvordan finne et element raskt? Vera Goebel, Ellen Munthe-Kaas

Databaser. Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen

UNIVERSITETET I OSLO SQL. Structured Query Language. (The intergalactic dataspeak) INF Ellen Munthe-Kaas 1. Institutt for Informatikk

Integritetsregler i SQL. Primærnøkler

HIS 1023:2010. Pasientliste Informasjonsmodell og XML meldingsbeskrivelse

Sensorveiledning for IN2090 og INF desember :30 18:30 (4 timer)

Databaser fra et logikkperspektiv

INF2810: Funksjonell Programmering. Kommentarer til prøveeksamen

INF2810: Funksjonell Programmering. Dataabstraksjon og Trerekursjon

Alle attributter har NULL som mulig verdi. mulige verdier for integer: NULL, 0, 1, 2, 3...

XML enabled database. support for XML in Microsoft SQL Server 2000 & Martin Malý

Spørsmålskompilering. Basert på foiler av Hector Garcia-Molina

Integritetsregler i SQL

Spørsmålskompilering del 2

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2

IN3020 V2019 Obligatorisk oppgave nr. 1

Transaksjonsstandard for virkesomsetningen i Norge. Transportert virke. Versjon 2.0. Desember 2007 SKOG-DATA AS

Trær. En datastruktur (og abstrakt datatype ADT)

INF2220: Forelesning 2

</html> </head> <form action= rtkst.php > <p> Fornavn? <input type= text name= fornavn <input type= submit />

Avansert bruk av SQL. Avanserte spørringer Valguttrykk Spørring på spørring Unionspørringer Delspørringer, vekselvirkende delspørringer Kvantorer

HØGSKOLEN I SØR-TRØNDELAG

INF2220: Forelesning 2. Balanserte søketrær Rød-svarte trær (kapittel12.2) B-trær (kapittel 4.7)

Spørsmålskompilering del 2

Bruk av komponenter i ADDML

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2

Grensesnittdokumentasjon for FEST

Ny/utsatt EKSAMEN. Dato: 5. januar 2018 Eksamenstid: 09:00 13:00

INF2810: Funksjonell Programmering. En Scheme-evaluator i Scheme, del 2

Beskrivelse av programmeringsspråket Compila15 INF Kompilatorteknikk Våren 2015

Dokumentasjon av XML strukturer for ByggSøk

INF1300 Relasjonsalgebra. Et matematisk fundament for å forstå SQL-setninger

Transaksjonsstandard for virkesomsetningen i Norge. Business Acknowledge. Versjon 2.0. Desember 2007 SKOG-DATA AS

Eksamen iin115 og IN110, 15. mai 1997 Side 2 Oppgave 1 Trær 55 % Vi skal i denne oppgaven se på en form for søkestrukturer som er spesielt godt egnet

Spørretjenesten pasientens frikortstatus

UNIVERSITETET I OSLO

INF Noen oppgaver til kap. 8

Dagens tema: Sjekking

Forelesning 33. Repetisjon. Dag Normann mai Innledning. Kapittel 11

Matchinger i ikke-bipartite grafer

HIS 1036:2011. Elektronisk samhandling Vedlegg til meldinger. endret KITH 21/08:2012

INF1300 Relasjonsalgebra og SQL, mengder og bager. Lysark for forelesning v. 2.1

Informasjonssystemer, DBMSer og databaser

Transaksjonsstandard for virkesomsetningen i Norge. Transportoppdrag. Versjon 2.0. Desember 2007 SKOG-DATA AS

MAT1030 Diskret matematikk

Innledning. MAT1030 Diskret matematikk. Kapittel 11. Kapittel 11. Forelesning 33: Repetisjon

Spørsmålskompilering. Basert på foiler av Hector Garcia-Molina

XSLT 1. David Massey MBIB

Kunnskapsorganisasjon og gjenfinning sider (inklusive forside og vedlegg)

Prøveeksamen IN1000. IN Prøveeksamen. Dato november 2017 Tid 12:30-12:00 Alle trykte og skrevne hjelpemidler er tillatt.

INF2810: Funksjonell Programmering

XML. Figur Et eksempel på et XML-dokument

INF2220: Forelesning 2

Oppgaver til kodegenerering etc. INF-5110, 16. mai, 2014

Kondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.

PHP for earkivarer. Trondheim 25. og 26. mars

Transkript:

Semistrukturerte data og XML

Innhold Semistrukturerte data XML XML Schema XQuery INF3100 28.4.2009 Ragnhild Kobro Runde Page 2

Semistrukturerte data Data med noe struktur, men ikke i henhold til et strengt skjema. Selvbeskrivende. Dataene inkluderer informasjon om sitt eget skjema. (F.eks. i form av XML markeringer.) Passer for å samle relatert informasjon fra ulike kilder (med ulike skjemaer). Database-integrasjon. Utveksling av informasjon. INF3100 28.4.2009 Ragnhild Kobro Runde Page 3

Semistrukturerte data: Graf-representasjon Samling av noder. Nøyaktig en rotnode. Atomiske verdier i løvnodene. Indre noder angir attributter og relasjoner mellom nodene. INF3100 28.4.2009 Ragnhild Kobro Runde Page 4

XML og XML Schema

XML: Eksempel <?xml version = "1.0" encoding="utf-8"?> <StarMovieData> <Star> <Name>Carrie Fisher</Name> <Address> <Street>123 Maple St.</Street> <City>Hollywood</City> </Address> </Star> <Movie> <Title>Star Wars</Title> <Year>1977</Year> </Movie> </StarMovieData> INF3100 28.4.2009 Ragnhild Kobro Runde Page 6

XML Schema <?xml version = 1.0 encoding= utf-8?> <xs:schema xmlns:xs= http://www.w3.org/2001/xmlschema > </xs:schema> INF3100 28.4.2009 Ragnhild Kobro Runde Page 7

Elementer <?xml version = 1.0 encoding= utf-8?> <xs:schema xmlns:xs= http://www.w3.org/2001/xmlschema > <xs:element name= Title type= xs:string /> <xs:element name= Year type= xs:integer /> </xs:schema> INF3100 28.4.2009 Ragnhild Kobro Runde Page 8

Sammensatte typer <?xml version = 1.0 encoding= utf-8?> <xs:schema xmlns:xs= http://www.w3.org/2001/xmlschema > <xs:complextype name= movietype > <xs:sequence> <xs:element name= Title type= xs:string /> <xs:element name= Year type= xs:integer /> </xs:sequence> </xs:complextype> <xs:element name= Movies > <xs:complextype> <xs:sequence> <xs:element name= Movie type= movietype minoccurs= 0 maxoccurs= unbounded /> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> INF3100 28.4.2009 Ragnhild Kobro Runde Page 9

Eksempel-dokument: <?xml version = 1.0 encoding= utf-8?> <Movies xmlns:xsi= http://www.w3.org/2001/xmlschema-instance xsi:nonamespaceschemalocation= Movies.xsd > <Movie> <Title>Star Wars</Title> <Year>1977</Year> </Movie> <Movie> </Movie> </Movies> INF3100 28.4.2009 Ragnhild Kobro Runde Page 10

Attributter <?xml version = 1.0 encoding= utf-8?> <xs:schema xmlns:xs= http://www.w3.org/2001/xmlschema > <xs:complextype name= movietype > <xs:attribute name= title type= xs:string use= required /> <xs:attribute name= year type= xs:integer use= required /> </xs:complextype> <xs:element name= Movies > <xs:complextype> <xs:sequence> <xs:element name= Movie type= movietype minoccurs= 0 maxoccurs= unbounded /> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> INF3100 28.4.2009 Ragnhild Kobro Runde Page 11

Eksempel-dokument: <?xml version = 1.0 encoding= utf-8?> <Movies xmlns:xsi= http://www.w3.org/2001/xmlschema-instance xsi:nonamespaceschemalocation= Movies.xsd > <Movie title= Star Wars Year= 1977 /> <Movie> </Movie> </Movies> INF3100 28.4.2009 Ragnhild Kobro Runde Page 12

Nøkler <?xml version = 1.0 encoding= utf-8?> <xs:schema xmlns:xs= http://www.w3.org/2001/xmlschema > <xs:complextype name= movietype > </xs:complextype> <xs:element name= Movies > <xs:complextype> <xs:sequence> <xs:element name= Movie type= movietype minoccurs= 0 maxoccurs= unbounded /> </xs:sequence> </xs:complextype> <xs:key name= moviekey > <xs:selector xpath= Movie /> <xs:field xpath= Title /> </xs:key> </xs:element> </xs:schema> INF3100 28.4.2009 Ragnhild Kobro Runde Page 13

Fremmednøkler <xs:element name= Stars <xs:complextype> <xs:element name= StarredIn minoccurs= 0 maxoccurs= unbounded > <xs:complextype> <xs:attribute name= title type= xs:string /> <xs:attribute name= year type= xs:integer /> </xs:complextype> </xs:complextype> <xs:keyref name= movieref refers moviekey > <xs:selector xpath= Star/StarredIn /> <xs:field xpath= @title /> </xs:keyref> INF3100 28.4.2009 Ragnhild Kobro Runde Page 14

XQuery

Xpath uttrykk En sekvens av elementer kan angis ved hjelp av en absolutt eller relativ path av markeringer. /Movies rotelementet (med alt innhold). /Movies/Movie alle <Movie>-elementer innenfor <Movies>-elementet. /Movies/Movie/Title alle <Title>-elementer innenfor et <Movie>-element i <Movies>. //M angir alle <M>-elementer, uavhengig av nesting. * angir en vilkårlig markering Kan også angi betingelser som en del av uttrykket. /Movies/Movie/[Year= 1980 ] alle <Movie>-elementer hvor <Year>-elementet inneholder 1980. INF3100 28.4.2009 Ragnhild Kobro Runde Page 16

FLWR uttrykk (FORexpr LETexpr)+ WHEREclause? RETURNexpr FORexpr: FOR variable IN expression (, variable IN expression )* LETexpr: LET variable := expression (, variable := expression )* WHEREclause: WHERE expression RETURNexpr: RETURN expression INF3100 28.4.2009 Ragnhild Kobro Runde Page 17

FLWR eksempler Eksempel 1: let $a := (1, 2, 3) return <out>{$a}</out> Eksempel 2: for $a in (1, 2, 3) return <out>{$a}</out> INF3100 28.4.2009 Ragnhild Kobro Runde Page 18

Eksempel 3: XML dokument <?xml version = 1.0 encoding= utf-8?> <Movies> <Movie genre= comedy > <Title>Bruce Almighty</Title> <Star><Name>Jim Carrey</Name></Star> </Movie> <Movie genre= comedy > <Title>Dumb & Dumber</Title> <Star><Name>Jim Carrey</Name></Star> </Movie> <Movie genre= drama > <Title>The Truman Show</Title> <Star><Name>Jim Carrey</Name></Star> </Movie> <Movie genre= comedy > <Title>Nine Months</Title> <Star><Name>Hugh Grant<Name></Star> </Movie> </Movies> INF3100 28.4.2009 Ragnhild Kobro Runde Page 19

Eksempel 3: FLWR Finn alle komedier med Jim Carrey som skuespiller. INF3100 28.4.2009 Ragnhild Kobro Runde Page 20

Andre muligheter i XQuery Join: for $s1 in, $s2 in where data($s1/ ) = data($s2/ ) Duplikat-eliminasjon: let $s := distinct-values( ) Kvantorer: every $s in satisfies some $s in satisfies Aggregering (count, sum, max, ) Forgrening: if ( ) then else INF3100 28.4.2009 Ragnhild Kobro Runde Page 21