定义dateTime类型的元素,可以为nillable,为空或不存在

时间:2019-12-11 16:34:53

标签: java xml xsd cxf

正如标题中所述,我在创建类型为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元素,但是恐怕它可能太复杂了。

这是实现我所需要的任何简单方法吗?

0 个答案:

没有答案