XLink: Anwendung


... [ Seminar XML ] ... [ XLink, XPath & XPointer ] ... [ XML Path Language (XPath) ] ...

Übersicht: XLink Anwendung


Beispiele

Hier die komplette Deklaration des Beispiels aus der Einführung.
Die Tagnamen sind hier willkürlich gewählt; sie hängen natürlich von der verwendeten DTD ab.

   <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="extended">

     <hier xlink:type="resource" xlink:label="note">2,3</hier>

     <dort xlink:type="locator"
           xlink:href="http://stud.fh-wedel.de/~mi3358/"
           xlink:label="student"
           xlink:title="Student MI3358" />

     <dort xlink:type="locator"
           xlink:href="http://www.fh-wedel.de/~si/"
           xlink:label="dozent"
           xlink:title="Dozent U. Schmidt" />

     <dort xlink:type="locator"
           xlink:href="http://www.fh-wedel.de/~si/vorlesungen/gdp/"
           xlink:label="vorles"
           xlink:title="Vorlesung GdP" />

     <dort xlink:type="locator"
           xlink:href="http://www.fh-wedel.de/"
           xlink:label="fh"
           xlink:title="FH Wedel" />

     <gehe xlink:type="arc"
           xlink:from="student"
           xlink:to="note" />

     <gehe xlink:type="arc"
           xlink:from="vorles"
           xlink:to="student" />

     <gehe xlink:type="arc"
           xlink:from="dozent"
           xlink:to="vorles" />

     <gehe xlink:type="arc"
           xlink:from="fh"
           xlink:to="dozent"/>

     <titel xlink:type="title">Klausurergebnis</titel>

   </link>

Nach oben

Vereinfachung durch DTDs

Durch den Einsatz von DTDs und Angabe von Standardwerten läßt sich der Code auch übersichtlicher gestalten:

Vorher:

   <link xmlns:xlink="http://www.w3.org/1999/xlink"
         xlink:type="simple"
         xlink:href="http://www.fh-wedel.de"
         xlink:title="Zur FH Wedel">
     Dieser Text ist eine lokale Ressource
   </link>
DTD:
   <!ELEMENT link ANY>
   <!ATTLIST link
             xmlns:xlink CDATA    #FIXED "http://www.w3.org/1999/xlink"
             xlink:type  (simple) #FIXED "simple"
             xlink:href  CDATA    #IMPLIED
             xlink:title CDATA    #IMPLIED>
Nachher:
   <link xlink:href="http://www.fh-wedel.de"
         xlink:title="Zur FH Wedel">
     Dieser Text ist eine lokale Ressource
   </link>
Die Attribute xmlns:xlink und xlink:type müssen hier nicht angegeben werden, da sie in der DTD bereits als FIXED deklariert sind.

Nach oben

XML Base

Wenn in einem href-Attribut ein relativer URI angegeben wird, so wird zu Vervollständigung standardmäßig der Pfad zum aktuellen Dokument verwendet.
XML Base [3] definiert eine Methode ähnlich zum BASE-Tag in HTML, mit der dieses Verhalten beeinflußt werden kann.

Umgesetzt wird dies durch das globale xml:base-Attribut. Für XLinks, die innerhalb eines Elements mit xml:base-Attribut liegen, werden relative URIs mit Hilfe des dort angegebenen URIs ergänzt:

   <?xml version="1.0">

   <doc xmlns:xml="http://www.w3.org/XML/1998/namespace" xml:base="http://www.fh-wedel.de/">
     <link xlink:href="/test/doc.xml" />
   </doc>
Der in xlink:href angegebene URL wird vervollständigt zu http://www.fh-wedel.de/test/doc.xml, unabhängig davon, wo das Dokument physikalisch liegt.

Nach oben

Linkbases

Unter "Linkbases" versteht man XML-Dokumente, die lediglich Links enthalten. Durch Linkbases wird es möglich, Links getrennt von den verlinkten Dokumenten zu speichern.
Dies kann dann sinnvoll sein, wenn es nicht möglich oder zu aufwendig ist, das Quelldokument zu überarbeiten.
Da innerhalb des Quelldokuments kein Hinweis darauf existiert, daß es eine Linkbase gibt, wird die Linkbase natürlich nur dann geladen, wenn das Quelldokument über einen entsprechenden Link geladen wurde.

Um der Applikation mitzuteilen, daß zu einem Dokument eine Linkbase existiert, wird ein spezieller Wert für das arcrole-Attribut verwendet:

<link xlink:type="extended">
  <doc   xlink:type="locator"
         xlink:href="doc.xml"
         xlink:label="doc">

  <links xlink:type="locator"
         xlink:href="links.xml"
         xlink:label="links">

  <arc   xlink:type="arc"
         xlink:from="doc" xlink:to="links"
         xlink:actuate="onLoad"
         xlink:arcrole="http://www.w3.org/1999/xlink/properties/linkbase">
</link>
Dieser Link weist die Applikation an, beim Laden des Dokuments "doc.xml" im Hintergrund die Linkbase "links.xml" zu laden, und alle Links, die dort abgelegt sind, im Dokument anzuzeigen.

Linkbase

Nach oben

... [ Seminar XML ] ... [ XLink, XPath & XPointer ] ... [ XML Path Language (XPath) ] ...