c# - 在 C# 中使用 Schematron/XSD 进行 XML 验证

标签 c# .net xml xsd schematron

我一直在寻找一种方法来对 XML 文档进行一些更高级的业务规则验证。到目前为止,Schematron 似乎能够满足我的需求。

我一直在四处寻找,我发现的几个库非常陈旧,似乎不再受支持。 Schematron 只是在 2002 年才“火爆”吗? 是否有任何库可以在 C# 中进行验证 - 或者我该怎么做?

或者是否有其他人可以进行高级验证并拥有 C# 库并且是标准化的?

最佳答案

无论如何,这是我的经验...

我曾经希望模式可以在业务规则验证方面做更多的事情。然而,根据我的经验,模式用于定义数据契约(格式、类型等)......NOT 用于执行业务规则。试图让它超过这个会遇到各种各样的问题,这可能就是为什么 Schematron 似乎已经不再受欢迎的原因(可能是我无法备份的错误假设)。

为了解决这个问题,通常可以采用两次通过的方法:

  • 使用模式验证来验证 xml 结构/数据类型等。
  • 应用业务规则检查 xml(在普通 c# 代码中)。

我理解您是否想采用一体化方法进行验证,但从长远来看尝试为此使用模式会导致更多麻烦。最后,您将通过隔离代码来更好地控制业务规则检查。

关于c# - 在 C# 中使用 Schematron/XSD 进行 XML 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/787554/

相关文章:

java - 获取文件中两个字符之间的所有子字符串

xml - Xquery 循环产生太多结果。错误的 "for"语句?

c# - 配置 ELMAH 让某些错误通过

.net - 如何使用 .NET 确定 Windows 上网络接口(interface)的绑定(bind)顺序?

c# - 如何让 WinForms 应用程序进入全屏模式

xml - 如果使用标准 linux 工具包含特定字符串,如何从 xml 文件中提取整个记录

c# - 在 MVC 中填充下拉列表

c# - SkiaSharp 镜像位图

c# - 为什么类型 System.__ComObject 声称(有时)是公开的,而实际上不是?

c# - 从 .NET 应用程序使用 OTRS TicketConnector