tmlscript ist die „Ausdruckssprache“ von WebTML. Ausdruckssprachen werden in WebTML überall dort verwendet, wo komplexe Konditionen ausgewertet werden müssen oder programmatische Verarbeitungen vonnöten sind. Es kann an folgenden Stellen verwendet werden
- im Tag tml:evaluate als Inhalt
- Im condition-Attribut von Selektionstags wie tml:case, tml:if und tml:elseif
- Im expression-Attribut von tml:groupchange
- Im sortexpression-Attribut von tml:foreach
- In allen Attributen, wenn deren Inhalt in "{" und "}" eingeschlossen ist
TMLScript ist im Endeffekt ein Dialekt von JavaScript in der Version 1.5. Lediglich zwei Dinge sind anders:
- tmlscript wird im Gegensatz zu JavaScript nicht im Browser ausgeführt, sondern auf dem Webserver während WebTML gerendert wird
- In tmlscript stehen als Umgebung nicht die Browserobjekte window, document etc. zur Verfügung sondern ursprünglich nur ein einziger Objekttyp namens TMLContext, welcher den Tag-Kontext des aktuellen WebTML-Tags repräsentiert, und über welchen weitere Objekte ermittelbar sind. Dieser ist über das Schlüsselwort „this“ erreichbar.
(Trotzdem sind die Basisobjekte von JavaScript, welche nicht zum Browser gehören, wie Array, Date, Math, RegExp etc. auch in tmlscript verfügbar.)
Verwendung
Wie eingangs schon beschrieben entspricht ein TMLContext-Objekt dem Tag-Kontext eines WebTML-Tags. Man verwendet es in tmlscript genauso, wie man in JavaScript die Browserobjekte document und window verwendet. Das TMLContext-Objekt hat lediglich andere Methoden, die für WebTML hilfreich sind. Viele dieser Methoden entsprechen in ihrer Funktionalität den Funktionen von WebTML-Tags, die hier lediglich in einem prozeduralen Art verwendet werden können. Diese sollen im folgenden beschrieben werden.
Beachten sie auch die Artikel unterhalb dieses Dokumentes in welchem besondere Teilaspekte von TMLScript beleuchtet werden.
Organisation der Referenz
Im linken Navigator finden sie auf oberster Ebene die verfügbaren TMLScript-Objekte. Klicken sie diese Objekte an, so öffnet sich die nächsttiefere Ebene mit den Methoden und Feldern des jeweiligen Objektes.