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

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>
        ...
    </Expressions>
    <Compare expression="is_early_morning">
        <!-- Early morning content here -->
        <Group ... />
    </Compare>
    <Compare expression="is_morning">
        <!-- Morning content here -->
        <Group ... />
    </Compare>
    ...
    <!-- The "else" case -->
    <Default>
        <!-- content -->
    </Default>
</Condition>

शर्तों के बारे में ध्यान रखने वाली कुछ बातें:

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