Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Fortsetzung DTDs, UML  XML

Ähnliche Präsentationen


Präsentation zum Thema: "Fortsetzung DTDs, UML  XML"—  Präsentation transkript:

1 Fortsetzung DTDs, UML  XML
Geoinformation III Vorlesung 13a Fortsetzung DTDs, UML  XML

2 Übersicht über den dritten Vorlesungsblock
1 Übersicht über den dritten Vorlesungsblock 1. Offene Systeme, Rechnernetze und das Internet Die eXtensible Markup Language XML Grundlagen, Document Type Definitions (DTDs) 3. Fortsetzung DTDs, UML  DTD, Namensräume 4. XML Schema 5. Geographic Markup Language GML: der vom OpenGIS-Consortium als XML-Anwendung definierte Standard für Geo-Objekte

3 Attribut-Definition I
2 Attribut-Definition I Attribut-Definitionen spezifizieren die zu einem Element erlaubten Attribute mit ihren Datentypen. Syntax: für ein Element mit nur einem Attribut eine Zeile der Art: <!ATTLIST Elementname Attributname Attributtyp Option> Verschiedene Elemente dürfen gleichnamige Attribute besitzen. Für welches Element wird das Attribut definiert? Bezeichner des Attributs Welche Art von Daten sollen zuge-wiesen werden? A 3x

4 Attribut-Definition II
3 Attribut-Definition II <!ATTLIST Elementname Attributname1 Attributtyp1 Option1 Attributname2 Attributtyp2 Option2 . . . Attributnamen Attributtypn Optionn > Innerhalb eines Elementes müssen alle Attributnamen unterschiedlich sein. Attribut-Definitionen spezifizieren die zu einem Element erlaubten Attribute mit ihren Datentypen. Syntax: für ein Element mit mehreren Attributen ein Block der Art:

5 Attributtypen DTDs sehen zehn verschiedene Attributtypen vor: CDATA
4 Attributtypen DTDs sehen zehn verschiedene Attributtypen vor: CDATA NMTOKEN NMTOKENS Aufzählung ENTITY ENTITIES ID IDREF IDREFS NOTATION Auf diese Typen wird im Folgenden näher einge-gangen A 1x

6 Attributtyp: CDATA Ein Attribut vom Typ CDATA
5 Attributtyp: CDATA Ein Attribut vom Typ CDATA kann jeden Textstring enthalten <!ELEMENT Wild500 EMPTY> Variante 1: <!ATTLIST Wild500 Listenpreis CDATA #IMPLIED> Variante 2: <!ATTLIST Wild500 Listenpreis CDATA #REQUIRED> Attribut Element Attributtyp Attributliste optional erforderlich <Wild500 Listenpreis=“17000DM“/> 1 <Wild500/> 2 1 2 Für Variante 1 sind und für Variante 2 nur zulässig

7 Attributtyp: NMTOKEN (XML-Namens-Token)
6 Attributtyp: NMTOKEN (XML-Namens-Token) Ein Attribut vom Typ NMTOKEN darf folgende Zeichen enthalten alphanumerischen Zeichen ideographischen Zeichen Interpunktionszeichen ( _ ), ( - ), ( . ) und ( : ) keinerlei Leerzeichen Beispiel: <!ATTLIST Olympiade Eröffnung NMTOKEN #REQUIRED> <Olympiade Eröffnung=“ “> Sport </Olympiade>

8 Attributtyp: NMTOKENS
7 Attributtyp: NMTOKENS Ein Attribut vom Typ NMTOKENS enthalten: Ein oder mehrere NMTOKEN, welche durch Leerzeichen getrennt sind Beispiel: <!ATTLIST Auftritte Tourdaten NMTOKENS #REQUIRED> <Auftritte Tourdaten=“ “> Die Fantastischen Vier </Auftritte>

9 Attributtyp: Aufzählung
8 Attributtyp: Aufzählung Ein Attribut vom Typ Aufzählung besteht aus durch | voneinander getrennter möglichen Werte für ein Attribut Attributwerte dürfen nur aus den aufgezählten Werten stammen Beispiel: <!ATTLIST datum monat (Januar | Februar | März | April) #REQUIRED tag (1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10) #REQUIRED jahr (1979 | 1980 | 1981 | 1982 | 1983) #REQUIRED> <datum monat=“März“ tag=“2“ jahr=“1979“/> f <datum monat=“Januar“ tag=“02“ jahr=“1979“/> f <datum monat=“Januar“ tag=“2“ jahr=“1978“/>

10 Attributtyp: ID Ein Attribut vom Typ ID:
9 Attributtyp: ID Ein Attribut vom Typ ID: muss einen XML-Namen enthalten, der im Dokument eindeutig ist Beispiel: <!ATTLIST Abteilungsleiter Personalnummer ID #REQUIRED> <Abteilungsleiter Personalnummer=“_ “> Jupp Zupp </Abteilungsleiter> Zahlen sind als ID-Werte problematisch, da sie keine XML-Namen sind. Deshalb muss ihnen z.B. ein Buchstabe oder Unterstrich vorangestellt werden.

11 Attributtyp: IDREF Ein Attribut vom Typ IDREF
10 Attributtyp: IDREF Ein Attribut vom Typ IDREF verweist auf ein Attribut vom Typ ID eines Elements im Dokument Beispiel: <!ATTLIST Abteilungsleiter Personalnummer ID #REQUIRED> <!ATTLIST Angestellter Vorgesetzter IDREF #REQUIRED> <Abteilungsleiter Personalnummer=“_ “> Jupp Zupp </Abteilungsleiter> <Angestellter Vorgesetzter=“_ “> Kurt Knecht </Angestellter>

12 Attributtyp: IDREFS Ein Attribut vom Typ IDREFS
11 Attributtyp: IDREFS Ein Attribut vom Typ IDREFS verweist auf die Attribute vom Typ ID mehrerer Elemente im Dokument IDs werden durch Leerzeichen voneinander getrennt Beispiel: <!ATTLIST Abteilungsleiter PersNr ID #REQUIRED Team IDREFS #REQUIRED> <!ATTLIST Angestellter PersNr ID #REQUIRED> <Abteilungsleiter PersNr=“C0815“ Team=“A911 A4711“> Jupp Zupp </Abteilungsleiter> <Angestellter PersNr=“A911“> Kurt Knecht </Angestellter> <Angestellter PersNr=“A4711>“ Rudi Rödler </Angestellter>

13 12 UML  XML U M L A 1x

14 12 UML  XML U M L A 1x

15 12 UML  XML M L A 1x

16 12 UML  XML X M L A 1x

17 13 Von UML zu XML (I) Objektorientierte Modellierung von Systemen und Datenstrukturen erfolgt heutzutage zumeist mittels UML-Diagrammen Für den Datenaustausch oder die Speicherung der Anwendungsdateien ist die Verwendung von XML sinnvoll Probleme: UML ist objektorientiert, XML elementorientiert Neben Klassen modelliert UML insbesondere auch Assoziationen XML besitzt kein direkt vergleichbares Konzept für Assoziationen (Einbettung von Kindelementen entspricht am ehesten der Aggregation) Keine 1:1-Abbildung von UML auf XML-Strukturen Abbildung von UML nach XML nicht eindeutig (mehrere Möglichkeiten) Festlegung auf Abbildungsvarianten sind sog. Entwurfsentscheidungen

18 Von UML zu XML (II) Landkarte UML XML Objekte Elemente Eindeutigkeit
14 Von UML zu XML (II) Landkarte UML XML Objekte Elemente Eindeutigkeit Attributtyp ID Kindelement(e), Attributtyp IDREF(S) Assoziation, Aggregation mit DTDs nicht möglich! Vererbung 1..* Polygon Linie Knoten 1,2 3..* 2..* 2 A 5x

19 Bestandteile werden durch Kindelemente repräsentiert
15 UMLXML: Aggregation Aggregation ist eine spezielle Assoziation, deren beteiligte Klassen eine Ganzes-Teile-Hierarchie darstellen DTD-Deklaration <!ELEMENT Polygon (Linie,Linie,Linie+)> <!ELEMENT Linie (#PCDATA)> 3..* Polygon Linie Ganzes Teil Bestandteile werden durch Kindelemente repräsentiert Beispiel XML-Datei <Polygon> <Linie>1</Linie> <Linie>2</Linie> <Linie>3</Linie> </Polygon>

20 UMLXML: Assoziation <!ATTLIST Linie Linien_ID ID #REQUIRED
16 UMLXML: Assoziation <!ATTLIST Linie Linien_ID ID #REQUIRED Knoten_IDs IDREFS #REQUIRED> <!ATTLIST Knoten Knoten_ID ID #REQUIRED Linien_IDs IDREFS #REQUIRED> Elemente erhalten ein eindeutiges Identifikationsattribut  Schlüssel Von jedem Element werden alle Verweise auf eine andere Klasse durch eine Menge von Referenzen (IDs der referenzierten Elemente) repräsentiert  Fremdschlüssel Linie Knoten 2..* 2

21 UMLXML: Assoziation P9 P4 P7 P3 L7 L1 L6 L5 L3
17 UMLXML: Assoziation P9 P4 P7 P3 L7 L1 L6 L5 L3 <!ATTLIST Linie Linien_ID ID #REQUIRED Knoten_IDs IDREFS #REQUIRED> <!ATTLIST Knoten Knoten_ID ID #REQUIRED Linien_IDs IDREFS #REQUIRED> <Linie Linien_ID=“L1“ Knoten_IDs=“P3 P7“ /> <Linie Linien_ID=“L3“ Knoten_IDs=“P7 P9“ /> <Linie Linien_ID=“L5“ Knoten_IDs=“P4 P7“ /> <Linie Linien_ID=“L6“ Knoten_IDs=“P4 P9“ /> <Linie Linien_ID=“L7“ Knoten_IDs=“P3 P9“ /> <Knoten Knoten_ID=“P3“ Linien_IDs=“L1 L7“ >100,100</Knoten> <Knoten Knoten_ID=“P4“ Linien_IDs=“L5 L6“ >250,200</Knoten> <Knoten Knoten_ID=“P7“ Linien_IDs=“L1 L3 L5“>200,100</Knoten> <Knoten Knoten_ID=“P9“ Linien_IDs=“L3 L6 L7“>150,200</Knoten> Linie Knoten 2..* 2

22 18 UMLXML: Vererbung Eine Vererbung, wie sie bei UML möglich ist, kann mit DTDs nur manuell nachgebildet werden. Geerbte Attribute von Oberklassen müssen in Unterklassen ausdrücklich noch einmal deklariert werden: <!ELEMENT Person (Name,Vorname)> <!ELEMENT Student (Name,Vorname,Matrikelnummer)> Person Name Vorname Attribute von Student: Name geerbt von Vorname Person Matrikelnummer } Student Matrikelnummer

23 19 UMLXML: Vererbung Eine Vererbung, wie sie bei UML möglich ist, kann in XML nur manuell nachgebildet werden. Person Name Vorname Nachteil: Keine echte Vererbung, da sich die Attribute der Unterklassen bei Veränderung der Oberklasse nicht automatisch mitändern. Eine weitere Lösungsmöglichkeit ist die Nutzung von XML-Schema (siehe nächste Vorlesung) Student Matrikelnummer

24 Beispiel Landkarten: 1. Möglichkeit (I)
20 Beispiel Landkarten: 1. Möglichkeit (I) <!ELEMENT Landkarte (Polygon+)> <!ELEMENT Polygon (Linie, Linie, Linie+)> <!ELEMENT Linie (Knoten, Knoten)> <!ELEMENT Knoten (EMPTY)> <!ATTLIST Knoten xKoord CDATA #REQUIRED yKoord CDATA #REQUIRED> Landkarte 1..* 2 Polygon 3..* Linie 2..* 2 Knoten


Herunterladen ppt "Fortsetzung DTDs, UML  XML"

Ähnliche Präsentationen


Google-Anzeigen