【发布时间】:2012-12-05 07:28:28
【问题描述】:
【问题讨论】:
【问题讨论】:
它用于在 WSDL 定义中包含那些其父级显示为返回类型或参数的类型。考虑一个非常简单的例子:
public class DemoService {
public Animal pickRandomAnimal() {
return new Dog(); // or any other animal
}
}
.. 其中 Animal 是一个接口。在 WSDL 生成时,Axis2 将无法自动跟踪您可能期望返回的所有可能的 Animal 实现。如果没有 extraClasses,你会得到这样的结果:
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://demo.com/xsd">
<xs:complexType name="Animal">
<xs:sequence>
<xs:element minOccurs="0" name="animalName" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
.. 如果您添加 extraClasses="com.demo.Dog",您将在您的 WSDL 模式部分中涵盖您需要的所有类型:
<xs:schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://demo.com/xsd">
<xs:complexType name="Animal">
<xs:sequence>
<xs:element minOccurs="0" name="animalName" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Dog">
<xs:sequence>
<xs:element minOccurs="0" name="animalName" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
【讨论】: