123456789101112 geoinformation3 1314151617181920 geoinformation iii ableitung uml xml schema...

28
1 2 3 4 5 6 7 8 9 10 11 12 Geoinformation 3 13 14 15 16 17 18 19 20 Geoinformation III Ableitung UML XML Schema Vorlesung 14

Upload: friedrich-koenig

Post on 06-Apr-2016

214 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 5 6 7 8 9 10 11 12Geoinformation3

13 14 15 16 17 18 19 20

Geoinformation III

Ableitung UML XML Schema

Vorlesung 14

Page 2: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6 12

UML XML

A 1x

M LU

Page 3: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6 12

UML XML

A 1x

M LU

Page 4: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6 12

UML XML

A 1x

M L

Page 5: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6 12

UML XML

A 1x

M LX

Page 6: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6 13

Von UML zu XML (I)

• Objektorientierte Modellierung von Systemen und Datenstrukturen erfolgt heutzutage zumeist mittels UML-Diagrammen (graphisch)

• Für den Datenaustausch oder die Speicherung der Anwendungsdateien ist die Verwendung von XML sinnvoll

• zugrundeliegendes Konzept: Model-driven architecture:• Modellierung in UML• automatische Ableitung von implementierungsspezifischen

Formalismen (Java, Tabellen einer relationalen Datenbank, XML, ...) aus UML

Probleme:• Keine 1:1-Abbildung von UML auf XML-Schema-Strukturen

– Abbildung von UML nach XML nicht eindeutig (mehrere Möglichkeiten)

– Festlegung auf Abbildungsvarianten sind sog. Entwurfsentscheidungen

Page 7: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6 13

Von UML zu XML (II)

• Gegeben: UML-Klassendiagramm• Gesucht: XML-Schema zu dem UML-Klassendiagramm• Konvertierung durch Regeln für:

• Klassen mit Stereotyp Enumeration oder CodeList• Klassen• Klassen mit Oberklasse (Vererbung)• Attribute von Klassen• Kompositionen• Assoziationen/Aggregationen

• Methoden werden in XML ignoriert

Page 8: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6 13

Von UML zu XML (III): Vereinfachungen

• im folgenden werden werden aus Gründen der Übersichtlichkeit folgende Konzepte von XML-Schema nicht berücksichtigt:• Namespaces. Der Namespace für Schema-Elemente ist z.B.

xs.

Page 9: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Konvertierung von Klassen mit Stereotyp Enumeration oder CodeList

<simpleType name="UMLKLASSENNAMEType><restriction base="string">

<enumeration value="wert_1" /><enumeration value="wert_2" />....<enumeration value="wert_n" />

</restriction> </simpleType>

<CodeList>UMLKLASSENNAME

+ wert_1+ wert_2

...+ wert_n

<CodeList>Dachform

+ Satteldach+ Walmdach+ Flachdach

+Krüppelwalmdach

Beispiel:

Page 10: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6 7

Konvertierung von Klassen

Klassenname+ Attribut1:String+ Attribut2:String

<complexType name="KlassennameTyp"> <sequence> <element name="Attribut1" type="string"/> <element name="Attribut2" type="string"/> </sequence> </complexType>

<element name="Klassename" type="KlassennameTyp"/>

• jede Klasse wird zu komplexem Typen (complexType)• Attribute der Klasse werden zu Kindelementen dieses

komplexen Typs, geklammert durch <sequence>• Zu jedem komplexen Typ (Klasse) muss Element erzeugt

werden

Page 11: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6 7

Konvertierung von Klassen mit Oberklasse

Oberklasse Attribut_Ober:String

UnterklasseAttribut_Unter:String

<complexType name="OberklasseTyp"> <sequence> <element name="Attribut_Ober" type="string"/> </sequence> </complexType>

<complexType name="UnterklasseTyp"> <complexContent> <extension base="OberklasseTyp" <sequence> <element name="Attribut_Unter" type="String"/> </sequence> </extension> </complexContent> </complexType>

<element name="Oberklasse" type="OberklasseTyp"/>

<element name="Unterklasse" type="UnterklasseTyp" substitutionGroup="Oberklasse"/>

Page 12: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Konvertierung von Klassen mit Oberklasse

• jede Klasse wird zu komplexem Typen (complexType)• Attribute der Klasse werden zu Kindelementen dieses

komplexen Typs• der komplexe Typ einer Unterklasse erhält einen complex

content und darin als extension base den Typ der Oberklasse.• Zu jedem komplexen Typ (Klasse) muss Element erzeugt

werden• Element der Unterklasse erhält eine substitution group mit

Element der Oberklasse – wegen Ersetzbarkeit von Elementen der Oberklasse durch Elemente

der Unterklasse

Page 13: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Vererbung: Beispiel-XML-Datei

Person name:String

Student

matrikelnr:String

<Person> <name>Schmitz</name> </Person>

<Student> <name>Schmitz</name> <matrikelnr>123456789</matrikelnr> </Student>

Page 14: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Mehrfachvererbung

• UML erlaubt Mehrfachvererbung (eine Klasse hat mehr als eine Oberklasse)

• XML Schema erlaubt Mehrfachvererbung nicht• Wenn Mehrfachvererbung in UML vorliegt:

– eine Vererbung auswählen und in XML Schema umsetzen– die andere(n) Vererbungsbeziehungen durch Kopieren von

Attributen/Elementen von Ober- zu Unterklasse realisieren– Ein Element kann mehrere substitution groups haben

Page 15: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Konvertierung von Attributen

<complexType name="PersonTyp"> <sequence> <element name="name" type="string"/> <element name="alter" type="integer"/> <element name="maennlich" type="boolean"/> <element name="groesse" type="decimal"/> <element name="adresse" type="AdressTyp"/> </sequence> </complexType>

<complexType name="AdressTyp"> <sequence> <element name="Strasse" type="string"/> <element name="hausnummer" type="string"/>

.............. </sequence> </complexType>

Person

+ name:CharacterStri

ng+ alter:integer+ maennlich:boolean+ groesse: real+ adresse:AdressTyp

Beispiel:

Page 16: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Konvertierung von Attributen• Attribute einer werden zu Kindelementen des Typs der

Klasse– geklammert durch <sequence>

• Ist Typ des Attributs ein einfacher Datentyp, so wird dieser ersetzt und zum Typ des Kindelements:– CharacterString -> string– Integer -> integer– Boolean -> boolean– Real -> decimal

• Ist Typ des Attributs eine Klasse, so – wird ein neuer Typ für diese Klasse erzeugt– und zum Typen des Kindelements– Alternative: anonymer Datentyp für Attribut...

Page 17: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Konvertierung von Attributen: Anonyme Typen

<complexType name="PersonTyp"> <sequence> <element name="name" type="string"/> <element name="alter" type="integer"/> <element name="maennlich" type="boolean"/> <element name="groesse" type="decimal"/> <element name="adresse">

<complexType> <sequence>

<element name="Strasse" type="string"/>

<element name="hausnummer" type="string"/> ..............

</sequence> </complexType> </element> </sequence> </complexType>

Person

+ name:CharacterStri

ng+ alter:integer+ maennlich:boolean+ groesse: real+ adresse:AdressTyp

Page 18: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Konvertierung von Assoziationen (Aggregationen, Kompositionen)

• Assoziationen in UML können ungerichtet (beidseitig) sein• Assoziationen in XML-Schema sind gerichtet

– Ersetzen der ungerichteten durch zwei gerichtete Assoziationen (falls beide notwendig, i. d. R. nur eine Richtung erforderlich)

Page 19: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Konvertierung von Kompositionen

• Komposition (vgl. GIS I): – Existenz des Teils hängt vom

Ganzen ab– jedes Teil gehört zu genau einem

Ganzen• Beispiel:

– Existenz der Linie hängt vom Polygon ab

– jede Linie gehört zu genau einem Polygon• eine Linie kann nicht von

zwei Polygonen benutzt werden (keine Topologie)

• zu einem Polygon können alle Linien aufgezählt werden (keine Verweise nötig)

Ganzes

Teil

3..*

Polygon

Linie

bestehtAusLinie

1

Beispiel:

Page 20: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Konvertierung von Kompositionen

<complexType name="LinieTyp">.......

</complexType>

<element name="Linie" type="LinieTyp"/>

<complexType name="PolygonTyp"><sequence><element name="bestehtAusLinie" type="LinienPropertyType" minOccurs="3" maxOccurs="unbounded"/></sequence>

</complexType>

<complexType name="LinienPropertyType">

<sequence><element ref="Linie"/></sequence>

</complexType>

Ganzes

Teil

3..*

Polygon

Linie

bestehtAusLinie

1

Beispiel:

Page 21: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Konvertierung von Kompositionen

• jede Klasse wird zu komplexem Typ (wie bisher)• Komposition wird zu komplexem Typ

– mit Bestandteil (z.B. Linie) mit als Kindelement

• Ganzes-Klasse erhält Kindelement vom Typ des Kompositions-Typen– Multiplizitäten beachten

(minOccurs/maxOccurs)

Ganzes

Teil

3..*

Polygon

Linie

bestehtAusLinie

1

Page 22: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Kompositionen: Beispiel XML-Datei

<Polygon><bestehtAusLinie><Linie>...</Linie></bestehtAusLinie><bestehtAusLinie><Linie>...</Linie></bestehtAusLinie><bestehtAusLinie><Linie>...</Linie></bestehtAusLinie>

</Polygon><Polygon>

<bestehtAusLinie><Linie>...</Linie></bestehtAusLinie><bestehtAusLinie><Linie>...</Linie></bestehtAusLinie><bestehtAusLinie><Linie>...</Linie></bestehtAusLinie>

</Polygon>

Ganzes

Teil

3..*

Polygon

Linie

bestehtAusLinie

1

Page 23: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Konvertierung von Aggregationen/Assoziationen

• Ein Teil/ein Assoziationspartner kann zu mehreren Ganzen/Partner gehören

• Beispiel:– eine Linie kann zu mehreren Polygonen

gehören (Topologie)– nicht möglich, zu einem Polygon alle Linien

explizit aufzuzählen• Verweise (Links) nötig

– Linien brauchen z.B. eine ID (um darauf zu verweisen)

– Assoziation bestehtAusLinien muss Verweise auf eine Linie (auf deren ID) verwalten können

– Konzept: XLink

Ganzes

Teil

3..*

Polygon

Linie

bestehtAusLinie

0..*

Beispiel:

Page 24: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Verwenden des XLink-Schemas für Verweise

• XLink/XPointer: Ergänzung zu XML Schema• Zweck: Verweise zwischen Elementen • Verwendet XML-Attribute

– für Identifier– für Verweise auf Elemente (Identifier), z.B. xlink:href="#Lin22"

• Verweise innerhalb einer Datei (xlink:href beginnt mit #)• auch Verweise auf Elemente in anderen Dateien möglich (wird

hier nicht behandelt)

Page 25: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Konvertierung von Aggregationen/Assoziationen

<complexType name="LinieTyp">.........<attribute name="id" type="ID"/>

</complexType>

<element name="Linie" type="LinieTyp"/>

<complexType name="PolygonTyp"><sequence><element name="bestehtAusLinie" type="LinienPropertyType" minOccurs="3" maxOccurs="unbounded"/></sequence>

</complexType>

<complexType name="LinienPropertyType">

<sequence><element ref="Linie"/></sequence><xs:attributeGroup ref="xlink:simpleLink"/>

</complexType>

Ganzes

Teil

3..*

Polygon

Linie

bestehtAusLinien

0..*

Beispiel:

Page 26: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Aggregation: Beispiel-XML-Datei<Polygon>

<bestehtAusLinie><Linie id="Lin21">...</Linie></bestehtAusLinie><bestehtAusLinie><Linie id="Lin22">...</Linie></bestehtAusLinie><bestehtAusLinie><Linie id="Lin26">...</Linie></bestehtAusLinie><bestehtAusLinie><Linie id="Lin28">...</Linie></bestehtAusLinie>

</Polygon><Polygon>

<bestehtAusLinie xlink:href="#Lin22"/><bestehtAusLinie xlink:href="#Lin26"/><bestehtAusLinie><Linie id="Lin30">...</Linie></bestehtAusLinie><bestehtAusLinie><Linie id="Lin34">...</Linie></bestehtAusLinie>...............

</Polygon>

Lin21 Lin28

Lin22Lin26

Lin30 Lin32

Lin34

Lin33

Page 27: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Multiplizitäten von Assoziationen• Multiplizitäten können mit minOccurs oder maxOccurs

angegeben werden• Elemente ohne minOccurs und maxOccurs dürfen genau einmal

vorkommen

<complexType name="PolygonTyp"><sequence>

<element name="bestehtAusLinie" type="LinienPropertyType"

minOccurs="3" maxOccurs="unbounded"/></sequence>

</complexType>

<complexType name="LinienPropertyType">

<sequence><element ref="Linie"/>

</sequence></complexType>

Ganzes

Teil

3..*

Polygon

Linie

bestehtAusLinien

Beispiel:

Page 28: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Ableitung UML  XML Schema Vorlesung 14

1 2 3 4 7 8 9 10 11 12 13 14 15 16 17 18 19 20Geoinformation3

5 6

Übungsaufgabe: XML-Schema für UML-Diagramm

1..*

Bauliche Anlage

Polygon

Gebäude+ eigentümer: Eigentümer[1..*]

benachbart

<Codelist>Gebäudefunktion

+Wohnen+ Gewerbe

+Mischgebiet+Verwaltung

Gebäudeteil+ funktion: Gebäudefunktion[1..*]+ baujahr:integer+ höhe: real

Eigentümer+ Name: CharacterString

+ Vorname:CharacterString+Alter:integer

1

1

1..*

0..*

0..*