Xml 以xsd中的值为条件
有没有办法在标记值上添加条件? 例如,我的xml如下所示:Xml 以xsd中的值为条件,xml,xsd,xsd-validation,xsd-1.1,Xml,Xsd,Xsd Validation,Xsd 1.1,有没有办法在标记值上添加条件? 例如,我的xml如下所示: <Root> <Scheduler> <DateTimeType>DAY</DateTimeType> <DayOfWeek>Sunday</DayOfWeek> <!-- TAG IS ALLOWED --> </Scheduler> <Scheduler> <DateTimeType>MONTH
<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>
白天
星期天
月
星期天
28
周工作日
星期天
15:26
28
时间
星期天
28
15:26
我需要一个XSD方案,在xml中允许/不允许这些条件
谢谢。如果DateTimeType是一个属性,那么可以使用条件类型分配方便地完成。但如果必须是子元素,则可以使用断言(例如)来实现
<xs:assertion test="not(DateTimeType = 'MONTH' and exists(DayOfWeek)"/>
顺便说一下,它们不是标签,而是元素。一个元素通常有两个标记,一个开始标记和一个结束标记。使用正确的术语有很多好处,例如,您会发现您开始更好地理解错误消息中使用的语言