Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

XML Schema. © Prof. T. Kudraß, HTWK Leipzig Die 3 Strömungen von XML XML Schema Dokumenten- verarbeitung Datenbanken und Datenaustausch Semistrukturierte.

Ähnliche Präsentationen


Präsentation zum Thema: "XML Schema. © Prof. T. Kudraß, HTWK Leipzig Die 3 Strömungen von XML XML Schema Dokumenten- verarbeitung Datenbanken und Datenaustausch Semistrukturierte."—  Präsentation transkript:

1 XML Schema

2 © Prof. T. Kudraß, HTWK Leipzig Die 3 Strömungen von XML XML Schema Dokumenten- verarbeitung Datenbanken und Datenaustausch Semistrukturierte Daten und Informationsintegration gemischte Inhalte Grammatikorientierung Typisierung von Elementinhalten Schemainformation mit den Mitteln des Datenmodells ausdrücken Integritätsbedingungen (Schlüssel) flexible Zuordnung von Schemata Strukturvariationen

3 © Prof. T. Kudraß, HTWK Leipzig Einführung XML Schema Vielzahl von Schemasprachen erforderte Standardisierung unterstützt dokumenten- und datenorientierte Modellierung Typkonzept objektorientierte Konzepte (Vererbungsmechanismen) XML Schema Recommendation des W3C – Teil 2: Datentypdefinitionen – Teil 1: Spezifikation anderer Schemastrukturen – Teil 0: Primer mit Erläuterung für Teil 1 und 2

4 © Prof. T. Kudraß, HTWK Leipzig Überblick über XML Schema Wiederverwendung Schemadokumentation Modularisierung, Erweiterung Konsistenz Eindeutigkeit Schlüssel, Fremdschlüssel Struktur komplexe Datentypen Kardinalitäten, Elementdeklarationen Datentypen einfache Datentypen

5 © Prof. T. Kudraß, HTWK Leipzig Vordefi- nierte Typen in XML Schema

6 © Prof. T. Kudraß, HTWK Leipzig Typkonzept einfacher Typ (simple type) – beinhaltet weder Attribute noch Kindelemente – für Attributwerte und Inhalte mit textuellem Inhalt komplexer Typ (complex type) – Menge von Attributdeklarationen und Inhaltsmodell – Inhaltsmodell kann Kindelemente beinhalten, textuellen Inhalt zulassen oder eine Mischung vorsehen (mixed content) Komponenten eines einfachen Typs – Wertebereich (value space) – Repräsentationsraum (lexical space) mehrere Repräsentationen eines Wertes (z.B. bei Gleitkommazahlen, Datum) – Menge von Aspekten (facets)

7 © Prof. T. Kudraß, HTWK Leipzig Aspekte von Datentypen Fundamentale Aspekte: Ordnung eines Datentypes (voll, partiell, nicht) Kardinalität Numerisch? Beschränkende Aspekte des Wertebereichs: enumeration: Vorgabe einer Menge von Werten Längenbeschränkung für Zeichenketten: minLength, maxLength, length direkte Unter-/Obergrenze für geordneten Wertebereich: maxInclusive, maxExclusive, minExclusive, minInclusive Beschränkung der Anzahl Ziffern und Nachkommastellen: totalDigits, fractionDigits

8 © Prof. T. Kudraß, HTWK Leipzig Aspekte von Datentypen (Forts.) Einschränkung des Repräsentationsraumes Pattern: Wertebereich für Zeichenketten mittels regulärem Ausdruck (vglb. Perl-Syntax) Abbildung bestimmter Repräsentationen von Zeichenketten auf Werte whiteSpace: Einfluß auf die Behandlung von Leerräumen (preserve, replace, collapse)

9 © Prof. T. Kudraß, HTWK Leipzig Erzeugung von Datentypen aus den XML Schema vordefinierten Datentypen neue Datentypen erzeugen zwei Vererbungsmechanismen: – Einschränkung (restriction): Ableitung eines Typs aus einem Basistyp durch Angabe von beschränkenden Aspekten neuer Typ übernimmt Wertebereich und Repräsentationsraum, eingeschränkt durch die Aspekte – Erweiterung (extension): erzeugt immer einen komplexen Typ zwei Aggregationsmechanismen – Listenbildung (list) – Vereinigung (union): vereinigt Wertebereiche und Repräsentationsräume der einfachen Basistypen

10 © Prof. T. Kudraß, HTWK Leipzig Definition einfacher Typen (Beispiele) Liste von Telefonnummern

11 © Prof. T. Kudraß, HTWK Leipzig Weitere Beispiele Aufzählungsdatentyp

12 © Prof. T. Kudraß, HTWK Leipzig Definition komplexer Typen Einfacher Inhalt: Erweiterung oder Einschrän- kung eines Typs Beispiel: Beispiel-Element: 12345

13 © Prof. T. Kudraß, HTWK Leipzig Komplexer Inhalt Reihung (sequence): Liste von Elementen mit festgelegter Reihenfolge Konjunktion (all): alle aufgeführten Teile dürfen maximal einmal auftreten in beliebiger Reihenfolge, keine Verschachtelung möglich Auswahl (Disjunktion, choice): von den augeführten Elementen darf nur eines auftreten Kardinalitäten: minOccurs, maxOccurs mit numerischen Werten oder unbounded für beliebig oft, Standard: minOccurs=1, maxOccurs=1

14 © Prof. T. Kudraß, HTWK Leipzig Komplexer Inhalt - Beispiel <xs:element name= Vorname type=xs:string maxOccurs = unbounded /> Beispiel-Element Schmidt Otto Heinrich 1961-02-03

15 © Prof. T. Kudraß, HTWK Leipzig Leere Elemente und gemischter Inhalt Beispiel-Element

16 © Prof. T. Kudraß, HTWK Leipzig Einschränkung bei komplexem Inhalt Einschränkungen: in der erlaubten Anzahl (minOccurs / maxOccurs) Hinzufügen Default-Wert oder festen Wert Weglassen einer optionalen Komponente Ersetzen eines einfachen Typs durch eine Einschränkung dieses Typs

17 © Prof. T. Kudraß, HTWK Leipzig Erweiterung bei komplexem Inhalt Hinweise: Erweiterung um Attribute (z.B. Abteilungsnummer) und Elemente Anfügen neuer Elemente von hinten (z.B. Adresse) Attribut final in der Typdefinition – final = restriction weitere Einschränkung verboten – final = extension weitere Erweiterung verboten abstract = true keine direkte Verwendung des Typs möglich

18 © Prof. T. Kudraß, HTWK Leipzig Gruppen Modellgruppe Attributgruppe

19 © Prof. T. Kudraß, HTWK Leipzig Verwendung von Gruppen Referenzen auf die Gruppen (oder: Infos in Typ kopieren) Beispiel-Element Vergleichbar mit Parameter-Entities in DTD

20 © Prof. T. Kudraß, HTWK Leipzig Deklarationen globale Deklaration des Element-Namens Betrag lokale Definition des Elements Betrag bezieht sich auf global definiertes Element Betrag

21 © Prof. T. Kudraß, HTWK Leipzig Offene Schemata Aufbau mancher Dokumentteile nicht bekannt oder nicht relevant Anwendungsbeispiele – Einbettung von XHTML in XML – Austausch von XML-Dokumenten zwischen verschiedenen Firmen auf Basis eines gemeinsamen Schemas (mit möglichen Erweiterungen) Platzhalter (wildcards) – für Elemente: any – für Attribute: anyAttribute Namensraum kann vorgeschrieben werden Elementdeklarationen beachten? (processContents)

22 © Prof. T. Kudraß, HTWK Leipzig Offene Schemata - Beispiel <xs:any namespace=http://www.w3.org/1999/xhtml minOccurs=1 maxOccurs=unbound processContents=skip />

23 © Prof. T. Kudraß, HTWK Leipzig Eindeutigkeit von Werten Definition unabhängig vom Typ möglich entschieden durch typbezogene Gleichheit (z.B.: 3 gleich 3.0 bei Typ number, aber ungleich bei string) Definition für Element- oder Attributinhalte oder Kombinationen darauf – selector: Knotenmenge von Knoten unterhalb des deklarierten Elements – field: identifiziert relativ dazu genau einen Knoten unique vs. key (vgl. SQL) Beispiel: <xs:element name=Angestellte type=Personalien minOccurs=1 maxOccurs=unbound />

24 © Prof. T. Kudraß, HTWK Leipzig Referenzbeziehungen Analogie zur Primär-/Fremdschlüsselbeziehung im Relationenmodell – beschränkt auf eine Instanz! Referenzmechanismus über key/keyref Besonderheiten gegenüber ID/IDREF (DTD) – Attribute und Elemente (bzw. Kombinationen daraus) als Schlüssel möglich (bei ID nur Attribute) – Schlüsseleigenschaft zusätzlich zum Datentyp (ID Ersatz für Datentyp) – getypte Referenzen – Eindeutigkeit für key und unique auf Elementtypen beschränkt (bei ID dokumentweit)

25 © Prof. T. Kudraß, HTWK Leipzig Referenzbeziehungen - Beispiel <xs:element name=Mitarbeiter minOccurs=2 maxOccurs=unbounded> <xs:attribute name=PersNr type=xs:positiveInteger use=required /> alle Angestellten, die in einem Projekt mitarbeiten, müssen auch in der entsprechenden Abteilung vorkommen

26 © Prof. T. Kudraß, HTWK Leipzig Defizite bei Referenzbeziehungen keyref berücksichtigt nicht einzelne Elemente einer Liste (list), d.h. mit einem Wert in keyref kann man nicht ein einzelnes Element einer Liste, die im key steht, referenzieren Vorgängerachsen im XPath-Ausdruck von field nicht zugelassen kein Verweis möglich mit hierarchischem Schlüssel (d.h. Anteile über mehrere Element verteilt, die in hierarch. Beziehung stehen) – Beispiel: Eindeutigkeit der Spielernummer pro Verein gegeben kein key aus Vereinsname und Spielernummer möglich Ausdruck in field muss genau einen Wert liefern, keine Navigation nach oben keine instanzübergreifenden Integritätsbedingungen, z.B. Schlüsselbedingungen in einer Menge von XML-Dokumenten oder Referenzbeziehungen zwischen verschiedenen XML-Dokumenten

27 © Prof. T. Kudraß, HTWK Leipzig Namen und Namensräume Gültigkeitsbereich – einfache und komplexe Typen teilen sich Gültigkeitsbereich (symbol space) – Element kann heißen wie einfacher Typ Namensraum – Vokabular von XML Schema: http://www.w3.org/2001/XMLSchema – Präfix xs steht für diesen Namensraum – Elemente und Attribute eines Dokuments können zu höchstens einem Namensraum gehören (im targetNameSpace des umgebenden schema-Elements angegeben) – globale Elemente, Attribute und Definitionen gehören immer dem Namensraum des Schemas an – Namensraumzugehörigkeit auch für Unterelemente definierbar

28 © Prof. T. Kudraß, HTWK Leipzig Ableitung, Ersetzung Ableitung von Typen (Einschränkung, Erweiterung) möglich – Einschränken durch final – Aspekte fixieren: fixed=true Ersetzungsgruppen (substitution groups) globales Element kann Ersatz für anderes globales Element sein (Ersetzungsgruppenkopf, substitution group head) Motivation: ermöglicht Interoperabilität zwischen Schemata unterschiedlicher Herkunft mit demselben Inhalt

29 © Prof. T. Kudraß, HTWK Leipzig Ersetzungsgruppe (Beispiel) Beispiel-XML-Fragment validiert gegen Schema: Schmidt Otto 1960-10-12 </Personalien

30 © Prof. T. Kudraß, HTWK Leipzig Schema-Import Zusammensetzung aus mehreren Schemadokumenten möglich include-Element: Einfügen von Schemadokumenten mit Deklarationen zum selben Namensraum Umdefinition möglich (redefine) Schemadokumente aus anderem Namensraum über import einbindbar

31 © Prof. T. Kudraß, HTWK Leipzig Instanzbezogene Konzepte (xsi Attribut xsi:type – i. Allg. Typ eines Elements durch Deklaration im Schema bestimmt – Instanz mit einem bestimmten Typ definiert werden mittels xsi:type (kompatibel mit Typ lt. Schemadefinition – durch Erweiterung / Einschränkung) Attribut xsi:nil – Element ohne Inhalt (nillable=true) kann als gültig akzeptiert werden, wenn Attribut xsi:nil=true – Unterschiede zu NULL-Werten in Datenbanken: XML Schema unterscheidet nicht vorhandenes Element, Element mit (ggf. leerem) Inhalt und nil-Element (trotzdem keine dreiwertige Logik) xsi:schemaLocation und xsi:noNamespaceSchemaLocation – Identifikation des entsprechenden Schemas

32 © Prof. T. Kudraß, HTWK Leipzig Physisches Schema XML Schema = logisches Schema Anbindung physischer Informationen an Schemaelemente – entkoppelte Information: eigenes Dokument mit Namen aus der XML Schemadefinition (z.B. Abbildung XML auf Tabellen) – proprietäre Schemasprache, z.B. XDR-basierte Definitionssprache von XML Views in MS SQL Server – Schema Adjunct: separates Dokument, allg. Framework, Konsistenzwahrung möglich – Schemasprachenerweiterung 1. zusätzliche Attribute für spezifische Informationen (mit anderem Namensraum) – Beispiel Oracle (siehe später) 2. Hinzufügen von annotation-Elementen für Benutzerinformation (documentation) und für maschinell auswertbare Information (appInfo), Beispiele: SQL/XML und Tamino-Schemasprache

33 © Prof. T. Kudraß, HTWK Leipzig XML Schema - Zusammenfassung viele mächtige Modellierungskonzepte – umfangreiches Typsystem – lokale Definitionen möglich – Vererbungsmechanismus und Beschränklungen hohe Komplexität ist aber auch Nachteil (Kritik von James Clark, Tim Bray u.a.) zunehmende Verwendung in kommerziellen Produkten Schema nicht für Mengen von Dokumenten ausgelegt (z.B. Konsistenzbedingungen nur innerhalb einer Instanz) XML Schema durch ein XML Schema als Metaschema beschreibbar (Grundlage für Validierung)

34 © Prof. T. Kudraß, HTWK Leipzig Einige Defizite von XML Schema ungeordneter Inhalt nur schwer zu beschreiben keine Möglichkeit, gegenseitige Abhängigkeit zwischen Attributen auszudrücken Erweiterungen bei komplexen Typen nur am Ende möglich Validierung liefert zusätzliche Daten zum validierten XML- Dokument, z.B. Default-Werte unterschiedliches Verhalten von nichtvalidierenden Anwendungen da andere Daten erhalten Hinzufügen von Aspekten und Repräsentationen nicht vorgesehen XML Schema baut nicht auf Konzepten der Objektorientierung auf (keine wirkliche Vererbung, nur ähnliches Konzept)


Herunterladen ppt "XML Schema. © Prof. T. Kudraß, HTWK Leipzig Die 3 Strömungen von XML XML Schema Dokumenten- verarbeitung Datenbanken und Datenaustausch Semistrukturierte."

Ähnliche Präsentationen


Google-Anzeigen