XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff...

33
XML Path Language (XPath) 23.05.2006 Gholaman, Ali Bui, Binh Rodionov, Dmytro Büscher,Miguel Colak,Sedat Kebiri, Yassine

Transcript of XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff...

Page 1: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

XML Path Language (XPath)23.05.2006

Gholaman, AliBui, BinhRodionov, DmytroBüscher,MiguelColak,SedatKebiri, Yassine

Page 2: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Entstehung

Wurde im November 1999 verabschiedet.Wurde von dem W3C in einer Zusammenarbeit zweier Arbeitsgruppen (Arbeitsgruppe für Formatierung von Dokumenten und Linking-Spezifikation) entwickelt.Aktuelle Version 2.0Gängige Version 1.0

Page 3: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Beziehung

Folgende W3C-Standards bauen auf Xpath auf:XSLTXML SchemaXPointerXQuery (basiert auf XPath 2.0)

Page 4: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Definition

Xpath ist eine Adressierungssprache, die ein Dokument als Baum bzw. Teilbaum oder Ast auffasst.In diesem Knotenbaum kann man mit Hilfe einer Adressierungssyntax „navigieren“. Die Steuerung erfolgt durch Lokalisierungsausdrücke, die ähnlich wie Dateipfade aufgebaut sind.

Page 5: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Datentypen

XPath definiert vier Grundtypen: 1. boolean (true oder false),2. number (Gleitkommazahl), 3. string (Zeichenkette),4. node-set (ungeordnete Knotenmenge).

Die Variablendeklaration muss in der jeweilig benutzten Umgebung stattfinden, da Xpath selbst keine Variablen deklarieren kann.

Page 6: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Datenmodell

<Autor><Name>Mustermann</Name><Vorname>Peter</Vorname>

</Autor>Xpath hat ein höheres Abstraktionsniveau, als eine einfache Wortschatzanalyse.Die Grundstruktur eines XML-Dokuments ist aus Sicht von XPath baumartig.

Page 7: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

XPath kennt sieben verschiedene Knotenarten:

1. Wurzelknoten (root nodes)2. Elementknoten (element nodes)3. Textknoten (text nodes)4. Attributknoten (attribute nodes)5. Namensraumknoten (namespace nodes)6. Verarbeitungsanweisungs-Knoten

(processing instruction nodes)7. Kommentarknoten (comment nodes)

Page 8: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Wurzelknoten: Dies ist die Wurzel eines XML-Dokuments. XPath-Knoten der das gesamte Dokument enthält. Anders als alle Elemente (und Attribute) verfügt er über keinen Namensraumbezeichner. In Xpath 2.0 zu Dokumentknoten umbenannt.

Elementknoten: Für jedes Element des Dokuments existiert ein Elementknoten, der wieder weitere Elementknoten als Kinder haben kann als auch Kommentare, Verarbeitungsanweisungen und Text. Ein Element namens a, bestehend aus dem Anfangs- und End-Tag <a>...</a>. Untergeordnete Elemente (Kindelemente) sind ebenfalls „elementnodes“ - z.B. ein Element namens b, bestehend aus Anfangs- und End-Tag <b>...</b>, welches innerhalb von <a>...</a> vorkommen kann.

Page 9: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Textknoten: Enthalten keine weiteren Knoten, entsprechen Blättern eines Baumes (vgl. DAP2).

Attributknoten: Zu einem Elementknoten gehört eine optionale Menge an Attributen, die Xpath anstatt Kinderelementen des Elementknotens, als Menge von zugeordneten Knoten interpretiert. Attributknoten ist definitionsgemäß kein Kind seines Elterknotens. Die einzelnen Attributknoten enthalten Zeichenketten. //Ein Attribut b="irgendwas", das im Anfangs-Tag eines Elements avorkommt und dann in der Form <a b="irgendwas"> notiert wird, gilt als „attribute node“ des Elements a. Der Attributknoten besteht aus dem Attributnamen b und dem zugewiesenen Wert irgendwas.

Page 10: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Namensraumknoten: Wie bei attribute nodes sind Namensraumknoten nicht Kinder des sie enthaltenen Elementknotens, das aber als ihr Vorfahr gilt.

Verarbeitungsanweisungsknoten: Wie bei Namensraumknoten ist das Ziel der Verarbeitungsanweisung der lokale Name, der Namensraumbezeichner ist Null.

Kommentarknoten: Kinderlos, ohne Namensraumbezeichner; Wert entspricht der durch <!-- und --> eingeschlossenen Zeichenkette.

Page 11: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Jeder Xpath-Ausdruck besteht aus:1. Achse

Beispiel.:/Referat/Inhalt/Kapitel/attribute

Page 12: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Jeder Xpath-Ausdruck besteht aus:1. Achse2. Knotentest

Beispiel.:/Referat/Inhalt/Kapitel/attribute :: */parent

Page 13: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Jeder Xpath-Ausdruck besteht aus:1. Achse2. Knotentest3. Optionalen Prädikaten

Beispiel.:/Referat/Inhalt/Kapitel/attribute :: */parent

:: node()

Page 14: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Absolute Pfade

Absolute Pfade gehen von der Dokumentwurzel aus und beginnen mit einem „/“.Beispiel.: /Referat/KopfIn dem Beispiel werden zwei Location-Stepsverwendet. Man wandert von dem Dokumentwurzel zum Knoten „Referat“ und vom Knoten „Referat“ zum Knoten „Kopf“.

Page 15: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Relative Pfade

Die Pfade gehen vom aktuellen Knoten aus, welche auch Kontextknoten genannt werden. Sie beginnen ohne führenden „/“.Beispiel.: Autor/NameDer Pfad fängt in diesem Fall dort an wo das vorherige Beispiel endet (/Kopf).

Page 16: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Achse-Knotentest

Achse wird durch zwei Doppelpunkte von dem angegebenen Knoten getrennt(objektorientierte Programmierung)Achse::Knotentest[Prädikat]

Page 17: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Achsen-Typen

Page 18: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten
Page 19: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten
Page 20: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten
Page 21: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten
Page 22: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten
Page 23: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Prädikaten-OperatorenUm Xpath-Ausdrücke komplexer gestalten zuwollen, braucht man bestimmte Objekte, die einen booleschen Wert ergeben. (DAP1, DAP2)Or, and, =, !=, <, >, <=, >=, +, -, div, mod, *WICHTIGWICHTIG: Vor * dürfen folgende Zeichennicht stehen: @, ::, (, [, ,Das Minuszeichen ist der einzige Operator, der unär also als Vorzeichen benutzt werdenkann.

Page 24: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Prädikaten-Ausdrücke

Page 25: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Core Function LibraryKernfunktionen für den Datenzugriff

Spezifikation von Xpath sieht vor, daßImplementierungen eine Reihe von Funktionen beinhalten müssen. (Core Funktion Library)Funktionen sind die gleichen die in XSLT ständig benötigt werden.WichtigWichtig: Befehle sind noch nicht „final“ bzw. dies sind nicht alle Befehle die XSLT anbietenwird, da XSLT 1.0 noch nicht als „fertig“angesehen werden sollte.

Page 26: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Prädikaten- Funktionen

Page 27: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Änderungen in XPath 2.0

Knotenmengen werden durch Sequenzen ersetzt. Eine Sequenz ist (geordnete) Folge von Knoten oder Werten anderer Datentypen. Zum gewöhnlichen Vereinigung- gibt es jetzt auch Durchschnitt- und Differenzoperatoren.Beispiel.: Vereinigung: (K, L, M) union (L, M, N) ist (K, L, M, N)Durchschnitt: (K, L, M) intersect (L, M, N) ist (L, M)Differenz: (K, L, M) except (L, M, N) ist (K)

Diese Operatoren können auch in Pfadausdrücken eingesetzt werden.

Page 28: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Änderungen in XPath 2.0

To-Operator: liefert längere Sequenzen ganzer Zahlen.Beispiel: 1 to 10 // liefert die zahlen von 1 bis 10 in einer Sequenz.

For-Operator: ermöglicht den Zugriff auf einzelne Sequenzelemente, aus denen man neue Sequenzen bildet-Beispiel: For $x in (1 to 10) return $x * $x // liefert die Quadratzahlen von 1 bis 10.

Page 29: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Änderungen in XPath 2.0

Quantifizierung können direkt angegeben werden.

Beispiele:some $a in (1,2,3), $b in (3,4,5) satisfies $a + $b = 6

ist true, weil z.B. 1+5=6every $a in (1,2,3), $b in (3,4,5) satisfies $a + $b = 6

ist false, weil z.B. 1+3 != 6

Page 30: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

BEISPIELE

Und jetzt kommen die Beispiele...

Page 31: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Fazit

+ Umfangreiche Funktionsbibliothek

+ Unterstützt XML-Schema

+ Leichter Umgang da viele Begriffe aus anderen Programmiersprachen bekannt.

- Lange Ausdrücke bei unverkürzten Pfaden.

Page 32: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Literaturhinweise und Quellen

Behme, Henning und Mintert, Stefan: XML in der Praxis.Kränzler, Christine: XML/XSL für Buch und WebKay, Michael: XPath 2.0 : programmer‘sreference.Bach, Mike: XSL und XPath -verständlich und praxisnah.

Page 33: XML Path Language (XPath) -  · Core Function Library Kernfunktionen für den Datenzugriff Spezifikation von Xpath sieht vor, daß Implementierungen eine Reihe von Funktionen beinhalten

Literaturhinweise und Quellen

Simpson, John E.: XPath and XPointer.Skonnard, Aaron und Gudgin, Martin: Essential XML Quick Reference.Becker, Oliver: Navigation in XPath. Java Spectrum 6/2003www.W3C.orgde.Wikipedia.org