Webgate Anywhere 4.1 - Das Kompendium
Design WebTML Der Dokumentenkontext

4.1.1 Der Dokumentenkontext

Der Dokumentenkontext verbindet das WebTML-basierte Layout mit den Daten der WGA Content Store, die publiziert werden sollen.

Jeder WebTML-Tag wird im Kontext eines Inhaltsdokumentes ausgeführt. Dies heisst, dass Funktionen zur Abfrage von Content-Daten dieses Inhaltsdokument benutzen um die Daten abzufragen, z.B. <tml:item>.

Grundsätzlich haben WebTML-Tags zunächst das Inhaltsdokument im Kontext, welches in der URL des aktuell verarbeiteten Requests per Content-Key oder eindeutigen Namen adressiert wurde. Diesen Kontext nennt man auch den Hauptkontext dieses Requests.

Es gibt jedoch diverse Funktionalitäten um innerhalb der WebTML-Verarbetiung das im Kontext befindliche Dokument gezielt zu ändern. Man spricht hier vom Kontextwechsel. Hier ist zunächst das Attribut context zu nennen, welches für alle WebTML-Tags benutzt werden kann. Über eine Pfadsyntax kann der Designer hier bestimmte Inhaltsdokumente ansteuern die er im Kontext des aktuellen Tags haben möchte:
<tml:item context="name:home" name="body"/>

In diesem Beispiel wird das Item "body" abgerufen, und zwar gezielt vom Inhaltsdokument dessen eindeutiger Name "home" ist.

Desweiteren arbeiten WebTML-Navigatoren (z.B. <tml:navigator>) so, dass sie die Dokumente, die im Navigator angezeigt werden sollen, nacheinander in den Kontext bewegen. Der Inhalt des Navigator-Tags wird je einmal im Kontext jedes Inhaltsdokumentes ausgeführt. Identisch arbeitet auch der Iterations-Tag <tml:foreach> wenn er über Inhaltsdokumente iteriert.

Der Dokumentenkontext eines WebTML-Tags wird an jene Tags vererbt die sich in seinem Inhalt befinden. Wechselt man beispielsweise den Kontext des Tags <tml:range>, so arbeiten die Tags die er umschliesst im selben Kontext (es sei denn sie würden selbst wieder explizit den Kontext wechseln).
<tml:range context="name:home">
    <tml:item  name="body"/>
</tml:range>

Der Code dieses Beispiels hat denselben Effekt wie im vorherigen Beispiel. Durch die Kontextvererbung wird auch dieser Item-Tag im Kontext des Dokumentes "home" ausgeführt.

Ein Sonderfall ist die Verwendung des Dummy-Kontextes. Dies ist ein virtueller Kontext der keinem tatsächlichen Inhaltsdokument zugeordnet ist und der ein leeres Dokument simuliert. Dieses simulierte Dokument kann nicht gespeichert werden.

Der Dummy-Kontext kommt z.B. in folgenden Situationen zum Einsatz:
Zwar repräsentiert der Dummy-Kontext kein reelles Inhaltsdokument, er gehört jedoch grundsätzlich zu einer spezifischen WGA Datenbank. Im Fall des kontextlosen Requests gehört er zur Datenbank die in der URL adressiert wird. Im Fall des Kontextwechsel gehört er zur im Kontextausdruck adressierten DB. Daher kann von einem Dummy-Kontext aus der Kontext gezielt auf ein anderes Dokument derselben Datenbank gewechselt werden, z.B. über den Kontextausdruck "name:home".


<< WebTML WebTML-Variablen >>