30.12.2013 Aufrufe

Skript - Praktische Informatik / Datenbanken - Universität Kassel

Skript - Praktische Informatik / Datenbanken - Universität Kassel

Skript - Praktische Informatik / Datenbanken - Universität Kassel

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

138<br />

Einführung in XML<br />

7.1.7 Knotentest und Knotentypen<br />

Der zweite Bestandteil eines XPath-Ausdrucks ermöglicht, die Suche auf<br />

Knoten eines bestimmten Typs einzuschränken. Ein Knotentest kann sich<br />

dabei entweder auf den Namen eines Knotens oder auf den Knotentyp<br />

beziehen. Eine Wildcard (*) wird benutzt, falls kein Knotentest erforderlich<br />

ist. Die folgende Tabelle (nach [28]) zeigt einige Lokalisierungsschritte<br />

mit Knotentest und den entsprechenden Erklärungen.<br />

Ein Test bezüglich des Typs eines Knotens bezieht sich wiederum auf<br />

Konstrukte aus dem XQuery-Datenmodell, die in Abb. 7–3 dargestellt<br />

sind. Eine Sequenz ist entweder leer (empty-sequence()) oder vom Typ<br />

item()*. Ein einzelner Eintrag (item()) hat entweder einen atomaren<br />

oder einen Knotentyp (node()). Auf bestimmte Knotenarten kann geprüft<br />

werden. Detaillierter kann dabei auf eine Kombination aus Knotenbechild::Name<br />

child::*<br />

*<br />

Kinderknoten mit Bezeichnung<br />

Name<br />

alle Kinderelemente<br />

attribute::*<br />

@*<br />

child::element(Name)<br />

alle Attribute des aktuellen<br />

Knotens<br />

Kinderelemente mit Bezeichnung<br />

Name<br />

child::element(*,<br />

Angestellte_T)<br />

attribute::attribute(*,<br />

xs:integer)<br />

Kindknoten vom Typ Angestellte_T<br />

Attribute mit ganzzahligen Werten<br />

attribute::attribute(Alter)<br />

attribute::Alter<br />

@Alter<br />

Attribut mit Namen Alter

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!