Top Banner
XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover
21

XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

Apr 06, 2016

Download

Documents

Gudrun Feld
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML – Grundlagen und Anwendungen

Teil 4: Modellierung von Datenmodellen mit XML-Schema

Prof. Dr. Michael Löwe, FHDW Hannover

Page 2: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

2

MotivationInternet verändert sich

vom Hypertext (WWW) für den menschlichen Betrachterzur Informationsinfrastruktur für IT-Services (SOA).

Die Kommunikationsinhalte verändern sichvon Dokumenten (Texte mit Reihenfolge und Gliederung)zu Datenstrukturen (Daten, Objekte und Referenzen).

HTTP, HTML und XML sindweniger sichtbarer Selbstzweck undmehr Mittel zum Zweck im Hintergrund (RPC, etc.).

Abbildung der objektorientierten Modelle muss möglich sein.

Page 3: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

3

Kritik an DTDsNur Objekte keine TypenZu wenig Basistypen (kein string, integer etc.)Nur Komposition keine SpezialisierungNur globale Referenzen (ID, IDREF)Kein Konzept für NamensräumeSelbst nicht XML.

Page 4: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

4

InhaltXML-Schema verbessert DTDs durch:

Reichhaltige Basistypen Built-in‘sTrennung von Element und Typ KlassenDifferenzierte Schlüssel AssoziationenTyperweiterung SpezialisierungErsetzungsgruppen „Polymorphie“

Page 5: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

5

BasisdatentypendateTime

boolean

float

string

integer

byte

NMTOKENS

Page 6: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

6

Definition von BasistypenAufzählungLängenbeschränkungenWertbegrenzungen (untere / obere Schranken)White-Space-EliminierungReguläre AusdrückeVereinigungListen

Page 7: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

7

Klassen als Elemente<!ELEMENT Person EMPTY><!ATTLIST Person

name CDATA #REQUIREDvorname CDATA #REQUIREDgeburtstag CDATA #REQUIRED>

Komposition:<!ELEMENT LebensVersicherungsVertrag

(Person, Person, …) >

Spezialisierung<!ELEMENT Frau (Person)>

Personname: stringvorname: stringgeburtstag: date

Page 8: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

8

Klassen als Schema-Elemente<element name=„Person“>

<complexType><attribute name=„name“ type=„string“ use=„Required“/><attribute name=„vorname“ type=„string“ use=„Required“/><attribute name=„geburtstag“ type=„date“ use=„Required“/></complexType>

</element>

Komposition:<element name=„LebensVersicherungsVertrag“>

<complexType> <sequence> <element ref=„Person“>

<element ref=„Person“>….. </sequence></complexType>

</element>

Page 9: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

9

Klassen als Schema-Typen<element name=„Person“>

<complexType><attribute> name=„name“ type=„string“ use=„Required“/><attribute> name=„vorname“ type=„string“ use=„Required“/><attribute> name=„geburtstag“ type=„date“ use=„Required“/>

</complexType></element>Komposition:<element name=„LebensVersicherungsVertrag“>

<complexType> <sequence> <element ref=„Person“>

<element ref=„Person“>…..

</sequence></complexType>

</element>

<element name=„person“ type=„Person><complexType name=„Person“>

<attribute> name=„name“ type=„string“ use=„Required“/><attribute> name=„vorname“ type=„string“ use=„Required“/><attribute> name=„geburtstag“ type=„date“ use=„Required“/>

</complexType>

Komposition:<element name=„LebensVersicherungsVertrag“>

<complexType> <sequence> <element ref=„person“>

<element ref=„person“>…..

</sequence></complexType>

</element>

<complexType name=„Person“><attribute> name=„name“ type=„string“ use=„Required“/><attribute> name=„vorname“ type=„string“ use=„Required“/><attribute> name=„geburtstag“ type=„date“ use=„Required“/>

</complexType>

Komposition:<element name=„LebensVersicherungsVertrag“>

<complexType> <sequence> <element name=„versicherungsnehmer“ type=„Person“>

<element name=„versichertePerson“ type=„Person“>…..

</sequence></complexType>

</element>

LebenVertrag

Personname: stringvorname: stringgeburtstag: dateV

ersNehm

er Ver

sPer

son

Page 10: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

10

Komposition vs. Assoziation<complexType name=„Person“>

<attribute> name=„name“ type=„string“ use=„Required“/><attribute> name=„vorname“ type=„string“ use=„Required“/><attribute> name=„geburtstag“ type=„date“ use=„Required“/>

</complexType>

Komposition:<element name=„LebensVersicherungsVertrag“>

<complexType> <sequence> <element name=„versicherungsnehmer“ type=„Person“>

<element name=„versichertePerson“ type=„Person“>…..

</sequence></complexType>

</element>

LebenVertrag

Personname: stringvorname: stringgeburtstag: dateV

ersNehm

er Ver

sPer

son

<complexType name=„Person“><attribute> name=„id“ type=„ID“ use=„Required“/><attribute> name=„name“ type=„string“ use=„Required“/><attribute> name=„vorname“ type=„string“ use=„Required“/><attribute> name=„geburtstag“ type=„date“ use=„Required“/>

</complexType>

Assoziation:<element name=„LebensVersicherungsVertrag“> <complexType> <attribute> name=„versNehmer“ type=„IDREF“ use=„Required“/>

<attribute> name=„versPerson“ type=„IDREF“ use=„Required“/> </complexType></element>

<complexType name=„Person“><attribute> name=„id“ type=„int“ use=„Required“/>……

</complexType>

<complexType name=„LVVertrag“> <attribute> name=„versNehmer“ type=„int“ use=„Required“/> <attribute> name=„versPerson“ type=„int“ use=„Required“/></complexType>

<element name=„System“> <complexType> <choice maxOccurs=„unbounded“>

<element name=„person“ type=„Person“/> <element name=„vertrag“ type=„LVVertrag“/> </choice>

</complexType></element>

<complexType name=„Person“><attribute> name=„id“ type=„int“ use=„Required“/>……

</complexType>

<complexType name=„LVVertrag“> <attribute> name=„versNehmer“ type=„int“ use=„Required“/> <attribute> name=„versPerson“ type=„int“ use=„Required“/></complexType>

<element name=„System“> <complexType> <element name=„person“… </complexType> <key name=„personKey“> <selector xpath=„person“/> <field xpath=„@id“/> </key></element>

<complexType name=„Person“><attribute> name=„id“ type=„int“ use=„Required“/>

</complexType>

<complexType name=„LVVertrag“> <attribute> name=„versNehmer“ type=„int“ use=„Required“/> <attribute> name=„versPerson“ type=„int“ use=„Required“/></complexType>

<element name=„System“> <complexType> <element name=„vertrag“….</complexType> <key name=„personKey“>…..</key> <keyref name=„versNehmerRef“ refer=„personKey“> <selector xpath=„vertrag“/> <field xpath=„@versNehmer“/> </keyref></element>

Page 11: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

11

Typen und System<complexType name=„T1“> ….. </complexType><complexType name=„T2“> ….. </complexType> …..<complexType name=„System“>

<choice maxOccurrs=„unbounded“> <element name=„topElement“ type=„topT1“/> <element name=„topElement“ type=„topT2“/>…….</choice>

</complexType><element name=„system“ type=„System“>

<key name=„K1“….<key name=„K2“….<keyref name=„KR1“….<keyref name=„KR2“….

</element>

Page 12: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

12

Mengen-wertige Relationen<complexType name=„Person“>

<sequence> <element name=„vertrag“ minOccurs=„0“ maxOccurs=„unbounded“> <complexType> <attribute name=„ref“ type=„int“/> </complexType> </element> <element name=„adresse“ maxOccurs=„unbounded“>

….. </element> </sequence>

</complexType>

Page 13: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

13

Vererbung auf Typen<complexType name=„Adresse“ abstract=„true“>

<attribute name=„PLZ“ type=„string“/><attribute name=„ort“ type=„string“/>

</complexType>

<complexType name=„PostfachAdresse“><complexContent> <extension base=„Adresse“><attribute name=„postFachNr“ type=„int“/> </extension></complexContent>

</complexType>

<complexType name=„StrassenAdresse“> …..

Adresse

StrassenAdresse

PostfachAdresse

Page 14: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

14

Vererbung auf Elementen<complexType name=„Adresse“ abstract=„true“> ….</complexType>

<complexType name=„PostfachAdresse“><complexContent> <extension base=„Adresse“>….

</complexType>

<complexType name=„StrassenAdresse“><complexContent> <extension base=„Adresse“>….

</complexType>

<element name=„adresse“ type=„Adresse“ abstract=„true“/><element name=„pfAdresse“ type=„PostfachAdresse“ substitutionGroup=„adresse“/><element name=„stAdresse“ type=„StrassenAdresse“substitutionGroup=„adresse“/>

Adresse

StrassenAdresse

PostfachAdresse

Page 15: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

15

ÜberblickElementdefinition:<element name=„…“ type=„…“/>

Name eines öffentlichen Typs muss angegeben werden

<element name=„…“/><complexType>

Hier muss der private Typ definiert werden

</complexType></element>

Page 16: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

16

ÜberblickTypedefinition:<complexType …ggf. Namensangabe..>

<complexContent> <extension base=„…“> Inhaltsspezikation mit <sequence> und <choice>

Elemente in den Sequenzen und Auswahlen Kardinalität durch Attribute minOccurs und maxOccurs (Standardwert 1)

Attributeliste: <attribute name=„..“ type=„..“ use=„..“/> </extension></complexContent>

</complexType>

Page 17: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

17

ÜberblickSchlüsseldefinitionen am Ende von Elementen:

(Lokal zum Element, in dem die Definition steht)

<key name=„…“><selector xpath =„…“/><field xpath = „…“/>

</key><keyref name=„…“ refer=„Schlüsselname“>

<selector xpath =„…“/><field xpath = „…“/>

</keyref>

Page 18: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

18

Namensräume (Sketch)Im Schema definierte Objekte sind Namensräumen zugeordnet.

Konfliktlösung bei gleichen Elementnamen in verschiedenen SchemataZuordnung durch Attribut targetNamespace von Element schema

targetNamespace="http://xml.netbeans.org/examples/targetNS" Namen von Namensräumen sind URI‘s

<element name=„xxx“…/> definiert "http://xml.netbeans.org/examples/targetNS":xxxAbkürzung von Namensraumnamen durch Prefixvereinbarungen:

xmlns:ns = "http://xml.netbeans.org/examples/targetNS„Danach ns:xxx statt "http://xml.netbeans.org/examples/targetNS":xxx

Unsere Namensräume:Schemaobjekte: xmlns:xsd="http://www.w3.org/2001/XMLSchema„Typunterscheidung: xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance‚StyleSheet-Objekte: xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

Page 19: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

19

ZusammenfassungXML-Schema

ist XML-Dialekt,geht weit über DTD hinaus,vereinheitlicht Werte für Inhalte und Attributekann UML-Klassenmodelle 1:1 abbilden,verfügt über komfortable built-in-Datentypen,unterstützt die Wiederverwendung (Name Spaces),

ist erste Wahl zur Definition vom XML-Protokollen

Page 20: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

20

Übung 6Erweitern Sie das Schema für das Modell unten um:• Zusätzliches Attribut: Länderkennzeichen

• Bankverbindungen für Personen

• Juristische und Natürliche Personen

• Lieferungen von Strasse nach Strasse

Testen Sie Ihre Lösungen durch Erweiterung der Instanz!

Person Adresse

System

Postfach Strasse

** *

Page 21: XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.

XML Grundlagen und Anwendungen

21

Übung 7

Schreiben Sie ein Schema für Schemata!