123456789101112 Geoinformation3 1314151617181920 Geoinformation III Fortsetzung DTDs, UML XML...

Preview:

Citation preview

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

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

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.

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.

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

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

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>

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>

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

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.

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>

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>

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

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

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

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

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

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!

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

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

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

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

}

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)

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

Recommended