Ableitung UML  XML Schema

Slides:



Advertisements
Ähnliche Präsentationen
der Universität Oldenburg
Advertisements

Die Definitionsphase -Objektorientierte Analyse - Das statische Modell
Kapitel 4 Datenstrukturen
FH-Hof Einbindung von JavaScript Anweisungen
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Java: Objektorientierte Programmierung
Java: Grundlagen der Objektorientierung
Interface bzw. Schnittstelle anschaulich: Hüllenklasse
Objektorientierte Konzepte und Notation in UML
XML-Schema HKI Proseminar Wintersemester 2010/11 Dozentin: Frau Kurz von Jan Kohl und Christian Lütticke.
Modularization of XHTML™
SQL/XML. © Prof. T. Kudraß, HTWK Leipzig 2 2 Motivation Speicherung von XML in allen großen kommerziellen DBMS vorhanden proprietäre Lösungen für die.
Übung Datenbanksysteme UML
Hauptseminar XML-Technologie: Resource Description Framework (RDF) Michael Kranz Betreuer: Roland Haratsch.
Software-Technik: (fortgeschrittene) Klassendiagramme
Geoinformation III Vorlesung 13b XML-Schema.
Vorlesung Geoinformation I WS 01/02 Musterlösung für die Klausur vom
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
RDF-Schema Seminar: „Semantic Web“ André Rosin,
RelationentheorieObjektorientierte Datenbanken AIFB SS Das ODMG-Objektmodell vs. relationales Modell (1/9) ODMG-Objektmodell Literal_type Atomic_literal.
Typhierarchien Hierarchische Abhängigkeit zwischen zwei Typen durch –Erweiterung (engl. extension) oder –Restriktion (engl. restriction) einer bestehenden.
Vorüberlegung Frühere Forderung: Möglichst alle im konzeptuellen Schema ausdrückbaren Sachverhalte sollen sich im logischen Schema wiederfinden. Forderung.
1 XML und Datenbanken Kapitel 7: Modellierung, Teil 1 Meike Klettke Universität Rostock Fakultät für Informatik und Elektrotechnik
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
Visualisierung objektrelationaler Datenbanken
XML Schema.
Entwurfs- und Implementationsdiagramme
Fortsetzung DTDs, UML  XML
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation I Vorlesung 12 WS 2000/2001 Gerhard Gröger Modellierung mit Geodatabases.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Objektorientierte Konzepte/UML Geoinformation I Vorlesung 2 WS 2000/2001.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 2 Folie 2 XAML (1) s.a.
Wohlgeformtheit und Gültigkeit Grundlagen der Datenmodellierung Anke Jackschina.
Software-Technik: (fortgeschrittene) Klassendiagramme
Datenbanksysteme für Hörer anderer Fachrichtungen
Kurzpräsentation von Herbert Schlechta
Objektorientierte Modellierung mit UML
Klassen und Klassenstruktur
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Java-Kurs - 7. Übung Besprechung der Hausaufgabe Referenzvariablen
Objekte und Literale ODMG-Objektmodell kennt zwei Arten von Datenelementen: Literale: Identität ist ausschließlich durch Wert gegeben. Nur maximal eine.
Hauptseminar Web-Services und verteilte Datenbanken Thema XML, DTDs und XML-Schema XML, DTDs und XML-Schema - Stefan Kurz, 25. April 2003.
Abbildung UML-Schema  Rel. Schema (1)
Geoinformation I Lutz Plümer
SS 2014 – IBB4C Datenmanagement Do 17:00 – 18:30 R Vorlesung #3 ER Modellierung.
Einführung in die Programmierung mit Java
Geoinformation3 Geoinformation III XML Grundlagen und Dokumentspezifikation Vorlesung 12b.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 8. Vorlesung WS 2002/2003.
Geoinformation3 Geoinformation III XML Grundlagen, Namensräume und Hyperlinks Vorlesung 12b.
Java-Kurs Übung Besprechung der Hausaufgabe
Geoinformation3 Geoinformation III XML-Schema Vorlesung 13a.
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Institut für Kartographie und Geoinformation Prof. Dr. L. Plümer, Dipl.-Ing. D. Dörschlag, Dr. G. Gröger Einführung in die Programmierung mit Java 13.
Modellierung der Wirklichkeit
Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003 Institut für Kartographie und Geoinformation Prof.-Dr. Lutz Plümer, Dr. Gerhard Gröger,
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger, Dipl.-Ing. Dirk Dörschlag Einführung in die Programmierung mit.
Software-Demo: CASE-Tool „Together“
Datenaustausch und Interoperabilität
XML – Grundlagen und Anwendungen Teil 4: Modellierung von Datenmodellen mit XML-Schema Prof. Dr. Michael Löwe, FHDW Hannover.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Proseminar Geoinformation II Werkzeuge (ArcCatalog, ArcMap, ArcToolbox) und Formate.
Modellierung und Schnittstelle zu UML Pro-Seminar GIS II WS 2004/2005 Christoph Römer.
Java-Kurs - 9. Übung Besprechung der Hausaufgabe
Sichtbarkeit einschränken
Erweiterte Zuweisungskompatibilität. Wie kann man Objekte verschiedener Klassen einer Klassenhierarchie einander zuweisen ?
Objektorientierte Datenbanken
Programmiersprachen II Fortsetzung Datenstrukturen Einfache Bäume Übung 13 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Fortsetzung DTDs, UML  XML
Java-Kurs - 8. Übung Klassen und Objekte: Vererbung
Gerhard Gröger Proseminar Geoinformation II WS 2003/2004
 Präsentation transkript:

Ableitung UML  XML Schema Geoinformation III Vorlesung 14 Ableitung UML  XML Schema

12 UML  XML U M L A 1x

12 UML  XML U M L A 1x

12 UML  XML M L A 1x

12 UML  XML X M L A 1x

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

Von UML zu XML (II) Gegeben: UML-Klassendiagramm 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

Von UML zu XML (III): Vereinfachungen 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.

Konvertierung von Klassen mit Stereotyp Enumeration oder CodeList UMLKLASSENNAME + wert_1 + wert_2 ... + wert_n <simpleType name="UMLKLASSENNAMEType> <restriction base="string"> <enumeration value="wert_1" /> <enumeration value="wert_2" /> .... <enumeration value="wert_n" /> </restriction> </simpleType> Beispiel: <CodeList> Dachform + Satteldach + Walmdach + Flachdach +Krüppelwalmdach

Konvertierung von Klassen 7 Konvertierung von Klassen <complexType name="KlassennameTyp"> <sequence> <element name="Attribut1" type="string"/> <element name="Attribut2" type="string"/> </sequence> </complexType> <element name="Klassename" type="KlassennameTyp"/> Klassenname + Attribut1:String + Attribut2:String 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

Konvertierung von Klassen mit Oberklasse 7 Konvertierung von Klassen mit Oberklasse <complexType name="OberklasseTyp"> <sequence> <element name="Attribut_Ober" type="string"/> </sequence> </complexType> <complexType name="UnterklasseTyp"> <complexContent> <extension base="OberklasseTyp" <element name="Attribut_Unter" type="String"/> </extension> </complexContent> <element name="Oberklasse" type="OberklasseTyp"/> <element name="Unterklasse" type="UnterklasseTyp" substitutionGroup="Oberklasse"/> Oberklasse Attribut_Ober:String Unterklasse Attribut_Unter:String

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

Vererbung: Beispiel-XML-Datei Person name:String <Person> <name>Schmitz</name> </Person> <Student> <matrikelnr>123456789</matrikelnr> </Student> Student matrikelnr:String

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

Konvertierung von Attributen Beispiel: <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"> <element name="Strasse" type="string"/> <element name="hausnummer" type="string"/> .............. Person + name:CharacterString + alter:integer + maennlich:boolean + groesse: real + adresse:AdressTyp

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

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> <element name="Strasse" type="string"/> <element name="hausnummer" type="string"/> .............. </sequence> </complexType> </element> Person + name:CharacterString + alter:integer + maennlich:boolean + groesse: real + adresse:AdressTyp

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)

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) Beispiel: Polygon Ganzes 1 besteht AusLinie 3..* Linie Teil

Konvertierung von Kompositionen Beispiel: <complexType name="LinieTyp"> ....... </complexType> <element name="Linie" type="LinieTyp"/> <complexType name="PolygonTyp"> <sequence> <element name="bestehtAusLinie" type="LinienPropertyType" minOccurs="3" maxOccurs="unbounded"/> </sequence> <complexType name="LinienPropertyType"> <element ref="Linie"/> Polygon Ganzes 1 besteht AusLinie 3..* Linie Teil

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) Polygon Ganzes 1 besteht AusLinie 3..* Linie Teil

Kompositionen: Beispiel XML-Datei <Polygon> <bestehtAusLinie> <Linie>...</Linie> </bestehtAusLinie> </Polygon> Polygon Ganzes 1 besteht AusLinie 3..* Linie Teil

Konvertierung von Aggregationen/Assoziationen Beispiel: 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 Polygon Ganzes 0..* besteht AusLinie 3..* Linie Teil

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)

Konvertierung von Aggregationen/Assoziationen Beispiel: <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 name="LinienPropertyType"> <element ref="Linie"/> <xs:attributeGroup ref="xlink:simpleLink"/> Polygon Ganzes 0..* besteht AusLinien 3..* Linie Teil

Aggregation: Beispiel-XML-Datei <Polygon> <bestehtAusLinie> <Linie id="Lin21">...</Linie> </bestehtAusLinie> <Linie id="Lin22">...</Linie> <Linie id="Lin26">...</Linie> <Linie id="Lin28">...</Linie> </Polygon> <bestehtAusLinie xlink:href="#Lin22"/> <bestehtAusLinie xlink:href="#Lin26"/> <Linie id="Lin30">...</Linie> <Linie id="Lin34">...</Linie> ............... Lin28 Lin21 Lin26 Lin22 Lin34 Lin32 Lin30 Lin33

Multiplizitäten von Assoziationen Multiplizitäten können mit minOccurs oder maxOccurs angegeben werden Elemente ohne minOccurs und maxOccurs dürfen genau einmal vorkommen Beispiel: <complexType name="PolygonTyp"> <sequence> <element name="bestehtAusLinie" type="LinienPropertyType" minOccurs="3" maxOccurs="unbounded"/> </sequence> </complexType> <complexType name="LinienPropertyType"> <element ref="Linie"/> Ganzes Polygon besteht AusLinien 3..* Linie Teil

Übungsaufgabe: XML-Schema für UML-Diagramm Bauliche Anlage <Codelist> Gebäudefunktion +Wohnen + Gewerbe +Mischgebiet +Verwaltung 0..* Gebäude + eigentümer: Eigentümer[1..*] 1 0..* benachbart 1..* Gebäudeteil + funktion: Gebäudefunktion[1..*] + baujahr:integer + höhe: real Eigentümer + Name: CharacterString + Vorname:CharacterString +Alter:integer 1 1..* Polygon