Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg.

Ähnliche Präsentationen


Präsentation zum Thema: "© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg."—  Präsentation transkript:

1 © 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg Hauptseminar - Halle - 6. Februar 2002

2 © 2001 Sven Dammann2 Gliederung 1.Einleitung 1.1. XML und Datenbanken 1.2. XML Dokument 1.3. Document Type Definition 2.XML Schema 2.1. Schema Aufbau 2.2. Tabellenmodellierung 2.3. Referentielle Integrität 3.Datenbank-Operationen mit XML-Sprachen 3.1. Selektion und Projektion mit Xpath 3.2. Transformation mit XSLT 4.Zusammenfassung

3 © 2001 Sven Dammann3 XML und Datenbanken: Möglichkeiten Middleware Software zum Transferieren von Daten zwischen XML-Dokumenten und Datenbanken XML-Enabled Databases Datenbanken mit Erweiterungen, um Daten zwischen XML-Dokumenten und diesen Daten- banken zu transferieren Native XML Databases Datenbanken, die XML-Dokumente in ihrer „nativen“ Form speichern (Erhalt der Struktur des XML- Dokuments) XML-Server Plattformen, die Daten in Form von XML-Doku- menten an verteilte Anwendungen senden und von diesen Anwendungen empfangen (e-commerce, B2B-Applikationen) XML Application Server Web Applikationen Server, die XML an Browser verschicken Content Management Systems Systeme zum Speichern, Wiederfinden und Zusammenstellen von Dokumenten aus Dokumentfragmenten Einleitung XML Schema Xpath XSLT Zusammenfassung

4 © 2001 Sven Dammann4 XML: Verarbeitung Anwendungen, die XML verarbeiten benötigen drei Dateien: –XML-Dokument –DTD (Document Type Definition) oder XML Schema –XSL-Stylesheet XML-Dokument nach Regeln der DTD o. XML Schema aufgebaut DTD o. XML-Schema legt logische Struktur fest XSL-Stylesheet zur Darstellung (z.B. im Browser) Einleitung XML Schema Xpath XSLT Zusammenfassung

5 © 2001 Sven Dammann5 XML-Dokument: Aufbau...untergeordnete Elemente identisch mit ...untergeordnete Elemente Einleitung XML Schema Xpath XSLT Zusammenfassung

6 © 2001 Sven Dammann6 XML: Baumstruktur Einleitung XML Schema Xpath XSLT Zusammenfassung

7 © 2001 Sven Dammann7 DTD: Beispiel Einleitung XML Schema Xpath XSLT Zusammenfassung

8 © 2001 Sven Dammann8 DTD: Nachteile Nur ein Datentyp Sicherung referentieller Integrität nur sehr eingeschränkt über Definition von „ID“ und „IDREF“möglich XML Schema Einleitung XML Schema Xpath XSLT Zusammenfassung

9 © 2001 Sven Dammann9 XML Schema Einleitung XML Schema Xpath XSLT Zusammenfassung

10 © 2001 Sven Dammann10 XML-Schema: Aufbau ...Definition von Elementen... Einleitung XML Schema Xpath XSLT Zusammenfassung

11 © 2001 Sven Dammann11 Beispieldatenbank: Company deptnodnameloc 10AccountingNew York 20ResearchDallas 30SalesChicago empnoenamejobmgrsaldeptnr 7839KingPresident BlakeManager MartinSalesman JamesClerk emp dept 1 n n 1 Einleitung XML Schema Xpath XSLT Zusammenfassung

12 © 2001 Sven Dammann12 XML Schema: Bsp Definiert Elemente (Markups) ‚name‘ entspricht dem Tag-Namen des XML-Dokumentes Angabe von Minimal-und Maximal- grenzen möglich Definiert den Inhalt zwischen dem Start- und End-Tag complexType kann als Inhalt weitere Elemente enthalten Definition von eigenen SimpleTypes möglich Definiert eine Folge von Elementen Reihenfolge ist zwingend Andere Möglicjkeit: choice (Auswahl) oder group (Gruppe) Definiert die Attribute des übergeordneten Elementes,name‘ entspricht dem Attribut-Namen im XML-Dokument Zwingende Angabe eines Datentyps Definiert einen Primärschlüssel ‚Name‘ „selector“ definiert den Pfad im XML- Dokument wo der Schlüssel liegt „field“ legt den Knoten fest, der der Schlüssel ist Einleitung XML Schema Xpath XSLT Zusammenfassung Definiert einen Fremdschlüssel ‚Name‘ „refer“ gibt den zu referenzierenden Schlüssel an „selector“ und „field“ legt die Position des Knotens fest, dessen Wert zu überprüfen ist

13 © 2001 Sven Dammann13 XML– Datei: personal.xml Einleitung XML Schema Xpath XSLT Zusammenfassung

14 © 2001 Sven Dammann14 Referentielle Integrität Einleitung XML Schema Xpath XSLT Zusammenfassung

15 © 2001 Sven Dammann15 XML-Schema: Simple Types Vorteile durch Definition eigener Datentypen Einschränkung mittels Regulären Ausdrücken Im Beispiel: Alle Werte 999-XX (drei Ziffern gefolgt von „-“ und zwei Großbuchstaben Einleitung XML Schema Xpath XSLT Zusammenfassung

16 © 2001 Sven Dammann16 XML-Schema: warum? Anwendung 1 10 Accounting New York King President Anwendung 2 DB Einleitung XML Schema Xpath XSLT Zusammenfassung

17 © 2001 Sven Dammann17 Selektion und Projektion mit XPath Einleitung XML Schema Xpath XSLT Zusammenfassung

18 © 2001 Sven Dammann18 Datenbankoperationen: XSL XSL XPathXSLTXSL-FO XSL - eXtensible Stylesheet Language Transformation bestehender Quelldokumente Xpath - XML Path Language Selektion von Teilen des XML-Quelldokumentes XSLT - XSL Transformation Teil zur Transformation des Quelldokumentes XSL-FO - XSL Formatting Objects Informationen zur Darstellung Einleitung XML Schema Xpath XSLT Zusammenfassung

19 © 2001 Sven Dammann19 Xpath: Pfad Ausdrücke Pfad Ausdrücke Selektion von Resultats-Knoten- mengen aus dem Quell-XML-Baum Pfad kann aus mehreren Bausteinen bestehen Bausteine durch „/“ getrennt Pfadbaustein (Grundgerüst): achse::knoten-test[prädikate] Achse Gibt Baumbeziehungen zwischen zu selektierenden Knoten und Kontextknoten an Einleitung XML Schema Xpath XSLT Zusammenfassung Knoten-Test Gibt Knotentyp und Namen der zu selektierenden Knoten an Prädikate Weitere Verfeinerung der selektierten Knotenmenge optional

20 © 2001 Sven Dammann20 Xpath: Baumbeziehungen Child Alle direkten Kinder eines Kontextknotens Child Alle direkten Kinder eines Kontextknotens Syntax: child::Elementname Beispiel: alle Kinder eines Knotens, die „Blatt4“ heißen child::Blatt4 verkürzt: Blatt4 Syntax: child::Elementname Beispiel: alle Kinder eines Knotens, die „Blatt4“ heißen child::Blatt4 verkürzt: Blatt4 Parent Das Elternelement des Kontextknoten Parent Das Elternelement des Kontextknoten Syntax: parent::Elementname Beispiel: das Elternelement eines Kontextknoten, daß „Wurzel“ heißt parent::Wurzel verkürzt: parent::node() =.. Syntax: parent::Elementname Beispiel: das Elternelement eines Kontextknoten, daß „Wurzel“ heißt parent::Wurzel verkürzt: parent::node() =.. Ancestor Alle Vorfahren des Kontextknoten Ancestor Alle Vorfahren des Kontextknoten Syntax: ancestor::Elementname Beispiel: alle Vorfahren eines Kontextknotens ancestor::* Syntax: ancestor::Elementname Beispiel: alle Vorfahren eines Kontextknotens ancestor::* Descedant Alle Abkömmlinge eines Kontextknoten Descedant Alle Abkömmlinge eines Kontextknoten Syntax: descendant::Elementname Beispiel: alle Nachfahren eines Kontextknotens, die „Ebene3“ heißen descendant::Ebene3 Syntax: descendant::Elementname Beispiel: alle Nachfahren eines Kontextknotens, die „Ebene3“ heißen descendant::Ebene3 Einleitung XML Schema Xpath XSLT Zusammenfassung Preceding Alle K. die im Doku- ment vor dem Kontext- knoten kommen Preceding Alle K. die im Doku- ment vor dem Kontext- knoten kommen Syntax: preceding::Elementname Beispiel: alle einem Kontextknoten vorangegangenen Elemente „Blatt2“ preceding::Blatt2 Syntax: preceding::Elementname Beispiel: alle einem Kontextknoten vorangegangenen Elemente „Blatt2“ preceding::Blatt2 Following Alle auf den Kontext- knoten folgenden Elem. Following Alle auf den Kontext- knoten folgenden Elem. Syntax: following::Elementname Beispiel: alle folgenden Elemente „Blatt1“ eines Kontextknoten following::Blatt1 Syntax: following::Elementname Beispiel: alle folgenden Elemente „Blatt1“ eines Kontextknoten following::Blatt1 Preceding-Sibling Alle folgenden Brüder des Kontextknoten Preceding-Sibling Alle folgenden Brüder des Kontextknoten Syntax: preceding-sibling::Elementname Beispiel: alle vorherigen Brüder „Ebene3“ eines Kontextknotens preceding-sibling::Ebene3 Syntax: preceding-sibling::Elementname Beispiel: alle vorherigen Brüder „Ebene3“ eines Kontextknotens preceding-sibling::Ebene3 Following-Sibling Alle folgenden Brüder des Kontextknoten Following-Sibling Alle folgenden Brüder des Kontextknoten Syntax: following-sibling::Elementname Beispiel: alle folgenden Brüder die „Blatt3“ heißen following-sibling::Blatt3 Syntax: following-sibling::Elementname Beispiel: alle folgenden Brüder die „Blatt3“ heißen following-sibling::Blatt3 Self Aktueller Knoten (Kontextknoten) selbst Self Aktueller Knoten (Kontextknoten) selbst Syntax: self::node() Beispiel: Auswahl des Knotens „Ebene1“ child::Ebene1/self::node() verkürzt: Ebene1/. Syntax: self::node() Beispiel: Auswahl des Knotens „Ebene1“ child::Ebene1/self::node() verkürzt: Ebene1/. Ancestor-or-Self Kontextknoten & alle seine Vorfahren Ancestor-or-Self Kontextknoten & alle seine Vorfahren Syntax: ancestor-or-self::Elementname Beispiel: alle Vorfahren eines Kontext-Elementes inkl. dem Element selbst ancestor-or-self::* Syntax: ancestor-or-self::Elementname Beispiel: alle Vorfahren eines Kontext-Elementes inkl. dem Element selbst ancestor-or-self::* Descendant-or-Self Kontextknoten & alle Abkömmlinge Descendant-or-Self Kontextknoten & alle Abkömmlinge Syntax: descendant-or-self::Elementname Beispiel: alle Elemente „Blatt1“ des Dokuments descendant-or-self::Blatt1 verkürzt: //Blatt1 Syntax: descendant-or-self::Elementname Beispiel: alle Elemente „Blatt1“ des Dokuments descendant-or-self::Blatt1 verkürzt: //Blatt1

21 © 2001 Sven Dammann21 child::CCC Ergebnis Node-Set: ( ; ) Xpath: Ablauf AAA DDDBBBCCC BBBEEEBBB DDDEEE GGGBBB DDDBBBCCC /child::BBB BBB /child::EEE DDDEEE DDDBBB AAA -Knoten des Baumes -Mögliche Knoten -Treffer descendant-or-self::BBB Node-Set: ( ; ; ; ) CCC BBB DDDEEE CCC/BBB/EEE DDDBBB EEE CCC BBB DDDEEE GGGBBB AAA //BBB Einleitung XML Schema Xpath XSLT Zusammenfassung BBB

22 © 2001 Sven Dammann22 Xpath: Selektion & Projektion mit Prädikaten descendant-or-self::emp[attribute::sal < 2850]/attribute::ename Ergebnis Knoten-Set: (Martin ; James) Schritt 1: Wähle alle „emp“-Knoten deren Inhalt ihres „sal“-Attributs kleiner als 2850 ist Schritt 2: Wähle von diesen „emp“-Knoten das Attribut „ename“ Wie heißen die Mitarbeiter mit einem Gehalt kleiner 2850? sal < ename Relationale Algebra:  ename (  sal < 2850 (emp)) Einleitung XML Schema Xpath XSLT Zusammenfassung

23 © 2001 Sven Dammann23 Xpath: Weitere Funktionen Xpath bietet umfangreiche Funktionsbibliothek Meist Verwendung in Prädikaten Allgemeine Funktionen number last(): entspricht Größe des Kontexts (das letzte Element) number position(): gibt die Kontext-Position an number count(node set): Anzahl der Knoten in der Argumentmenge String-Funktionen number string-length(string?): liefert Länge des Strings boolean starts-with(string, string): true, wenn 1. Argument mit 2. Argument beginnt boolean contains(string, string): true, wenn 1. Argument das 2.Argument beinhaltet Boolsche-Funktionen boolean boolean(object): Konvertierung unterschiedlicher Objekttypen nach boolean boolean not(boolean): Negierung des angegebenen Wertes boolean true(): liefert true Zahlen-Funktionen number number(object?): Konvertierung des angegebenen Objekts nach number number sum(node-set): Aufsummierung von Argument-Knoten des Typs number Einleitung XML Schema Xpath XSLT Zusammenfassung

24 © 2001 Sven Dammann24 Transformation mit XSLT Einleitung XML Schema Xpath XSLT Zusammenfassung

25 © 2001 Sven Dammann25 XSLT: Aufbau XSLT-Dokument: Aufbau

26 © 2001 Sven Dammann26 XSLT: Templates XSLT: Template Grundgerüst...Definition von Regeln... Templates geben an, wie ein bestimmter Knotentyp zu transformieren ist innerhalb des Templates weitere Templates aufrufbar  Rekursionen abbildbar Einleitung XML Schema Xpath XSLT Zusammenfassung

27 © 2001 Sven Dammann27 XSLT: Beispiel Personal-Relation DeptNo Dname Loc --- Einleitung XML Schema Xpath XSLT Zusammenfassung

28 © 2001 Sven Dammann28 Xpath und XSLT XML Parser XML Parser XML Parser XML Parser Quell- Dokument XML Quell- Dokument XML XSLT Style- sheet (XML) XSLT Style- sheet (XML) Ausgabe HTML File... Ausgabe HTML File... Ablauf einer Transformation XSLT Prozessor XSLT Prozessor XPath Prozessor XPath Prozessor Quelldokument (DOM- Repräsentation) Stylesheet (DOM- Repräsentation) ( ),,,, Node-Sets Selektion XSLT- Anweisungen (Literal, Result Elements) Erzeugen von Knoten Ergebnis (DOM- Repräsentation) Einleitung XML Schema Xpath XSLT Zusammenfassung

29 © 2001 Sven Dammann29 Personal-Relation DeptNo Dname Loc --- Transformation am Beispiel XMLXSLT & XPathHTML Pers... border="1"> DeptNo Dname Loc 10 Accounting New York 20 Research Dallas 30 Sales Chicago Einleitung XML Schema Xpath XSLT Zusammenfassung

30 © 2001 Sven Dammann30 Vergleich: SQL - XSL Gemeinsamkeiten: –Anfragemöglichkeiten Wenige, einfache Anfragemöglichkeiten Erweiterung durch arithm. Funktionen und Vergleichsoperatoren –Deskriptive Sprachen Beschreiben nur Ergebnis der Transformation, nicht den Algorithmus –Abgeschlossenheit Ausgabe kann als Eingabe für weitere Transformationen dienen Unterschiede: –Manipulation der Daten XSL: um bestehendes Dokument zu verändern muß es durch neues ersetzt werden  hoher Aufwand bei kleinen Änderungen SQL: bietet neben SELECT weiter Operationen um Daten schnell zu ändern Einleitung XML Schema Xpath XSLT Zusammenfassung

31 © 2001 Sven Dammann31 Zusammenfassung: Abbildung relationaler Strukturen mit XML sehr einfach Integration unterschiedlicher Dokumente durch Festlegen eines einheitlichen Schemas (XML-Schema) Selektion und Projektion mit Xpath und XSLT Einleitung XML Schema Xpath XSLT Zusammenfassung


Herunterladen ppt "© 2001 Sven Dammann1 Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung Sven Dammann Martin-Luther-Universität Halle-Wittenberg."

Ähnliche Präsentationen


Google-Anzeigen