Dieser Tag hat zwei Verwendungsvarianten.
Einfache VarianteHier fungiert der Tag <tml:select> lediglich als Bündelung diverser Tags <tml:
case>, die sich in seinem Inhalt befinden. Seine eigentliche Funktion ist es hier, zu ermitteln ob einer der Case-Tags tatsächlich ausgeführt wurde.
Ist dem nicht der Fall, so sorgt <tml:select> dafür dass ein eventuell vorhandener Tag <tml:
caseelse> ausgeführt wird.
"Switch"-Variante
Diese in WGA 4.1 neue Variante imitiert die Funktion der Anweisung "switch" wie sie in vielen modernen Programmiersprache (Java, C, JavaScript) vorhanden ist.
Auch hier beinhaltet <tml:select> eine Reihe von <tml:case>-Tags. Zusätzlich wird im Attribut
switch von <tml:select> ein TMLScript-Ausdruck hinterlegt der bei Ausführung des Tags ausgewertet wird.
Der berechnete Wert des Ausdrucks schliesslich bestimmt, welche <tml:case>-Tags ausgeführt werden. Er wird den den Inhalten der Attribute
value dieser Tags verglichen. Es werden nur Case-Tags ausgeführt, deren "value"-Inhalt identisch mit dem berechneten Wert ist. Dies funktioniert sowohl mit numerischen als auch mit String-Werten
Auch in diesem Fall wird ein Tag
caseelse ausgeführt wenn keiner der <tml:case>-Tags zur Ausführung kommt, also keiner der Werte passte.
Eine Verwendung der einfachen Variante. Anhand des Sprachkürzels werden ausführliche Sprachbezeichnungen ausgegeben:
<tml:select>
<tml:case condition="theLang == 'de'">Deutsch</tml:case>
<tml:case condition="theLang == 'en'">Englisch</tml:case>
<tml:caseelse>Unbekannte Sprache</tml:caseelse>
</tml:select>
Dasselbe Beispiel in der "Switch"-Variante, in welcher der Code sowohl kürzer als auch lesbarer und verständlicher wird:
<tml:select switch="theLang">
<tml:case value="de">Deutsch</tml:case>
<tml:case value="en">Englisch</tml:case>
<tml:caseelse>Unbekannte Sprache</tml:caseelse>
</tml:select>