作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
对于我的 Web 服务请求,我想区分请求的 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"/>
如何从我的 java 代码生成 nillable = "true"
? ...并且仍然在我的代码中使用 JAXBElement 及其方法,例如 isNil()
...
更新:我在 glassfish 上部署代码,因此 glassfish 是生成 wsdl 和 xsd 的代码。
最佳答案
在您的 Java 类中使用 @XmlElement(nillable = true)
@XmlElement(nillable=true)
public String getAString() {
return AString;
}
关于java - JAXBElementRef 不生成 nillable ="true",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20070878/
对于我的 Web 服务请求,我想区分请求的 null 值和缺少的标记。换句话说,我需要以下元素定义: 我开发了 web 服务代码优先,所以我使用 JAXBElementRef 定义了元素: @Xml
我是一名优秀的程序员,十分优秀!