Semistrukturerte data og XML

Like dokumenter
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

Semistrukturerte data og XML

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

INF1040 Oppgavesett 5: XML

1. Mer om oppbyning av XML-dokument

1. Lage og vise et enkelt XML-dokument

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

Navngivning av XML elementer

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

Markeringsspråk og XML

HØGSKOLEN I SØR-TRØNDELAG

Beskrivelse av filformatet for likningsoppgaven pass og stell av barn

Akseptansetest av mottak Rekvirering av medisinske tjenester Medisinsk biokjemi

1. XML Grunnlag

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

NKKN typeforslag versjon Definisjon av grunntypene

1. XHTML. Innhold Innledning

Veileder for harmonisering av geografiske data

MPEG-7. Problemstilling:

Skatteetaten Boligsameie Beskrivelse av filformatet for innsending av opplysninger til Skatteetaten Gjelder fra og med innrapportering i januar 2016

XSLT 2. David Massey MBIB

User Input / Output Handling. Innocent Code kap 3-4 INF-329 Øystein Lervik Larsen oysteinl@ii.uib.no 7/11-05

XSLT 1. David Massey MBIB

Spørsmålskompilering del 1

IDA 350, oppgave 4. André Børge Kjetil (gruppe2) 3. november 2005

Linked Open Data Kartverkets praktiske erfaringer

Spørsmålskompilering del 1

[Kurssidene] [ ABI - fagsider bibin ] Michael Preminger (michaelp@hio.no) 07/ Vi holder orden på verdier med hjelp av variabler

MOD 250 Avansert programvareteknologi Extensible Markup Language, XML

Akseptansetest av sending og mottak Applikasjonskvittering

Skatteetaten Drosjesentraler Beskrivelse av filformatet for innsending av opplysninger til Skatteetaten Gjelder fra inntektsåret 2013 Versjon 1.0.

To RDF or not to RDF Fagdag om Noark 5 og RDF

Introduksjon til beslutningsstrukturer

HØGSKOLEN I SØR-TRØNDELAG

Hvem jeg er Lars Marius Garshol Hovedfag informatikk på Blindern Jobbet et par år med XML i STEP Infotek, før jeg og noen andre startet Ontopia Har sk

XML Schema. David Massey MBIB

XML og JDOM. Helge Furuseth

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

Databaser & objektorientering.

- <!-- Generated on :28:44 at KITH. - <!-- XML-Schema level supported is specified by W3C. - <!--

Innrapportering av trekk til NAV

Forespørsel om fastlege Informasjonsmodell og XML meldingsbeskrivelse HIS 1022:2010

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM

Syntax/semantics - I INF 3110/ /29/2005 1

Web fundamentals. Web design. Frontend vs. Backend Webdesign 17. januar Monica Strand

Databaser fra et logikkperspektiv

Parallelle og distribuerte databaser del III

Beskrivelse av filformatet for opplysninger om "Kjøp fra primærnæring Pelsdyrskinn" til Skatteetaten

Spesifikasjon for utfylling og innsending av opplysninger over tilskudd til vitenskapelig forskning eller yrkesopplæring til Skatteetaten.

En beskrivelse av API for innhenting av informasjon fra registeret for sentralt godkjente foretak Direktoratet for byggkvalitet

Pen- tes'ng av webservices. Asbjørn Reglund Thorsen Gruppe- og utviklingsleder UIO/FSAT

MMT105 Internettprogrammering Uke 44, høst 2007

Ordliste. Obligatorisk oppgave 1 - Inf 1020

Pass og stell av barn

Boligsameie. Spesifikasjoner for utfylling og innsending av opplysninger til Skatteetaten. Gjelder for innrapportering fra og med januar 2016

INF1300 Introduksjon til databaser

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

UNIVERSITETET. Indeksering. Konvensjonelle indekser B-trær og hashing Flerdimensjonale indekser Hashliknende strukturer.

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

Web Services. Olav Lysne

INF5820 Natural Language Processing - NLP. H2009 Jan Tore Lønning

XML. Figur Et eksempel på et XML-dokument

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

Doserings DLL. E-resept dokumentasjon. Tekniske krav 0

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

Beskrivelse av filformatet for opplysninger fra drosjesentraler til Skatteetaten

Veilederdokumentenes forankring <UTKAST>

Forespørsel og svar om egenandel

Kap. 4 del I Top Down Parsering INF5110 v2006. Stein Krogdahl Ifi, UiO

INF1300 Introduksjon til databaser

Mapping fra e2b fakturaformat. til. Ehandel.no formatet.

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem

2. Beskrivelse av mulige prosjektoppgaver

Brukerdokumentasjon. Webservices og webklient for kodeverk/ kodeverdi verifisering

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

Hvorfor ikke bruke Word?

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

Leveringsguiden. tjeneste for henting av informasjon om Postens transportprodukter. Versjonshistorikk: nummer 30.mars à jour.

Obligatorisk oppgave 1 INF Kompilatorteknikk Våren 2012 Frist mandag 19. mars

Akseptansetest av mottak Svarrapportering av medisinske tjenester Patologi

En liten rekap. Spørrespråk. I dag SELECT

Forslag til nasjonalt utvekslingsformat for bibliografiske data

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

Implementering av database og tjeneste

UNIVERSITETET I OSLO. Det matematisk-naturvitenskapelige fakultet

INF1300 Introduksjon til databaser

XBRL hva og hvorfor EDU - EDI. XBRL er. Svein A. Løken. Effektivt og pålitelig Alternativer å sende

<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.

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

Godtgjørelse til opphavsmann til åndsverk

Informasjonsorganisering. Information Architecture Peter Morville & Jorge Arango Kapittel 4, 5 & 6

INF5110 V2013 Stoff som i boka står i kap 4, men som er generelt stoff om grammatikker

Akseptansetest for mottak av PLO-meldingen: Tverrfaglig epikrise

Dette er vår tredje obligatoriske oppgave i kurset Moderne Databaseteknologi.

Akseptansetest av mottak Dialogmelding

Opprette local electronic collection med local portfolios manuelt

Tabeller og enkle spørringer

Markeringsspråk og XML Nettsider og XHTML

Norsk standard for utveksling av fjernlånsdata, NILL. Versjon 1.3

Transkript:

UNIVERSITETET I OSLO Semistrukturerte data 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? -- T. S. Eliot Where is all the information we have lost in data structures? -- Albrecht Schmidt, Universitetet i Ålborg Institutt for Informatikk INF3100-12.4.2012 Ellen Munthe-Kaas 1

Bakgrunn Dataintegrasjon Forskjellige, uavhengige datakilder Forskjellige datamodeller og skjemaer Presentasjon av data på weben Ekstrahering av data fra weben Kunnskapsrepresentasjon og informasjonsutveksling Web services Semantic Web Semantisk teknologi INF3100-12.4.2012 Ellen Munthe-Kaas 2

Hva er semistrukturerte data? Strukturerte data: Data med et fast format Tabeller i relasjonsdatabaser,... Ustrukturerte data: Tekstdokumenter Semistrukturerte data: Deler har fast format, deler består av fri tekst Bøker: Tittelark (tittel, forfatter, utgivelsesår,, ISBN,..), kapitteloverskrifter,..., tekstavsnitt Websider: I utgangspunktet utformet for å leses og tolkes av mennesker, men med formatering og annen maskintolkbar informasjon på deler av innholdet CVer: Navn, fødselsdato, utdannelse, arbeidserfaring,..., prosjektbeskrivelser, forskningsplan,... INF3100-12.4.2012 Ellen Munthe-Kaas 3

Semistrukturerte data og XML Semistrukturerte data slik begrepet brukes i XMLverdenen = strukturerte data som ikke følger relasjonsmodellen, men der skjemaet beskriver mer generelle (treaktige) strukturer XML extensible Markup Language: Språk for å beskrive skjema- og annen metainformasjon sammen med dataene selv Tekstlig kan leses av mennesker og tolkes (parseres) av maskiner; støtter alle naturlige språk via Unicode I praksis brukes begrepet semistrukturerte data i XMLverdenen om alle data der strukturen er beskrevet i XML XML-dokumenter kan også brukes til å beskrive data som har en blanding av strukturert og ustrukturert format INF3100-12.4.2012 Ellen Munthe-Kaas 4

XML-porteføljen Skjemaspråk: DTD, XSD Spørrespråk: XPath, XQuery Transformasjonsspråk: XSLT, CSS APIer: DOM, SAX... INF3100-12.4.2012 Ellen Munthe-Kaas 5

XML Graftolkning Data og metainformasjon (tagger) Attributter Navnerom INF3100-12.4.2012 Ellen Munthe-Kaas 6

Graftolkning Rettet graf (treaktig) med navngitte kanter Nøyaktig én rotnode Atomære verdier (data) i løvnodene StarMovieData StarsIn Star Star Movie StarOf Carrie Fisher Name Address Address Street City Street Mark Hamill City Name Street Oak City StarsIn Redwood StarOf Title Star Wars Year 1977 Maple Locust Malibu Hollywood INF3100-12.4.2012 Ellen Munthe-Kaas 7

XML-eksempel <?xml version="1.0" encoding="utf-8"?> <StarMovieData> <Star> <Name>Carrie Fisher</Name> <Address> <Street>123 Maple Street</Street> <City>Hollywood</City> </Address> </Star> <Movie> <Title>Star Wars</Title> <Year>1977</Year> </Movie> </StarMovieData> Carrie Fisher Name Maple Address Street Star City Hollywood StarMovieData Title Movie Star Wars Year 1977 (Data i blått, metainformasjon i grønt) INF3100-12.4.2012 Ellen Munthe-Kaas 8

Attributter <?xml version="1.0" encoding="utf-8"?> <StarMovieData> <Star starid="cf" starredin="sw"> <Name>Carrie Fisher</Name> <Address> <Street>123 Maple Street</Street> <City>Hollywood</City> </Address> </Star> <Movie movieid="sw starof="cf"> <Title>Star Wars</Title> <Year>1977</Year> </Movie> </StarMovieData> INF3100-12.4.2012 Ellen Munthe-Kaas 9

Navnerom For å lette gjenbruk av vokabularer Kan referere til flere vokabularer i samme XML-dokument uten å få navnekonflikter Navnerommet angis med en URI URIen er typisk en URL som refererer til et dokument som beskriver tolkningen av taggene i navnerommet. Dette dokumentet kan selv være et XML-dokument, en uformell beskrivelse,... eller ingenting Kan kvalifisere taggene i XML-dokumentet med navnerommet INF3100-12.4.2012 Ellen Munthe-Kaas 10

Eksempel på bruk av navnerom <?xml version = "1.0" encoding="utf-8"?> <film:minfilmdb xmlns:md="http://infolab.stanford.edu/movies" xmlns:film="http://www.ifi.uio.no/dmms/filmer"> <film:movie> <md:movie> <md:title>star Wars</md:Title> <md:year>1977</md:year> </md:movie> <film:filmlengde>3300 m (Sverige)</film:Filmlengde> <film:filmlengde>3493 m (special edition)</film:filmlengde> <film:kommentarer>først vist i Norge 26.12.77</film:kommentarer> </film:movie> </film:minfilmdb> INF3100-12.4.2012 Ellen Munthe-Kaas 11

Velformede og gyldige XML-dokumenter Velformet XML-dokument <?xml version = "1.0" encoding="utf-8"?> <StarMovieData>... </StarMovieData> Dokumentet angir innledningsvis at det er et XML-dokument Én rot Korrekt XML-syntaks (parentetisk struktur på taggene,...) Gyldig (valid) XML-dokument Elementene i dokumentet følger et gitt skjema INF3100-12.4.2012 Ellen Munthe-Kaas 12

Parsering av XML-dokumenter XML-dokument <?xml version = 1.0" encoding="utf-8?> <Movies> <Movie> <Title>Star Wars</Title> <Year>1977</Year> </Movie> </Movies> XML parser Dokumentet er velformet! Det faktiske resultatet (output) avhenger av parseren. To eksempler på typer parsere/programmeringsgrensesnitt: Treorienterte, eks. DOM Document Object Model Strømorienterte (eventdrevne), eks. SAX Simple API for XML INF3100-12.4.2012 Ellen Munthe-Kaas 13

Validering av XML-dokumenter XML-dokument XML-skjema <?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> </Movies> <?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"... /> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> XML Schema validator Dokumentet er gyldig! Det faktiske resultatet (output) av valideringen er som for ren parsering, men i tillegg til velformethet sjekker validatoren at XMLdokumentet er bygget opp som angitt i XML-skjemaet. INF3100-12.4.2012 Ellen Munthe-Kaas 14

XML skjemaspråk XSD XML Schema Definition Språk for å beskrive XML-skjemaer Et XML-skjema skrevet i XSD er selv et XML-dokument og kan derfor parseres av en XML-parser En XML-skjemavalidator tar som input et XML-dokument og et XML-skjema og sjekker at XML-dokumentet er gyldig i henhold til skjemaet INF3100-12.4.2012 Ellen Munthe-Kaas 15

Navnerom for XSD <?xml version = "1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema"> </xs:schema> INF3100-12.4.2012 Ellen Munthe-Kaas 16

Definisjon av 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-12.4.2012 Ellen Munthe-Kaas 17

Definisjon av 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:sequence> </xs:complextype> <xs:element name="movies"> </xs:element> </xs:schema> <xs:complextype> <xs:element name="title" type="xs:string" /> <xs:element name="year" type="xs:integer" /> <xs:sequence> </xs:sequence> </xs:complextype> <xs:element name="movie" type="movietype" minoccurs="0" maxoccurs="unbounded" /> INF3100-12.4.2012 Ellen Munthe-Kaas 18

Eksempeldokument <?xml version = "1.0"encoding="utf-8"?> <Movies xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="movies.xsd" > <Movie> </Movie> <Title>Star Wars</Title> <Year>1977</Year> <Movie> </Movie> </Movies> INF3100-12.4.2012 Ellen Munthe-Kaas 19

Definisjon av 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="movieid" type="xs:string" use="required" /> <xs:attribute name="starof" type="xs:string" /> <xs:sequence> </xs:sequence> </xs:complextype> <xs:element name="movies"> </xs:element> </xs:schema> <xs:complextype> <xs:element name="title" type="xs:string" /> <xs:element name="year" type="xs:integer" /> <xs:sequence> </xs:sequence> </xs:complextype> <xs:element name="movie" type="movietype" minoccurs="0" maxoccurs="unbounded" /> INF3100-12.4.2012 Ellen Munthe-Kaas 20

Eksempeldokument <?xml version = "1.0" encoding="utf-8"?> <Movies xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="movies.xsd"> <Movie movieid="sw"> <Title>Star Wars</Title> <Year>1977</Year> </Movie> <Movie movieid="rj"> </Movie> </Movies> INF3100-12.4.2012 Ellen Munthe-Kaas 21

Definisjon av kandidatnøkler <?xml version = "1.0" encoding="utf-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/xmlschema">... <xs:element name="movies"> <xs:complextype> <xs:sequence> </xs:sequence> </xs:complextype> <xs:key name="moviekey"> </xs:key> </xs:element> <xs:element name="movie" type="movietype" minoccurs="0" maxoccurs="unbounded" /> <xs:selector xpath="movie" /> <xs:field xpath="title" /> </xs:schema> INF3100-12.4.2012 Ellen Munthe-Kaas 22

Definisjon av fremmednøkler <xs:element name="stars"> <xs:complextype> <xs:element name="starredin" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <xs:element name="title" type="xs:string" /> <xs:element name="year" type="xs:integer" /> </xs:complextype> </xs:element> </xs:complextype> <xs:keyref name="movieref" refers "moviekey"> <xs:selector xpath="star/starredin" /> <xs:field xpath="title" /> </xs:keyref> </xs:element> INF3100-12.4.2012 Ellen Munthe-Kaas 23

XML-data er selvforklarende (???) <?xml version = "1.0" encoding="utf-8"?> < 外 语 >Китайська мова</ 外 语 > XML-taggene sier noe om dataenes struktur, men ikke noe om tolkningen XML-data er selvdokumenterende (eller, mer i tråd med den engelske sjargongen, selvbeskrivende), men ikke selvforklarende... men ved bruk av vokabularer/navnerom kan man indikere en tolkning INF3100-12.4.2012 Ellen Munthe-Kaas 24

XML spørrespråk XPath spørrespråk for å velge ut noder (elementer) i et XML-dokument XQuery spørrespråk som bruker XPath supplert med FLWOR-uttrykk FLWOR For, Let, Where, Order by, Return SQL-aktig muliggjør blant annet join INF3100-12.4.2012 Ellen Munthe-Kaas 25

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-12.4.2012 Ellen Munthe-Kaas 26

FLWOR-uttrykk FOR var IN expr LET var IN expr WHERE expr ORDER BY expr RETURN expr FOR variable IN expression (, variable IN expression )* LET variable := expression (, variable := expression )* WHERE expression ORDER BY expression RETURN expression INF3100-12.4.2012 Ellen Munthe-Kaas 27

FLWOR-eksempler Eksempel 1 Eksempel 2 let $a := (1, 2, 3) return <out>{$a}</out> Resultat: <out>1 2 3</out> for $a in (1, 2, 3) return <out>{$a}</out> Resultat: <out>1</out> <out>2</out> <out>3</out> INF3100-12.4.2012 Ellen Munthe-Kaas 28

Eksempel: XML-dokument movies.xml <?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-12.4.2012 Ellen Munthe-Kaas 29

Eksempel: FLWOR Finn alle komedier med Jim Carrey som skuespiller: let $movies := doc("movies.xml") for $movie in $movies//movie[@genre="comedy"] where $movie/star/[name="jim Carrey"] return $movie/title INF3100-12.4.2012 Ellen Munthe-Kaas 30

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-12.4.2012 Ellen Munthe-Kaas 31

Transformasjonsspråk XSLT Extensible Stylesheet Language Transformations Språk for å beskrive omforming av ett XML-dokument til et annet Bruker XPath til å identifisere delmengder av kildedokumentet Kan betraktes/brukes som et spørrespråk Et XML-skjema skrevet i XSLT er selv et XML-dokument og kan derfor parseres av en XML-parser INF3100-12.4.2012 Ellen Munthe-Kaas 32

Transformasjon av XML-dokument <?xml version = "1.0" encoding="utf-8"?> <Movies> <Movie genre="comedy"> <Title>Bruce Almighty</Title> <Star><Name>Jim Carrey</Name></Star> </Movie>... XSLT stylesheet <?xml version = "1.0" encoding = "utf-8"?> <xsl:stylesheet xmlns:xsl = "http:...xsl/transform version = "1.0"> <xsl:output method = xml indent = yes /> <xsl:template match = "/Movies"> <ComedyMovies> <xsl:apply-templates /> </ComedyMovies>... XML-dokumenter XML-dokument XSLT Processor <?xml version = "1.0" encoding="utf-8"?> <ComedyMovies> <Comedy title = "Bruce Almighty" /> <Comedy title = "Dumb & Dumber" /> <Comedy title = "Nine Months" /> </ComedyMovies> INF3100-12.4.2012 Ellen Munthe-Kaas 33

XSLT-eksempel <?xml version = "1.0" encoding = "utf-8"?> <xsl:stylesheet xmlns:xsl = "http://www.w3.org/1999/xsl/transform version = "1.0"> <xsl:output method = xml indent = yes /> <xsl:template match = "/Movies"> <ComedyMovies> <xsl:apply-templates /> </ComedyMovies> </xsl:template> <xsl:template match = "Movie[@genre="comedy"]"> <xsl:apply-templates /> </xsl:template> <xsl:template match = "Title"> <Comedy title = "<xsl:value-of select = "." /> " /> </xsl:template> <xsl:stylesheet> INF3100-12.4.2012 Ellen Munthe-Kaas 34

Klasser av XML-dokumenter Datasentrisk: Ganske regelmessig struktur Finkornede data Dokumentsentrisk: Irregulær struktur Mer grovkornede data Hybrider av disse: Stort sett dokumentsentrisk, men med deler som er finkornede og med regelmessig struktur Stort sett datasentrisk, men med deler som er grovkornede og med irregulær struktur INF3100-12.4.2012 Ellen Munthe-Kaas 35

Eksempel på DBMS og håndtering av XML: Oracle XML DB Lagring av XML-formaterte dokumenter og data Datasentriske eller dokumentsentriske XML-data ETL (Extract, Transform and Load) Persistering av XML før transformering Eksport av relasjonelle data Generere XML fra relasjonelle data Resulterende XML-data blir ikke persistert INF3100-12.4.2012 Ellen Munthe-Kaas 36

Oracle XML DB: XMLType Abstrakt datatype: XMLType For lagring/persistering av XML-data Lagringsmodell: Velges etter bruksmønster Structured storage (objekt-relasjonell lagring) Binary XML storage (kompakt, skjemafleksibilitet) Unstructured storage (CLOB, bevarer XML-dokumentet uendret) Hybrid storage (forskjellige deler av et XML-dokument har forskjellig lagringsmodell) Indeksering: Velges etter bruksmønster B-trær, XMLIndex INF3100-12.4.2012 Ellen Munthe-Kaas 37

Oracle XML DB: Valg av lagringsmodell og indeksering hybrider Fra Oracle White Paper (Dec. 2009): Oracle XML DB: Choosing the Best XMLType Storage Option for Your Use Case INF3100-12.4.2012 Ellen Munthe-Kaas 38