有没有办法在标签值上添加条件? 例如,我的xml看起来像这样:
<Root>
<Scheduler>
<DateTimeType>DAY</DateTimeType>
<DayOfWeek>Sunday</DayOfWeek> <!-- TAG IS ALLOWED -->
</Scheduler>
<Scheduler>
<DateTimeType>MONTH</DateTimeType>
<DayOfWeek>Sunday</DayOfWeek> <!-- TAG IS NOT ALLOWED -->
<DayOfMonth>28</DayOfMonth> <!-- TAG IS ALLOWED -->
</Scheduler>
<Scheduler>
<DateTimeType>WEEKDAY</DateTimeType>
<DayOfWeek>Sunday</DayOfWeek> <!-- TAG IS ALLOWED -->
<TimeOfDay>15:26</TimeOfDay> <!-- TAG IS ALLOWED -->
<DayOfMonth>28</DayOfMonth> <!-- TAG IS NOT ALLOWED -->
</Scheduler>
<Scheduler>
<DateTimeType>TIME</DateTimeType>
<DayOfWeek>Sunday</DayOfWeek> <!-- TAG IS NOT ALLOWED -->
<DayOfMonth>28</DayOfMonth> <!-- TAG IS NOT ALLOWED -->
<TimeOfDay>15:26</TimeOfDay> <!-- TAG IS ALLOWED -->
</Scheduler>
</Root>
我需要一个允许/不允许在我的xml中使用这些条件的XSD方案。
感谢。
答案 0 :(得分:1)
如果DateTimeType是一个属性,可以使用条件类型赋值方便地完成。但如果它必须是子元素,则可以使用断言来完成,例如
<xs:assertion test="not(DateTimeType = 'MONTH' and exists(DayOfWeek)"/>
顺便说一句,它们不是被称为标签,它们被称为元素。元素通常具有两个标记,即开始标记和结束标记。使用正确的术语有很多好处,例如,您会发现您开始更好地理解错误消息中使用的语言。