Seminar 20042005 von Auszeichnungssprache XPath Ein Referat von
- Slides: 42
Seminar 2004/2005 von Auszeichnungssprache XPath Ein Referat von Wei CAI 18. 11. 2004 1
Informationsquellen l l Harald Schöning : XML und Datenbanken. 2003 Richard Anderson : XML professionell. 2000 www. w 3 c. org www. w 3 school. com 2
Inhalt des Referats 1. 2. 3. 4. 5. 6. Einleitung Datenmodell Lokalisierungspfade Abgekürzte Syntax Ausdrücke Funktionen 3
Beispiel Hotelname klasse sternstufe Addressee Telefon räume zimmer Plz ort straße hausnummer zimmernr wohlzustand zimmertyp einzelzimmer n preise doppelzimmer 4
Beispiel l DTD vom Beispiel (Hotel) <!DOCTYPE hotel [ <!ELEMENT hotel (hotelname, sternstufe, adresse, telefon+, Zimmer+)> <!ELEMENT hotelname (#PCDATA)> <!ELEMENT sternstufe (#PCDATA)> <!ATTLIST sternstufe klasse (1|2|3|4|5|6) #REQUIRED> <!ELEMENT telefon (#PCDATA)> <!ELEMENT adresse (plz, ort, strasse, hausnummer)> <!ELEMENT ort (#PCDATA)> <!ELEMENT plz (#PCDATA)> <!ELEMENT strasse (#PCDATA)> <!ELEMENT hausnummer (#PCDATA)> <!ELEMENT räume (zimmer+)> <!ELEMENT zimmer (preise, zimmertyp)> <!ATTLIST zimmernr CDATA #FIXED wohnzustand ( ja | nein) “nein“ <!ELEMENT zimmertyp (einzelzimmer | doppelzimmer) > <!ELEMENT einzelzimmer (#PCDATA)> <!ELEMENT doppolzimmer (#PCDATA)> <!ELEMENT preise (#PCDATA)> ]> 5
Beispiel Kunden Kunde* Kundennr Name zimmernr Kontakt Vorname Telefon Nachname E-mail <<content>> #PCDATA 6
Beispiel l DTD vom Beispiel (Kunden) <!DOCTYPE Kunden [ <!ELEMENT Kunden (Kunde*)> <!ELEMENT Kunde(Name, Kontakt, Zimmernr*)> <!ATTLIST Kundennr CDATA #FIXED Zimmernr CDATA #REQUIRED> <!ELEMENT Name (Vorname, Nachname+ )> <!ELEMENT Vorname (#PCDATA)> <!ELEMENT Nachname (#PCDATA)> <!ELEMENT Kontakt(#PCDATA|Telefon|Email)*> <!ELEMENT Telefon (#PCDATA)> <!ELEMENT E-mail (#PCDATA)> ]> XML Beispielsdokument <Kunden> <Kundennr=“ 1“> <vorname>Wei</vorname> <nachname>CAI</nachname> <kontakt> <e-mail>strongerjet@hotmail. com</e-mail> <handy>01797899390</handy> </kontakt> </Kunde> <Kundennr=“ 2“ zimmernr=“ 103“> <vorname>Thomas</vorname> <nachname>Kaiser</nachname> <kontakt> <telefon>0231145790</telefon> <e-mail>thomas@web. de</e-mail> <handy>01709350099</handy> </Kunde> ………. </Kunden> l 7
XML-Datenbank 8
Einleitung l XSLT zum Entwurf von Präsentationsformen von XML-Dokumenten l erfordert Zugriff auf Elemente von XML-Dateien l XML Datenbanken brauchen eine Anfragesprache l Xpath bietet Zugriff auf XML-Strukturen 9
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 10
Datenmodell l XML Dokumente können mit XPath als Baum aus verschiedenartigen Knoten representiert werden jetzt machen wir über Datenmodell von XPath 11
Datenmodell 1. 2. 3. 4. 5. 6. 7. Wurzelknoten Elementenknoten Attributknoten Namensraumknoten Verarbeitungsanweisungsknoten Kommentarknoten Textknoten 12
Wurzelknoten l 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. 13
Attributknoten l Attributknoten - Keine Kinder - Attribute als den Wert Achtung: Attribute, die der Namensraumdelaration dienen(xmlns), werden nicht als Attributknoten abgebildet. 14
Namensraumknoten l Namensraumknoten - Keine Kinder - Die URI des Namensraumes als den Wert 15
Verarbeitungsanweisung l Verarbeitungsanweisungsknoten - Keine Kinder - Der auf den Namen folgende Teil der Verarbeitungsanweisung als den Wert 16
Kommentarknoten l Kommentarknoten -Keine Kinder -Inhalt des Kommentar als den Wert 17
Textknoten l Textknoten - Nie einen anderen Textknoten als Geschwisterknoten - Keine Kinder - Mindestens ein Zeichen enthalten - Ihr Wert besteht aus den Daten 18
Datenmodell l Datenmodell vom Beispiel (Kunden) w. knote Kürzel: würzelknote: =w. knote elementknote: =e. knote Kunden attributknote: =a. knote textknote: =t. knote a. knote kundennr=1 Kunde e. knote name kontakt e. knote vorname nachname telefon e-mail Handy(#PCDATA) Wei CAI „ leerzeichen“ strongerjet@hotmail. com 01797899390 t. knote t. knote 19
Lokalisierungspfade l Der Lokalisierungspfad besteht aus einer Folge von Lokalisierungsschritt , die in von links nach rechts nacheinander angewendet werden. 20
Lokalisierungspfade l Ein Lokalisierungspfad kann absolute oder relativ sein. Location. Path : : =Relative. Location. Path IAbsolute. Location. Path 21
Lokalisierungspfade Ein absoluter Lokalisierungspfad: / step /…. . Absolute. Location. Path : : = '/' Relative. Location. Path? l |Abbreviated. Absolute. Location. Path Ein relativer Lokalisierungspfad: step / step/…. . Relative. Location. Path : : = Step| Relative. Location. Path '/' l Step| Abbreviated. Relative. Location. Path 22
Lokalisierungspfade Lokalisierungsschritt besteht aus: l Achse l Node Tests l Prädikate so Aussicht: Axisname: : nodetest[predicate] 23
Lokalisierungspfade l Achse eine Achse gibt die Beziehung im Dokumentbaum zwischen Kontextknoten und den selektierten Knoten an. 24
Lokalisierungspfade l Die Achsen orientieren sich an der Baumstruktur des Dokumentes im XPath -Datenmodell und navigieren vom Kontextknoten in einer “Richtung”. 25
Lokalisierungspfade ancestor preceding following parent preceding-sibling following-sibling self child descendant Ashsen in XPath 26
Lokalisierungspfade l Node Tests - ein Node Test identifiziert eine Knotenmenge auf die bestimmte Knotentypen und Namen in einer Achse. Node. Test : : = Name. Test| Node. Type '(' ')'| 'processing-instruction' '(' Literal ')‘ z. B. (von Kunden) //text( )selektiert alle Textknoten von Kunden 27
Lokalisierungspfade l 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 28
Abgekürztes Syntax l 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: /Kunden/Kunde[@Kundennr=“ 1” ] 29
Abgekürztes Syntax l Unbekannte Elemente selektieren Durch das Ersatzzeichen “ * ”kann man unbekannte XML-Elemente selektieren. z. B. /Kunden/* oder gleichgültig /*/Kunde 30
Abgekürztes Syntax Abbr Meaning Example none child: : cd is short for child: : cd @ attribute: : cd[@type="classic"] is short for child: : cd[attribute: : type="classic" ] . self: : node() . //cd is short for self: : node()/descendant-orself: : node()/child: : cd . . parent: : node(). . /cd is short for parent: : node()/child: : cd // /descendant-or //cd is short for -self: : node()/ /descendant-orself: : node()/child: : cd 31
Ausdrücke l Mehrere Pfade Selektieren Um mehrere Pfade zu selektieren, benutzt XPath mit “ I “ Operator. z. B. //title I //price 32
Ausdrücke l Numerische Ausdrücke Operator Description Example Result + Addition 6+4 10 - Subtraction 6 -4 2 * Multiplication 6*4 24 div Division 8 div 4 2 mod Modulus (division remainder) 5 mod 2 1 33
Ausdrücke l Gleichheitsausdrücke Operat or Description Example Result = Like (equal) price=9. 80 true (if price is 9. 80) != Not like (not equal) price!=9. 80 false 34
Ausdrücke l Relationale Ausdrücke Oper ator Description Example Result < Less than price<9. 80 false (if price is 9. 80) <= Less or equal price<=9. 80 true > Greater than price>9. 80 false >= Greater or equal price>=9. 80 true 35
Ausdrücke l Boolean Ausdrücke Oper ator Description Example Result or or price=9. 80 or price=9. 70 true (if price is 9. 80) and price<=9. 80 and price=9. 70 false 36
Funktionen XPath enthält eine Basisfunktionsbibliothek, die Knotenmengenlieferung unterstützt muss. Node-set Funktions l String Funktions l Nummer Funktions l Boolean funktions l 37
Funktionen l Node-set Funktions Name Description Syntax count() Returns the number of nodes in a node-set number=count(nodeset) id() Selects elements by their unique ID node-set=id(value) name() Returns the name of a node string=name(node) namespaceuri() Returns the namespace URI of a specified node uri=namespaceuri(node) 38
Funktionen l String Funktions Name Description Syntax & Example concat() Returns the concatenation of all its arguments string=concat(val 1, val 2, . . ) 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 39
Funktionen l Nummer Funktions Name Description Syntax & 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 number=sum(nodeset) value of a set of Example: numeric values in a sum(/cd/price) node-set 40
Funktionen l Boolean funktions Name Description Syntax & Example boolean() Converts the value bool=boolean(value) argument to Boolean and returns true or false() Returns false() 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()) 41
End l Zusammenfassung XPath bietet die Möglichkeit, navigierend Teile von Dokument zu adressieren. XPath ist mächtig! 42
- Ein volk ein reich ein führer
- Ein neuer tag und ein neuer morgen
- Slidetodoc.com
- Wann ist ein mann ein mann text
- Trapez definition
- Serisen
- Goethe das veilchen interpretation
- Ein tag der sagt dem anderen
- Stromkreismodelle
- Jeden tag ist ein neuer tag
- Ein hund ist ein herz auf vier pfoten
- Master xpath and css selectors for selenium webdriver
- Msxml xpath
- Xml
- Xpath descendant-or-self
- Xpath exercises
- Org.apache.xpath.xpathapi
- Xpath visualizer
- Xpath beispiele
- Von welchen zahlen ist 24 ein vielfaches
- Ein lächeln das von herzen kommt
- Lena merkle
- Minnesang walther von der vogelweide
- Der gute mensch von sezuan referat
- Erasmus von rotterdam beeinflusst von
- Wind von backbord weicht wind von steuerbord
- Was ist ein vers
- Was ist ein rechenausdruck
- Kausalsatz
- Ein euzerl
- Mich dich sich uns euch sich
- Was sind erziehungsziele
- Frühblüher beispiele
- Offenes drama merkmale
- Ein euzerl
- Ionen lösen sich gut in wasser arbeitsblatt
- Text die perfekte welle
- Rese nese
- Gescheiter mensch
- Ich bin doch kein d zug
- Schlaf kindlein schlaf dein vater ist ein schaf
- Es waren einmal eine mama und ein papa
- Schaubild auswerten