- Alle Tags beginnen mit tml:
- WebTML-Tags sind nach XML-Regeln beliebig verschachtelbar. Lediglich die Verwendung von WebTML-Tags in den Attributwerten anderer WebTML-Tags ist (genauso wie in XML) untersagt.
- Alle Tagnamen und Attributnamen werden klein geschrieben
- Jeder Tag hat ein Ergebnis. Dieses Ergebnis ist die Ausgabe des Tags an das Dokument.
- Die WebTML-Verarbeitung erfolgt von oben nach unten. Eingebettete Designs (über tml:include) werden an der Stelle verarbeitet, wo sie auch eingebettet wurden.
- Jeder Tag kann eine eindeutige id besitzen. Diese id kann über das id-Attribut vergeben werden. Geschieht dies nicht, hat der Tag keine id und ist nicht von anderen Tags aus referenzierbar. Die doppelte Vergebung von ids ist website-weit zu vermeiden. Jeder Tag kann erst nach seiner eigenen Ausführung referenziert werden.
Der Tag-Context ist ein Grundkonzept von WebTML. Jedes WebTML-Tag wird im Kontext eines XML-Inhaltsdokumentes ausgeführt. Dies bedeutet, dass sobald ein WebTML-Tag irgendwelche Informationen von einem Inhaltsdokument anfordert, z.B. per tml:item oder per tml:metadata, immer das Inhaltsdokument verwendet wird, dass sich im Kontext befindet. Bei jeder Browser-Anfrage ist das im Kontext befindliche Inhaltsdokument zunächst einmal genau das Dokument, welches per URL angefordert wurde. Bei der Anfrage http:/.../home_index.html steht der allgemeine Tag-Context für alle Tags also zunächst auf dem Inhaltsdokument index im Bereich Home. Dieser wird dann auch Hauptkontext genannt.
Dieser Kontext kann sich jedoch im Verlauf der WebTML-Verarbeitung ändern. Einerseits gibt es ein Tag-Attribut context, über welches der Designer gezielt andere Inhaltsdokumente in den Kontext holen kann. Andererseits wird der Kontext automatisch von Navigatoren und foreach-Schleifen gewechselt. Diese beiden Tags selektieren eine Gruppe von Dokumenten und führen ihren Inhalt im Kontext jedes einzelnen Dokumentes einmal aus. So dass in folgendem Beispiel:
- <tml:navigator type="siblings">
- <tml:item name=Text/>
Kontexte vererben sich in der Tag-Hierarchie nach unten, d.h. der Kontext eines WebTML-Tags ist gleichzeitig auch der Kontext aller WebTML-Tags die sich in seinem Inhalt befinden (insofern diese nicht selbst ihren Kontext ändern). Dies gilt auch dann, wenn Designs per tml:include eingebunden werden. Ein auf selber Ebene folgender Tag ist jedoch nicht beeinflusst.
Das Kontext-Konzept kann in folgendem Design-Beispiel veranschaulicht werden:
- <!-- Start mit dem Context aus der URL: index_flugrouten -->
Der Titel: <tml:meta name=title/> <!-- Context auf index_flugrouten -->
<tml:range context=root>
- <!-- Context auf root von index_flugrouten = index -->
<tml:navigator type="children">
- <!--- Wiederholt im Kontext aller Child-Dokumente von index-->
<tml:item name="Text"/>
Autor: <tml:meta name=author/> <!-- Context wieder auf index_flugrouten -->
Weiterhin möglich ist es, den Inhalt von Tag-Attributen in geschwungene Klammern einzuschließen und damit den Attributinhalt über spezielle dynamische Funktionen berechnen zu lassen. Z.B. können folgendermaßen TMLScript-Ausdrücke berechnet werden, deren Ergebnis den Attributinhalt bilden:
- <tml:foreach pagesize="{ this.thepagesize }"/>
- <tml:foreach pagesize="10"/>
Eine weitere Notation erlaubt die Übernahme des Ergebnisses anderer Tags als Attributinhalt:
- <tml:evaluate id="itemname"/>return Hallo User!;</tml:evaluate>
<tml:foreach pagesize="{tag:itemname}"/>
Desweiteren gibt es eine Notation um - ohne eine TMLScript-Berechnung - direkt den Inhalt eines Items oder einer WebTML-Variablen in ein Attribut zu laden:
- <tml:evaluate var="_itemname"/>return Hallo User!;</tml:evaluate>
<tml:foreach pagesize="{item:_itemname}"/>
Folgende Attributfunktionen sind grundsätzlich verfügbar:
{ TMLScript-Ausdruck } - Ein TMLScript-Ausdruck dessen berechnetes Ergebnis zum Inhalt des Attributes wird. Ist das Ergebnis eine Liste so werden die Listenelemente kommasepariert zu einem String zusammengesetzt, der zum Attribut-Inhalt wird.
{item:itemname} - Gibt den Wert des Items aus
{tag:Tag-ID} - Gibt das Ergebnis des WebTML-Tags der angegebenen ID aus
{plugin:pluginname} - Gibt den Datenbankschlüssel des Plugins mit dem angegebenen eindeutigen Plugin-Namen zurück. Diese Attributfunktion ist praktisch in Attributen, welche einen Datenbankschlüssel entgegennehmen. Mit ihrer Hilfe muss der Datenbankschlüssel des Plugins, der auf verschiedenen WGA Systemen unterschiedlich sein kann, nicht direkt adressiert werden.
{option:optionname} - Gibt den Wert der Web TML-Option dieses Namens aus
{label:labelkey} - Gibt das Textlabel dieses Schlüssels in der Sprache des WGA-Benutzers zurück (siehe <tml:label).

