Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Ivon Heppe Geändert vor über 9 Jahren
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 <beispiel xmlns:xsi=... xsi:noName spaceSchemaLocation=„beispiel.xsd">...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 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">...Definition von Elementen... Einleitung XML Schema Xpath XSLT Zusammenfassung
11
© 2001 Sven Dammann11 Beispieldatenbank: Company deptnodnameloc 10AccountingNew York 20ResearchDallas 30SalesChicago empnoenamejobmgrsaldeptnr 7839KingPresident500010 7698BlakeManager7839285030 7654MartinSalesman7698125030 7900JamesClerk769895020 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 <company xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="personal.xsd"> 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... 7839 King President 5000 10... 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? //emp[ @ sal < 2850]/ @ 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 <xsl:stylesheet version="1.0" xmlns:xsl="http://www../1999/XSL/Transform>...Definition von Templates... Einleitung XML Schema Xpath XSLT Zusammenfassung
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
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.