Modificare dinamicamente i contenuti degli elementi

Transform ti consente di modificare l'aspetto di elementi o gruppi di elementi, ma in alcuni casi potresti voler passare da un elenco di comportamenti in base a una determinata condizione. È analogo a un'istruzione switch o if…else in altre lingue.

Ad esempio, potresti voler mostrare uno sfondo diverso per la mattina presto, la mattina, il pranzo, il pomeriggio, la sera e la notte.

Le istruzioni Condition nel formato del quadrante ti consentono di includere diverse parti della scena del quadrante a seconda della valutazione delle espressioni, ad esempio:

<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>

Alcuni aspetti da considerare in merito alle condizioni:

  1. Viene utilizzato il primo elemento Compare in cui expression è true e gli altri vengono ignorati.
  2. A causa del formato XML, spesso è più semplice racchiudere la definizione dell'espressione in un elemento CDATA, come mostrato qui, in quanto ciò evita la necessità di eseguire l'escape XML utilizzando elementi entità come &gt; e &amp;.
  3. È possibile nidificare Condition strutture.