Embora o Transform permita mudar a aparência de elementos ou grupos de elementos, pode haver ocasiões em que você queira alternar entre uma lista de comportamentos com base em alguma condição. Isso é análogo a uma instrução switch ou if…else em outras linguagens.
Por exemplo, você pode mostrar um plano de fundo diferente para cada período do dia: manhã, almoço, tarde, noite e madrugada.
As instruções Condition no Formato do Mostrador do Relógio permitem incluir diferentes partes
da cena do mostrador, dependendo da avaliação das expressões. Por
exemplo:
<Condition> <Expressions> <Expression name="is_early_morning"> <![CDATA[[HOUR_0_23] >= 6 && [HOUR_0_23] < 8]] </Expression> <Expression name="is_morning"> <![CDATA[[HOUR_0_23] < 12]] </Expression> <!-- Further expressions --> </Expressions> <Compare expression="is_early_morning"> <!-- Early morning content here --> </Compare> <Compare expression="is_morning"> <!-- Morning content here --> </Compare> <!-- Further Compare elements --> <!-- The "else" case --> <Default> <!-- content --> </Default> </Condition>
Algumas observações sobre as condições:
- O primeiro elemento
Compareem queexpressionétrueé usado, e os outros são ignorados. - Devido ao formato XML, muitas vezes é mais fácil incluir a definição de expressão em um elemento
CDATA, como mostrado aqui. Isso evita a necessidade de escape XML usando elementos de entidade, como>e&. Conditionestruturas podem ser aninhadas.