XML und Datenbanken Kapitel 7 Modellierung Teil 1
XML und Datenbanken Kapitel 7: Modellierung, Teil 1 Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik meike@informatik. uni-rostock. de www. xml-und-datenbanken. de 1
n n Nachtrag zur merkwürdign Syntax von union: korrekt ist: <xs: simple. Type> <xs: union> <xs: simple. Type> <xs: restriction base="xs: string"/> </xs: simple. Type> <xs: restriction base="xs: date"/> </xs: simple. Type> </xs: union> </xs: simple. Type> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 2
n n nächster Nachtrag: folgende Facets können direkt bei den Elementdeklarationen definiert werden: – default – fixed – (id) – max. Occurs – min. Occurs – nillable – (ref) eingeklammert, weil keine facets, können aber als Attribute auftreten Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 3
Inhalt Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung Teil 1: n Einführung n Explizite Schemadefinition – Vorteile eines expliziten Schemas – Methoden zur Darstellung von Schemata • DTDs, XML Schema Teil 2: n konzeptuelle Modellierung – Vorteile einer Modellierung – Methoden zur konzeptuellen Modellierung n n n Ableitung von Schemainformationen aus XML-Dokumenten Metriken Weiterführende Literatur Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 4
Vorteile einer expliziten Struktur Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n Explizitmachen der Struktur (für Anwendungen und Applikationen) n Erkennung und dadurch Vermeidung von Fehlern in den XML-Dokumenten Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 5
Schemata für XML-Dokumente Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n DTDs – (aus SGML, einfach, kompakt, gut lesbar, aber keine XML-Syntax) n XML Schema – (wesentlich mehr Darstellungsmöglichkeiten, Datentypen, exakte Kardinalitäten, . . . ) Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 6
Document Type Definitions /1 Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n n Deklaration von Elementen und Attributen Elementen können aus – einer Sequenz von Elementen (A, B), – einer Alternative von Elementen (A|B) – mit einer angegebenen Wiederholung (A? , A+, A*), möglich ist: Minimum 0 oder 1, Maximum 1 oder n – #PCDATA – mixed content (#PCDATA | B)* – Inhaltsmodell ANY oder EMPTY, sowie – beliebigen Kombinationen (Gruppierungen) aus den oberen Möglichkeiten n n bestehen. Den Elementen können Attribute zugeordnet sein. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 7
Document Type Definitions /2 Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung Attribute haben n einen Attributnamen, n eine Typangabe (CDATA, NMTOKENS, ID, IDREF, IDREFS, ENTITY oder eine Aufzählung), n eine Angabe, ob Attribute immer auftreten müssen oder optional sind (#REQUIRED, #IMPLIED, #FIXED) sowie n einen Defaultwert. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 8
XML Schema /1 Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n n n seit Mai 2001 als Empfehlung des W 3 C verabschiedet enthält drei Teile: – Einführung – Strukturen sowie – Datentypen XML Schema enthält wesentlich umfangreichere Darstellungsmöglichkeiten als DTDs. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 9
XML Schema /2 Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n n n vielfältige vordefinierte Datentypen, die Möglichkeit zur Definition eigener Datentypen, umfangreiche Darstellungsmöglichkeiten, die Möglichkeit, Integritätsbedingungen darzustellen, die Korrektheit der XML-Dokumente beschreiben, sowie XML-Syntax. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 10
XML Schema /3 Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n Enthält Definitionen und Deklarationen n Mit den Definitionen werden neue Typen (einfache oder komplexe) erzeugt, n Deklarationen beschreiben das Inhaltsmodell von Elementen und Attributen. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 11
Einschub: Namensräume Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung Namensräume in XML: n XML-Namensräume bieten eine einfache Möglichkeit, um n Element- und Attributnamen, die in "Extensible Markup Language"Dokumenten verwendet werden können, eindeutig zu benennen. n die Element- und Attributnamen werden mit Namensräumen verknüpft, die durch URI-Verweise identifiziert werden. Namensraum in XML-Schema: n jedes Element im Schema hat das Präfix xs: n ist assoziiert mit: xmlns: xs="http: //www. w 3. org/2001/XMLSchema" n dasselbe Präfix (also auch dieselbe Assoziation) steht bei den Namen der vordefinierten einfachen Typen, Beispiel: xs: string n Grund: – Namensraum wird den Elementen und einfachen Typen dem XML Schema-Vokabular zugeordnet – keine Zuordnung zum Vokabular des XML-Schema, das der Autor festlegt Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 12
Beispiel Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung <? xml version="1. 0" encoding="UTF-8"? > <xs: schema xmlns: xs="http: //www. w 3. org/2000/10/XMLSchema" element. Form. Default="qualified"> <xs: element name="anzahl" type="xs: int"/> <xs: simple. Type name="kategorie"> <xs: restriction base="xs: integer"> <xs: min. Inclusive value="1"/> <xs: max. Inclusive value="5"/> </xs: restriction> </xs: simple. Type> <xs: simple. Type name="hausnummer"> <xs: restriction base="xs: string"> <xs: pattern value="[1 -9][0 -9]+[a-z]? "/> </xs: restriction> </xs: simple. Type> … Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 13
Einfache Typen Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n Einfache Typdefinitionen können vordefiniert oder benutzerdefiniert sein. Eine Vielzahl von Standardtypen (string, boolean, float, integer, decimal, time, date, u. v. m. ) ist vordefiniert, vgl. Abbildung n Einfache Datentypen sind die Basis aller anderen Typen. n Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 14
Typhierarchie von XML Schema Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 15
Beispiele für die Definition einfacher Typen /1 Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n Definition einer Ortsangabe als String der Länge 30 <xs: simple. Type name="ort"> <xs: restriction base="xs: string"> <xs: length value="30"/> </xs: restriction> </xs: simple. Type> n Definition einer Angabe kategorie im Bereich zw. 1 und 5 <xs: simple. Type name="kategorie"> <xs: restriction base="xs: integer"> <xs: min. Inclusive value="1"/> <xs: max. Inclusive value="5"/> </xs: restriction> </xs: simple. Type> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 16
Beispiele für die Definition einfacher Typen /2 Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n Definition einer Hausnummer als Zahl, der ein Buchstabe folgen kann <xs: simple. Type name="hausnummer"> <xs: restriction base="xs: string"> <xs: pattern value="[1 -9][0 -9]*[a-z]? "/> </xs: restriction> </xs: simple. Type> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 17
Benutzerdefinierte Typen Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n n n basieren auf den vordefinierten Datentypen durch sogenannte facets werden Eigenschaften definiert, die Typen weiter einschränken facets definieren Eigenschaften über einem Datentyp, die ihn von anderen Datentypen unterscheiden. – lenght, min. Lenght, max. Length, – pattern, enumeration, – whitespace, sowie – min. Exclusive, max. Exclusive, min. Inclusive, max. Inclusive. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 18
Benutzerdefinierte Typen – Beispiel Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n Definition einer Adresse <xs: complex. Type name="Adresse"> <xs: complex. Content> <xs: restriction base="xs: any. Type"> <xs: sequence> <xs: element name="Ort" min. Occurs="1" max. Occurs="1" type="ort" /> <xs: element name="PLZ" min. Occurs="1" max. Occurs="1" type="xs: integer" /> <xs: element name= "Strasse" min. Occurs="1" max. Occurs="1" type= "xs: string"/> <xs: element name="Nr" min. Occurs="1" max. Occurs="1" type="hausnummer"/> </xs: sequence> </xs: restriction> </xs: complex. Content> </xs: complex. Type> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 19
Typhierarchien Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n n Es gibt zwei verschiedene Vererbungsstrategien Extension – Erweiterung eines bestehenden Typs <xs: complex. Type name="firmenadresse. Type"> <xs: extension base="adresse. Type"> <xs: sequence> <xs: element name=`tel_sekretariat´/> <xs: element name=`tel_chef´/> </xs: sequence> </xs: extension> </xs: Complex. Type> n Restriction – Einschränkung eines bestehenden Typs <xs: simple. Type name="hausnummer"> <xs: restriction base="xs: string"> <xs: pattern value="[1 -9][0 -9]*[a-z]? "/> </xs: restriction> </xs: simple. Type> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 20
Listen- und Vereinigungstypen Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n n List - Liste von durch Leerzeichen getrennten Elemente Beispiel: <xs: simple. Type name= ´Telefonnummern´> <xs: list item. Type=´Telefonnummer´/> </xs: simple. Type> n n Union – Vereinigung von Wertebereichen Beispiel: <xs: simple. Type name="kontakt"> <xs: union member. Types="e-mail telefonnummer"> </xs: union> </xs: simple. Type> <xs: simple. Type name="e-mail">. . . </xs: simple. Type> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 21
Vereinigungstypen Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung <simple. Type name="my. Union. Type"> <union> <simple. Type> . . . </simple. Type> </union> </simple. Type> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 22
Attributdeklaration Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung Attributdeklarationen beinhalten n einen Namen, n einen (einfachen) Typ, (vordefiniert oder benutzerdefiniert) n eine Angabe, wie das Attribut verwendet wird (use), möglich sind die Werte optional, required und fixed n sowie einen optionalen Defaultwert (value). Wenn das Attribut use=´fixed´ gesetzt ist, so gibt der Defaultwert den Wert an, den das Attribut immer annimmt. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 23
Beispiel zur Attributdeklaration Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung <xs: attribute name="id" type="xs: ID" use="required"/> <xs: attribute name="url" type="xs: string" use="required"/> <xs: attribute name="creation-time" type="xs: string" use="optional"/> <xs: attribute name="autor" type="xs: string" use="required"/> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 24
Deklaration von Attributgruppen Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung Attributgruppen sind bei mehrfacher Verwendung der gleichen Attribute sinnvoll. Beispiel: <xs: attribute. Group name="preis_attribute"> <xs: attribute name="waehrung" type="xs: string" use="required"/> <xs: attribute name="betrag" type="preis" use="required"/> </xs: attribute. Group> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 25
Elementdeklaration Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung Elementdeklarationen enthalten n n einen Namen (name) oder eine Referenz (ref) auf eine andere Elementdeklaration sowie einen Typ (type) Es können Default- und Fixed-Werte (default, fixed) angegeben werden sowie die Häufigkeit des Auftretens eines Elementes (min. Occurs, max. Occurs) definiert werden. Weiterhin kann durch nilable definiert werden, dass das Element leer sein kann. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 26
Beispiele zur Elementdeklaration /1 Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung // Deklaration eines Hotelnamens <xs: element name="Hotelname" type="xs: string"/> // Deklaration einer (optional auftretenden) Kategorie <xs: element name="Kategorie" min. Occurs="0" max. Occurs="1" type="kategorie"/> // Deklaration einer Adresse als Verweis auf eine andere Elementdeklaration <xs: element ref="Adresse"/> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 27
Beispiel zur Elementdeklaration /2 Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung <xs: element name="Hotel"> <xs: complex. Type> <xs: sequence> … <xs: element ref="Telefon" min. Occurs="1" max. Occurs="3"/> </xs: sequence> </xs: complex. Type> </xs: element> <xs: element name="Telefon"> <xs: complex. Type> <xs: sequence> <xs: element name="Vorwahl" min. Occurs="0" max. Occurs="1" type="xs: string"/> <xs: element name="Rufnummer" min. Occurs="1" max. Occurs="1" type="xs: string"/> </xs: sequence> </xs: complex. Type> </xs: element> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 28
Inhaltsmodelle- Gruppierungen Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n Mögliche Gruppierungen: – sequence (ähnlich DTDs) – choice (ähnlich DTDs) – all • alle Elemente dürfen in beliebiger Reihenfolge auftreten • darf keine anderen Gruppen enthalten • der Wert für max. Occurs darf für die darin enthaltenen Elemente nicht größer als 1 werden Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 29
Gruppierung, Beispiele /1 Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung <xs: element name="Telefon"> <xs: complex. Type> <xs: sequence> <xs: element name="Vorwahl" min. Occurs="0" max. Occurs="1" type="xs: string"/> <xs: element name="Rufnummer" min. Occurs="1" max. Occurs="1" type="xs: string"/> </xs: sequence> </xs: complex. Type> </xs: element> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 30
Gruppierung, Beispiele /2 Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung <xs: complex. Type name="adresse. Type"> <xs: sequence> <xs: element ref="plz"/> <xs: element ref="ort"/> <xs: choice> <xs: sequence> <xs: element ref="strasse"/> <xs: element ref="nummer"/> </xs: sequence> <xs: element ref="postfach"/> </xs: choice> <xs: element ref="telefon"/> <xs: element ref="fax" min. Occurs="0"/> </xs: sequence> </xs: complex. Type> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 31
Definition von „Integritätsbedingungen“ Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung definiert Bedingungen, die in den XML-Dokumenten erfüllt sein müssen. Möglich sind: n Eindeutigkeitsbedingung (unique) n Schlüssel (key) n sowie Referenzen auf Schlüssel (keyref). Die Definition der Elemente und Attribute, auf die eine Integritätsbedingung angewendet werden soll, erfolgt über einen XPath-Ausdruck. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 32
Beispiele Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung <xs: key name="Hotel_key"> <xs: selector xpath="/Hotelinformationen/Hotel"/> <xs: field xpath="@Hotelnummer"/> </xs: key> <xs: keyref name="Hotelverzeichnis_keyref" refer="Hotel_key“> <xs: selector xpath="/Hotelverzeichnis/Ort/Hotels"/> <xs: field xpath="@Hotelnummer"/> </xs: keyref> n n selector gibt eine Knotenmenge an, die eindeutig sein soll. Mit field wird relativ dazu angegeben, auf welchem Elementwert oder Attribut die Eindeutigkeit getestet werden soll. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 33
Definition globaler Typen Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung Typdefinitionen können global erfolgen. n zugeordneter Bezeichner existiert n Typdefinitionen können mehrfach verwendet werden. Typen können auch die Basis für andere Typdefinitionen sein. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 34
Beispiel für globale Deklarationen Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung <xs: element name="adresse"> <xs: complex. Type> <xs: all> <xs: element ref="ort"/> <xs: element ref="plz" min. Occurs="0"/> <xs: element ref="strasse"/> <xs: element ref="hausnummer"/> </xs: all> </xs: complex. Type> </xs: element> <xs: element name="hausnummer" type="xs: integer"/> <xs: element name="ort" type="xs: string"/> <xs: element name="plz" type="xs: integer"/> <xs: element name="strasse" type="xs: string"/> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 35
Definition lokaler Typen Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung Typdefinitionen können lokal erfolgen. n n zugeordneter Bezeichner existiert nicht Definitionen sind dementsprechend nicht mehrfach verwendbar. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 36
Beispiel zur Definition lokaler Typen Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung <xs: element name="adresse"> <xs: complex. Type> <xs: all> <xs: element name="plz"> <xs: simple. Type> <xs: restriction base="xs: integer"> <xs: length value="5"/> </xs: restriction> </xs: simple. Type> </xs: element> <xs: element name="ort" type="xs: string"/> <xs: element name="strasse" type="xs: string"/> <xs: element name="hausnummer"> <xs: simple. Type name="hausnummer“> <xs: restriction base="xs: string"> <xs: pattern value="[1 -9][0 -9]+[a-z]? "/> </xs: restriction> </xs: simple. Type> </xs: element> </xs: all> </xs: complex. Type> </xs: element> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 37
Modellierungsstile Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung Typdefinitionen und Deklarationen können global oder lokal erfolgen. globale Definitionen und Deklarationen: n zugeordneter Bezeichner existiert n mehrfache Verwendung möglich n Typen können auch die Basis für andere Typdefinitionen sein. lokale Definitionen und Deklarationen: n zugeordneter Bezeichner existiert nicht n Definitionen sind dementsprechend nicht mehrfach verwendbar. Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 38
Russian Doll (Matrjoschka) Design Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung . . . <xs: element name="hotel"> <xs: complex. Type> <xs: sequence> <xs: element name="hotelname" type="xs: string"/> <xs: element name="kategorie" min. Occurs="0"> <xs: simple. Type> <xs: restriction base="xs: integer"> <xs: min. Inclusive value="1"/> <xs: max. Inclusive value="5"/> </xs: restriction> </xs: simple. Type> </xs: element> <xs: element name="adresse"> <xs: complex. Type> <xs: sequence> <xs: element name="plz"> <xs: simple. Type> <xs: restriction base="xs: integer"> <xs: length value="5"/> </xs: restriction> </xs: simple. Type>. . . Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 39
Salami Slice Design Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung . . . <xs: element name="hotelname" type="xs: string"/>. . . <xs: element name="ort" type="xs: string"/> <xs: element name="strasse" type="xs: string"/>. . . <xs: element name="adresse"> <xs: complex. Type> <xs: sequence> <xs: element ref="plz"/> <xs: element ref="ort"/> <xs: element ref="strasse"/> <xs: element ref="hausnummer"/> </xs: sequence> </xs: complex. Type> </xs: element>. . . Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 40
Venetian Blind Design Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung . . . <xs: simple. Type name="hotelname"> <xs: restriction base="xs: string"/> </xs: simple. Type> . . . <xs: simple. Type name="plz"> <xs: restriction base="xs: integer"> <xs: length value="5"/> </xs: restriction> </xs: simple. Type> <xs: simple. Type name="ort"> <xs: restriction base="xs: string"/> </xs: simple. Type> . . . <xs: complex. Type name="adresse"> <xs: sequence> <xs: element name="plz" type="plz"/> <xs: element name="ort" type="ort"/> <xs: element name="strasse" type="strasse"/> <xs: element name="hausnummer" type="hausnummer"/> </xs: sequence> . . . Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 41
Eigenschaften der Modellierungsstile Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n n n Matrjoschka-Design – Alle Typdefinitionen und alle Deklarationen erfolgen lokal (tief geschachtelt) – Wiederverwendung nicht möglich Salami Slice – Global Element- und Attributdeklarationen – Verwendung dieser durch ref – Wiederverwendung möglich Venetian Blind – Alle Informationen werden in globalen Typdefinitionen festgelegt – Diese Typen können die Basis für weitere Typen sein – Aus Sicht der Wiederverwendung beste Methode Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 42
Verwendung von Elementen oder Attributen (DTD) Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung Elemente Attribute n #REQUIRED/ n Quantoren 1/? /+/* n Alternativen n keine Defaultwerte n keine Aufzählungstypen n geeignet für komplexere Informationen n Einsatz für Darstellung von Daten Meike Klettke Universität Rostock #IMPLIED n keine Alternativen n Defaultwerte n Aufzählungstypen n geeignet für strukturierte und wenig detaillierte Informationen n Einsatz für Darstellung von Metadaten Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 43
Verwendung von Elementen oder Attributen (XML Schema) Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung Elemente Attribute n required, implied n minoccurs, maxoccurs n keine Alternativen n Defaultwerte mgl. n Aufzählungstypen mgl. n geeignet für komplexere strukturierte und wenig detaillierte Informationen n Einsatz für Darstellung von Metadaten Informationen n Einsatz für Darstellung von Daten Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 44
Modularer Entwurf /1 Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n n n Schemata lassen sich zusammensetzen include/import- Mechanismus Beispiel: <xs: include schema. Location="telephone_bill. xs"/> <xs: element name="customer"> Im XML-Schema <xs: complex. Type> telephone_bill. xs definiert <xs: sequence> <xs: element name="name" type="xs: string"/> <xs: element name="first_name" type="xs: string"/> <xs: element name="telephone_calls" type="toll_type"/> </xs: sequence> </xs: complex. Type> </xs: element> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 45
Modularer Entwurf /2 Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n n Einige Anpassungen sind mit redefine möglich, z. B. – Ergänzen von Elementen und Attributen – Einschränken des Wertebereiches (durch facets) Beispiel: <xs: redefine schema. Location="telephone_bill. xs"> <xs: complex. Type name="toll_type"> <xs: complex. Content> <xs: extension base="toll_type"> <xs: sequence> <xs: element name="tax" type="xs: decimal"/> </xs: sequence> </xs: extension> </xs: complex. Content> </xs: complex. Type> </xs: redefine> Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 46
Zusammenfassung Einleitung DTDs XML-Schema - Typen - Attribute - Elemente - Modellierungsstile Zusammenfassung n Nach der Einführung der Methoden zur Schemadarstellung folgen in der nächsten Vorlesung die Methoden zur konzeptuellen Modellierung Meike Klettke Universität Rostock Vorlesung “XML und Datenbanken” 4) Generieren von XML-Dokumenten aus Datenbanken 47
- Slides: 47