自定义 XML 文档的验证模式

Posted

技术标签:

【中文标题】自定义 XML 文档的验证模式【英文标题】:Validation Patterns for Custom XML Documents 【发布时间】:2010-09-06 04:58:44 【问题描述】:

我有一个 Web 应用程序,它生成一个中等大小的 XML 数据集,供第三方使用。 我认为为我生成的 XML 提供某种形式的架构文档是个好主意,因此我将 XML 粘贴到 Visual Studio 并让它生成 XSD。 烦人的是我的 XML 没有验证生成的 XSD!

推出自己的 XSD 会更好吗? 不同的模式文档(如 DTD、Relax NG 或 Schematron)呢?

关键是我希望能够使用 C# 验证我的文档。

您的 XML 验证策略是什么?

【问题讨论】:

【参考方案1】:

您是否选择 XSD 和/或 Schematron 取决于您要验证的内容。 XSD 可能是最常见的验证策略,但它可以验证的内容是有限的。如果您只想确保每个字段中的数据类型正确,那么 XSD 应该适合您。例如,如果您需要断言 元素的值小于 元素的值,或者甚至涉及多个字段的更复杂的业务规则,您可能需要 Schematron 或混合方法。

【讨论】:

【参考方案2】:

您将能够使用 XML Schema 或使用 C# 的 DTD 来验证您的 XML。与 XML Schema 相比,DTD 是较旧的标准。

所以,我推荐一种 XML Schema 方法。

【讨论】:

以上是关于自定义 XML 文档的验证模式的主要内容,如果未能解决你的问题,请参考以下文章

如何定义XSD并在XML中使用XSD

XML DTD

如何为 validation-constraints.xml 中定义的验证注册自定义 ConstraintMapping

具有 Spring Security 和 Java Config 的自定义身份验证提供程序

XML-Schema验证

在 Java 中解析各种自定义 XML 文档的最佳方法