anfragen an xml-dokumente mit xpath · warum xpath? datenmodell und typensystem ausdr ucke fazit...
Post on 10-Sep-2019
11 Views
Preview:
TRANSCRIPT
Warum XPath?Datenmodell und Typensystem
AusdruckeFazit
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
Warum XPath?Datenmodell und Typensystem
AusdruckeFazit
MotivationGliederung
Vorgehensweise
3 / 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
Warum XPath?Datenmodell und Typensystem
AusdruckeFazit
GrundlagenExternes Processing
Grundlagen: Datenmodell und Typensystem
5 / 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
Warum XPath?Datenmodell und Typensystem
AusdruckeFazit
GrundlagenExternes Processing
Externes Processing
7 / 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
Warum XPath?Datenmodell und Typensystem
AusdruckeFazit
Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath
Ausdrucke
9 / 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
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
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
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
Warum XPath?Datenmodell und Typensystem
AusdruckeFazit
Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath
XML-Beispiel
14 / 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
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
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
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
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
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
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
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
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
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
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
Warum XPath?Datenmodell und Typensystem
AusdruckeFazit
Grundlegende InformationenPfadausdruckeArithmetische, Vergleichs- und logische AusdruckeWeiteresAuswertung von Ausdrucken durch XPath
Statische vs. Dynamische Phase
25 / 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
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
Warum XPath?Datenmodell und Typensystem
AusdruckeFazit
ZusammenfassungWeitere Bedeutung: Wo XPath ebenfalls genutzt wird
Quellen
Fazit
28 / 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
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
Warum XPath?Datenmodell und Typensystem
AusdruckeFazit
ZusammenfassungWeitere Bedeutung: Wo XPath ebenfalls genutzt wird
Quellen
Vielen Dank fur eure Aufmerksamkeit!
31 / 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
top related