Mặc dù Transform
cho phép bạn thay đổi giao diện của các phần tử hoặc nhóm phần tử, nhưng có thể có trường hợp bạn muốn chuyển đổi giữa danh sách các hành vi dựa trên một số điều kiện. Điều này tương tự như câu lệnh switch
hoặc câu lệnh if…else
trong các ngôn ngữ khác.
Ví dụ: bạn có thể muốn hiển thị một nền khác nhau cho buổi sáng sớm, buổi sáng, bữa trưa, buổi chiều, buổi tối và ban đêm.
Câu lệnh Condition
trong Định dạng mặt đồng hồ cho phép bạn đưa nhiều phần vào cảnh mặt đồng hồ tuỳ thuộc vào việc đánh giá biểu thức, ví dụ:
<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>
Một số điều cần lưu ý về điều kiện:
- Phần tử
Compare
đầu tiên cóexpression
làtrue
sẽ được sử dụng và các phần tử khác sẽ bị bỏ qua. - Do định dạng XML, cách dễ nhất thường là gói định nghĩa biểu thức trong phần tử
CDATA
như minh hoạ ở đây, vì điều này giúp bạn không cần phải thoát XML bằng các phần tử thực thể như>
và&
. - Bạn có thể lồng các cấu trúc
Condition
.