通过XSD限制基于另一个元素的XML元素
-
29-09-2019 - |
题
我相信这与 keyref
但是我不确定,我真的不确定是否可以做到。
例如,假设我有mylelement1和mylement2。如果XML文件中没有myElement2,则必须存在myElement1,否则是可选的。
有什么方法可以在我的XSD文件中强制这种验证?
解决方案
在Stackoverflow或任何技术博客中都提出了几次类似的问题。
但是答案总是 不可能,
例如:
(a)根据任何其他元素/属性的价值或存在验证元素
(b)根据任何其他元素/属性的值或存在来验证元素的值
(c)根据任何其他元素/属性的价值或存在验证属性
(d)在同一范围下定义具有不同类型/数据类型的同名元素/属性
(e)根据任何其他元素/属性的价值或存在来验证子元素
上述所有提到的案例都是无法实现的。
但是,如果您可以实施一些转换的事情。那么您可以获得帮助。我的意思是“首先经过转换并根据您的要求修改XML,
示例::如果预期的特定字段具有一定的值。。将XML传递,就像如果不满足条件,如果不满足,则不会通过。.在下一个块中,XSD将要验证,并且显然错误地出现了:)您可以弄清楚它缺少您的自定义验证。
无论如何意图是 堵塞 或者 经过 XML根据数据..,这就是您正在做的。
笔记: 图型 最近已经做好了练习!这是教程: http://zvon.org/xxl/schematrontutorial/general/contents.html
其他提示
我建议的是为下面定义的每种情况创建XSD:
例如:
- 根据任何其他元素/属性的值或存在来验证元素。
- 根据任何其他元素/属性的值或存在来验证元素的值。
- 根据任何其他元素/属性的值或存在验证属性。
- 不允许忽略(随机)元素/属性。 (我的意思是说使用限制。)
- 具有不同数据类型的同名元素/属性。
- 根据任何其他元素/属性的价值或存在来验证子元素。
并为此创建自己的XML。
不隶属于 StackOverflow