XML och frågespråk nikos dimitrakas Rum 6626

Slides:



Advertisements
Liknande presentationer
Relationsdatabasdesign
Advertisements

Introduktion till XML.
G RUNDLÄGGANDE XML OCH CSS Mikael Gunnarsson och Helena Francke TLS, HyrData, Stockholm mars 2003.
FTP, HTTP, HTML, XML och XHTML
MS Excel 2010 – Dag 2 Mahmud Al Hakim
Fi2 Lägesrapport om IT-utvecklingen i fastighetsbranschen
Klasser och objekt.
DATABASHANTERING för programmerare
Nya typer Konstruerare, selektorer och predikat Rekursiva datatyper
Textkodning: XML ”Having trouble de-coding the text, Albert?”
Datatyper C# C/C++ Java VB Fortran Pascal bool boolean Boolean
MS Excel 2010 – Dag 1 Mahmud Al Hakim. Kursens innehåll 2 DagInnehåll 1 Introduktion till Excel 2010 Hantera arbetsböcker Formler Formatering Litteratur:
1 Ingenjörsmetodik IT & ME 2009 Föreläsare Dr. Gunnar Malm.
Eddie Arnold - Make The World Go Away Images colorées de par le monde Déroulement automatique ou manuel à votre choix 1 för dig.
Elkraft 7.5 hp distans: Kap. 3 Likströmsmotorn 3:1
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Växjö 21 april -04Språk & logik: Kontextfria grammatiker1 DAB760: Språk och logik 21/4: Kontextfria 10-12grammatiker Leif Grönqvist
Föreläsning 2 Datalogi för E1 2D1343
Textkodning: XML ”What’s the matter, Albert? Having trouble decoding the text? ”
1 Ladok3 Examensfokus »NUAK »Catherine Zetterqvist, huvudproduktägare Ladok3 »Annika Thunström, områdesproduktägare examen Ladok3.
Växjö 15 april -04Språk & logik: Reguljära uttryck1 DAB760: Språk och logik 15/4: Finita automater och 13-15reguljära uttryck Leif Grönqvist
V E R S I O N N R 2. 0 T A V E L I D É E R I M I L J Ö.
Bastugatan 2. Box S Stockholm. Blad 1 Läsarundersökning Maskinentreprenören 2007.
1 Introduktion till SML Nr 2 Värden, typer och funktioner.
XSLT – en introduktion Digitalisering av kulturarvet.
Programmering B PHP Lektion 2
Hur vill studenter bo? En studie av enrumslägenheter 1.
Enkätresultat för Fritidshem Föräldrar 2014 Skola - Hällby skola.
Sid 1 CD5250 OOP med C++ Daniel Flemström MDH/IDT CD5250 OOP med C++
1 Funktioner Nr 3 Funktionstyper, högre ordningens funktioner och polymorfism.
Programmering i C# 3. Klasser.
Programmeringsbegrepp
15 x 25 meter. Skriv banenavn Skriv designet af Skriv dato MÅL sväng vänster 6 sväng höger 5 runt 7 Vänster runt hund höger runt.
XSLT – en introduktion Elektronisk publicering.
Digitalteknik 7.5 hp distans: 5.1 Generella sekvenskretsar 5.1.1
Från Gotland på kvällen (tågtider enligt 2007) 18:28 19:03 19:41 19:32 20:32 20:53 21:19 18:30 20:32 19:06 19:54 19:58 20:22 19:01 21:40 20:44 23:37 20:11.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
DATABASHANTERING för programmerare Lektion 3 Mahmud Al Hakim
TÄNK PÅ ETT HELTAL MELLAN 1-50
TEI Header Mats Dahlström Digitalisering av kulturarvet April 2007.
DATABASHANTERING för programmerare Lektion 4 Mahmud Al Hakim
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
Frågespråk och SQL nikos dimitrakas rum 6626
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
Grundskola Föräldrar 2013 Grundskoleenkät - Föräldrar Enhet:Gillberga skola.
FRÅGEUTVECKLING INOM MSSQL Marcus Medina. Dagens visdomsord ” Det är inte vad som händer dig som räknas – utan hur du reagerar på det. ” - Epiktetos.
1(31) Ett omdiskuterat ämne. Vad är det som händer? 2.
Nikos dimitrakas Rum 8522 IV1023 ht2013 Avancerad Datahantering med XML Introduktion till kursen Semistrukturerade data och XML.
Täckningsgrad Dec 2014 – feb 2015 Täckningsgrad Dec 2014 – feb 2015.
Arbetspensionssystemet i bilder Bildserie med centrala uppgifter om arbetspensionssystemet och dess funktion
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
EXtensible Markup Language Digitalisering av kulturarvet
XHTML & CSS Introduktion Erik Nahkala
Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,
Informationsteknologi - Lektion 2 Trådlöst nätverk (WLAN) Trådlöst nätverk (WLAN) Filarkivet: Filarkivet:
IV1023 ht2013 nikos dimitrakas KTH/ICT/SCS 1 IV1023 ht2013 Avancerad Datahantering med XML XSLT nikos dimitrakas Rum 8522 Läsanvisningar.
XHTML – Dokumentets grundstruktur Body - head. Grundläggande dokument
XSLT 2 Digitalisering av kulturarvet.
Räkna till en miljard 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14,15,16,17,18,19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, En miljard är ett.
© Anders Broberg, Ulrika Hägglund, Lena Kallin Westin, 2003 Föreläsning 12 Sökning och Sökträd.
Förskoleenkät Föräldrar 2012 Förskoleenkät – Föräldrar Enhet:Hattmakarns förskola.
DATABASHANTERING för programmerare Lektion 6 Mahmud Al Hakim
DATABASHANTERING för programmerare Lektion 5 Mahmud Al Hakim
XSLT 1 Digitalisering av kulturarvet.
1 Mönstermatchning och rekursion Nr 4. 2 Förenklad notation val fnname = fn name => expression Förenklas till fun fnname name = expression Exempel fun.
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
1 Jan Lundström OV’s Hemsida Utbildning Ledare. 2 Jan Lundström OV’s Hemsida Standard Lagrum.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
När infaller Julafton och hur ofta?
IV1023 ht2013 nikos dimitrakas KTH/ICT/SCS 1 IV1023 ht2013 Avancerad Datahantering med XML Frågespråk för SSD och XML nikos dimitrakas
Presentationens avskrift:

nikos dimitrakas nikosd@kth.se 08-162099 Rum 6626 XML och frågespråk nikos dimitrakas nikosd@kth.se 08-162099 Rum 6626 Connolly/Begg (3rd edition) Kapitel 29.2, 29.3.1, 29.3.2, 29.3.3, 29.3.4, 29.3.8, 29.4.5 (obs! upplaga 3 täcker inte allt) (4th edition) Kapitel 30.2, 30.3.1, 30.3.2, 30.3.3, 30.3.4, 30.4 (dock inte 30.4.1), 30.5.3, (30.6) (5th edition) Kapitel 31.2, 31.3.1, 31.3.2, 31.3.3, 31.3.4, 31.4 (dock inte 31.4.1), 31.5.3, (31.6)

XML Står för Extensible Markup Language Ett språk för att definiera dokumentstrukturer XML är en textuell representation av data Används i olika områden: Datalagring Webb (XHTML) Konfigurationsfiler Transportformat Regler kan specificeras via DTD (Document Type Definition) XML Schema Case sensitive

XML syntax Element Attribut Nästlade element Tomt element <Person>Kalle</Person> Attribut <Person namn="Kalle"></Person> Nästlade element <Person id="59"> <Fnamn>Kalle</Fnamn> <Enamn>Lindblim</Enamn> <Adress> <Gata>Kungsgatan 53</Gata> <Postnr>12332</Postnr> <Ort>Stockholm</Ort> </Adress> </Person> Tomt element <Person namn="Kalle" />

XML-dokument XML-deklaration DOCTYPE – referens till regler Namespaces <?xml version="1.1" encoding="UTF-8" ?> DOCTYPE – referens till regler <!DOCTYPE Person SYSTEM "Person.dtd"> Namespaces kvalificering av element- och attributnamn <iv1351:Person iv1315:namn="Kalle"></iv1351:Person> default och andra namespaces <Root xmlns="default ns URI" xmlns:iv1351="iv1351 ns URI"> … </Root>

XML-referenser ID IDREF <Person namn="Kalle" id="39"></Person> IDREF <Organisation namn="KTH" chef="39"></Organisation>

DTD (Document Type Definition) Definierar XML-strukturen (element och attribut) <!ELEMENT db (Person*)> <!ELEMENT Person (Adress)> <!ELEMENT Adress EMPTY> <!ATTLIST Person namn CDATA #REQUIRED id ID #REQUIRED fdatum CDATA #IMPLIED pappa IDREF #IMPLIED> <!ATTLIST Adress gatuadress CDATA #REQUIRED postnr CDATA #REQUIRED postort CDATA #REQUIRED>

XML Schema Starkare än DTD XML-syntax flexiblare strukturer datatyper <element name="db" type="dbType"/> <complexType name="dbType"> <sequence> <element name="Person" type="PersonType" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> <complexType name="PersonType"> <element name="Adress" type="AdressType" /> <attribute name="namn" type="string" use="required"/> <attribute name="id" type="id" use="required"/> <attribute name="fdatum" type="date" use="optional"/> <attribute name="pappa" type="idref" use="optional"/> <complexType name="AdressType"> …

Well-formed & Valid Well-formed XML Valid XML Syntaktiskt korrekt Börjar med XML-deklarationen Innehåller endast ett rot-element Matchade öppnings- och stängningstaggar Valid XML Följer reglerna i den kopplade DTD eller XML Schema

XML Språk Språk för att komma åt innehållet i XML-dokument XPath XSLT XQuery SQL/XML (SQL 2003c) (SQL 2008) Proprietary languages (IBM, Oracle, etc.) …

XPath Path expressions för navigering i XML-strukturer Stödjer villkor och wildcards Inkluderar många funktioner Exempel: /Book[@Price=500]/Author/@Name

XSLT Möjliggör transformationer mellan olika XML-strukturer Exempel: <xsl:template match=“/”> <authors> <xsl:for-each select=“books/book/author”> <author><xsl:value-of select=“name”></author> </xsl:for-each> </authors> </xsl:template> <books> <book title=“x”> <author name=“a”/> </book> <book title=“y”> <author name=“b”/> </books> <authors> <author>a</author> <author>b</author> </authors>

XQuery Frågespråk för XML Kombinerar XPath och FLWOR-uttryck FLWOR: For Let Where Order by Return Stödjer alla funktioner som ingår i XPath Baserat på andra språk som SQL, OQL, Lorel, etc.

SQL/XML SQL 2003 & 2008 (ISO standard) Stöd för XML i relationsdatabaser Lagring Hantering via XQuery Stöd för komposition av XML-dokument från vanliga relationsdata med SQL Funktioner för generering av XML-dokument i SQL: XMLELEMENT XMLFOREST XMLATTRIBUTES XMLAGG XMLCONCAT … Bonusmaterial om SQL/XML finns i Bilda

Proprietära Språk/Teknologier Stöd för lagring och hantering av XML-data, samt transformationer mellan XML och relationsdata IBM: SQL UDFs: Extract-funktioner, Update-funktion Mappning XML-RDB: DAD-filer Oracle: SQL UDFs: Extract-funktioner, existsNode, etc. Microsoft Egen variant av SQL/XML Egen variant av XQuery-stöd … och många andra

Exempeldata <Filmer> <Film Titel="Driven" År="2001"> <Skådis Namn="Burt Reynolds" Födelseår="1936" Land="USA"/> <Skådis Namn="Silvester Stallone" Födelseår="1946" Land="USA"/> <Skådis Namn="Kip Pardue" Födelseår="1976" Land="Canada"/> <Regissör Namn="Silvester Stallone" Födelseår="1946" Land="USA"/> <Produktionsbolag>Tri-Star</Produktionsbolag> </Film> <Film Titel="Antz" År="1998"> <Skådis Namn="Woody Allen" Födelseår="1935" Land="USA"/> <Skådis Namn="Sharon Stone" Födelseår="1958" Land="USA"/> <Regissör Namn="Eric Darnell" Födelseår="1961" Land="Ireland"/> <Produktionsbolag>Universal</Produktionsbolag> <Film Titel="Picking Up the Pieces" År="2000"> <Skådis Namn="Alfonso Arau" Födelseår="1948" Land="USA"/> … </Filmer>

XPath / // @ /element/@attribut /elementX//elementY Wildcards * nodes() Predicates: [predicate]: /element[1] /element[@attribute=value] . och .. ("current node" och "parent node") | (konkatenering)

XPath Exempel Alla Filmer (Film-noder): Alla Filmer (Film-noder) från år 2000 //Film[@År=2000] Året för filmer av Universal //Film[Produktionsbolag='Universal']/@År Regissörer för filmer från 2000 och 2003 //Film[@År=2000]/Regissör | //Film[@År=2003]/Regissör Titel på filmer med Woody Allen //Skådis[@Namn='Woody Allen']/../@Titel

XPath Axes child, ancestor, descendant, parent /Filmer/child::Film (ekvivalent med /Filmer/Film) //Skådis/ancestor::Film

XQuery For Let Where Order By Return Loopar igenom en nodsekvens (eller värdesekvens) Let Tilldelningar Where Villkor Order By Sordering av resultatet Return Konstruktion av resultatet

XQuery FLWOR-uttryck kan nästlas. Ingen klausul är obligatorisk. XPath-uttryck kan användas i alla klausuler. Resultatet kan vara well-formed XML, men behöver inte vara det. Funktionen doc() kan användas för att definiera källan (ett XML-dokument). Annars kan man använda exekveringsmiljön för att konfigurera källan.

XQuery Variabler börjar med $: Sekvenser: Utverdering av uttryck: for $s in //Film/Skådis let $n := $s/@Namn Sekvenser: for $x in (1, 2, 3) let $y := (1, 2, 3) Utverdering av uttryck: Lägg uttrycket inuti { }: <resultat>{$x*3}</resultat>

XQuery – Flera resultat return-klausulen genererar ett resultat per värde i for-loopen: for $x in (1,2,3) return <värde>{$x}</värde> Placera resultatet i ett annat resultat som kan fungera som rot-nod: <resultat>{ }</resultat>

XQuery/XPath-funktioner Sekvens-funktioner: distinct-values(s) min(s), max(s), sum(s), avg(s) empty(s), exists(s) union(s1,s2), instersect(s1,s2), except(s1,s2) concat(s1,s2) Nod-funktioner: name(n), local-name(n), node-name(n)

XQuery/XPath-funktioner String-funktioner: matches(s, regexp) concat(s1,s2) starts-with(s1,s2), ends-with(s1,s2), contains(s1,s2) substring(s, start), substring(s, start, length) lower-case(s), upper-case(s) replace(s, pattern, replacement) tokenize(s, pattern)

XQuery/XPath-funktioner Other functions: doc(URI) not(e) Många datum/tid-funktioner Många numeriska funktioner data(ns) – Seqvens av noder till seqvens av enkla (atomic) värden number(n) – Värdet av noden som nummer eller NaN string(n) – Nodens värde som string current-time(), current-date(), current-dateTime()

XQuery/XPath-operatorer +, -, *, div, mod =, !=, >, <, <=, >= eq, ne, lt, le, gt, ge or, and, not is, >>, <<

XQuery-funktioner element() attribute() node() /element() (samma som /*) attribute() //Film/attribute() (samma som //Film/@*) node() /node() – element-noder och text-noder /@node() – attribut-noder

XQuery – Computed Constructors element element name value: let $a := "a", $b := 2 return <x>{element {$a} {$b}}</x> attribute attribute name value: return <x>{attribute {$a} {$b}}</x>

XQuery – Flödeskontroll if-then-else for $a in (1 to 5) return if ($a mod 2 = 0) then <even>{$a}</even> else <odd>{$a}</odd>

XQuery – Kvantifierare some for $a in //Film where some $b in $a/Skådis/@Land satisfies string($b) = "Austria" return $a every where every $b in $a/Skådis/@Land satisfies string($b) = "USA"

XQuery – Nesting Ett uttrycks resultat blir källa för ett annat uttryck: for $x in distinct-values (for $a in (1 to 6), $b in (1 to 6) return <summa>{$a + $b}</summa>) return <unik>{$x}</unik>

Mer Information XPath XQuery http://www.w3schools.com/xpath/ http://www.w3schools.com/xquery/ http://www.stylusstudio.com/xml_tutorial.html