我相信这与keyref有关,但我不确定,我真的不确定它可以完成.
比如说我有myElement1和myElement2.如果XML文件中没有myElement2,那么myElement1必须存在,否则它是可选的.
有没有办法强制这种类型的验证在我的XSD文件?
类似的问题已经被问了几次..在stackoverflow或任何科技博客..
但答案总是不可能的,
案例如:
(a)根据任何其他元素/属性的值或存在来验证元素
(b)根据任何其他元素/属性的值或存在来验证元素的值
(c)根据任何其他元素/属性的值或存在来验证属性
(d)在同一范围内定义具有不同类型/数据类型的同名的元素/属性
(e)根据任何其他元素/属性的价值或存在来验证子元素
所有上述情况都是不可能实现的
但是如果可以实现一些转换的东西,那么你可以得到帮助.
我的意思是说,“首先要按照你的要求进行转换和修改XML,
示例::如果特定字段预期具有某些值..如果条件满足则传递XML,如果不符合则不通过
在下一个程序块中,XSD将要验证,显然是错误的:)你可以弄清楚它缺少你的自定义验证.
无论如何,意图是根据数据阻止或传递xml.这就是你在做什么..
注意:Schematron最近已经进入了良好的做法!这是教程:http://zvon.org/xxl/SchematronTutorial/General/contents.html