我想使用wsimport maven插件从wsdl生成客户端存根,这很有效,但有一个问题:我有两个对象应该链接到更多但是afetr这一代是donne,它并不完美
<types>
<xsd:schema elementFormDefault="qualified" targetNamespace="http://www.hello.com/ns/xsd/boba/restitution-restituerCarriereAvecValo.xsd">
<xsd:import namespace="http://www.hello.com/holla/infosRetour.xsd" schemaLocation="xsd/infosRetour.xsd"/>
<xsd:import namespace="http://www.hello.com/ns/wsdl/boba/messageRetourModuleValorisation.xsd" schemaLocation="xsd/messageRetourModuleValorisation.xsd"/>
<xsd:element name="messageIn" type="xsd:anyType"/>
<xsd:element name="messageOut">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="ir:infosRetour">
<xsd:choice>
<xsd:element name="messageRetour" type="xsd:anyType"/>
<xsd:element name="rejetControleSyntaxiqueSemantique" type="xsd:anyType"/>
<xsd:element name="rejetControleIdentification" type="xsd:anyType"/>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</types>
此处我的对象messageOut
应该有一个messageRetour
类的字段messageRetour
,但是当我看到我的班级messageOut
时,此字段被设置为对象而不是被提到的字段类。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"messageRetour",
"rejetControleSyntaxiqueSemantique",
"rejetControleIdentification"
})
@XmlRootElement(name = "messageOut")
public class MessageOut
extends InfosRetour
{
protected Object messageRetour;
protected Object rejetControleSyntaxiqueSemantique;
protected Object rejetControleIdentification;
正如你在这里看到的那样是生成的子类,你可以看到有一个名为messageRetour
的类
我如何更改此类型作为一个类而不是作为对象?
即使我将这一行<xsd:element name="messageRetour" type="xsd:anyType"/>
变为<xsd:element name="messageRetour"/>
我也得到同样的问题,总是对象而不是一个类
答案 0 :(得分:0)
由于Object
类型,您获得xsd:anyType
。
您应该将<xsd:element name="messageRetour" type="xsd:anyType"/>
的类型更改为messageRetour
类型。
此类型可能由您导入的其中一个模式提供。我不确定具体的名称,可能是MessageRetour
或messageRetour
或message-retour
,类似的东西。所以它可能会像:
<xsd:element name="messageRetour" type="ir:messageRetour"/>
如果类型由其他导入的模式提供,则可能需要先声明名称空间前缀(如xmlns:mrmv="http://www.hello.com/ns/wsdl/boba/messageRetourModuleValorisation.xsd"
),然后使用mrmv:messageRetour
作为类型。