5

对于我的网络服务的请求,我想区分请求的null值和缺失的标签。换句话说,我需要以下元素定义:

<xs:element minOccurs="0" name="minzeronil" nillable="true" type="xs:string"/>

我首先开发了 Web 服务代码,因此我使用以下方法定义了元素JAXBElementRef

@XmlRegistry
public class ObjectFactory {

  @XmlElementDecl(name = "minzeronil", namespace = XmlNamespace.MY_SERVICE)
  public JAXBElement<String> createMinzeronil(final String value) {
    return new JAXBElement<String>(new QName(XmlNamespace.MY_SERVICE, "minzeronil"), String.class, value);
  }

}

现在,我希望nillable = "true"在元素的定义中看到。相反,我得到了:

<xs:element name="minzeronil" type="xs:string"/>
<xs:element ref="tns:minzeronil" minOccurs="0"/>

如何nillable = "true"从我的 java 代码生成?...并且仍然在我的代码中使用 JAXBElement 及其方法,例如isNil()...

更新:我在 glassfish 上部署代码,所以 glassfish 是生成 wsdl 和 xsd 的那个。

4

1 回答 1

0

@XmlElement(nillable = true)在你的 Java 类中使用

@XmlElement(nillable=true)
public String getAString() {
    return AString;
}

请参阅此堆栈溢出问题/答案

于 2013-11-21T22:02:07.357 回答