Webgate Anywhere 4.0 - WebTML Tag-Referenz
Lokale Referenzen

3. Lokale Referenzen

Mit der Design Synchronisation wurde für WebTML- und Script-Module eine neue Möglichkeit geschaffen, diese in eindeutige Kategorien einzuordnen. In Design-Verzeichnissen können diese Module in Unterverzeichnisse eingeordnet werden, deren Namen zu Bestandteil des Modulnamens werden. Diese Verzeichnisnamen werden dem lokalen Modulnamen durch Doppelpunkte getrennt vorangestellt.  So erhält eine WebTML-Moduldatei "standard.tml" in einem Verzeichnis "outer" den Modulnamen "outer:standard" in WGA.  Im Unterschied zu der bislang in WGA bekannten Kategorien ist diese Verzeichnis-Kategorisierung eindeutig und kann zur Adressierung des Moduls benutzt werden.

Korrespondierend dazu wurde in WGA eine neue Möglichkeit eingeführt, Module auf derselben Verzeichnisebene wie das aktuell ausgeführte Modul zu adressieren, ohne den Verzeichnispfad angeben zu müssen: Die lokale Referenz.

Lokale Referenzen beginnen mit einem doppelten Doppelpunkt und enthalten danach nur den lokalen Namen des Moduls, ausschliesslich aller Verzeichnis-Präfixe. Sie können beispielsweise im <tml:include>-Tag verwendet werden um das einzubindende WebTML-Modul zu bestimmen:

<tml:include ref="::banner"/>

WGA ergänzt diese lokale Referenz automatisch um die Verzeichnis-Kategorie, in der sich das aktuelle WebTML-Modul - also jenes welches den Include-Tag beinhaltet - befindet. Besitzt das aktuelle Modul den Namen "columns:info:main" so ist oben genannter Include gleichbedeutend mit:

<tml:include ref="columns:info:banner"/>

Das aktuelle Modul muss hierbei nicht unbedingt eine Verzeichnis-Kategorie im Namen tragen. Heisst es lediglich "info", so wird auch die lokale Referenz zu einem Namen ohne Kategorie aufgelöst:

<tml:include ref="banner"/>

Dieses Verfahren kann an allen Stellen verwendet werden, die WebTML- oder Script-Module adressieren:

<tml:include ref="::module" linkaction="::action"/>

<tml:url type="css/js" name="::script" doc="::script"/>

<tml:url type="tml/content" layout="::module"/>

<tml:url type="action" action="::action"/>

<tml:action ref="::action"/>

<tml:button clickaction="::action"/>

<tml:input changeaction="::action"/>

In TMLScript: callAction("::scriptmodule"); createObject("::scriptmodule"); loadObjectDefinition("::scriptmodule")

Wird callAction(), createObject() oder loadObjectDefinition() in einem <tml:script>-Tag verwendet, so wird die lokale Referenz über den Namen des aktuellen WebTML-Moduls ergänzt. Werden diese Funktionen in einer andere Modul-Aktion oder einem TMLScript-Objekt verwendet , so wird die lokale Referenz über den Namen des Script-Moduls ergänzt, welches die aufrufende Aktion bzw. das Objekt definiert.

Diese Technik ermöglicht es, den Code von Modul-Verzeichnissen unabhängig von ihrer Position in der Verzeichnisstruktur zu verfassen. Ein Verzeichnis "tools", dessen Module ausschliesslich lokale Referenzen zur gegenseitigen Adressierung verwenden, könnte ohne weiteres in "utils" umbenannt werden, oder in ein andere Designprojekt unter einem anderen Verzeichnnamen kopiert werden, ohne die Funktionalität zu beeinflussen. Dadurch können Modul-Verzeichnisse selbst wiederum als Module ohne externe Abhängigkeiten verwendet werden.


<< Erläuterung der Referenz-Informationen WebTML-Metadaten >>