Why not use elements named DAY, MONTH, WEEKDAY, and TIME, instead of pushing the information down into the character content of the element? That is, if for your purposes there are four distinct types of date-time data, why are you calling them all by the same name?
[Addendum] The OP asks for an example. OK, here is an example:
<Root>
<Scheduler>
<Day>
<DayOfWeek>Sunday</DayOfWeek>
</Day>
</Scheduler>
<Scheduler>
<DayOfMonth>
<DayOfWeek>Sunday</DayOfWeek>
<DayOfMonth>28</DayOfMonth>
</DayOfMonth>
</Scheduler>
<Scheduler>
<Weekday>
<DayOfWeek>Sunday</DayOfWeek>
<TimeOfDay>15:26</TimeOfDay>
<!--* <DayOfMonth>28</DayOfMonth> not allowed -->
</Weekday>
</Scheduler>
<Scheduler>
<Time>
<!--* Not allowed:
* <DayOfWeek>Sunday</DayOfWeek>
* <DayOfMonth>28</DayOfMonth>
*-->
<TimeOfDay>15:26</TimeOfDay>
</Time>
</Scheduler>
</Root>
Another option, closer in structure to what the OP shows, would be:
<Root>
<Scheduler>
<Day/>
<DayOfWeek>Sunday</DayOfWeek>
</Scheduler>
<Scheduler>
<DayOfMonth/>
<DayOfWeek>Sunday</DayOfWeek>
<DayOfMonth>28</DayOfMonth>
</Scheduler>
<Scheduler>
<Weekday/>
<DayOfWeek>Sunday</DayOfWeek>
<TimeOfDay>15:26</TimeOfDay>
<!--* <DayOfMonth>28</DayOfMonth> not allowed -->
</Scheduler>
<Scheduler>
<Time/>
<!--* Not allowed:
* <DayOfWeek>Sunday</DayOfWeek>
* <DayOfMonth>28</DayOfMonth>
*-->
<TimeOfDay>15:26</TimeOfDay>
</Scheduler>
</Root>
With either design, the appropriate constraints are trivial to define.