【发布时间】:2016-01-20 01:08:09
【问题描述】:
我正在使用 cxf wsdl2java 命令行命令来生成客户端(java 文件)。我的 xsd 看起来像这样 -
<xs:complexType name="ArrayOfString">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="string" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ConfirmSMSResults">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="1" minOccurs="1" name="sessionId" type="xs:string"/>
<xs:element maxOccurs="1" minOccurs="1" name="smsIds" type="tns:ArrayOfString"/>
</xs:sequence>
</xs:complexType>
生成的java文件ConfirmSMSResults.java有这样的东西
@XmlElement(required = true)
protected ArrayOfString smsIds;
应该在哪里protected String[] smsIds;
我在xsd 文件中定义的date 数据类型遇到了类似的问题,它被转换为XMLGregorianCalendar。但是,我通过使用外部 xjb 文件并在那里定义绑定来解决它。可以找到here。对于 Array 的问题,我似乎找不到类似的东西。
提前谢谢你。
【问题讨论】:
-
问题不就是这个
type="tns:ArrayOfString"吗?ArrayOfString实际上是它从您的 complexType 为您创建的对象。 -
@jbx 哦,我怎么没看到。我解决了这个问题。以防万一,我将在下面发布解决方案。