Das Link-Verhalten

(Auszug aus "XML in a Nutshell" von Elliotte Rusty Harold & W. Scott Means)

Bisher haben wir uns auf einer eher abstrakten Ebene bewegt. Wir haben gesagt, dass ein XLink eine Verbindung zwischen zwei Ressourcen beschreibt, wir haben aber keine Aussage darüber getroffen, wie diese Verbindung dem Benutzer präsentiert wird oder wie die Software reagieren wird, die das Dokument liest. Der Grund ist, dass es darauf keine allgemein gültige Antwort gibt. Wenn der Browser zum Beispiel ein roman-Element bemerkt, das eine http-URL benutzt, sollte bei einem Klick auf den Link der Text des Romans von der URL in das aktuelle Fenster geladen werden und dabei das Dokument ersetzen, das den Link enthält. Es könnte aber auch ein neues Fenster geöffnet und dem Benutzer das neue Dokument in diesem Fenster angezeigt werden. Das richtige Verhalten eines Browsers, der ein roman-Element mit einem isbn-URN registriert, ist noch unklarer. Vielleicht soll er das Buch mit der angegebenen ISBN in der örtlichen Bibliothek reservieren, damit der Benutzer hingehen und es sich abholen kann. Oder möglicherweise soll er das Buch in einem Online-Buchgeschäft bestellen. In anderen Fällen könnten andere Aktionen veranlasst werden. Zum Beispiel ist der Inhalt mancher Links direkt in das verknüpfte Dokument eingebettet wie bei diesem image-Element:

<image width="152" height="345" xlink:type="simple" xlink:href="http://www.turing.org.uk/turing/pi1/sark.jpg" />

Hier hat der Autor vermutlich vorgesehen, dass der Browser das Bild herunterlädt und anzeigt, sobald er den Link findet. Und anstatt ein neues Fenster für das Bild zu öffnen oder das aktuelle Dokument durch das Bild zu ersetzen, soll das Bild in das aktuelle Dokument eingebettet werden.

So wie XML Dokumente flexibler beschreiben kann als HTML, ist XLink flexibler bei den Links, die es beschreibt. Ein XLink zeigt an, dass es irgendeine Verbindung zwischen zwei Dokumenten gibt, es liegt aber an der Anwendung, die den XLink liest, zu entscheiden, was die Verbindung bedeutet. Es muss nicht unbedingt eine blaue, unterstrichene Wortgruppe sein, auf die der Benutzer in einem Browser klickt, um vom Quelldokument zum Ziel zu springen. Selbstverständlich kann es das sein, genauso gut ist aber auch etwas anderes möglich.

Seitenautoren können den Browsern mit Hilfe der Attribute xlink:show und xlink:actuate Vorschläge unterbreiten, wie die Links behandelt werden sollen. Das Attribut xlink:show sagt einem Browser oder einer anderen Anwendung, was zu tun ist, wenn der Link aktiviert wird; zum Beispiel, ob er den verknüpften Inhalt im gleichen oder in einem neuen zu öffnenden Fenster darstellen soll. Das Attribut xlink:actuate teilt dem Browser mit, wann er den Inhalt anzeigen soll, ob er beispielsweise dem Link sofort folgen oder erst auf eine explizite Anfrage des Benutzers warten soll.

xlink:show

Das optionale Attribut xlink:show besitzt fünf mögliche Werte, die vorgeben, in welchem Kontext die Anwendung, die eine mit XLink verknüpfte Ressource lädt, diese Ressource anzeigen soll:

  • new

    Öffnet ein neues Fenster und zeigt den Inhalt, der sich hinter dem URI des Links verbirgt (die Zielressource), in diesem Fenster an.

  • replace

    Zeigt die Zielressource im aktuellen Fenster an, wobei das aktuelle Dokument ersetzt wird.

  • embed

    Bettet ein Bild der Zielressource in das aktuelle Dokument an der Position des Link-Elements ein.

  • other

    Legt ein anderes Verhalten an den Tag als das Öffnen eines neuen Fensters, das Ersetzen des Dokuments im existierenden Fenster oder das sichtbare Einbetten der Ressource in das existierende Dokument. Wie sich dieses Verhalten genau äußert, kann durch anderes, nicht-standardisiertes Markup festgelegt werden, das die spezielle Anwendung versteht.

  • none

    Legt kein Verhalten fest.

Alle fünf Werte sind nur Vorschläge, die Browser oder andere Anwendungen, die XLinks folgen, einfach ignorieren können. Ein Web-Spider würde zum Beispiel kein Fenster für irgendwelche Links öffnen. Außerdem ignoriert er vermutlich eingebettete Links und behandelt die anderen vier Typen identisch. Mozilla könnte bei xlink:show="new" z.B. eine neue Tabelle in einem bestehenden Fenster öffnen, anstatt ein völlig neues Fenster zu erzeugen. All das ist erlaubt, solange es im Kontext der Anwendung sinnvoll ist.

xlink:actuate

Das optionale Attribut xlink:actuate hat vier mögliche Werte, die angeben, wann eine Anwendung, die auf einen XLink stößt, diesem folgen soll:

  • onLoad

    Der Link soll sofort verfolgt werden, wenn die Anwendung ihn sieht.

  • onRequest

    Der Link soll verfolgt werden, wenn der Benutzer dies anweist.

  • other

    Wann der Link verfolgt werden soll, wird durch anderes Markup im Dokument bestimmt und nicht durch XLink festgelegt.

  • none

    Es gibt keine näheren Informationen darüber, wann oder ob dieser Link verfolgt werden soll. Das Verfolgen des Links ist möglicherweise nicht sinnvoll, wie in dem gezeigten Beispiel, in dem der Link auf die ISBN eines Buchs zeigt, anstatt auf eine URL, unter der das Buch zu finden ist.

Alle vier Werte sind nur Vorschläge, die Browser oder andere Anwendungen, die XLinks verfolgen, einfach ignorieren können. Ein Web-Spider würde zum Beispiel seine eigenen Algorithmen einsetzen, um zu entscheiden, wann ein Link zu verfolgen ist und wann nicht. Abweichendes Verhalten ist beim Auftreten der gleichen Attribute erlaubt, solange dies im Kontext der Anwendung, die das Dokument liest, sinnvoll ist.

Ein traditioneller Link z.B., wie er durch das HTML-Element A bereitgestellt und im ersten Roman-Beispiel (siehe Code-Beispiele der Seite Einfache Links) gezeigt wurde, würde folgendermaßen kodiert werden:

<roman xlink:type="simple" xlink:href="ftp://archive.org/pub/etext/etext93/wizoz10.txt" xlink:actuate="onRequest" xlink:show="replace">
   <titel>The Wonderful Wizard of Oz</titel>
   <autor>L. Frank Baum</autor>
   <jahr>1900</jahr>
</roman>

Dieser Code sagt aus, dass vor dem Verfolgen des Links auf eine explizite Anforderung des Benutzers gewartet (z.B. ein Klick auf den Inhalt des Links) und das existierende Dokument dann durch das Dokument ersetzt werden soll, das unter ftp://archive.org/pub/etext/etext93/wizoz10.txt zu finden ist. Falls Sie andererseits XLinks benutzen, um Bilder in Dokumente einzubetten, wollen Sie vermutlich, dass diese sofort gesucht und in das Ursprungsdokument eingebettet werden. Die folgende Syntax wäre da geeignet:

<image xlink:type="simple" xlink:actuate="onLoad" xlink:show="embed" xlink:href="http://www.turing.org.uk/turing/pi1/bus.jpg" width="152" height="345" />

Sowohl xlink:show als auch xlink:actuate sind optional. Eine Anwendung sollte in der Lage sein, angemessen zu reagieren, wenn sie fehlen.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

  


Copyright © 2005 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XML in a Nutshell" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de