代码之家  ›  专栏  ›  技术社区  ›  asgerhallas

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

  •  11
  • asgerhallas  · 技术社区  · 16 年前

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

    我环顾四周,发现的几个图书馆都很旧,似乎不再受支持了。Schematron在2002年只是“热门”吗? 是否有任何库可以在C中进行验证,或者如何进行验证?

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

    1 回复  |  直到 7 年前
        1
  •  13
  •   Scott Saad    16 年前

    值得一提的是,这是我的经验…

    我曾经希望模式能够在业务规则验证方面做得更多。但是,在我的经验中,有一个模式可以定义一个数据协定(格式、类型等)。 不是 执行业务规则。试图让它更容易遇到各种各样的问题,也许这就是为什么Schematron在它的受欢迎程度上似乎已经消亡了(很可能是坏的假设,我不能支持)。

    要解决这一问题,通常可以采用两步走法:

    • 使用模式验证验证XML结构/数据类型等。
    • 根据XML应用业务规则检查(在正常的C代码中)。

    我理解,如果你想做一个完整的验证方法,但试图使用模式,从长远来看会导致更多的头痛。最后,您将通过隔离到代码来更好地控制业务规则检查。

    推荐文章