Hello,
I am trying to do something that seems like it should be pretty
straightforward, but when I generate code using wsdl2java, I end up with
multiple versions of the same classes. Using the example WSDL below, I end up
with both a GetClientInfo.java and a GetClientInfo_type0.java class that are
identical. I am assuming this is because in the GetClientInfoFull element, I
am including a reference to the GetClientInfo element. I cannot modify the
declaration of the GetClientInfo element because in my actual situation that is
defined in a schema that I do not own. I am trying to create a "wrapper"
element that contains both information that our system requires and the element
defined by the other schema.
I just want one GetClientInfo class. . . is there a wsdl2java option that I am
missing that will prevent the creation of this extra "_type0" class? I am
using Axis2 v1.5.3.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="Sample"
targetNamespace="http://www.test.com/services"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://www.test.com/services"
xmlns:ns1="http://www.test.com/xsd"
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xs:schema attributeFormDefault="qualified"
elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.test.com/xsd" targetNamespace="http://www.test.com/xsd">
<xs:element name="GetClientInfoFull">
<xs:complexType>
<xs:sequence>
<xs:element name="header" type="xs:string"/>
<xs:element ref="GetClientInfo"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GetClientInfoFullResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="header" type="xs:string"/>
<xs:element ref="GetClientInfoResponse"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ServiceFault">
<xs:complexType>
<xs:sequence>
<xs:element name="localErrorCode" type="xs:string"/>
<xs:element name="localErrorDescription"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GetClientInfo">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="ClientAcctNbr"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GetClientInfoResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="GetClientInfoResult"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="getClientInfoRequest">
<wsdl:part name="parameters" element="ns1:GetClientInfoFull"/>
</wsdl:message>
<wsdl:message name="getClientInfoResponse">
<wsdl:part name="parameters" element="ns1:GetClientInfoFullResponse"/>
</wsdl:message>
<wsdl:message name="serviceFault">
<wsdl:part name="parameters" element="ns1:ServiceFault"/>
</wsdl:message>
<wsdl:portType name="TestPortType">
<wsdl:operation name="getClientInfo">
<wsdl:input name="GetClientInfoRequest"
message="tns:getClientInfoRequest" wsaw:Action="urn:getClientInfo"/>
<wsdl:output name="GetClientInfoResponse"
message="tns:getClientInfoResponse" wsaw:Action="urn:getClientInfoResponse"/>
<wsdl:fault name="ServiceFault" message="tns:serviceFault"
wsaw:Action="urn:serviceFault"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="TestServicesSOAP" type="tns:TestPortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getClientInfo">
<soap:operation soapAction="urn:getClientInfo" style="document"/>
<wsdl:input name="GetClientInfoRequest">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="GetClientInfoResponse">
<soap:body use="literal"/>
</wsdl:output>
<wsdl:fault name="ServiceFault">
<soap:fault name="ServiceFault" use="literal"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="TestServices">
<wsdl:port name="TestServicesSOAP" binding="tns:TestServicesSOAP">
<soap:address location="http://localhost/services/TestServices"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Thanks,
Wally