1 XML und Datenbanken Kapitel 7: Modellierung, Teil 1 Meike Klettke Universität Rostock Fakultät...

Post on 05-Apr-2015

102 views 0 download

Transcript of 1 XML und Datenbanken Kapitel 7: Modellierung, Teil 1 Meike Klettke Universität Rostock Fakultät...

1

XML und DatenbankenKapitel 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

2Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Nachtrag zur merkwürdign Syntax von union: korrekt ist:

<xs:simpleType> <xs:union> <xs:simpleType>

<xs:restriction base="xs:string"/> </xs:simpleType> <xs:simpleType> <xs:restriction base="xs:date"/> </xs:simpleType> </xs:union> </xs:simpleType>

3Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

nächster Nachtrag: folgende Facets können direkt bei den

Elementdeklarationen definiert werden:– default– fixed– (id)– maxOccurs– minOccurs– nillable– (ref) eingeklammert, weil keine facets,

können aber als Attribute auftreten

4Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Inhalt

Teil 1: Einführung Explizite Schemadefinition

– Vorteile eines expliziten Schemas– Methoden zur Darstellung von Schemata

• DTDs, XML Schema

Teil 2: konzeptuelle Modellierung

– Vorteile einer Modellierung– Methoden zur konzeptuellen Modellierung

Ableitung von Schemainformationen aus XML-Dokumenten Metriken Weiterführende Literatur

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

5Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Vorteile einer expliziten Struktur

Explizitmachen der Struktur (für Anwendungen und Applikationen)

Erkennung und dadurch Vermeidung von Fehlern in den XML-Dokumenten

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

6Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Schemata für XML-Dokumente

DTDs– (aus SGML, einfach, kompakt, gut lesbar, aber keine

XML-Syntax)

XML Schema– (wesentlich mehr Darstellungsmöglichkeiten,

Datentypen, exakte Kardinalitäten, ...)

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

7Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Document Type Definitions /1

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 | A | B)* – Inhaltsmodell ANY oder EMPTY, sowie– beliebigen Kombinationen (Gruppierungen) aus den oberen

Möglichkeiten

bestehen. Den Elementen können Attribute zugeordnet sein.

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

8Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Document Type Definitions /2

Attribute haben einen Attributnamen, eine Typangabe (CDATA, NMTOKEN, NMTOKENS, ID,

IDREF, IDREFS, ENTITY oder eine Aufzählung), eine Angabe, ob Attribute immer auftreten müssen oder

optional sind (#REQUIRED, #IMPLIED, #FIXED) sowie einen Defaultwert.

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

9Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

XML Schema /1

seit Mai 2001 als Empfehlung des W3C verabschiedet enthält drei Teile:

– Einführung– Strukturen sowie– Datentypen

XML Schema enthält wesentlich umfangreichere Darstellungsmöglichkeiten als DTDs.

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

10Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

XML Schema /2

vielfältige vordefinierte Datentypen, die Möglichkeit zur Definition eigener Datentypen, umfangreiche Darstellungsmöglichkeiten, die Möglichkeit, Integritätsbedingungen darzustellen, die

die Korrektheit der XML-Dokumente beschreiben, sowie XML-Syntax.

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

11Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

XML Schema /3

Enthält Definitionen und Deklarationen

Mit den Definitionen werden neue Typen (einfache oder komplexe) erzeugt,

Deklarationen beschreiben das Inhaltsmodell von Elementen und Attributen.

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

12Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Einschub: Namensräume

Namensräume in XML: XML-Namensräume bieten eine einfache Möglichkeit, um Element- und Attributnamen, die in "Extensible Markup Language"-

Dokumenten verwendet werden können, eindeutig zu benennen. die Element- und Attributnamen werden mit Namensräumen verknüpft, die

durch URI-Verweise identifiziert werden.Namensraum in XML-Schema: jedes Element im Schema hat das Präfix xs: ist assoziiert mit: xmlns:xs="http://www.w3.org/2001/XMLSchema" dasselbe Präfix (also auch dieselbe Assoziation) steht bei den Namen der

vordefinierten einfachen Typen, Beispiel: xs:string Grund:

– Namensraum wird den Elementen und einfachen Typen dem XML Schema-Vokabular zugeordnet

– keine Zuordnung zum Vokabular des XML-Schema, das der Autor festlegt

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

13Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Beispiel

<?xml version="1.0" encoding="UTF-8"?><xs:schema xmlns:xs="http://www.w3.org/2000/10/XMLSchema"

elementFormDefault="qualified">

<xs:element name="anzahl" type="xs:int"/> <xs:simpleType name="kategorie"> <xs:restriction base="xs:integer"> <xs:minInclusive value="1"/> <xs:maxInclusive value="5"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="hausnummer"> <xs:restriction base="xs:string"> <xs:pattern value="[1-9][0-9]+[a-z]?"/> </xs:restriction> </xs:simpleType> …

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

14Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Einfache Typen

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

Einfache Datentypen sind die Basis aller anderen Typen. 

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

15Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Typhierarchie von XML Schema

anySimpleType

anyType

QName

NOTATION

anyURI

NMTOKEN

normalizedString

string

NMTOKENS

Namelanguage

NCName

ENTITY

ENTITIES

IDIDREF

IDREFS

token

duration

dateTime

time

date

gYear

gYearMonth

gMonth

gMonthDay

gDay

float

double

hexBinary

base64Binary

boolean

nonPositiveInteger

decimal

integer

long

int

short

byte

negativeInteger

unsignedLong

unsignedShort

unsignedByte

unsignedInt

nonNegativeInteger

positiveInteger

Subtypbildung mittels Restriktion

Liste von

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

16Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Beispiele für die Definition einfacher Typen /1

Definition einer Ortsangabe als String der Länge 30<xs:simpleType name="ort"> <xs:restriction base="xs:string"> <xs:length value="30"/> </xs:restriction>

</xs:simpleType>

Definition einer Angabe kategorie im Bereich zw. 1 und 5<xs:simpleType name="kategorie"> <xs:restriction base="xs:integer"> <xs:minInclusive value="1"/> <xs:maxInclusive value="5"/> </xs:restriction></xs:simpleType>

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

17Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Beispiele für die Definition einfacher Typen /2

Definition einer Hausnummer als Zahl, der ein Buchstabe folgen kann

<xs:simpleType name="hausnummer">

<xs:restriction base="xs:string">

<xs:pattern value="[1-9][0-9]*[a-z]?"/>

</xs:restriction>

</xs:simpleType>

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

18Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Benutzerdefinierte Typen

basieren auf den vordefinierten Datentypen durch sogenannte facets werden Eigenschaften definiert,

die die Typen weiter einschränken facets definieren Eigenschaften über einem Datentyp, die

ihn von anderen Datentypen unterscheiden.– lenght, minLenght, maxLength, – pattern, enumeration,– whitespace, sowie– minExclusive, maxExclusive, minInclusive,

maxInclusive.

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

19Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Benutzerdefinierte Typen – Beispiel

Definition einer Adresse<xs:complexType name="Adresse"> <xs:complexContent>

<xs:restriction base="xs:anyType"> <xs:sequence> <xs:element name="Ort" minOccurs="1" maxOccurs="1" type="ort" /> <xs:element name="PLZ" minOccurs="1" maxOccurs="1" type="xs:integer" /> <xs:element name= "Strasse" minOccurs="1" maxOccurs="1" type= "xs:string"/> <xs:element name="Nr" minOccurs="1" maxOccurs="1" type="hausnummer"/> </xs:sequence> </xs:restriction></xs:complexContent>

</xs:complexType>

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

20Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Typhierarchien

Es gibt zwei verschiedene Vererbungsstrategien Extension – Erweiterung eines bestehenden Typs

<xs:complexType name="firmenadresseType"> <xs:extension base="adresseType"> <xs:sequence> <xs:element name=`tel_sekretariat´/>

<xs:element name=`tel_chef´/> </xs:sequence>

</xs:extension> </xs:ComplexType>

Restriction – Einschränkung eines bestehenden Typs<xs:simpleType name="hausnummer">

<xs:restriction base="xs:string"> <xs:pattern value="[1-9][0-9]*[a-z]?"/> </xs:restriction>

</xs:simpleType>

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

21Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Listen- und Vereinigungstypen

List - Liste von durch Leerzeichen getrennten Elemente Beispiel:

<xs:simpleType name= ´Telefonnummern´><xs:list itemType=´Telefonnummer´/>

</xs:simpleType> Union – Vereinigung von Wertebereichen Beispiel: <xs:simpleType name="kontakt">

<xs:union memberTypes="e-mail telefonnummer"></xs:union>

</xs:simpleType>

<xs:simpleType name="e-mail">...

</xs:simpleType>

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

22Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Vereinigungstypen

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

<simpleType name="myUnionType">

<union>

<simpleType>

...

</simpleType>

<simpleType>

...

</simpleType>

</union>

</simpleType>

23Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Attributdeklaration

Attributdeklarationen beinhalten einen Namen, einen (einfachen) Typ,

(vordefiniert oder benutzerdefiniert) eine Angabe, wie das Attribut verwendet wird (use),

möglich sind die Werte optional, required und fixed sowie einen optionalen Defaultwert (value). Wenn das

Attribut use=´fixed´ gesetzt ist, so gibt der Defaultwert den Wert an, den das Attribut immer annimmt.

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

24Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Beispiel zur Attributdeklaration

<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"/>

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

25Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Deklaration von Attributgruppen

Attributgruppen sind bei mehrfacher Verwendung der

gleichen Attribute sinnvoll.

 

Beispiel:  

 <xs:attributeGroup name="preis_attribute"> 

<xs:attribute name="waehrung" type="xs:string"  

use="required"/>

<xs:attribute name="betrag" type="preis"

use="required"/>

</xs:attributeGroup>

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

26Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Elementdeklaration

Elementdeklarationen enthalten

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 (minOccurs,

maxOccurs) definiert werden. Weiterhin kann durch nilable definiert werden, dass das

Element leer sein kann.

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

27Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Beispiele zur Elementdeklaration /1

// Deklaration eines Hotelnamens<xs:element name="Hotelname" type="xs:string"/>

 

// Deklaration einer (optional auftretenden) Kategorie<xs:element name="Kategorie" minOccurs="0"  

maxOccurs="1" type="kategorie"/>

// Deklaration einer Adresse als Verweis auf eine andere Elementdeklaration

<xs:element ref="Adresse"/>

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

28Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Beispiel zur Elementdeklaration /2

<xs:element name="Hotel"> <xs:complexType> <xs:sequence> … <xs:element ref="Telefon" minOccurs="1" maxOccurs="3"/> </xs:sequence> </xs:complexType></xs:element><xs:element name="Telefon"> <xs:complexType> <xs:sequence> <xs:element name="Vorwahl" minOccurs="0" maxOccurs="1" type="xs:string"/> <xs:element name="Rufnummer" minOccurs="1" maxOccurs="1" type="xs:string"/>  </xs:sequence> </xs:complexType></xs:element> 

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

29Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Inhaltsmodelle- Gruppierungen

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 maxOccurs darf für die darin

enthaltenen Elemente nicht größer als 1 werden

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

30Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Gruppierung, Beispiele /1

<xs:element name="Telefon">

<xs:complexType>

<xs:sequence>

<xs:element name="Vorwahl" minOccurs="0"

maxOccurs="1" type="xs:string"/>

<xs:element name="Rufnummer" minOccurs="1"

maxOccurs="1" type="xs:string"/> 

</xs:sequence>

</xs:complexType>

</xs:element> 

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

31Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Gruppierung, Beispiele /2

<xs:complexType name="adresseType"><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" minOccurs="0"/>

</xs:sequence></xs:complexType>

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

32Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Definition von „Integritätsbedingungen“

definiert Bedingungen, die in den XML-Dokumenten erfüllt

sein müssen.

Möglich sind:  Eindeutigkeitsbedingung (unique) Schlüssel (key) 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.

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

33Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Beispiele

<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>

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.

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

34Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Definition globaler Typen

Typdefinitionen können global erfolgen. zugeordneter Bezeichner existiert Typdefinitionen können mehrfach verwendet werden.

Typen können auch die Basis für andere Typdefinitionen sein.

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

35Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Beispiel für globale Deklarationen

<xs:element name="adresse">

<xs:complexType>

<xs:all>

<xs:element ref="ort"/>

<xs:element ref="plz" minOccurs="0"/>

<xs:element ref="strasse"/>

<xs:element ref="hausnummer"/>

</xs:all>

</xs:complexType>

</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"/>

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

36Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Definition lokaler Typen

Typdefinitionen können lokal erfolgen.

zugeordneter Bezeichner existiert nicht Definitionen sind dementsprechend nicht mehrfach

verwendbar.

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

37Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Beispiel zur Definition lokaler Typen<xs:element name="adresse"> <xs:complexType> <xs:all>  <xs:element name="plz"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:length value="5"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="ort" type="xs:string"/> <xs:element name="strasse" type="xs:string"/> <xs:element name="hausnummer"> <xs:simpleType name="hausnummer“> <xs:restriction base="xs:string"> <xs:pattern value="[1-9][0-9]+[a-z]?"/> </xs:restriction> </xs:simpleType>  </xs:element> </xs:all> </xs:complexType></xs:element>

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

38Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Modellierungsstile

Typdefinitionen und Deklarationen können global oder lokal

erfolgen.

globale Definitionen und Deklarationen: zugeordneter Bezeichner existiert mehrfache Verwendung möglich Typen können auch die Basis für andere Typdefinitionen

sein.

lokale Definitionen und Deklarationen: zugeordneter Bezeichner existiert nicht Definitionen sind dementsprechend nicht mehrfach

verwendbar.

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

39Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Russian Doll (Matrjoschka) Design... <xs:element name="hotel"> <xs:complexType> <xs:sequence> <xs:element name="hotelname" type="xs:string"/> <xs:element name="kategorie" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="1"/> <xs:maxInclusive value="5"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="adresse"> <xs:complexType> <xs:sequence> <xs:element name="plz"> <xs:simpleType> <xs:restriction base="xs:integer"> <xs:length value="5"/> </xs:restriction> </xs:simpleType>...

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

40Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Salami Slice Design

...

<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:complexType>

<xs:sequence>

<xs:element ref="plz"/>

<xs:element ref="ort"/>

<xs:element ref="strasse"/>

<xs:element ref="hausnummer"/>

</xs:sequence>

</xs:complexType>

</xs:element>

...

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

41Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Venetian Blind Design... <xs:simpleType name="hotelname"> <xs:restriction base="xs:string"/> </xs:simpleType> ...<xs:simpleType name="plz"> <xs:restriction base="xs:integer"> <xs:length value="5"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="ort"> <xs:restriction base="xs:string"/> </xs:simpleType> ... <xs:complexType 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> ...

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

42Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Eigenschaften der Modellierungsstile

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

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

43Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Verwendung von Elementen oder Attributen (DTD)

Elemente

Quantoren 1/?/+/*

Alternativen keine Defaultwerte keine Aufzählungstypen geeignet für komplexere Informationen

Einsatz für Darstellung von Daten

Attribute

#REQUIRED/ #IMPLIED keine Alternativen Defaultwerte Aufzählungstypen geeignet für strukturierte und wenig detaillierte Informationen Einsatz für Darstellung von Metadaten

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

44Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Verwendung von Elementen oder Attributen (XML Schema)

Elemente

minoccurs, maxoccurs Alternativen Defaultwerte mgl. Aufzählungstypen mgl. geeignet für komplexere Informationen

Einsatz für Darstellung von Daten

Attribute

required, implied keine Alternativen Defaultwerte Aufzählungstypen geeignet für strukturierte und wenig detaillierte Informationen Einsatz für Darstellung von Metadaten

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

45Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Modularer Entwurf /1

Schemata lassen sich zusammensetzen include/import- Mechanismus Beispiel:

<xs:include schemaLocation="telephone_bill.xs"/>

<xs:element name="customer">

<xs:complexType>

<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:complexType>

</xs:element>

Im XML-Schema telephone_bill.xs definiert

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

46Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Modularer Entwurf /2

Einige Anpassungen sind mit redefine möglich, z.B.– Ergänzen von Elementen und Attributen– Einschränken des Wertebereiches (durch facets)

Beispiel:<xs:redefine schemaLocation="telephone_bill.xs"> <xs:complexType name="toll_type"> <xs:complexContent> <xs:extension base="toll_type"> <xs:sequence> <xs:element name="tax" type="xs:decimal"/> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:redefine>

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung

47Meike Klettke

Universität Rostock

Vorlesung “XML und Datenbanken”

4) Generieren von XML-Dokumenten aus Datenbanken

Zusammenfassung

Nach der Einführung der Methoden zur Schemadarstellung folgen in der nächsten Vorlesung die Methoden zur konzeptuellen Modellierung

EinleitungDTDsXML-Schema- Typen- Attribute- Elemente- ModellierungsstileZusammenfassung