- 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 weitere Attributfunktionen sind verfügbar:
{option:optionname} - Gibt den Wert der WebTML-Option dieses Namens aus
{label:labelkey} - Gibt das Textlabel dieses Schlüssels in der Sprache des WGA-Benutzers zurück (siehe <tml:label).

