正如标题中所述,我在创建类型为xs:dateTime的xs:element时遇到问题,该值可以为nillable(nillable =“ true”),没有任何值(为空)或不存在(minOccurs =“ 0”),并将能够在WSDL中保留该类型。
现在我的元素看起来像这样:
<xs:element name="dateImUsing" type="xs:dateTime" nillable="true" minOccurs="0">
这应该没问题,但是cxf却以某种方式将在WSDL中看到的元素的类型更改为anySimpleType。仅使用nillable或minOccurs属性之一可以很好地工作并且保留类型。
理想情况下,此元素(在生成的Java类中存在)应该用JAXBElement<XMLGregorianCalendar>
包装,但也可以只是XMLGregorianCalendar
。
我已经尝试了所有我能想到的解决方案,包括自定义绑定,使用工会创建可以为可为null的dateTime或空字符串的类型等。我考虑过创建一个最小长度为“ 0”的列表且最大长度为“ 1”且具有可为空的dateType元素,但是恐怕它可能太复杂了。
这是实现我所需要的任何简单方法吗?