Presentation laddar. Vänta.

Presentation laddar. Vänta.

IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 1 XML och frågespråk nikos dimitrakas 08-162099 Rum 6626 Connolly/Begg(3rd edition) Kapitel 29.2,

Liknande presentationer


En presentation över ämnet: "IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 1 XML och frågespråk nikos dimitrakas 08-162099 Rum 6626 Connolly/Begg(3rd edition) Kapitel 29.2,"— Presentationens avskrift:

1 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 1 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)

2 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 2 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

3 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 3 XML syntax •Element Kalle •Attribut •Nästlade element Kalle Lindblim Kungsgatan 53 12332 Stockholm •Tomt element

4 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 4 XML-dokument •XML-deklaration •DOCTYPE – referens till regler •Namespaces –kvalificering av element- och attributnamn –default och andra namespaces …

5 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 5 XML-referenser •ID •IDREF

6 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 6 DTD (Document Type Definition) Definierar XML-strukturen (element och attribut)

7 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 7 XML Schema •Starkare än DTD –flexiblare strukturer –datatyper •XML-syntax …

8 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 8 Well-formed & Valid •Well-formed 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

9 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 9 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.) •…

10 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 10 XPath •Path expressions för navigering i XML-strukturer •Stödjer villkor och wildcards •Inkluderar många funktioner •Exempel: –/Book[@Price=500]/Author/@Name

11 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 11 XSLT •Möjliggör transformationer mellan olika XML-strukturer •Exempel: a b

12 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 12 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.

13 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 13 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

14 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 14 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

15 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 15 Exempeldata Tri-Star Universal Tri-Star …

16 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 16 XPath •/ •// •@ •/element/@attribut •/elementX//elementY •Wildcards * nodes() •Predicates: [predicate]: –/element[1] –/element[@attribute=value] •. och.. ("current node" och "parent node") •| (konkatenering)

17 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 17 XPath Exempel •Alla Filmer (Film-noder): –//Film •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

18 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 18 XPath Axes •child, ancestor, descendant, parent –/Filmer/child::Film (ekvivalent med /Filmer/Film) –//Skådis/ancestor::Film

19 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 19 XQuery •For –Loopar igenom en nodsekvens (eller värdesekvens) •Let –Tilldelningar •Where –Villkor •Order By –Sordering av resultatet •Return –Konstruktion av resultatet

20 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 20 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.

21 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 21 XQuery •Variabler börjar med $: –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 { }: – {$x*3}

22 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 22 XQuery – Flera resultat •return-klausulen genererar ett resultat per värde i for-loopen: for $x in (1,2,3) return {$x} •Placera resultatet i ett annat resultat som kan fungera som rot-nod: { for $x in (1,2,3) return {$x} }

23 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 23 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)

24 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 24 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)

25 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 25 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()

26 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 26 XQuery/XPath-operatorer •+, -, *, div, mod •=, !=, >, = •eq, ne, lt, le, gt, ge •or, and, not •is, >>, <<

27 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 27 XQuery-funktioner •element() –/element() (samma som /*) •attribute() –//Film/attribute() (samma som //Film/@*) •node() –/node() – element-noder och text-noder –/@node() – attribut-noder

28 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 28 XQuery – Computed Constructors •element –element name value: let $a := "a", $b := 2 return {element {$a} {$b}} •attribute –attribute name value: let $a := "a", $b := 2 return {attribute {$a} {$b}}

29 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 29 XQuery – Flödeskontroll •if-then-else for $a in (1 to 5) return if ($a mod 2 = 0) then {$a} else {$a}

30 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 30 XQuery – Kvantifierare •some for $a in //Film where some $b in $a/Skådis/@Land satisfies string($b) = "Austria" return $a •every for $a in //Film where every $b in $a/Skådis/@Land satisfies string($b) = "USA" return $a

31 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 31 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 {$a + $b} ) return {$x}

32 IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 32 Mer Information •XPath –http://www.w3schools.com/xpath/ •XQuery –http://www.w3schools.com/xquery/ –http://www.stylusstudio.com/xml_tutorial.html


Ladda ner ppt "IV1351 ht2010 nikos dimitrakas KTH/ICT/SCS 1 XML och frågespråk nikos dimitrakas 08-162099 Rum 6626 Connolly/Begg(3rd edition) Kapitel 29.2,"

Liknande presentationer


Google-annonser