Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

1 Seminar 2004/2005 von Auszeichnungssprache XPath Ein Referat von Wei CAI 18.11.2004.

Ähnliche Präsentationen


Präsentation zum Thema: "1 Seminar 2004/2005 von Auszeichnungssprache XPath Ein Referat von Wei CAI 18.11.2004."—  Präsentation transkript:

1 1 Seminar 2004/2005 von Auszeichnungssprache XPath Ein Referat von Wei CAI

2 2 Informationsquellen Harald Schöning : XML und Datenbanken Richard Anderson : XML professionell

3 3 Inhalt des Referats 1. Einleitung 2. Datenmodell 3. Lokalisierungspfade 4. Abgek ü rzte Syntax 5. Ausdrücke 6. Funktionen

4 4 Beispiel Hotel Hotelnamesternstufe klasse Addressee Plz ort straße hausnummer Telefonräume zimmer zimmertyp einzelzimmerndoppelzimmer preise zimmernrwohlzustand

5 5 Beispiel DTD vom Beispiel (Hotel)

6 6 Beispiel Kunden Kunde* Name Vorname Nachname Kontakt Telefon > #PCDATA Kundennrzimmernr

7 7 Beispiel DTD vom Beispiel (Kunden) ]> XML Beispielsdokument Wei CAI Thomas Kaiser ……….

8 8 XML-Datenbank

9 9 Einleitung XSLT zum Entwurf von Präsentationsformen von XML-Dokumenten erfordert Zugriff auf Elemente von XML-Dateien XML Datenbanken brauchen eine Anfragesprache Xpath bietet Zugriff auf XML-Strukturen

10 10 Einleitung Anforderungen an XML Datenabank Anfragesprachen: -muss deklarativ sein -verfügt mehr als eine Syntax-Repräsentation und davon für Benutzer leicht les- und schreibbar -muss eine integrierte Fehlerbehandlung vorsehen -kann auf allen endlichen XML-Dokument operieren -mit Namensräumen umgehen -protokoll-unabhängig

11 11 Datenmodell XML Dokumente können mit XPath als Baum aus verschiedenartigen Knoten representiert werden jetzt machen wir ü ber Datenmodell von XPath

12 12 Datenmodell 1. Wurzelknoten 2. Elementenknoten 3. Attributknoten 4. Namensraumknoten 5. Verarbeitungsanweisungsknoten 6. Kommentarknoten 7. Textknoten

13 13 Wurzelknoten Wurzelknoten und Elementenknoten Elementknoten, Verarbeitungsanweisungsknoten, Kommentarknoten, Textknoten sind ihre Kinder. - Der Wert des Wurzelknotens und Elementenknotens ist die Konkatenation aller auf irgendeiner Stufe nachfolgenden Textknoten.

14 14 Attributknoten - Keine Kinder - Attribute als den Wert Achtung: Attribute, die der Namensraumdelaration dienen(xmlns),werden nicht als Attributknoten abgebildet.

15 15 Namensraumknoten - Keine Kinder - Die URI des Namensraumes als den Wert

16 16 Verarbeitungsanweisung Verarbeitungsanweisungsknoten - Keine Kinder - Der auf den Namen folgende Teil der Verarbeitungsanweisung als den Wert

17 17 Kommentarknoten -Keine Kinder -Inhalt des Kommentar als den Wert

18 18 Textknoten - Nie einen anderen Textknoten als Geschwisterknoten - Keine Kinder - Mindestens ein Zeichen enthalten - Ihr Wert besteht aus den Daten

19 19 Datenmodell Datenmodell vom Beispiel (Kunden) w.knote Kürzel: würzelknote:=w.knote elementknote:=e.knote e.knote Kunden attributknote:=a.knote textknote:=t.knote a.knote kundennr=1 Kunde e.knote e.knote name kontakt e.knote e.knote e.knote e.knote e.knote e.knote vorname nachname telefon Handy(#PCDATA) Wei CAI leerzeichen t.knote t.knote t.knote t.knote t.knote

20 20 Lokalisierungspfade Der Lokalisierungspfad besteht aus einer Folge von Lokalisierungsschritt,die in von links nach rechts nacheinander angewendet werden.

21 21 Lokalisierungspfade Ein Lokalisierungspfad kann absolute oder relativ sein. LocationPath ::=RelativeLocationPathRelativeLocationPath IAbsoluteLocationPathAbsoluteLocationPath

22 22 Lokalisierungspfade Ein absoluter Lokalisierungspfad: / step / step /….. AbsoluteLocationPath ::= '/' RelativeLocationPath?RelativeLocationPath |AbbreviatedAbsoluteLocationPathAbbreviatedAbsoluteLocationPath Ein relativer Lokalisierungspfad: step / step/….. RelativeLocationPath ::= Step| RelativeLocationPath '/'StepRelativeLocationPath Step| AbbreviatedRelativeLocationPathStepAbbreviatedRelativeLocationPath

23 23 Lokalisierungspfade Lokalisierungsschritt besteht aus : Achse Node Tests Prädikate so Aussicht: Axisname::nodetest[predicate]

24 24 Lokalisierungspfade Achse eine Achse gibt die Beziehung im Dokumentbaum zwischen Kontextknoten und den selektierten Knoten an.

25 25 Lokalisierungspfade Die Achsen orientieren sich an der Baumstruktur des Dokumentes im XPath-Datenmodell und navigieren vom Kontextknoten in einer Richtung.

26 26 Lokalisierungspfade ancestor preceding following parent preceding-sibling following-sibling self child descendant Ashsen in XPath

27 27 Lokalisierungspfade Node Tests - ein Node Test identifiziert eine Knotenmenge auf die bestimmte Knotentypen und Namen in einer Achse. NodeTest ::= NameTest|NameTest NodeType '(' ')'|NodeType 'processing-instruction' '(' Literal ')Literal z.B. (von Kunden) //text( )selektiert alle Textknoten von Kunden

28 28 Lokalisierungspfade Prädikate ein Prädikat wird auf jedem Knoten der Knotenmenge ausgewertet,wobei dieser Knoten für die Prädikatauswertung zum Kontextknoten wird. z.B. child::cd [position()=1] seine Funktion wie ein Filter

29 29 Abgek ü rztes Syntax Lokalisierende Konten Besonderheit: XPath verwendet Eine FORM, um Knoten in einem XML-Dokument zu identifizieren, die Ausdrücke wie herkömmliche Pfad-Angaben aussehen: Beispiel: ]

30 30 Abgek ü rztes Syntax Unbekannte Elemente selektieren Durch das Ersatzzeichen * kann man unbekannte XML-Elemente selektieren. z.B. /Kunden/* oder gleichgültig /*/Kunde

31 31 Abgek ü rztes Syntax AbbrMeaningExample nonechild::cd is short for child::cd is short for child::cd[attribute::type="classic"].self::node().//cd is short for self::node()/descendant-or- self::node()/child::cd..parent::node()../cd is short for parent::node()/child::cd ///descendant- or- self::node()/ //cd is short for /descendant-or- self::node()/child::cd

32 32 Ausdrücke Mehrere Pfade Selektieren Um mehrere Pfade zu selektieren, benutzt XPath mit I Operator. z.B. //title I //price

33 33 Ausdrücke Numerische Ausdrücke OperatorDescriptionExampleResult +Addition Subtraction *Multiplication6 * 424 divDivision8 div 42 modModulus (division remainder) 5 mod 21

34 34 Ausdrücke Gleichheitsausdrücke Operat or DescriptionExampleResult =Like (equal)price=9.80true (if price is 9.80) !=Not like (not equal) price!=9.80false

35 35 Ausdrücke Relationale Ausdrücke Oper ator DescriptionExampleResult Greater thanprice>9.80false >=Greater or equal price>=9.80true

36 36 Ausdrücke Boolean Ausdrücke Oper ator DescriptionExampleResult or price=9.80 or price=9.70 true (if price is 9.80) and price<=9.80 and price=9.70 false

37 37 Funktionen XPath enthält eine Basisfunktionsbibliothek, die die Knotenmengenlieferung unterstützt muss. Node-set Funktions String Funktions Nummer Funktions Boolean funktions

38 38 Funktionen Node-set Funktions NameDescriptionSyntax count()Returns the number of nodes in a node-set number=count(node- set) id()Selects elements by their unique ID node-set=id(value) name()Returns the name of a node string=name(node) namespace-uri()Returns the namespace URI of a specified node uri=namespace- uri(node)

39 39 Funktionen String Funktions NameDescriptionSyntax & Example concat()Returns the concatenation of all its arguments string=concat(val1, val2,..) Example: concat('The',' ','XML') Result: 'The XML' contains()Returns true if the second string is contained within the first string, otherwise it returns false bool=contains(val,subs tr) Example: contains('XML','X') Result: true

40 40 Funktionen Nummer Funktions NameDescriptionSyntax & Example ceiling()Returns the smallest integer that is not less than the number argument number=ceiling(number) Example: ceiling(3.14) Result: 4 floor()Returns the largest integer that is not greater than the number argument number=floor(number) Example: floor(3.14) Result: 3 sum()Returns the total value of a set of numeric values in a node-set number=sum(nodeset) Example: sum(/cd/price)

41 41 Funktionen Boolean funktions NameDescriptionSyntax & Example boolean()Converts the value argument to Boolean and returns true or false bool=boolean(value) false()Returns falsefalse() Example: number(false()) Result: 0 not()Returns true if the condition argument is false, and false if the condition argument is true bool=not(condition) Example: not(false())

42 42 End Zusammenfassung XPath bietet die Möglichkeit,navigierend Teile von Dokument zu adressieren. XPath ist mächtig!


Herunterladen ppt "1 Seminar 2004/2005 von Auszeichnungssprache XPath Ein Referat von Wei CAI 18.11.2004."

Ähnliche Präsentationen


Google-Anzeigen