XLink (Syntax)

Syntax zur Definition von Links in XML-Dokumenten
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 31. Juli 2005 um 15:06 Uhr durch Tomtux (Diskussion | Beiträge) (Namensraumdeklaration eingefügt, Einrückungen verbessert, nowiki eingefügt). Sie kann sich erheblich von der aktuellen Version unterscheiden.

XLink ist eine attributbasierte Syntax zur Definition von Links in XML-Dokumenten. Ein XLink kann eine Verbindung von einem Punkt A zu einem Punkt B sein (ähnlich dem aus HTML bekanntem Hyperlink-Element <a>). Sie können jedoch auch Dokumente in zwei Richtungen verbinden (das heißt von A nach B und ebenso zurück). Des Weiteren können XLink auch Verbindungen repräsentieren, die multidirektional sind (unterschiedliche Wege zwischen beliebig vielen XML-Dokumenten). Die Dokumente auf denen ein XLink zeigt, müssen keine XML-Dokumente sein.

XLink ist eine Empfehlung des World Wide Web Consortiums. Trotz zögerlicher Implementierung betrachtet das W3C XLink weiterhin als den zukünftigen Standard für Hyperlinks im WWW und gibt ihm ausdrücklich den Vorzug gegenüber anderen Verfahren wie insbesondere HLink.

XLinks werden in XML-Elemente mit beliebigen Elementnamen eingebaut, indem den Elementen bestimmte XML-Attribute des XML-Namensraums http://www.w3.org/1999/xlink hinzugefügt werden (für gewöhnlich an das Präfix xlink gebunden).

Einfache XLinks können in einem beliebigen Element stehen und werden durch folgende Attribute beschrieben:

  • Sie werden durch die Attributzuweisung xlink:type="simple" erklärt.
  • den eigentlichen Verweis enthält das Attribut xlink:href="Verweis", wobei Verweis durch einen Uniform Resource Identifier zu ersetzen ist, der definitionsgemäß auch einen XPointer-Ausdruck für dokumentinterne Verweise enthalten darf.

Optional sind die Attribute:

  • xlink:title, das einen benutzerfreundlichen Titel des Verweises enthält. Alle Typen von XLink-attributierten Elementen dürfen ein xlink:title-Attribut tragen, auch die unten genannten erweiterten Typen.
  • xlink:show, das festlegt wie der Verweis angezeigt werden soll, und das die Werte new, replace, embed, other, none annehmen kann
  • xlink:actuate, das festlegt wann der Verweis verfolgt werden soll, und das die Werte onLoad, onRequest, other, none annehmen kann
  • xlink:role, das die Bedeutung der Links zueinander beschreibt. Es enthält einen URI, das die entfernte Ressource kommentiert oder erklärt.
  • xlink:arcrole, ist von der Semantik identisch mit xlink:role, beschreibt jedoch Bogenelemente, die kein xlink:role-Attribut aufnehmen können. Es enthält einen absoluten URI, der auf eine Beschreibung der Ressource verweist. Diese Ressource kennzeichnet die Beziehung, die der Bogen beschreibt.

Erweiterte XLinks bieten Möglichkeiten für bi- und multidirektionale Verweise sowie Verweise auf Verweise. Anders als bei den einfachen XLinks sind hierfür mehrere Elemente nötig:

  • ein Element mit dem Attribut xlink:type="extended" bildet quasi den Rahmen des erweiterten XLinks. Es darf außer einem xlink:title das o.g. Attribut xlink:role tragen.

Die Funktionalität des so deklarierten komplexen XLinks wird in Unterelementen festgelegt, die wieder beliebig benannt werden können und die mit folgenden Attributen zu XLink-Bestandteilen werden:

  • mit xlink:type="locator" attributierte Elemente müssen als weiteres Attribut xlink:href="URI", wobei URI durch einen Uniform Resource Identifier zu ersetzen ist. Sinnvollerweise gibt man auch ein Attribut xlink:label an und damit einen Namen der die erklärte URI repräsentiert.
  • xlink:type="resource" leistet dasselbe für dokumentinterne Verweise.

Man hat bis hierhin noch keine eigentlichen Verweise, sondern dokumentinterne und -externe URIs, die jeweils durch ein Label repräsentiert werden. Diese setzt man nun mit (einem) weiteren Unterelement(en) des Elements mit xlink:type="extended" zueinander in Beziehung:

  • ein mit xlink:type="arc" attributiertes Element enthält sinnvollerweise folgende Attribute: xlink:from="..." und xlink:to="...", wobei die zuvor definierten Label verwendet werden. Optional sind die bereits erläuterten Attribute xlink:title, xlink:show, xlink:actuate, xlink:arcrole

Beispiele

<element1 xmlns:xlink="http://www.w3.org/1999/xlink"
          xlink:type="simple" 
          xlink:href="http://www.w3.org/">W3C<element1/>
<element2 xmlns:xlink="http://www.w3.org/1999/xlink"
          xlink:href="user.xml"
          xlink:type="simple"
          xlink:role="http://www.example.com/list/userlist.xml"
          xlink:title="User List">Current List of Users</element2>

Siehe auch

XPath, XPointer