【问题标题】:JAX-B mapping String to JAXBElement<String>JAX-B 将字符串映射到 JAXBElement<String>
【发布时间】:2013-07-05 15:40:31
【问题描述】:

我正在尝试做一些应该相对简单的事情,向我的根元素添加一个仅包含字符串的子类。然而在客户端,这个对象映射了 JAXBElement 而不是字符串。见下文:

public class Foo {
    protected Bar barObject;
}

public class Bar {
    @XmlElement(nillable = true)
    protected String barName;
}

生成的 Bar bean 如下所示。

public class Bar {
    @XmlElementRef(name = "barName", type = JAXBElement.class, required = false)
    protected JAXBElement<String> barString;
}

我确定这是在踢死马,但我在任何地方都没有看到对这种行为的明确解释。

【问题讨论】:

    标签: java xml jaxb jax-ws


    【解决方案1】:

    如果对应的元素是nillalbe="true"minOccurs-"0",则JAXB 实现将生成JAXBElement 类型的属性。这样它就可以往返两个州。

    <element name="barName" type="string" nillable="true" minOccurs="0"/>
    

    您可以通过在@XmlElement 上指定required 标志来创建元素minOccurs="1"

    @XmlElement(nillable = true, required=true)
    protected String barName;
    

    【讨论】:

      猜你喜欢
      • 2018-02-11
      • 2011-02-10
      • 1970-01-01
      • 2015-12-08
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 2012-08-21
      • 2019-04-09
      相关资源
      最近更新 更多