XML Schema验证 - 字段内验证

时间:2011-03-26 18:35:40

标签: c# sql-server xml xsd schema-design

这是我想要解决的场景/问题 - 在我的XSD中的一系列元素中,我有一个元素 - 比如说 XYZ ,如果前面的元素之一可以是nillable - 说 ABC - 有一定的价值 - 比如说“Alpha”。如果前一个元素 - ABC 具有不同的值,则元素 XYZ 必须不可为空。

解决此问题的最佳方法是什么?

我正在使用C#& SQL Server。

是否可以在XSD中定义新属性?

1 个答案:

答案 0 :(得分:4)

确实应修复XSD以控制元素和属性的结构和格式。您尝试执行的操作是实现无法使用XSD验证的业务规则。

但是,有一个框架可用于在XML中实现业务规则,它是一个名为Schematron的ISO标准。 Schematron基本上使用XPath的组合来实现逻辑,并使用XSLT来执行验证。

有一个.NET项目,我们称之为Schematron.NET

这可能是有趣的阅读'Improving XML Document Validation with Schematron'。