Upload
herrick-stopher
View
102
Download
0
Embed Size (px)
Citation preview
1
XML und DatenbankenKapitel 7: Modellierung, Teil 1
Meike Klettke
Universität Rostock
Fakultät für Informatik und Elektrotechnik
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