我认为这与keyref
有关,但我不确定,我真的不确定它是否可以完成。
例如,假设我有myElement1和myElement2。如果XML文件中没有myElement2,则myElement1必须存在,否则它是可选的。
有没有办法在我的XSD文件中强制进行这种类型的验证?
答案 0 :(得分:24)
在stackoverflow或任何技术博客中已多次提出类似的问题..
但答案总是不可能,
例如:
(a)根据任何其他元素/属性的值或存在来验证元素
(b)根据任何其他元素/属性的值或存在来验证元素的值
(c)根据任何其他元素/属性的值或存在来验证属性
(d)定义在相同范围内具有不同类型/数据类型的同名元素/属性
(e)根据任何其他元素/属性的价值或存在来验证子元素
所有上述案例都无法实现..
但如果你能实现一些转型的话......那么你可以得到帮助。 我的意思是“首先按照你的要求进行转换并修改XML,
example ::如果期望特定字段具有某个值..如果条件满足则传递XML,如果不满足则不传递.. 在下一个块中,XSD将验证并明显错误:)你可以发现它缺少你的自定义验证..
无论如何,目的是根据数据阻止或传递 xml ..这就是你在做什么..
注意:Schematron最近已经成名了!以下是教程:http://zvon.org/xxl/SchematronTutorial/General/contents.html
答案 1 :(得分:1)
我建议为下面定义的每个案例创建XSD:
案例如:
为此创建自己的XML。