【问题标题】:JiBX Validation against a XSD Schema when unmarshalling to POJO解组到 POJO 时针对 XSD 模式进行 JiBX 验证
【发布时间】:2012-03-27 17:21:15
【问题描述】:

我在网上找不到任何解释如何在解组阶段根据现有 XSD 架构验证 XML 的示例。

目前我有哪个工作正常:

IBindingFactory bfact = BindingDirectory
    .getFactory(aClass.class);
IUnmarshallingContext uctx = bfact.createUnmarshallingContext();
    return (aClass) uctx.unmarshalDocument(new FileInputStream(
          fname), null);
} catch (FileNotFoundException e) {
     throw new IOException(e);
    } catch (JiBXException e) {
     throw new IOException(e);
}

但是在这个过程中,我可以告诉 Jibx 在解组到对象之前根据模式验证 XML 吗? JiBX 甚至可以吗?我看到了使用 JaxB 的示例,但没有看到使用 JibX 的示例。

【问题讨论】:

    标签: xml xsd unmarshalling jibx


    【解决方案1】:

    JiBX 不支持从头开始的完全验证。

    您必须创建一个 javax.xml.stream.XMLInputFactory 并使用支持验证的实现(例如 Sun 作为其 JDK 的一部分提供的实现),然后调用 setProperty(XMLInputFactory.IS_VALIDATING, Boolean.TRUE) 并创建带有 createXMLStreamReader() 调用的实际解析器。

    一旦您拥有输入的验证解析器,您就可以使用 org.jibx.runtime.impl.StAXReaderWrapper 构造函数将其包装为 IXMLReader 实例,然后可以在您的 org.jibx.runtime.impl 上设置该实例。 UnmarshallingContext 解组上下文实例。

    奇怪,我知道,你可以在这里找到一个更容易的请求JIBX-381

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      • 2011-02-07
      • 2014-07-13
      • 2013-10-30
      相关资源
      最近更新 更多