具有自定义错误消息的复杂XML验证

时间:2016-03-30 16:22:15

标签: xml xpath schematron

我一直在寻找能够让我的技术:

  1. 验证复杂(大型结构,许多可选子元素/序列,固定顺序等) XML ;
  2. 为每个检查/规则检查/规则定义自定义错误消息(类似XSD处理器的错误对我没用);
  3. 有效地定义验证架构/规则,如果可能,以人类可读方式定义;
  4. 换句话说,像 Schematron (允许自定义错误消息,可读等等),但对于复杂的结构检查仍然很优雅(对于诸如订单检查之类的事情,XPath是低效的)

    是否有一些适合我所描述的需求的合适技术?我可以使用Schematron和(过时的)工具,比如 XSD2SCH ,虽然使用这些工具的结果似乎真的很古怪。

    由于

1 个答案:

答案 0 :(得分:0)

您可以尝试混合使用XSD和Schematron。利用XSD的排序,标签计数,tage数据类型功能。然后,对于其他复杂的验证,您可以使用Schematron。

XSD给出的错误信息对于人类来说有点困难,但它非常强大。

您可以尝试查看是否存在了解XSD 1.1语义的库。我们尝试的时候没有找到支持。所以我们采用了XSD和Schematron的组合