Eine E-Mail schreiben schreiben - Link-Mechanismen
vorherige: Markup-Beispiel||nach oben:Sights||nächste:Informationsverarbeitung

Automatische Verlinkung

Stark vereinfacht weist das Markup von SiGHTs diese Struktur auf:

	<praesenz>
	   <meta>
	   . . .
	   <sektion name="Ein Abschnitt">
	      <seite id="Start" datei="eins" titel="Erste Seite"/>
	      <seite id="weiter" datei="zwei" titel="Zweite Seite"/>
	      <seite id="mehr" datei="drei" titel="Dritte Seite"/>
	      <seite id="Ende" datei="vier" titel="Vierte Seite"/>
	   </sektion>
	   . . .
	</praesenz>
	     

Titel und Datei sind hier als Attribute annotiert, während in der Quelle für diese Aspekte der Einheit <seite> eigene Äste, also Unterstrukturen des Dokumentbaumes, vorgesehen sind. Zudem ist in der Quelle unterhalb von <seite> der Inhalt einer Seite - annotiert in XHTML - hinterlegt. Dieser wird beim Erzeugen der Seiten in die Seiten kopiert.
Das ändert nichts an den Prinzipien der Umsetzung unter Zuhilfenahme von XSL-T: Wie Sights beschrieben, formen die Skripte aus dieser Struktur automatisch eine Navigation. Und zwar in der Weise, das von jeder Seite, die zu einer Sektion gehört, auf jede andere in dieser verlinkt wird. Aus den Meta-Daten werden jene Informationen entnommen, die notwendig sind, um einen Link zu erzeugen; also jene, die für die Erzeugung eines XHTML-Elementes <a> notwendig sind.
Konkret sind das der Bezeichner des Links und die Referenz auf die Datei. Am Beispiel der ersten Seiten würde in jeder der vier Seiten der Link <a href="eins.html">Erste Seite</a> eingefügt. Die Endung ".html" wird automatisch ergänzt (das Verhalten des Skriptes lässt sich aber auch ändern.).

Die vollständige Navigationsleiste stellt sich also folgendermaßen dar:

	<table>
	  <tr>
	    <td>
	       <a href="eins.html">Erste Seite</a>
	    </td>
	    <td>
  	      <a href="zwei.html">Zweite Seite</a>
	    </td>
	    <td>
	      <a href="drei.html">Dritte Seite</a>
	    </td>
	    <td>
	       <a href="vier.html">Vierte Seite</a>
	    </td>
	  </tr>
	</table>
	     

Noch einmal die Vorteile: Ändert sich die Reihenfolge wird diese Navigationsleiste, da sie bei jedem einzelnen Skript-Durchlaug neu erzeugt wird, unmittelbar richtig geschrieben. Implementiert ist den Skripten zudem ein Mechanismus, der die aktuell angezeigte Seite markiert. Also in die Seiten folgendes einfügt:

	. . .
	<td class="aktiv">
	  <a href="drei.html">Dritte Seite</a>
	</td>
	<td class="passiv">
	  <a href="vier.html">Vierte Seite</a>
	</td>
	 . . .
	      

Dies würde in die Datei "drei.html" geschrieben. Die Markierung geschieht jeweils in der aktuell verarbeiteten Datei, wenn deren Dateiname mit dem verlinkten übereinstimmt. So wird es möglich, mittels CSS eine optische Orientierung über den "Aufenthaltsort" des Lesers zu geben.

Verlinkung einzelner Seiten oben

Allerdings werden die Seiten intern nicht anhand ihrer Dateien identifiziert. Diese sind ein variable Größe. Will man also auf einzelne Seiten verlinken, kann nicht manuell ein Link mit einer fest codierten Datei, in der Form <a href=""vier.html">Vierte Seite</a>, eingefügt werden.

Derartige Probleme werden mit einem System fester Bezeichner für die Seiten umgangen. Für jede Informationseinheit (Seite) wird ein Attribut "ID" vergeben, das die logische Einheit und den Inhalt eindeutig kennzeichnet. Über dieses kann die Seite verlinkt werden.
Im Quellcode formuliert werden derartige Referenzen mithilfe des XLink-Standards.

Die Strukturvorgeben für SiGHTs ermöglicht es, in den Fließtext, der in XHTML ausgezeichnet (annotiert) ist, weitere Elemente einzuführen, was sich vielfältig nutzen lässt (Siehe dazu die folgende Seite Informationsverarbeitung).
In diesem Zusammenhang interessiert im Markup vor allem das Element <sht:xlink/>. Der Namespace kennzeichnet es als zu SiGHTs gehörig.

Diese Element wird bei der Verarbeitung als ein dynamischer Link interpretiert: Es zeigt auf eine Seiten-ID, die bei der weiteren Verarbeitung in einen statischen umgewandelt wird.

		<sht:xlink xlink:href="#vier" />
	      

Das verarbeitende Skript sucht für die referenzierte Seite Dateinamen und Titel aus dem Meta-Daten und erzeugt daraus einen XHTML-Link: <a href="vier.html">Vierte Seite</a>. Da die ID über den Verarbeitungsprozess gleich bleibt, werden, der Generation der Navigationsleiste analog, Änderungen in der Position der Seite oder an deren Dateinamen und Titel dynamisch übernommen.

space