【问题标题】:Business logic validation with a Java XML parser使用 Java XML 解析器进行业务逻辑验证
【发布时间】:2016-03-14 16:11:11
【问题描述】:

我们在我们的应用程序中使用 JAXB 进行编组和编组。 XSD 验证由 JAXB 处理,业务逻辑验证由我们自己的代码处理。我们正在寻找一种以可配置方式处理业务逻辑验证的方法。

例如,当我们的应用程序接收到一个 XML 文件时,我们需要检查某些实体及其名称是否存在于我们的数据库中。

他们在 JAXB 中有什么方法,还是有更好的 API/Parser 可以通过某种配置使其更易于管理?如果没有,进行此类检查的最佳做法是什么?

【问题讨论】:

  • 解析时为什么要验证业务逻辑?首先解析,然后验证您已解析的内容。
  • 虽然这些是单独的操作,但并行运行它们是完全合理的。

标签: java xml validation xml-parsing jaxb


【解决方案1】:

如果您正在使用 Xerces 或 Saxon 等 XSD 1.1 处理器,那么您可以扩展 XSD 架构中的规则以包含以断言形式表示的业务规则。但是,有些人可能会建议您将语法检查和语义检查分开,特别是如果规则是由不同的人定义的。

另一种选择是 schematron:许多人主张使用 XSD 进行结构验证,然后使用 schematron 处理来检查业务规则。

如果 schematron 的表达能力不够好,那么要考虑的另一种方法是继续在您自己的代码中编写业务逻辑验证,但在 XSLT 中编写该代码,这使得它更具声明性(因此更容易更改)而不是用 Java 等低级语言编写。

【讨论】:

    猜你喜欢
    • 2013-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-26
    • 2010-10-12
    • 1970-01-01
    • 2015-06-28
    • 2023-04-01
    相关资源
    最近更新 更多