XML架构验证 - 现场验证
问题描述:
这是我想解决的场景/问题 - 在我的XSD中的一系列元素中,我有一个元素 - 比如说XYZ,如果上述其中之一元素 - 说ABC - 有一定的价值 - 说“阿尔法”。如果前面的元素 - ABC具有不同的值,那么元素XYZ必须不能为空。XML架构验证 - 现场验证
解决此问题的最佳方法是什么?
我使用C#& SQL服务器。
是否可以在XSD中定义新的属性?
答
确实应该修正XSD以控制元素和属性的结构和格式。您试图执行的是实施业务规则,这些规则无法使用XSD进行验证。
但是,可用于XML实现业务规则的框架,它被称为Schematron的ISO标准。 Schematron基本上使用XPath的组合来实现逻辑和XSLT来执行验证。
有这个知道的Schematron.NET一个.NET项目。
这可能是有趣的阅读 'Improving XML Document Validation with Schematron'。