Geoinformation 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Geoinformation III Vorlesung 12b XML Grundlagen, Namensräume und Hyperlinks Geoinformation 3 1 2 3 4 5 6 7 8 Namensräume (Namespaces) 9 10 11 12 13 14 15 16 Geoinformation 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Namensräume (I) „Sonnensystem“: „Elemente“: <Saturn> <Luft> <Pluto> <Jupiter> <Feuer> <Wasser> <Erde> <Erde> Namensraum Namensraum qualifizierter Name < sonnensystem : erde > Namensraum-Präfix A 7x < elemente : erde > Lokaler Element- oder Attribut-Name Geoinformation 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 GML, SVG, SMIL usw.) Verwendung von qualifizierten Namen erlaubt – problemlose Verwendung unterschiedlicher DTDs – Modularisierung – Code-Recycling Geoinformation 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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 (http://test.com/namespace) • Namensraumdeklaration ordnet Präfix und URI einander zu: <person xmlns:job=“http://www.berufe-online.de/berufe“> <vorname>Carl Friedrich</vorname> <nachname>Gauß</nachname> <job:berufsbezeichnung>Mathematiker</job:berufsbezeichnung> </person> Geoinformation 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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=“http://www.personenregister.de/personen“ <pers:vorname>Carl Friedrich</pers:vorname> <pers:nachname>Gauß</pers:nachname> <job:berufsbezeichnung xmlns:job=“http://www.berufe-online.de/berufe“> Mathematiker </job:berufsbezeichnung> </pers:person> Geoinformation 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Anwendung und Geltungsbereiche (II) • In einem Tag können mehrere Namensraum-Deklarationen stehen: <pers:person xmlns:pers=“http://www.personenregister.de/personen“ <pers:vorname>Carl Friedrich</pers:vorname> <pers:nachname>Gauß</pers:nachname> <job:berufsbezeichnung xmlns:job=“http://www.berufe-online.de/berufe“> Mathematiker </job:berufsbezeichnung> </pers:person> in diesem konkreten Beispiel äquivalent <pers:person xmlns:pers=“http://www.personenregister.de/personen“ xmlns:job=“http://www.berufe-online.de/berufe“> <pers:vorname>Carl Friedrich</pers:vorname> <pers:nachname>Gauß</pers:nachname> <job:berufsbezeichnung>Mathematiker</job:berufsbezeichnung> </pers:person> A 1x Geoinformation 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 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=“http://www.personenregister.de/personen“> <vorname>Carl Friedrich</vorname> <nachname>Gauß</nachname> <!-- neuer Default-Namensraum wird jetzt “Berufe“ --> <berufsbezeichnung xmlns=“http://www.berufe-online.de/berufe“> Mathematiker </berufsbezeichnung> </person> Geoinformation 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Geltungsbereiche von Default-Namensräumen Namensraum Personen person xmlns=“http://.../personen“ name Namensraum Berufe beruf xmlns=“http://.../berufe“ vorname A 1x nachname bezeichnung ausbildungsdauer Geoinformation 3 1 2 3 4 5 6 7 8 XML Linking Language (XLink) 9 10 11 12 13 14 15 16 Geoinformation 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 XML Linking Language (XLink) • XLink beschreibt, wie in XML-Dokumenten Verweise auf – andere XML-Elemente (in der selben Datei sowie in externen Dateien) und – andere externe Datenobjekte angegeben werden können • Referenzierung über Uniform Resource Identifier (URI); dieser ist entweder ein – Uniform Resource Locator (URL) oder – Uniform Resource Name (URN) • Spezifikation von XLink – W3C Recommendation, 27. Juni 2001 – http://www.w3c.org/TR/xlink/ Geoinformation 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Eigenschaften von Verweisen Spezifizierbare Eigenschaften von Verweisen • beteiligte Ressourcen • textuelle Beschreibung • Angaben zur Traversierung: von welcher Ressource kann zu welcher anderen navigiert werden? • Aktionen, die beim Erkennen (Einlesen) des Links durchgeführt werden sollen • Darstellungshinweise, wie das Zieldokument bei der Traversierung eines Verweises dargestellt werden soll Geoinformation 3 1 2 3 4 5 6 Simple & Extended Links 7 8 9 10 11 12 13 14 15 16 GML3 verwendet ausschließlich Simple Links • Simple Link – zeigt von einer lokalen auf genau eine externe Ressource (ausgehender Link; vergleichbar mit Hyperlinks in HTML) – Verweisendes Element besitzt spezifische Attribute • Extended Link – kann Referenzen zwischen zwei und mehreren lokalen und externen Ressourcen beschreiben – unterstützt sowohl aus- als auch eingehende Links – Verweis erfolgt über spezifische Attribute + Kindelemente Geoinformation 3 1 2 3 4 5 6 7 8 9 10 11 12 13 Realisierung von XLink • Wird im16 14 15 Wesentlichen für GML3 benötigt Verweise sind Elemente, die spezifische Attribute des Namensraums xlink enthalten: Attribut Funktion type Art des Verweises (simple, extended usw.) href URI einer referenzierten Ressource role URI einer den Verweis beschreibenden Ressource arcrole URI einer die Traversierung beschreibenden Ress. title beschreibender Text zu dem Verweis show Angabe zur Darstellung bei Aktivierung des Link actuate Angabe zur Aktivierung dieser Referenz label Traversierungsattribut; Markierung von Ressourcen from Traversierungsattribut; Quellressource to Traversierungsattribut; Zielressource Geoinformation 3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Beispiel für einen Simple Link <vaterElement xmlns:xlink=“http://www.w3.org/1999/xlink“> ... <meinVerweis xlink:type=“simple“ xlink:href=“meineDatei.xml#e117“ xlink:title=“Zweite Datei, Element mit der ID e117“ Ein Verweis auf ein externes XML-Element </meinVerweis> ... </vaterElement> • Verweis auf das Element mit der ID „e117“ in der Datei „meineDatei.xml“ • Der Namensraum xlink muss in dem Verweis-Element oder einem übergeordneten Element deklariert werden