Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 13 XML Dokumenttyp-Definition, UML XML Übersicht über den dritten Vorlesungsblock 1. Offene Systeme, Rechnernetze und das Internet Die eXtensible Markup Language XML 2. Grundlagen, Spezifikation von Datenformaten 3. Vom UML-Diagramm zum XML-Format 4. Geographic Markup Language GML: – der vom OpenGIS-Consortium als XML-Anwendung definierte Standard für Geo-Objekte Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 2 Definition der Struktur von Dokumenten • wohlgeformte Dokumente können zwar von jedem XMLParser eingelesen werden, jedoch sagt die Wohlgeformtheit nichts darüber aus – welche Elementnamen überhaupt vorkommen dürfen, – in welcher Reihenfolge die Elemente im XML-Dokument erscheinen müssen, – welches Element Kindelement eines anderen sein darf – wie oft die Elemente im XML-Dokument erscheinen dürfen, – welche Attribute in bestimmten Elementen verwendet werden dürfen • Jede XML-Anwendung definiert die ihr bekannten bzw. von ihr akzeptierten Elemente sowie die Dokumentenstruktur mit Hilfe der sog. Document Type Declaration Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 3 Dokumententyp-Deklaration • Die Dokumententyp-Deklaration besteht aus einzelnen Dokumenttyp-Definitionen, den sog. DTDs: – Element-Definitionen – Attribut-Definitionen • Diese können – am Anfang eines XML-Dokuments enthalten sein <?xml version=“1.0“ standalone=“yes“> <!DOCTYPE person [ <!ELEMENT vorname (#PCDATA)> <!ELEMENT nachname(#PCDATA)> ... ]> – oder in einer eigenen Datei zusammengefasst stehen. <?xml version=“1.0“ standalone=“yes“> <!DOCTYPE person SYSTEM “http://..../person.dtd“ Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 4 Element-Definition Die Grundform der Element-Definition: <!Element Elementname (Inhaltsmodell)> Die Inhaltsmodelle geben an • in welcher Reihenfolge • welche Kinder und • wie viele Kinder ein Element haben kann oder muss Es gibt folgende Inhaltsmodelle: • #PCDATA • Auswahl • Kindelemente • Folgen (Sequenzen) • Anzahl der Kinder • Klammern • Gemischter Inhalt • Leere Elemente Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 5 Inhaltsmodell: #PCDATA Modellierung von unstrukturiertem Text: #PCDATA=Parsed Character Data • darf keine Kindelemente enthalten • Entity-Referenzen werden aufgelöst ( &quot; “ ) (deshalb Parsed Character Data) Beispiel: • Definition: <!ELEMENT Anmerkung (#PCDATA)> • XML-Datei: <Anmerkung>XML macht Spaß </Anmerkung> Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 6 Inhaltsmodell: Kindelemente Kindelemente • Element muss genau ein Kind des vorgegebenen Typs haben Beispiel: <!ELEMENT fax (telefonnummer)> <fax> <telefonnummer>0190666666</telefonnummer> </fax> Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 7 Inhaltsmodell: Folgen (Sequenzen) Folgen (Sequenzen) • angegebenen Elemente werden durch Kommata getrennt • sie müssen in der angegebenen Reihenfolge auftreten Beispiel: <!ELEMENT name (vorname, nachname)> <name> <vorname>Friedrich</vorname> <nachname>Gauß</nachname> </name> Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 8 Inhaltsmodell: Auswahl Auswahl • Möglichen Elemente werden durch | getrennt Beispiel: <!ELEMENT name (vorname | nachname)> 1 <name> <nachname>Gauß</nachname> </name> 2 <name> <vorname>Carl</vorname> </name> Nur 1 oder 2 möglich. Nicht 1 und 2 Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 9 Inhaltsmodell: Anzahl der Kinder / Multiplizität Die Anzahl der Kinder / Multiplizität wird durch Anhängen folgender Zeichen an den Elementnamen bestimmt. • ? Erlaubt kein oder ein Elemente • * Erlaubt kein oder mehrere Elemente • + Erlaubt ein oder mehrere Elemente Beispiel: <!ELEMENT name (vorname, nachname?)> <name> <vorname>Friedrich</vorname> <nachname>Gauß</nachname> </name> oder <name> <vorname>Friedrich</vorname> </name> Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 10 Eine Beispiel-DTD Das Element person besitzt ein Kindelement name und kein oder mehrere Kindelemente beruf Die Reihenfolge wird festgeschrieben: erst name dann beruf(e) Eine DTD für das <!ELEMENT person (name, beruf* )> Element person <!ELEMENT name (vorname, nachname )> <!ELEMENT vorname (#PCDATA )> <!ELEMENT nachname (#PCDATA )> <!ELEMENT beruf (#PCDATA )> Das Element name besitzt ein Kindelement vorname und ein Kindelement nachname Die Elemente vorname, beruf und nachname enthalten alle Text Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 11 Validierung von XML-Dokumenten • Wohlgeformtheit ist grundsätzliche Voraussetzung für die maschinelle Lesbarkeit von XML-Dokumenten • Wohlgeformtheit sagt nichts darüber aus, ob die Dokumente in ihrer Struktur und den enthaltenen Daten den Anforderungen konkreter XML-Anwendungen entsprechen. • Mit Hilfe der DTDs kann bereits der XML-Parser die Struktur und den Inhalt überprüfen, bevor er die Daten an ein Anwendungsprogramm übergibt. – Die Fehlerüberprüfung von XML-Dokumenten wird für Anwendungsprogramme einfacher • Die Überprüfung eines XML-Dokuments erfolgt durch einen validierenden Parser • XML-Dokumente heissen gültig, wenn sie der DTD entsprechen Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 12 Was DTDs nicht können Die DTDs sagen nichts darüber aus: • Wie das Wurzelelement des Dokuments aussieht • Wie viele Instanzen jedes einzelnen Elements im Dokument auftauchen dürfen / sollen • Wie die Zeichendaten innerhalb der Elemente aussehen • Was die semantische Bedeutung eines Elements ist; z.B. ob es ein Datum oder einen Namen enthält Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 13 Beispiele: Dokumententyp-Deklaration Bsp. einer DTD für ein Element person Beispiel 1 für ein Element person <person> <!ELEMENT person (name, beruf* )> <name> <!ELEMENT name (vorname, nachname )> <vorname>Friedrich</vorname> <!ELEMENT vorname (#PCDATA )> <nachname>Gauß</nachname> <!ELEMENT nachname (#PCDATA )> </name> <!ELEMENT beruf (#PCDATA )> <beruf>Mathematiker</beruf> </person> Ist dieses person-Element gültig, bzw. entspricht das Dokument der DTD? JA Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 14 Beispiele: Dokumententyp-Deklaration Bsp. einer DTD für ein Element person Beispiel 2 für ein Element person <!ELEMENT person (name, beruf* )> <person> <!ELEMENT name (vorname, nachname )> <beruf>Mathematiker</beruf> <!ELEMENT vorname (#PCDATA )> <beruf>Physiker</beruf> <!ELEMENT nachname (#PCDATA )> <beruf>Geodät</beruf> <!ELEMENT beruf (#PCDATA )> </person> Ist dieses person-Element gültig, bzw. entspricht das Dokument der DTD? Nein, das Element name fehlt Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 15 Beispiele: Dokumententyp-Deklaration Bsp. einer DTD für ein Element person <person> <beruf>Mathematiker</beruf> <!ELEMENT person (name, beruf* )> <name> <!ELEMENT name (vorname, nachname )> <vorname>Friedrich</vorname> <!ELEMENT vorname (#PCDATA )> <nachname>Gauß</nachname> <!ELEMENT nachname (#PCDATA )> </name> <!ELEMENT beruf (#PCDATA )> <beruf>Physiker</beruf> <beruf>Geodät</beruf> </person> Ist dieses person-Element gültig, bzw. entspricht das Dokument der DTD? Nein, das Element beruf steht vor dem Element name Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 16 Beispiele: Dokumententyp-Deklaration Bsp. einer DTD für das Element person Beispiel 4 für ein Element person <!ELEMENT person (name, beruf* )> <person> <!ELEMENT name (vorname, nachname )> <name> <!ELEMENT vorname (#PCDATA )> <vorname>Friedrich</vorname> <!ELEMENT nachname (#PCDATA )> <nachname>Gauß</nachname> <!ELEMENT beruf (#PCDATA )> </name> </person> Ist dieses person-Element gültig, bzw. entspricht das Dokument der DTD? JA Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 17 Beispiele: Dokumententyp-Deklaration Bsp. einer DTD für das Element person <person> <name> <!ELEMENT person (name, beruf* )> <vorname>Friedrich</vorname> <!ELEMENT name (vorname, nachname )> <nachname>Gauß</nachname> <!ELEMENT vorname (#PCDATA )> </name> <!ELEMENT nachname (#PCDATA )> <beruf>Physiker</beruf> <!ELEMENT beruf (#PCDATA )> <beruf>Geodät</beruf> <Leistung>N-Verteilung</Leistung> </person> Ist dieses person-Element gültig, bzw. entspricht das Dokument der DTD? Nein, das Element Leistung ist in der DTD nicht vorgesehen Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 18 Beispiele: Dokumententyp-Deklaration Bsp. einer DTD für das Element person <person> <name> <!ELEMENT person (name, beruf* )> <vorname>Friedrich</vorname> <!ELEMENT name (vorname, nachname )> <nachname>Gauß</nachname> <!ELEMENT vorname (#PCDATA )> </name> <!ELEMENT nachname (#PCDATA )> war <beruf>Physiker</beruf> und <!ELEMENT beruf (#PCDATA )> <beruf>Geodät</beruf> </person> Ist dieses person-Element gültig, bzw. entspricht das Dokument der DTD? Nein, Text ist nur innerhalb der Kinder vorname, nachname und beruf vorgesehen Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 19 Attribut-Definition • Attribut-Definitionen spezifizieren die zu einem Element erlaubten Attribute mit ihren Datentypen. • Syntax: pro Element und Attribut eine Zeile der Art: <!ATTLIST Elementname Attributname Attributtyp Optionen> Für welches Element wird das Attribut definiert? Bezeichner des Attributs Welche Art von Daten sollen zugewiesen werden? • Innerhalb eines Elements müssen alle Attributnamen unterschiedlich sein. – Verschiedene Elemente dürfen gleichnamige Attribute besitzen. Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 20 Attributtypen Es gibt in XML zehn Attributtypen: • CDATA • NMTOKEN • NMTOKENS • Aufzählung • ENTITY • ENTITIES • ID • IDREF • IDREFS • NOTATION Auf diese Typen wird im Folgenden näher eingegangen Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 21 Attributtyp: CDATA Ein Attribut vom Typ CDATA • kann jeden Textstring enthalten Attributliste Element Attribut Attributtyp optional <!ELEMENT Wild500 EMPTY> Variante 1: <!ATTLIST Wild500 Listenpreis CDATA #IMPLIED> Variante 2: <!ATTLIST Wild500 Listenpreis CDATA #REQUIRED> 1 <Wild500 Listenpreis=“17000DM“/> erforderlich 2 <Wild500/> Für Variante 1 sind 1 und 2 für Variante 2 nur 1 zulässig Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 22 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> Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 23 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=“21-08-2002 26-08-2002“> Die Fantastischen Vier </Auftritte> Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 24 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> <!ATTLIST datum tag (1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10) #REQUIRED> <!ATTLIST datum jahr (1979 | 1980 | 1981 | 1982 | 1983) #REQUIRED> <datum monat=“März“ tag=“2“ jahr=“1979“/> f <datum monat=“Januar“ tag=“02“ jahr=“1979“/> <datum monat=“Januar“ tag=“2“ jahr=“1978“/> f Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 25 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=“_123-45-6789“> Jupp Zupp </Abteilungsleiter> Zahlen sind als ID-Werte problematisch, da sie keine XMLNamen sind. Deshalb muss ihnen z.B. ein Buchstabe oder Unterstrich vorangestellt werden. Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 26 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=“_123-45-6789“> Jupp Zupp </Abteilungsleiter> <Angestellter Vorgesetzter=“_123-45-6789“> Kurt Knecht </Angestellter> Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 27 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> <!ATTLIST Abteilungsleiter 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 - 5. Semester - WS 1/2 - Vorlesung 11 28 Von UML zu XML (I) • 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 - 5. Semester - WS 1/2 - Vorlesung 11 29 Von UML zu XML (II) Landkarte UML XML Objekte Elemente Eindeutigkeit Attributtyp ID Assoziation, Aggregation Kindelement(e), Attributtyp IDREF(S) Vererbung mit DTDs: ? 1..* Polygon 1,2 3..* Linie 2..* 2 Knoten Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 30 UMLXML: Aggregation • Aggregation ist eine spezielle Assoziation, deren beteiligte Klassen eine Ganzes-Teile-Hierarchie darstellen DTD-Deklaration Ganzes Polygon <!ELEMENT Polygon (Linie,Linie,Linie+)> <!ELEMENT Linie (#PCDATA)> Beispiel XML-Datei 3..* Teil Linie <Polygon> <Linie>1</Linie> <Linie>2</Linie> <Linie>3</Linie> </Polygon> Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 31 UMLXML: Assoziation <!ATTLIST Linie Linien_ID Knoten_IDs <!ATTLIST Knoten Knoten_ID Linien_IDs ID #REQUIRED IDREFS #REQUIRED> P9 ID #REQUIRED IDREFS #REQUIRED> <Linie Linien_ID=“L1“ Knoten_IDs=“P3 P7“ /> L7 L3 <Linie Linien_ID=“L3“ Knoten_IDs=“P7 P9“ /> <Linie Linien_ID=“L5“ Knoten_IDs=“P4 P7“ /> <Linie Linien_ID=“L6“ Knoten_IDs=“P4 P9“ /> P3 L1 <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 2..* 2 L6 P4 L5 P7 Knoten Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 32 UMLXML: Vererbung Eine Vererbung, wie sie bei UML möglich ist, kann in XML durch die DTDs nicht erreicht werden. Person Name Vorname Die Vererbung muss in XML manuell durchgeführt werden. <!ELEMENT Person (Name,Vorname)> <!ELEMENT Student (Name,Vorname, Matrikelnummer)> Eine weitere Lösungsmöglichkeit ist die Nutzung von XML-Schema. Student Matrikelnummer Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 33 Beispiel Landkarten: 1. Möglichkeit (I) Landkarte <!ELEMENT Landkarte (Polygon+)> <!ELEMENT Polygon (Linie, Linie, Linie+)> <!ELEMENT Linie (Knoten, Knoten)> <!ELEMENT Knoten (EMPTY)> <!ATTLIST Knoten xKoord CDATA #REQUIRED yKoord CDATA #REQUIRED> 1..* Polygon 2 3..* Linie 2..* 2 Knoten Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 34 Beispiel Landkarten: 1. Möglichkeit (II) <!ELEMENT Landkarte (Polygon+)> <Landkarte> <!ELEMENT Polygon (Linie, Linie, Linie+)> <Polygon> <!ELEMENT Linie (Knoten, Knoten)> <Linie> <!ELEMENT Knoten (#PCDATA)> <Knoten xKoord=“100“ yKoord=“100“ <Knoten xKoord=“200“ yKoord=“100“ <!ATTLIST Knoten </Linie> xKoord CDATA #REQUIRED <Linie> yKoord CDATA #REQUIRED> <Knoten xKoord=“200“ yKoord=“100“ <Knoten xKoord=“150“ yKoord=“200“ </Linie> 150, 200 <Linie> <Knoten xKoord=“100“ yKoord=“100“ <Knoten xKoord=“150“ yKoord=“200“ </Linie> </Polygon> </Landkarte> 100, 100 200, 100 Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 /> /> /> /> /> /> 35 Beispiel Landkarten: 2. Möglichkeit (I) <!ELEMENT Landkarte (Polygon+,(Linie, Linie, Linie+),(Knoten, Knoten, Knoten+))> <!ELEMENT Polygon EMPTY> Landkarte <!ELEMENT Linie EMPTY> <!ELEMENT Knoten EMPTY> 1..* Polygon 3..* 2 3..* Linie 3..* 2..* 2 Knoten Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 36 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 Linien_IDs IDREFS #REQUIRED> Linien_ID ID Knoten_IDs IDREFS #REQUIRED> Knoten_ID ID xKoord CDATA #REQUIRED yKoord CDATA #REQUIRED> <!ATTLIST <!ATTLIST Linie Knoten #REQUIRED #REQUIRED #REQUIRED Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 37 Beispiel Landkarten: 2. Möglichkeit (III) <Landkarte Polygon_IDs=“P1 P2“> <Polygon Polygon_ID=“P1“ Linien_IDs=“L1 L3 L7“ /> P4 <Polygon Polygon_ID=“P2“ Linien_IDs=“L3 L5 L6“ /> L6 <Linie Linien_ID=“L1“ Knoten_IDs=“P3 P7“ /> <Linie Linien_ID=“L3“ Knoten_IDs=“P7 P9“ /> L5 P9 <Linie Linien_ID=“L5“ Knoten_IDs=“P4 P7“ /> <Linie Linien_ID=“L6“ Knoten_IDs=“P4 P9“ /> L3 <Linie Linien_ID=“L7“ Knoten_IDs=“P9 P3“ /> L7 <Knoten Knoten_ID=“P3“ xKoord=“100“ yKoord=“100“ /> P7 <Knoten Knoten_ID=“P4“ xKoord=“250“ yKoord=“200“ /> L1 <Knoten Knoten_ID=“P7“ xKoord=“200“ yKoord=“100“ /> <Knoten Knoten_ID=“P9“ xKoord=“150“ yKoord=“200“ /> P3 </Landkarte> Thomas H. Kolbe - Geoinformationen III - 5. Semester - WS 1/2 - Vorlesung 11 38