【问题标题】:C# .Net Xml Schematron ValidationC# .Net Xml Schematron 验证
【发布时间】:2018-01-13 19:34:09
【问题描述】:

我有一组 XML 以及 XSD/Schematron 文档用于验证。我必须针对 XSD 验证我的 XML(用于数据类型/结构/模式验证),这很简单。具有挑战性的部分是 Schematron 验证,这是客户对业务规则验证等的要求。

如何使用 C# 实现 Schematron 验证,如果可能的话,是否有任何用于 Schematron 验证的良好/活动框架/API。到目前为止,我发现用于 Schematron 验证的过时/非活动项目缺乏文档和 API 完整性。顺便说一句,我成功地使用了几个 XML 编辑器应用程序(Oxygen 等)来针对 Schematron 验证我的文档,但我需要在 C# 中以编程方式执行此操作并将此功能添加到更大的项目中。 提前致谢。

【问题讨论】:

  • 生成xml时不能。但是在生成 xml 之后,您可以使用模式读取它,如果它读取正确,那么您已经验证了它。
  • @jdweng 不用说我不是在谈论动态验证(即在生成 xml 时);我说的是生成 xml 后的验证。因此,您建议使用 Schematron 读取的普通 xml(就像 XSD 一样)。我说的对吗?
  • 是的。在 xml 生成期间(即时)验证的唯一方法是使用 xml 序列化并在序列化中引用模式。

标签: c# xml validation xsd schematron


【解决方案1】:

Schematron 有多种格式,您正在研究哪一种? .net 中没有框架。将 schematron 转换为 xslt 并以简单稳定的方式使用它。检查这个项目的 sch -> xslt: https://github.com/Schematron/stf/tree/master/iso-schematron-xslt2

【讨论】:

  • 我说的是 ISO Schematron 格式。我只是想知道一个框架/api 而不是 XSLT 转换方法。谢谢。
  • 你可以找到像 altova s​​dk 这样的付费解决方案。
  • 在这种情况下,付费解决方案不适用于我们。我不得不使用 Java Schematron 验证技术,我从 c# 调用了 java jar。
  • 我认为这不是一个好主意。因为 java 没有使用与 .net 相同的环境(例如网络代理)。您可以使用 IKVM for .net 从您的 jar 包中创建 dll。 ikvm.net
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多