150 likes | 277 Views
Geoinformation III. Vorlesung 12b. XML Grundlagen, Namensräume und Hyperlinks. 6. Namensräume (Namespaces). XSLT. CSS. GXL. SVG. XLink. XPath. DTD. GML. XSL. XHTML. OWL. SOAP. UIML. UXF. PCX. XDF. SHOE. „Sonnensystem“:. „Elemente“:. <Luft>. <Saturn>. <Wasser>. <Feuer>.
E N D
Geoinformation III Vorlesung 12b XML Grundlagen, Namensräume und Hyperlinks
6 Namensräume (Namespaces) XSLT CSS GXL SVG XLink XPath DTD GML XSL XHTML OWL SOAP UIML UXF PCX XDF SHOE
„Sonnensystem“: „Elemente“: <Luft> <Saturn> <Wasser> <Feuer> <Jupiter> <Pluto> <Erde> <Erde> Namensraum Namensraum qualifizierter Name < elemente : erde > < sonnensystem : erde > A 7 Namensräume (I) Namensraum-Präfix Lokaler Element- oder Attribut-Name 7x
8 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
9 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>
10 Anwendung und Geltungsbereiche (I) • Der Namensraum-Präfix muss im aktuellen oder einem übergeordneten Element deklariert sein • Präfixexmlundxmlnswerden 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>
<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 11 Anwendung und Geltungsbereiche (II) • In einem Tag können mehrere Namensraum-Deklarationen stehen: 1x
12 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>
Namensraum Personen Namensraum Berufe A 13 Geltungsbereiche von Default-Namensräumen person xmlns=“http://.../personen“ name beruf xmlns=“http://.../berufe“ vorname nachname bezeichnung ausbildungsdauer 1x
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 überUniform 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/
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
GML3 verwendet ausschließlich Simple Links Simple & Extended 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
Wird im Wesentlichen für GML3 benötigt Realisierung von XLink • Verweise sind Elemente, die spezifische Attributedes Namensraums xlink enthalten:
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