एलिमेंट के कॉन्टेंट को डाइनैमिक तौर पर बदलना

Transform की मदद से, एलिमेंट या एलिमेंट के ग्रुप के दिखने का तरीका बदला जा सकता है. हालांकि, कुछ मामलों में आपको किसी शर्त के आधार पर, व्यवहारों की सूची के बीच स्विच करना पड़ सकता है. यह अन्य भाषाओं में switch स्टेटमेंट या if…else स्टेटमेंट के जैसा होता है.

उदाहरण के लिए, आपको सुबह, दोपहर, शाम, और रात के लिए अलग-अलग बैकग्राउंड दिखाने हों.

Condition वॉच फ़ेस फ़ॉर्मैट में मौजूद स्टेटमेंट की मदद से, वॉच फ़ेस सीन के अलग-अलग हिस्सों को शामिल किया जा सकता है. यह एक्सप्रेशन के आकलन पर निर्भर करता है. उदाहरण के लिए:

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

शर्तों के बारे में कुछ ज़रूरी बातें:

  1. पहले Compare एलिमेंट का इस्तेमाल किया जाता है, जिसमें expression की वैल्यू true होती है. बाकी एलिमेंट को अनदेखा कर दिया जाता है.
  2. एक्सएमएल फ़ॉर्मैट की वजह से, एक्सप्रेशन की परिभाषा को CDATA एलिमेंट में रैप करना सबसे आसान होता है. ऐसा यहां दिखाया गया है. इससे, &gt; और &amp; जैसे एंटिटी एलिमेंट का इस्तेमाल करके, एक्सएमएल एस्केपिंग की ज़रूरत नहीं पड़ती.
  3. Condition स्ट्रक्चर को नेस्ट किया जा सकता है.