24
1 2 3 4 5 6 7 8 9 10 11 12 Geoinformation 3 13 14 15 16 17 18 19 20 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

Embed Size (px)

Citation preview

Page 1: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

13 14 15 16 17 18 19 20

Geoinformation III

Fortsetzung DTDs,

UML XML

Vorlesung 13a

Page 2: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 61

1. Offene Systeme, Rechnernetze und das Internet

Die eXtensible Markup Language XML

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

Übersicht über den dritten Vorlesungsblock

Page 3: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 62

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

A 3x

Attribut-Definition I

Für welches Element wird das Attribut definiert?

Für welches Element wird das Attribut definiert?

Bezeichner des Attributs

Bezeichner des Attributs

Welche Art von Daten sollen zuge-wiesen werden?

Welche Art von Daten sollen zuge-wiesen werden?

• Verschiedene Elemente dürfen gleichnamige Attribute besitzen.

Page 4: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 63

Attribut-Definition II

• Attribut-Definitionen spezifizieren die zu einem Element erlaubten Attribute mit ihren Datentypen.

• Syntax: für ein Element mit mehreren Attributen ein Block der Art:

• <!ATTLIST Elementname Attributname1 Attributtyp1 Option1

Attributname2 Attributtyp2 Option2

. . .

Attributnamen Attributtypn Optionn >

• Innerhalb eines Elementes müssen alle Attributnamen unterschiedlich sein.

Page 5: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 64

DTDs sehen zehn verschiedene Attributtypen vor:• CDATA• NMTOKEN• NMTOKENS• Aufzählung• ENTITY• ENTITIES• ID• IDREF• IDREFS• NOTATION

A 1x

Attributtypen

Auf diese Typen wird im Folgenden näher einge-gangen

Auf diese Typen wird im Folgenden näher einge-gangen

Page 6: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 65

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>

Attributtyp

AttributElementAttributlis

teoptional

erforderlich

<Wild500 Listenpreis=“17000DM“/>

1

<Wild500/>2

1 2Für Variante 1 sind und 1für Variante 2 nur zulässig

Page 7: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 66

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=“21-07-2002“> Sport </Olympiade>

Page 8: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 6 7

Attributtyp: NMTOKENS

Ein Attribut vom Typ NMTOKENS enthalten:• Ein oder mehrere NMTOKEN, welche durch Leerzeichen

getrennt sindBeispiel: <!ATTLIST Auftritte Tourdaten NMTOKENS #REQUIRED>

<Auftritte Tourdaten=“21-08-2002 26-08-2002“> Die Fantastischen Vier </Auftritte>

Page 9: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 6 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 stammenBeispiel: <!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“/>

<datum monat=“Januar“ tag=“02“ jahr=“1979“/>

<datum monat=“Januar“ tag=“2“ jahr=“1978“/>

f

f

Page 10: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 6

Attributtyp: ID

Ein Attribut vom Typ ID:• muss einen XML-Namen enthalten, der im Dokument eindeutig

ist

9

Beispiel: <!ATTLIST Abteilungsleiter Personalnummer ID #REQUIRED>

<Abteilungsleiter Personalnummer=“_123-45-6789“> 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.

Zahlen sind als ID-Werte problematisch, da sie keine XML-Namen sind. Deshalb muss ihnen z.B. ein Buchstabe oder Unterstrich vorangestellt werden.

Page 11: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 6 10

Attributtyp: IDREF

Ein Attribut vom Typ IDREF• verweist auf ein Attribut vom Typ ID eines Elements im

DokumentBeispiel:<!ATTLIST Abteilungsleiter Personalnummer ID #REQUIRED>

<!ATTLIST Angestellter Vorgesetzter IDREF #REQUIRED>

<Abteilungsleiter Personalnummer=“_123-45-6789“>

Jupp Zupp </Abteilungsleiter>

<Angestellter Vorgesetzter=“_123-45-6789“> Kurt Knecht </Angestellter>

Page 12: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 6 11

Attributtyp: IDREFS

Ein Attribut vom Typ IDREFS• verweist auf die Attribute vom Typ ID mehrerer Elemente im

Dokument• IDs werden durch Leerzeichen voneinander getrenntBeispiel:<!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>

Page 13: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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 14: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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 15: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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 16: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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 17: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

• 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

Page 18: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 6 14

Von UML zu XML (II)

A 5x

Landkarte

Polygon Linie Knoten2..*1,2 3..* 2

UML XML

Objekte

Assoziation,Aggregation

Attributtyp IDEindeutigkeit

Elemente

Kindelement(e),Attributtyp IDREF(S)

1..*

Vererbungmit DTDs nicht möglich!

Page 19: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 6 15

• Aggregation ist eine spezielle Assoziation, deren beteiligte Klassen eine Ganzes-Teile-Hierarchie darstellen

UMLXML: Aggregation

Ganzes

Teil

DTD-Deklaration

<!ELEMENT Polygon (Linie,Linie,Linie+)><!ELEMENT Linie (#PCDATA)>

Beispiel XML-Datei

<Polygon><Linie>1</Linie><Linie>2</Linie><Linie>3</Linie>

</Polygon>

3..*

Polygon

Linie

Bestandteile werden durch Kindelemente repräsentiert

Page 20: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 6 16

UMLXML: 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 Knoten2..* 2

Page 21: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 6 17

<!ATTLIST Linie Linien_ID ID #REQUIRED Knoten_IDs IDREFS #REQUIRED>

<!ATTLIST Knoten Knoten_ID ID #REQUIRED Linien_IDs IDREFS #REQUIRED>

UMLXML: Assoziation

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

P9 P4

P7P3

L7

L1

L6

L5L3

Linie Knoten2..* 2

Page 22: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 6 18

UMLXML: 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

Student

Matrikelnummer

Attribute von Student:

Name geerbt vonVorname PersonMatrikelnummer

}

Page 23: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 6 19

UMLXML: Vererbung

Eine Vererbung, wie sie bei UML möglich ist, kann in XML nur manuell

nachgebildet werden.Person

Name Vorname

Student

Matrikelnummer

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)

Page 24: 123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML Vorlesung 13a

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

5 6 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 #REQUIREDyKoord CDATA #REQUIRED>

Landkarte

Polygon Linie Knoten

1..*3..* 22..*2