【问题标题】:Jaxb to produce Empty Tag for null valuesJaxb 为空值生成空标签
【发布时间】:2015-10-21 12:31:31
【问题描述】:

我正在集成两个系统,它们通过服务使用 XML 交换数据。接口由对方提供,我们使用 JAXB 生成 Java 类。 我完成了集成并且工作正常。

问题:我们有复杂的 XML 结构,一些元素和复杂元素是可选的。当我们发回时,显然它们是空的,所以 Jaxb 不会作为空标签发送。其他系统需要那些空标签(可能用于审计)

我正在使用 Java/JAXB 来完成我的工作。

请帮助我获得可以申请所有服务的快速通用解决方案。

【问题讨论】:

  • JAXB (JSR-222) 默认情况下不会为空值封送属性/元素。但是 Moxy's 有一个 @XmlNullPolicy,你可能会感兴趣。
  • 我能得到更多关于 Moxy 的详细信息吗

标签: java xml jaxb


【解决方案1】:

在 XSD 中,我们有一个名为 nillable 的属性,通过指定此 JAXB 将其视为 Null 值的元素。 好吧,我可以说“从服务点来看,元素不再是可选的,因为 Jaxb 肯定会生成元素”。即使您检查 XMLSPY 中的 XSD,您也可以看到该元素不是可选的。基本上 Jaxb 将 null 值视为有效值。

现在还有另一种无法解决的情况是复杂的可选元素。我的意思是,如果有人想生成具有空值的多级可选元素,JAXB 将父元素设为可空,而子元素将被忽略。我不确定 JAXB 在这里是如何工作的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 2013-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多