我相信这与keyref
但我不确定,我真的不确定它是否可以完成。
例如,假设我有 myElement1 和 myElement2。如果 XML 文件中没有 myElement2,则 myElement1 必须存在,否则为可选。
有没有办法在我的 XSD 文件中强制进行这种类型的验证?
我相信这与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
我的建议是为下面定义的每种情况创建 XSD:
像这样的案例:
并为此创建自己的 XML。