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 13 Fortsetzung DTDs, UML  XML

2 Ü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 Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

3 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> Für welches Element wird das Attribut definiert? Bezeichner des Attributs Welche Art von Daten sollen zuge-wiesen werden? Verschiedene Elemente dürfen gleichnamige Attribute besitzen. Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

4 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. Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

5 Attributtypen Auf diese Typen wird im Folgenden näher einge-gangen
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 Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

6 Attributtyp: CDATA 1 2 1 2 Für Variante 1 sind und für Variante 2 nur
Ein Attribut vom Typ CDATA kann jeden Textstring enthalten Attribut Element Attributtyp Attributliste optional <!ELEMENT Wild500 EMPTY> Variante 1: <!ATTLIST Wild500 Listenpreis CDATA #IMPLIED> Variante 2: <!ATTLIST Wild500 Listenpreis CDATA #REQUIRED> erforderlich <Wild500 Listenpreis=“17000DM“/> 1 <Wild500/> 2 1 2 Für Variante 1 sind und für Variante 2 nur zulässig Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

7 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> Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

8 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> Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

9 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“/> Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

10 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. Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

11 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> Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

12 Attributtyp: IDREFS Ein Attribut vom Typ IDREF
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> Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

13 UML  XML U M L Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

14 UML  XML U M L Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

15 UML  XML M L Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

16 UML  XML X M L Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

17 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 Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

18 Von UML zu XML (II) UML XML Objekte Elemente
Landkarte Objekte Elemente Eindeutigkeit Attributtyp ID Kindelement(e), Attributtyp IDREF(S) Assoziation, Aggregation mit DTDs nicht möglich! Vererbung 1..* Polygon 1,2 3..* Linie 2..* 2 Knoten Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

19 Bestandteile werden durch Kindelemente repräsentiert
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> Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

20 UMLXML: Assoziation 2..* 2
<!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 Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

21 UMLXML: Assoziation 2..* 2 Linie Knoten
<!ATTLIST Linie Linien_ID ID #REQUIRED Knoten_IDs IDREFS #REQUIRED> <!ATTLIST Knoten Knoten_ID ID #REQUIRED Linien_IDs IDREFS #REQUIRED> P9 P4 P7 P3 L7 L1 L6 L5 L3 <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 Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

22 UMLXML: Vererbung Eine Vererbung, wie sie bei UML möglich ist, kann in XML nur manuell nachgebildet werden. Attribute von Oberklassen müssen 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 von Vorname Person Matrikelnummer } Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

23 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 Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

24 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..* Polygon 2 3..* Linie 2..* 2 Knoten Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

25 Beispiel Landkarten: 1. Möglichkeit (II)
<!ELEMENT Landkarte (Polygon+)> <!ELEMENT Polygon (Linie, Linie, Linie+)> <!ELEMENT Linie (Knoten, Knoten)> <!ELEMENT Knoten (#PCDATA)> <!ATTLIST Knoten xKoord CDATA #REQUIRED yKoord CDATA #REQUIRED> <Landkarte> <Polygon> <Linie> <Knoten xKoord=“100“ yKoord=“100“ /> <Knoten xKoord=“200“ yKoord=“100“ /> </Linie> <Knoten xKoord=“150“ yKoord=“200“ /> </Polygon> </Landkarte> 150, 200 200, 100 100, 100 Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

26 Beispiel Landkarten: 2. Möglichkeit (I)
<!ELEMENT Landkarte (Polygon+,(Linie, Linie, Linie+),(Knoten, Knoten, Knoten+))> <!ELEMENT Polygon EMPTY> <!ELEMENT Linie EMPTY> <!ELEMENT Knoten EMPTY> Landkarte 1..* 3..* 3..* Polygon Linie Knoten 2 3..* 2..* 2 Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

27 Beispiel Landkarten: 2. Möglichkeit (II)
<!ELEMENT Landkarte (Polygon+,(Linie,Linie, Linie+),(Knoten, Knoten, Knoten+))> <!ELEMENT Polygon EMPTY> <!ELEMENT Linie EMPTY> <!ELEMENT Knoten EMPTY> <!ATTLIST Landkarte Polygon_IDs IDREFS #REQUIRED> <!ATTLIST Polygon Polygon_ID ID #REQUIRED Linien_IDs IDREFS #REQUIRED> <!ATTLIST Linie Linien_ID ID #REQUIRED Knoten_IDs IDREFS #REQUIRED> <!ATTLIST Knoten Knoten_ID ID #REQUIRED xKoord CDATA #REQUIRED yKoord CDATA #REQUIRED> Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

28 Beispiel Landkarten: 2. Möglichkeit (III)
<Landkarte Polygon_IDs=“P1 P2“> <Polygon Polygon_ID=“P1“ Linien_IDs=“L1 L3 L7“ /> <Polygon Polygon_ID=“P2“ Linien_IDs=“L3 L5 L6“ /> <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=“P9 P3“ /> <Knoten Knoten_ID=“P3“ xKoord=“100“ yKoord=“100“ /> <Knoten Knoten_ID=“P4“ xKoord=“250“ yKoord=“200“ /> <Knoten Knoten_ID=“P7“ xKoord=“200“ yKoord=“100“ /> <Knoten Knoten_ID=“P9“ xKoord=“150“ yKoord=“200“ /> </Landkarte> P9 P4 P7 P3 L7 L1 L6 L5 L3 Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

29 Namensräume (Namespaces)
XSLT CSS GXL SVG XLink XPath DTD GML XSL XHTML OWL SOAP UIML UXF PCX XDF SHOE Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

30 Lokaler Element- oder Attribut-Name
Namensräume (I) „Sonnensystem“: <Erde> <Pluto> <Saturn> <Jupiter> „Elemente“: <Erde> <Feuer> <Wasser> <Luft> Namensraum Namensraum < elemente : erde > < sonnensystem : erde > qualifizierter Name Namensraum-Präfix Lokaler Element- oder Attribut-Name Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

31 Namensräume (II) XML-Dokumente dürfen Elemente aus mehreren DTDs enthalten verschiedene DTDs definieren u.U. gleichnamige Element Namenskonflikt Software-Module müssen erkennen, für welche Teile des Dokuments sie zuständig sind Lösung: Gruppierung von Namen für Elemente und Attribute und Zuordnung zu Namensräumen Jede Anwendung deklariert typischerweise ihren eigenen Namensraum (Beispiele siehe SVG, SMIL usw.) Verwendung von qualifizierten Namen erlaubt problemlose Verwendung unterschiedlicher DTDs Modularisierung Code-Recycling Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

32 Namensraumdeklaration
Namensräume werden weltweit eindeutig durch eine URI (Uniform Resource Identifier) identifiziert Namensraum-Präfix muss ein XML-Name sein darf keine Sonderzeichen usw. enthalten URI´s beinhalten aber oftmals Sonderzeichen ( Namensraumdeklaration ordnet Präfix und URI einander zu: <person xmlns:job=“ <vorname>Carl Friedrich</vorname> <nachname>Gauß</nachname> <job:berufsbezeichnung>Mathematiker</job:berufsbezeichnung> </person> Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

33 Anwendung und Geltungsbereiche (I)
Der Namensraum-Präfix muss im aktuellen oder einem übergeordneten Element deklariert sein Präfixe xml und xmlns werden nicht deklariert Eine Namensraumdeklaration gilt bereits für das Element, in dessen Start-Tag sie erfolgt: <?xml version=“1.0“?> <!-- alle Elemente hier stehen explizit im Namensraum Personen --> <pers:person xmlns:pers=“ <pers:vorname>Carl Friedrich</pers:vorname> <pers:nachname>Gauß</pers:nachname> <job:berufsbezeichnung xmlns:job=“ Mathematiker </job:berufsbezeichnung> </pers:person> Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

34 Anwendung und Geltungsbereiche (II)
In einem Tag können mehrere Namensraum-Deklarationen stehen: <pers:person xmlns:pers=“ xmlns:job=“ <pers:vorname>Carl Friedrich</pers:vorname> <pers:nachname>Gauß</pers:nachname> <job:berufsbezeichnung>Mathematiker</job:berufsbezeichnung> </pers:person> <job:berufsbezeichnung Mathematiker </job:berufsbezeichnung> in diesem konkreten Beispiel äquivalent Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

35 Deklaration hier ohne Doppelpunkt!
Default-Namensräume gelten für alle Elemente, die keinen Namensraum-Präfix besitzen gelten nicht für Attributnamen ist die URI des Default-Namensraums leer, sind die Elemente ohne Präfix keinem Namensraum zugeordnet (unqualifizierter Name) Deklaration hier ohne Doppelpunkt! <?xml version=“1.0“?> <!–- anfangs ist der Default-Namensraum “Personen“ --> <person xmlns=“ <vorname>Carl Friedrich</vorname> <nachname>Gauß</nachname> <!-- neuer Default-Namensraum wird jetzt “Berufe“ --> <berufsbezeichnung xmlns=“ Mathematiker </berufsbezeichnung> </person> Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13

36 Geltungsbereiche von Default-Namensräumen
person xmlns=“ Namensraum Personen Namensraum Berufe name beruf xmlns=“ vorname nachname bezeichnung ausbildungsdauer Thomas H. Kolbe - Geoinformationen III Semester - WS 2/3 - Vorlesung 13


Herunterladen ppt "Fortsetzung DTDs, UML  XML"

Ähnliche Präsentationen


Google-Anzeigen