【问题标题】:Java: Is there any possibility to check a String against a SimpleType from a XML schema with Java?Java:是否有可能使用 Java 从 XML 模式中针对 SimpleType 检查字符串?
【发布时间】:2011-10-15 17:24:15
【问题描述】:

我有一个非常复杂的 XML-Schema(它是由 Swift 设计的 :-) 声明了许多 simpleTypes,它们将在 Schema-Validation 中使用。

现在在我的 Java-Web-Application 中,我有一些输入字段应该具有与 XML-Schema 中描述的相同的验证规则。对于每个输入字段,我都知道架构中对应的 SimpleType。那么有没有可能根据架构中定义的规则检查我从输入字段中获得的字符串?

我不想使用 Jaxb 从架构中生成 Java-Object-Model,因为该架构非常复杂,而且类型会导致近 100 个 Java 类仅用于一个架构定义。

【问题讨论】:

    标签: java validation xsd


    【解决方案1】:

    您可以潜在地利用javax.xml.validation API 并验证您在内存中生成并保存您的简单类型的小型 XML sn-ps。

    您可以找到一些 API 使用示例here。而不是从磁盘加载 XML 源文件,您将从例如流式传输它。字节数组输入流。

    也许您需要生成另一个依赖于来自 Swift 的 XSD 的模式,以便为每个简单类型提供一个元素,以便更轻松地生成 XML sn-ps。

    编辑:另一种可能性是使用与 SWIFT 配合使用的 Java 库之一。这个问题给出了一些概述:Java SWIFT Library

    【讨论】:

      【解决方案2】:

      我不知道任何从 XSD 简单类型自动生成的 Java 验证模型。即使有 JAXB 或 XMLBeans 限制,例如 XSD 模式,也不适用于生成的 Java 代码(您会看到用于播放 String 对象的 getter/setter)。

      由于您不想使用 JAXB 模型,因此您可以只使用 XML 处理器的 XSD 验证。因此,要检查您需要创建有效(最小)XML 并通过支持 XSD 验证的 XML 处理器(Xerces DOM 可以)来处理它的值。如果验证通过,您就知道输入数据是正确的。

      【讨论】:

      • 看来这只能通过更多的编码工作来解决。感谢您的深思!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-29
      • 2014-07-29
      • 2016-02-10
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      相关资源
      最近更新 更多