• Keine Ergebnisse gefunden

Standards II:

N/A
N/A
Protected

Academic year: 2022

Aktie "Standards II: "

Copied!
33
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Standards II:

XQuery

Anja Rein

Hauptseminar bei Prof. Bayer, Prof. Kossmann Technische Universität München

(2)

Wo stehen wir?

Einführung in Seminartechniken

Anwendungsszenarien für Web-Services

W3C Standards I :

XML Protocol (SOAP), WSDL & UDDI

W3C Standards II : XQuery

(3)

Fragen

Was ist XQuery?

Warum soll man XQuery benutzen?

Wie funktioniert XQuery?

(4)

Gliederung

0 XML-Grundlagen XML-Dokumente XML-Schema 1 XQuery

Einführung Verwendung Baum-Modell Funktionalitäten 2 Zusammenfassung

(5)

XML-Dokumente(1)

Telefon

Mitglied

Mitgliedsnummer

Adresse

Vorwahl Rufnummer Strasse Hausnr PLZ Ort

Name

Vorname Nachname

Alle_Mitglieder

Alter

(6)

XML-Dokumente(2)

<?xml version=“1.0“ encoding=“ISO-8859-1“?>

<!DOCTYPE Alle_Mitglieder SYSTEM Alle_Mitglieder.dtd>

<Alle_Mitglieder>

<Mitglied>

<Mitglied Mitgliedsnummer=“001“> -- Attribut

<Name>

<Vorname>Anja</Vorname>

<Nachname>Rein</Nachname>

</Name>

...

...

</Mitglied >

...

...

</Alle_Mitglieder>

(7)

XML-Schema(1)

<xds:schema xmlns:xsd=“http://www.w3.org/2001/XMLSchema>

<xsd:complexType name=“Mitglied“>

<xsd:attribute name=“Mitgliedsnummer” type=“xsd:string“> -- Attribut

<xsd:union>

<xsd:complexType name=”Name”>

</xsd:complexType name=”Name”>

<xsd:simpleType>

….

</xsd:simpleType>

</xsd:union>

</xsd:complexType name=“Mitglied“>

</xsd:schema>

(8)

XML- Schema(2) Komplexe Typen

<xsd:complexType name=”Name”>

<xsd:all>

<xsd:element name=“Vorname“ type=“xsd:string“/>

<xsd:element name=“Nachname“ type=“xsd:string“/>

</xsd:all>

</xsd:complexType name=”Name”>

(9)

XML-Schema(3)

Einfache Typen

<xsd:simpleType>

<xsd:restiktion base=“xsd:integer“>

<xsd:minInclusive value=”5”>

<xsd:maxInclusive value=”100”>

< /xsd:simpleType>

(10)

Gliederung

0 XML-Grundlagen XML-Dokumente XML-Schema 1 XQuery

Einführung Verwendung Baum-Modell Funktionalitäten 2 Zusammenfassung

(11)

Einführung

• XQuery und XPath

• strikte Typisierung

• funktionale Programmiersprache

• vollständige Anfragesprache

• vollständige Transformationssprache

(12)

Gliederung

0 XML-Grundlagen XML-Dokumente XML-Schema 1 XQuery

Einführung Verwendung Baum-Modell Funktionalitäten 2 Zusammenfassung

(13)

Verwendung – Warum?

Informationen aus XML extrahieren

SQL XQuery

Baum Tabellen

Datenmodell

Sortby im SELECT-

Ausdruck

Sortierung

FLWR SELECT

FROM WHERE

Daten-

manipulation

Semi-/Strukturierte Daten

Strukturierte Daten

Daten

XQuery SQL

Kosten

(14)

Datenströme analysieren

Verwendung – Wo?

XQuery

Administration Konstruktion

Transformation

Anpassen Analyse

(15)

Verwendung – Wie?

• XML-Dokument

• URL

• JSP

• String in Programmiersprache

• Protokoll

(16)

Gliederung

0 XML-Grundlagen XML-Dokumente XML-Schema 1 XQuery

Einführung Verwendung Baum-Modell Funktionalitäten 2 Zusammenfassung

(17)

Baum-Modell

Alter Telefon

Mitglied

Mitgliedsnummer

Name Adresse

Vorwahl Rufnummer Strasse Hausnr PLZ Ort

Vorname Nachname

Alle_Mitglieder

Alter

Wurzelknoten

Element- knoten Attribut-

knoten

• Dokumentordnung

• Sequenz

(18)

Gliederung

0 XML-Grundlagen XML-Dokumente XML-Schema 1 XQuery

Einführung Verwendung Baum-Modell Funktionalitäten 2 Zusammenfassung

(19)

Einfache Ausdrücke(1)

Konstanten

• elementare Werte

(String, Integer, Double oder Float)

Variablen

beginnt mit $-Zeichen

• Bindung an Ausdruck

• Typbestimmung vor der Auswertung

• Gültigkeit beschränkt sich auf den aktuellen und alle eingeschlossenen Anfrageausdrücke

Kommentar

{-- Das ist ein Kommentar --}

(20)

Arithmetik und logische Ausdrücke

Arithmetik

• +, -, *, DIV, MOD

• Klammerregeln der Algebra

Beispiel:

//alter+1

Logische Ausdrücke

• AND, OR, NOT

Beispiel:

NOT($mitglied/name [vorname=“Anja“]==mitglied[@id=“002“])

(21)

Vergleiche(1)

• =, !=, <, <=, >, >= (Sequenzen)

• EQ, NE, LT, LE, LT, GT, GE (elementare Werte)

• ==, !== (Knotengleichheit überprüfen)

• <<, >> (Knotenabfolge bzgl. der Dokumentordnung)

(22)

Vergleiche(2)

Beispiele:

$mitglied[name=“Anja Rein“]==$mitglied[@id=“001“]

$mitglied[name=“Anja Rein“]==$mitglied[@id=“001“] ==

count($mitglied) interessant:

$mitglied/name/vorname != „Anja“

gleich?

NOT($mitglied/name/vorname = „Anja Rein“)

(23)

Navigation mit Pfadausdrücken(1)

• Navigation im XML-Baum

• bestehen aus Steps

• relativer, absoluter Pfad Pfadausdrücke:

.

Kontextknoten

.. Vaterknoten

/ Wurzelknoten oder trennt Pfadausdrücke

// alle direkten Nachkommen des Kontextknotens

@attribut Attribut des Kontextknotens

[n] n-tes Element aus einer Sequenz

[expr1 TO expr2] Teilsequenz vom ersten bis zweiten Ausdruck

(24)

Navigation in Pfadausdrücken(2)

Beispiele:

/mitglied[3]/name/nachname

/mitglied[last()]/name/nachname

/mitglied[1 TO 100]/name/nachname

(25)

Kontrollbeschreibung durch FLWR

• FOR/LET/WHERE/RETURN SELECT-FROM-WHERE

• (FOR-Ausdruck | LET-Ausdruck)+

WHERE-Ausdruck? RETURN-Ausdruck

• FOR ($Variablenname IN Ausdruck)+

LET ($Variabelnname IN Ausdruck)+

Beispiel:

LET $mitgliedernamen := //name/nachname

RETURN $mitgliedernamen

(26)

Bedingte Ausdrücke

• IF (Bedingung) THEN expr_1 ELSE expr_2

• ELSE optional

Beispiel:

LET $alter := /mitglied/alter IF ($alter < 21)

THEN $status := „Jugendlicher“

ELSE $status := „Erwachsener“

(27)

Verbunde(1)

• analog zu Join inSQL

• gleiche Werte bei gemeinsamen Elemente:

natürlicher Verbund

• sonst: karthesisches Produkt

(28)

Verbunde(2)

<vorstandsmitgliederliste>

FOR $mitglied IN /

$mname IN

dokument(Vorstandsmitglieder.xml)//name/nachname WHERE $mitglied/name/nachname = $mname

RETURN

<vorstandsmitglied>

<name>

{$mitglied/name/nachname , $mitglied/name/vorname}

</name>

<adresse>

...

</vorstandsmitglied>

</vorstandsmitgliederliste>

(29)

Sichten

• analog “view” bei relationalen Datenbanken

• Raster über Daten

• verwendet Funktionsdefinition

Beispiel:

define function alter() returns xs:integer{

dokument(„Alle_Mitglieder.xml“)/mitglied/alter }

Aufruf:

FOR $a IN alter() WHERE $a>65

RETURN $a

(30)

Funktionsaufrufe

• Funktionsbibliothek - Typcastings

- einfache Funktionen auf Sequenzen

(z.B. last(), count())

• selbstdefinierte Funktionen

(31)

Weiterführende Funktionalitäten

• Sortieren

• Gruppieren

• Elementkonstruktoren

• All- und Existenzquantor

• Anfrageprolog

(32)

Gliederung

0 XML-Grundlagen XML-Dokumente XML-Schema 1 XQuery

Einführung Verwendung Baum-Modell Funktionalitäten 2 Zusammenfassung

(33)

Zusammenfassung

Strenge Typisierung:

XML-Schema

XML-Baumvorstellung

Kontext

Funktionale Programmiersprache SQL XQuery

F(x)

Referenzen

ÄHNLICHE DOKUMENTE

Die Seniorenpflege Daheim GmbH wird personenbezogene Daten nur zum Zweck der Bearbeitung Ihrer Anfrage und ggf. im Rahmen einer nachfolgenden

Städtisches Gymnasium Broich 45479 Broich Nordrhein-Westfalen. Städtisches Gymnasium Hattingen im Schulzentrum Holthausen 45527

Subventionsberechtigung oder über subventionserhebliche Tatsachen gebrauche (§ 264 Abs.  es für eine Strafbarkeit nach § 264 StGB nicht erforderlich ist, dass die Zuwendung

Industriegewerkschaft Bergbau, Chemie, Energie Öffentliche Ämter 93309 Kelheim.

AUTOHAUS FRITZ GMBH AUTOHAUS ITALIA GMBH AUTOHAUS FRANK BERNER AUTOHAUS AUTRAK GMBH AUTOHAUS SCHANDERT GMBH AUTOHAUS WOLFGANG JAEKEL AUTOHAUS TEICHER GMBH AUTOHAUS MOECKEL

130 Orterer Getränkemarkt 81369 München Johann-Clanze-Straße 41 Orterer Getränkemarkt. 81375

kontakt@cp- architektur.de Kopplin Steffen Dipl.-Ing.. 39175 Biederitz Am Mühlengrund

Kann der Aussteller seine Standfläche nicht nutzen oder ist er in der Nutzung seines Standes beeinträchtigt, weil er gegen gesetzliche oder behördliche Vorschriften oder