Aufbau Integrierter Informationssysteme XML Bearbeitung und relationale Abbildung • Sven Dammann • Martin-Luther-Universität Halle-Wittenberg Hauptseminar - Halle - 6. Februar 2002 © 2001 Sven Dammann 1 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 © 2001 Sven Dammann 2 XML und Datenbanken: Möglichkeiten Middleware XML-Enabled Databases •Software zum Transferieren von Daten zwischen •Datenbanken mit Erweiterungen, um Daten Native XML Databases XML-Dokumenten und Datenbanken zwischen XML-Dokumenten und diesen Daten•Datenbanken, die XML-Dokumente in ihrer XML-Server banken zuForm transferieren „nativen“ speichern (Erhalt der Struktur des •Plattformen, die Daten in Form von XML-DokuXMLDokuments) Application Server XMLmenten an verteilte Anwendungen senden und von Content Management Systems (e-commerce, diesen Anwendungen empfangen •Web Applikationen Server, die XML an Browser •Systeme zum Speichern, Wiederfinden und B2B-Applikationen) verschicken Zusammenstellen von Dokumenten aus Dokumentfragmenten Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 3 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 © 2001 Sven Dammann Xpath XSLT Zusammenfassung 4 XML-Dokument: Aufbau XML-Dokument: Aufbau <?xml version=„1.0“?> <beispiel xmlns:xsi=... <!DOCTYPE beispiel SYSTEM xsi:noName "beispiel.dtd"> <beispiel> spaceSchemaLocation=„beispiel.xsd"> ...untergeordnete Elemente </beispiel> <beispiel></beispiel> identisch mit <beispiel/> Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 5 XML: Baumstruktur <Wurzel> <Ebene1> <Blatt1/> <Blatt1/> <Ebene2> <Ebene3> <Blatt4/> </Ebene3> <Blatt3/> <Ebene3> <Blatt4/> <Ebene4> <Blatt5/> <Blatt5/> </Ebene4> <Blatt4/> <Blatt4/> <Ebene4> <Blatt5/> <Blatt5/> </Ebene4> </Ebene3> <Blatt3/> <Ebene3> <Blatt4/> </Ebene3> </Ebene2> <Blatt1/> <Blatt1/> </Ebene1> </Wurzel> Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 6 DTD: Beispiel <Wurzel> <Ebene1> <Blatt1/> <Blatt1/> <Ebene2> <Ebene3> <Blatt4/> </Ebene3> <Blatt3/> <Ebene3> <Blatt4/> <Ebene4> <Blatt5/> <Blatt5/> </Ebene4> <Blatt4/> <Blatt4/> <Ebene4> <Blatt5/> <Blatt5/> </Ebene4> </Ebene3> <Blatt3/> <Ebene3> <Blatt4/> </Ebene3> </Ebene2> <Blatt1/> <Blatt1/> </Ebene1> </Wurzel> <?xml version="1.0" encoding="UTF-8"?> <!ELEMENT Blatt1 (#PCDATA)> <!ELEMENT Blatt3 (#PCDATA)> <!ELEMENT Blatt4 (#PCDATA)> <!ELEMENT Blatt5 (#PCDATA)> <!ELEMENT Ebene1 (#PCDATA | Blatt1 | Ebene2)*> <!ELEMENT Ebene2 (#PCDATA | Blatt3 | Ebene3)*> <!ELEMENT Ebene3 (#PCDATA | Blatt4 | Ebene4)*> <!ELEMENT Ebene4 (#PCDATA | Blatt5)*> <!ELEMENT Wurzel (#PCDATA | Ebene1)*> <?xml version="1.0" encoding="UTF-8"?> <!ELEMENT Blatt1 EMPTY> <!ELEMENT Blatt3 EMPTY> <!ELEMENT Blatt4 EMPTY> <!ELEMENT Blatt5 EMPTY> <!ELEMENT Ebene1 (Blatt1 | Ebene2)+> <!ELEMENT Ebene2 (Ebene3 | Blatt3)+> <!ELEMENT Ebene3 (Blatt4 | Ebene4)+> <!ELEMENT Ebene4 (Blatt5+)> <!ELEMENT Wurzel (Ebene1)> Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 7 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 © 2001 Sven Dammann Xpath XSLT Zusammenfassung 8 XML Schema Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 9 XML-Schema: Aufbau XML-Schema: Aufbau <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> ...Definition von Elementen ... </xs:schema> Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 10 Beispieldatenbank: Company emp n n 1 empno ename job 7839 King President 7698 Blake Manager 7654 Martin 7900 James mgr sal deptnr 5000 10 7839 2850 30 Salesman 7698 1250 30 Clerk 7698 950 20 1 Einleitung dept deptno dname loc 10 Accounting New York 20 Research Dallas 30 Sales Chicago XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 11 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="company"> <xs:complexType> <xs:sequence> <xs:element name="dept" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="deptno" type="xs:double"/> <xs:attribute name="dname" type="xs:string"/> <xs:attribute name="loc" type="xs:string"/> </xs:complexType> <xs:key name="dept_deptno"> <xs:selector xpath="company/dept"/> <xs:field xpath="@deptno"/> </xs:key> </xs:element> <xs:element name="emp" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="empno" type="xs:double"/> <xs:attribute name="ename" type="xs:string"/> <xs:attribute name="job" type="xs:string"/> <xs:attribute name="mgr" type="xs:double"/> <xs:attribute name="sal" type="xs:double"/> <xs:attribute name="deptnr" type="xs:double"/> </xs:complexType> <xs:keyref name="emp_deptnr" refer="dept_deptno"> <xs:selector xpath="company/emp"/> <xs:field xpath="@deptnr"/> </xs:keyref> <xs:key name="emp_empno"> <xs:selector xpath="company/emp"/> <xs:field xpath="@empno"/> </xs:key> <xs:keyref name="emp_mgr" refer="emp_empno"> <xs:selector xpath="company/emp"/> <xs:field xpath="@mgr"/> </xs:keyref> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> Einleitung XML Schema © 2001 Sven Dammann Xpath XML Schema: Bsp <xs:element name=„...“> •Definiert Elemente (Markups) <xs:complexType> •‚name‘ entspricht dem Tag-Namen des •Definiert den Inhalt zwischen dem <xs:sequence> XML-Dokumentes Start- undvon End-Tag •Angabe Minimal-und Maximal<xs:attribute name=„...“ type=„...“> •Definiert eine Folge vonInhalt Elementen •complexType kann als weitere grenzen möglich •Reihenfolge ist zwingend Elemente enthalten •Definiert die Attribute des <xs:key name=„...“> •Andere Möglicjkeit: choice (Auswahl) •Definition von eigenen SimpleTypes übergeordneten Elementes oder group (Gruppe) •Definiert einen Primärschlüssel ‚Name‘ <xs:keyref name=„...“ refer=„...“> •,name‘ möglich entspricht dem Attribut-Namen •„selector“ definiert den Pfad im XMLim XML-Dokument •Definiert einender Fremdschlüssel Dokument Schlüssel liegt‚Name‘ •Zwingendewo Angabe eines Datentyps •„refer“ gibt den den Knoten zu referenzierenden •„field“ legt fest, der der Schlüssel an Schlüssel ist •„selector“ und „field“ legt die Position des Knotens fest, dessen Wert zu überprüfen ist XSLT Zusammenfassung 12 XML–Datei: personal.xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="personal.xsl"?> <company xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="personal.xsd"> <dept deptno="10" dname="Accounting" loc="New York"/> <dept deptno="20" dname="Research" loc="Dallas"/> <dept deptno="30" dname="Sales" loc="Chicago"/> <emp empno="7839" ename="King" job="President" mgr="" sal="5000" deptnr="10"/> <emp empno="7698" ename="Blake" job="Manager" mgr="7839" sal="2850" deptnr="30"/> <emp empno="7654" ename="Martin" job="Salesman" mgr="7698" sal="1250" deptnr="30"/> <emp empno="7900" ename="James" job="Clerk" mgr="7698" sal= "950" deptnr="20"/> </company> Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 13 Referentielle Integrität <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="company"> <xs:complexType> <xs:sequence> <?xml version="1.0" encoding="UTF-8"?> <xs:element name="dept" minOccurs="0" maxOccurs="unbounded"> <?xml-stylesheet type="text/xsl" href="personal.xsl"?> <xs:complexType> <company xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <xs:attribute name="deptno" type="xs:double"/> xsi:noNamespaceSchemaLocation="personal.xsd"> <xs:attribute name="dname" type="xs:string"/> <xs:attribute name="loc" type="xs:string"/> <dept deptno="10" dname="Accounting" loc="New York"/> </xs:complexType> <dept deptno="20" dname="Research" loc="Dallas"/> <xs:key name="dept_deptno"> <dept deptno="30" dname="Sales" loc="Chicago"/> <xs:selector xpath="company/dept"/> <emp empno="7839" ename="King" job="President" mgr="" sal="5000" deptnr="10"/> <xs:field xpath="@deptno"/> <emp empno="7698" ename="Blake" job="Manager" mgr="7839" sal="2850" deptnr="30"/> </xs:key> <emp empno="7654" ename="Martin" job="Salesman" mgr="7698" sal="1250" deptnr="30"/> </xs:element> <emp empno="7900" ename="James" job="Clerk" mgr="7698" sal="950" deptnr="20"/> <xs:element name="emp" minOccurs="0" maxOccurs="unbounded"> </company> <xs:complexType> <xs:attribute name="empno" type="xs:double"/> <xs:attribute name="ename" type="xs:string"/> <xs:attribute name="job" type="xs:string"/> <xs:attribute name="mgr" type="xs:double"/> <xs:attribute name="sal" type="xs:double"/> <xs:attribute name="deptnr" type="xs:double"/> </xs:complexType> <xs:keyref name="emp_deptnr" refer="dept_deptno"> <xs:selector xpath="company/emp"/> <xs:field xpath="@deptnr"/> </xs:keyref> <xs:key name="emp_empno"> <xs:selector xpath="company/emp"/> <xs:field xpath="@empno"/> </xs:key> <xs:keyref name="emp_mgr" refer="emp_empno"> <xs:selector xpath="company/emp"/> <xs:field xpath="@mgr"/> </xs:keyref> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 14 XML-Schema: Simple Types • Vorteile durch Definition eigener Datentypen • Einschränkung mittels Regulären Ausdrücken <xsd:simpleType name="SKU"> <xsd:restriction base="xsd:string"> <xsd:pattern value="\d{3}-[A-Z]{2}"/> </xsd:restriction> </xsd:simpleType> • Im Beispiel: Alle Werte 999-XX (drei Ziffern gefolgt von „-“ und zwei Großbuchstaben Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 15 XML-Schema: warum? <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="personal.xsl"?> <company ...> <dept deptno="10" dname="Accounting" loc="New York"/> ... <emp empno="7839" ename="King" job="President" mgr="" sal="5000" deptnr="10"/> ... </company> <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="personal.xsl"?> <company ...> <dept> <deptno>10</deptno> <dname>Accounting</dname> <loc>New York</loc> </dept> ... <emp> <empno>7839</empno> <ename>King</ename> <job>President</job> <mgr></mgr> <sal>5000</sal> <deptnr>10</deptnr> </emp> ... </company> Anwendung 1 DB Anwendung 2 Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 16 Selektion und Projektion mit XPath Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 17 Datenbankoperationen: XSL XSL XPath XSLT XSL-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 © 2001 Sven Dammann Xpath XSLT Zusammenfassung 18 Xpath: Pfad Ausdrücke Pfadbaustein (Grundgerüst): achse::knoten-test[prädikate] Pfad Ausdrücke • Selektion von Resultats-Knotenmengen aus dem Quell-XML-Baum •Pfad kann aus mehreren Bausteinen bestehen •Bausteine durch „/“ getrennt Achse •Gibt Baumbeziehungen Knoten-Test zwischen zu selektierenden •Gibt Knotentyp und Namen Prädikate Knoten und Kontextknoten der zu selektierenden an •Weitere Verfeinerung der Knoten an selektierten Knotenmenge •optional Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 19 Xpath: Baumbeziehungen Descendant-or-Self Preceding-Sibling Following-Sibling Ancestor-or-Self Descedant Preceding Following Ancestor Parent Child Self •Kontextknoten •Das •Alle •Aktueller Abkömmlinge direkten Vorfahren K. auf folgenden Elternelement die den Knoten imKontextKinder Dokudes Brüder & alle des Kontextknoten eines Kontextknoten ment knoten des (Kontextknoten) Abkömmlinge seine Kontextknoten vor Kontextknotens Vorfahren folgenden dem Kontextselbst Elem. knoten kommen •Syntax •Beispiel Einleitung : following::Elementname following-sibling::Elementname child::Elementname parent::Elementname ancestor::Elementname descendant::Elementname preceding::Elementname preceding-sibling::Elementname self::node() ancestor-or-self::Elementname descendant-or-self::Elementname : alle das Auswahl Kinder Vorfahren Nachfahren einem folgenden Elternelement Elemente des Kontextknoten eines Knotens „Blatt1“ eines Elemente Brüder eines Knotens, eines Kontextknotens Kontext-Elementes die des Kontextknotens, „Ebene1“ „Blatt1“ Kontextknoten, „Blatt3“ vorangegangenen Dokuments die „Blatt4“ eines heißen Kontextknoten heißen die inkl. daß „Ebene3“ Elemente „Wurzel“ dem Element heißen heißt „Blatt2“ selbst vorherigen Brüder „Ebene3“ Kontextknotens ancestor::* descendant::Ebene3 preceding::Blatt2 following::Blatt1 following-sibling::Blatt3 preceding-sibling::Ebene3 ancestor-or-self::* child::Blatt4 parent::Wurzel child::Ebene1/self::node() descendant-or-self::Blatt1 verkürzt: verkürzt: Blatt4 parent::node() verkürzt: //Blatt1 Ebene1/. = .. XML Schema © 2001 Sven Dammann Xpath XSLT <Wurzel> <Ebene1> <Blatt1/> <Blatt1/> <Ebene2> <Ebene3> <Blatt4/> </Ebene3> <Blatt3/> <Ebene3> <Blatt4/> <Ebene4> <Blatt5/> <Blatt5/> </Ebene4> <Blatt4/> <Blatt4/> <Ebene4> <Blatt5/> <Blatt5/> </Ebene4> </Ebene3> <Blatt3/> <Ebene3> <Blatt4/> </Ebene3> </Ebene2> <Blatt1/> <Blatt1/> </Ebene1> </Wurzel> Zusammenfassung 20 Xpath: Ablauf AAA CCC/BBB/EEE child::CCC /child::BBB/child::EEE BBB CCC Ergebnis Node-Set: ( <EEE/> ; <EEE/> ) DDD //BBB descendant-or-self::BBB BBB EEE BBB Node-Set: DDD BBB EEE ( <BBB/>; <BBB>; <BBB/>; <BBB/>) EEE GGG -Knoten des Baumes -Mögliche Knoten -Treffer Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 21 Xpath: Selektion & Projektion mit Prädikaten Wie heißen die Mitarbeiter mit einem Gehalt kleiner 2850? • Relationale Algebra: ename (sal < 2850 (emp)) • 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“ descendant-or-self::emp[attribute::sal < 2850]/attribute::ename Ergebnis Knoten-Set: (Martin ; James) //emp[@sal &lt; 2850]/@ename Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 22 Xpath: Weitere Funktionen • Xpath bietet umfangreiche Funktionsbibliothek • Meist Verwendung in Prädikaten Allgemeine Funktionen String-Funktionen •number last(): entspricht Größe des Kontexts (das letzte Element) •number position(): gibt die Kontext-Position an Boolsche-Funktionen •numbercount(node string-length(string?): Längeindes •number set): Anzahl liefert der Knoten derStrings Argumentmenge •boolean starts-with(string, string): true, wenn 1. Argument mit 2. Argument Zahlen-Funktionen •boolean boolean(object): Konvertierung unterschiedlicher Objekttypen beginnt nach boolean •boolean contains(string, string): true, wenn 1.des Argument das 2.Argument •number number(object?): Konvertierung angegebenen Objekts nach •boolean not(boolean): Negierung des angegebenen Wertes beinhaltet numbertrue(): liefert true •boolean •number sum(node-set): Aufsummierung von Argument-Knoten des Typs number Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 23 Transformation mit XSLT Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 24 XSLT: Aufbau XSLT-Dokument: Aufbau <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www../1999/XSL/Transform> ...Definition von Templates ... </xsl:stylesheet> Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 25 XSLT: Templates XSLT: Template Grundgerüst <xsl:template match=„Xpath Ausdruck“> ...Definition von Regeln ... </xsl:template> • Templates geben an, wie ein bestimmter Knotentyp zu transformieren ist • innerhalb des Templates weitere Templates aufrufbar Rekursionen abbildbar Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 26 XSLT: Beispiel <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format"> <xsl:output method="html"/> <xsl:template match="/"> <html> <head> <title>Personal-Relation</title> </head> <body> <table border="1"> <tr> <th>DeptNo</th> <th>Dname</th> <th>Loc</th> </tr> <xsl:apply-templates/> </table> </body> </html> </xsl:template> <xsl:template match="//dept"> <tr> <xsl:for-each select="@*"> <td> <xsl:choose> <xsl:when test="string-length(.) = 0">---</xsl:when> <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise> </xsl:choose> </td> </xsl:for-each> </tr> </xsl:template > </xsl:stylesheet> Einleitung XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 27 Xpath und XSLT Ablauf einer Transformation Quelldokument Ergebnis Node-Sets (DOM(DOMRepräsentation) Repräsentation) QuellDokument XML XML Parser ( , , , , ) Ausgabe XPath HTML File ... Prozessor Selektion XSLT Prozessor XSLT Stylesheet XML Einleitung Stylesheet Erzeugen XSLT(DOMAnweisungen von Repräsentation) (Literal, Result Elements) Knoten Parser (XML) XML Schema © 2001 Sven Dammann Xpath XSLT Zusammenfassung 28 Transformation am Beispiel XML XSLT & XPath <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href=personal.xsl"?> <company> <dept deptno="10" dname="Accounting" loc="N..."/> <dept deptno="20" dname="Research" loc="Dallas"/> <dept deptno="30" dname="Sales" loc="Chicago"/> <emp .../> <emp .../> <emp .../> <emp .../> </company> Einleitung XML Schema © 2001 Sven Dammann <?xml version="1.0"?> <xsl:stylesheet> <xsl:output method="html"/> <xsl:template match="/"> <html> <head><title>Personal-Relation</title></head> <body> <table border="1"> <tr> <th>DeptNo</th> <th>Dname</th> <th>Loc</th> </tr> <xsl:for-each select="//dept"> <tr> <xsl:for-each select="@*"> <td> <xsl:choose> <xsl:when test="string-length(.) = 0">---</xsl:when> <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise> </xsl:choose> </td> </xsl:for-each> </tr> </xsl:for-each> </table> </body> </html> </xsl:template > </xsl:stylesheet> Xpath XSLT HTML <html> <head> <title>Pers...</title> </head> <body> <table> border="1"> <tr> <th>DeptNo</th> <th>Dname</th> <th>Loc</th> </tr> <tr> <td>10</td> <td>Accounting</td> <td>New York</td> </tr> <tr> <td>20</td> <td>Research</td> <td>Dallas</td> </tr> <tr> <td>30</td> <td>Sales</td> <td>Chicago</td> </tr> </table> </body> </html> Zusammenfassung 29 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 © 2001 Sven Dammann Xpath XSLT Zusammenfassung 30 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 © 2001 Sven Dammann Xpath XSLT Zusammenfassung 31