anfragen an xml-dokumente mit xpath · warum xpath? datenmodell und typensystem ausdr ucke fazit...

33
Warum XPath? Datenmodell und Typensystem Ausdr¨ ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1 / 32

Upload: others

Post on 10-Sep-2019

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Anfragen an XML-Dokumente mit XPath

Heike Adel

21.06.2010

1 / 32

Page 2: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

MotivationGliederung

Motivation

Mit XPath kann man. . .

Knoten aus XML-Dokumenten auswahlen

Werte aus XML-Dokumentdaten berechnen

=> ganz gezielt Informationen aus XML-Dokumentenherausfiltern

2 / 32

Page 3: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

MotivationGliederung

Vorgehensweise

3 / 32

Page 4: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

MotivationGliederung

Vorgehensweise

1 Datenmodell und Typensystem

Grundlagenexternes Processing

2 Ausdrucke

Grundlegende InformationenPfadausdruckeArithmetische Ausdrucke, Vergleichsausdrucke, logischeAusdruckeif, forAuswertung von Ausdrucken durch XPath

3 Fazit

ZusammenfassungBedeutung von XPathQuellen

4 / 32

Page 5: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

GrundlagenExternes Processing

Grundlagen: Datenmodell und Typensystem

5 / 32

Page 6: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

GrundlagenExternes Processing

Datenmodell und Typensystem

XDM: Datenmodell von XPath

Grundlage: Baumreprasentation

Werte in XPath: SequenzenErzeugung: (1, 2, 3)

Items einer Sequenz: Knoten oder atomare Werte(xs:string, xs:boolean, xs:decimal,...)

7 Arten von Knoten: Dokumentknoten, Elementknoten,Attributknoten, Namensraumknoten,Verarbeitungsanweisungsknoten, Kommentarknoten,Textknoten

6 / 32

Page 7: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

GrundlagenExternes Processing

Externes Processing

7 / 32

Page 8: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

GrundlagenExternes Processing

Externes Processing

XML-Dokument wird gegen XML-Schema validiert:Typzuweisung an jeden Knoten

Erzeugung der XDM-InstanzXDM-Instanz: reprasentiert die zu durchsuchenden Daten

8 / 32

Page 9: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Ausdrucke

9 / 32

Page 10: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Was ist ein Ausdruck?

/child::media/child::dvd/child::film[@year=”2001”]

Ausdruck: String aus Unicode-Zeichen

Ergebnis: Sequenz (aus Knoten oder atomaren Werten)

case-sensitive

10 / 32

Page 11: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Aufbau eines Pfadausdrucks

Step = Achse + Knotentest + (optional) Pradikat(e)Auswertung von links nach rechtsEndergebnis: Knoten oder atomare Werte

11 / 32

Page 12: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Syntax der Pfadausdrucke: Uberblick

.../child::part/... liefert Elemente mit Namen part

.../child::*/... liefert alle Elemente

absolute Adressierung: /...kurz fur fn:root(self::node()) treat as

document-node()

relative Adressierung: child::dvd/child::film

/@name

kurz fur attribute::name

12 / 32

Page 13: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Achsen

Achse: Definition der BewegungsrichtungVorwarts-Achsen + Ruckwarts-Achsen = ganzes Dokument

13 / 32

Page 14: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

XML-Beispiel

14 / 32

Page 15: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Konkretes Beispiel 1

Wie erhalt man den ersten VHS-Film?

/child::media/child::vhs/child::film[1]

15 / 32

Page 16: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Konkretes Beispiel 1

[1] ist kurz fur: [position() = 1]

auch Pradikate wie [last()], [last()-1] etc moglich

16 / 32

Page 17: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Konkretes Beispiel 2

Wie erhalt man die DVD aus dem Jahr 2001?

/child::media/child::dvd/

child::film[@year=”2001”]17 / 32

Page 18: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Konkretes Beispiel 2

Wie erhalt man die DVD aus dem Jahr 2001?

/child::media/child::dvd/

child::film[@year=”2001”]17 / 32

Page 19: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Konkretes Beispiel 3

Wie heißen die Herr-Der-Ringe-DVDs?

/media/dvd/film[@name=”Lord of the

rings”]/parts/part/text() => default-Achse: child18 / 32

Page 20: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Konkretes Beispiel 4

Annahme: Kontextknoten: vierte Teil von Star Warsfollowing-sibling::part/@number

19 / 32

Page 21: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Arithmetische Ausdrucke

mogliche Ausdrucke: +, -, *, div, idiv, mod

simples Beispiel: 13 * 7

hier werden erst die Werte aus dem XML-Dokumentherausgefiltert:/medien/dvd/film[@name=”Lord of the

rings”]/@price + /medien/dvd/film[@name=

”Avatar”]/@price

20 / 32

Page 22: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Vergleichsausdrucke

allgemeine Vergleiche: <, >, <=, >=, =, !=z.B. (2, 5, 7) < (1, 1, 3) liefert true

Wertevergleiche: eq, ne, lt, gt, le, gez.B.: 2 lt 3 liefert true

Knotenvergleiche: is, <<, >>

Beispiel: Vergleich auf Gleichheit:/media/dvd/film[@director=”Peter Jackson”]is /media/dvd/film[@director=”James Cameron”]liefert false

21 / 32

Page 23: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Vergleichsausdrucke

Knotenvergleiche anhand der Dokumentreihenfolge:/media/dvd/film[@director=”James Cameron”]<</media/dvd/film[@director=”Peter Jackson”]liefert true

22 / 32

Page 24: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Logische Ausdrucke

es gibt UND-Ausdrucke und ODER-Ausdrucke

Zuerst: Bestimmung der booleschen Werte der Operanden:keine Klammerung erforderlich:

Bsp.: 1 eq 1 or 2 eq 3liefert true or false,also true als Ergebnis

23 / 32

Page 25: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Weitere Ausdrucke

for

if

viele weitere Funktionen

=> siehe dazu Dokumentation

24 / 32

Page 26: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Statische vs. Dynamische Phase

25 / 32

Page 27: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Statische Phase

Umwandlung in interneReprasentation (operation tree)

statischer Kontext: alleInformationen, die bereits vorAuswertung vorliegen; dient zurNamensauflosung

Normalisierung: Auflosung vonVerschachtelungen etc

Typencheck gegen statischen Typ:zur fruhzeitigen Fehlererkennung

26 / 32

Page 28: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath

Dynamische Phase

dynamische Phase = eigentlichAuswertung, Ergebnisberechnung

erfolgt nur, wenn statische Phaseohne Fehler abgeschlossen

dynamischer Kontext: statischerKontext + Informationen ausexterner Umgebung

Erzeugung neuer Datenmodelleund Erweiterung des dynamischenKontexts moglich

27 / 32

Page 29: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

ZusammenfassungWeitere Bedeutung: Wo XPath ebenfalls genutzt wird

Quellen

Fazit

28 / 32

Page 30: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

ZusammenfassungWeitere Bedeutung: Wo XPath ebenfalls genutzt wird

Quellen

Zusammenfassung

XPath: machtige Anfragesprache fur XML-Dokumente

zum Navigieren in XML-Dokumenten

basiert auf dem Datenmodell XDM

wichtigster Ausdruck: Pfadausdruck

29 / 32

Page 31: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

ZusammenfassungWeitere Bedeutung: Wo XPath ebenfalls genutzt wird

Quellen

Wo XPath ebenfalls genutzt wird

XML-Schema: zur Definition des Gultigkeitsbereiches voneindeutigen Werten

XPointer: zur Beschreibung von Stellen und Bereichen inDokumenten als Linkziele

XPath als Basis fur XSLT

XPath 2.0 ⊆ XQuery 1.0

30 / 32

Page 32: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

ZusammenfassungWeitere Bedeutung: Wo XPath ebenfalls genutzt wird

Quellen

Vielen Dank fur eure Aufmerksamkeit!

31 / 32

Page 33: Anfragen an XML-Dokumente mit XPath · Warum XPath? Datenmodell und Typensystem Ausdr ucke Fazit Anfragen an XML-Dokumente mit XPath Heike Adel 21.06.2010 1/32

Warum XPath?Datenmodell und Typensystem

AusdruckeFazit

ZusammenfassungWeitere Bedeutung: Wo XPath ebenfalls genutzt wird

Quellen

Quellen

offizielle Dokumentation:http://www.w3.org/TR/xpath20/http://www.w3.org/TR/xpath-datamodel/

Vorlesungsfolien:http://dbai.tuwien.ac.at/education/ssd/SS10/folien/SSD-XPATH.pdfaktuelle AI II-Vorlesungsfolien des KIT

Publikationen:http://www.sigs-datacom.de/fileadmin/user upload/zeitschriften/js/2003/06/becker JS 06 03.pdf

Weiteres im Internet:http://en.wikipedia.org/wiki/XPath 2.0

Bucher:Erik T. Ray - Einfuhrung in XMLHelmut Vonhoegen - Einstieg in XML

32 / 32