Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Gairovald Karle Geändert vor über 10 Jahren
1
1 Seminar 2004/2005 von Auszeichnungssprache XPath Ein Referat von Wei CAI 18.11.2004
2
2 Informationsquellen Harald Schöning : XML und Datenbanken. 2003 Richard Anderson : XML professionell. 2000 www.w3c.org www.w3school.com
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) <!DOCTYPE hotel [ <!ATTLIST zimmer zimmernr CDATA #FIXED wohnzustand ( ja | nein) nein ]>
6
6 Beispiel Kunden Kunde* Name Vorname Nachname Kontakt Telefon E-mail > #PCDATA Kundennrzimmernr
7
7 Beispiel DTD vom Beispiel (Kunden) <!DOCTYPE Kunden [ <!ATTLIST Kunde Kundennr CDATA #FIXED Zimmernr CDATA #REQUIRED> ]> XML Beispielsdokument Wei CAI strongerjet@hotmail.com 01797899390 Thomas Kaiser 0231145790 thomas@web.de 01709350099 ……….
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 e-mail Handy(#PCDATA) Wei CAI leerzeichen strongerjet@hotmail.com 01797899390strongerjet@hotmail.com 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: /Kunden/Kunde[@Kundennr=1 ]
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 @attribute::cd[@type="classic"] 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 +Addition6 + 410 -Subtraction6 - 42 *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 <Less thanprice<9.80false (if price is 9.80) <=Less or equalprice<=9.80true >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!
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.