【问题标题】:jaxb annotations to suppress xmlns in soap response在soap响应中抑制xmlns的jaxb注释
【发布时间】:2013-05-09 07:03:47
【问题描述】:

最初,我的 POJO 中有所有没有注释的字段,这些字段在 Soap Response 中显示得很好

<fieldName>value</fieldName>

现在我需要显示字段,即使值为空;然后我为这些字段添加了注释 @XmlElement(nillable = true)

现在在我的肥皂响应中,它显示为:

<fieldName xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>

我不想在我的肥皂响应中显示 xsi、xmlns 等;我怎么做?

在字段级别、类级别等显示 jaxb 中所有注释的任何链接?

【问题讨论】:

    标签: jaxb annotations


    【解决方案1】:

    嗯,首先要知道,

    <fieldName/>
    

    <fieldName xsi:nil="true"/>
    

    本质上是不同的。第一个将使用"" 填充字符串字段。后者将使用null 填充它。

    不幸的是,对于值为 null 的字段,XmlAdapters 的行为取决于 JAXB 实现 - JDK 实现根本不会调用适配器。

    一种解决方案是使用@XmlAccessorType(PROPERTY) 并实现getter 以返回"" 而不是null

    Eclipselink JAXB (MOXy) 好像可以搞定。

    我在这里找到了类似的讨论:XmlAdapter not working as expected in JAXB RI

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-20
      • 1970-01-01
      • 2017-06-23
      • 2013-08-02
      • 2010-10-02
      相关资源
      最近更新 更多