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 Rum 6626 Connolly/Begg(3rd edition) Kapitel 29.2, , , , , , (obs! upplaga 3 täcker inte allt) (4th edition) Kapitel 30.2, , , , , 30.4 (dock inte ), , (30.6) (5th edition) Kapitel 31.2, , , , , 31.4 (dock inte ), , (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 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:

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 •/ •// •/elementX//elementY •Wildcards * nodes() •Predicates: [predicate]: –/element[1] •. 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 •Året för filmer av Universal •Regissörer för filmer från 2000 och 2003 | •Titel på filmer med Woody Allen

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 := •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 •node() –/node() – element-noder och text-noder – 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 satisfies string($b) = "Austria" return $a •every for $a in //Film where every $b in 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