Hi,
I tried using the WSDL2Java tool of axis 2 using the following WSDL's.
Using the following valid WSDL it generates the java classes
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:ns1=" http://org.apache.axis2/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap=" http://schemas.xmlsoap.org/wsdl/soap/ " xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns=" http://org.apache.axis2/" targetNamespace=" http://org.apache.axis2/">
<wsdl:types>
<xs:schema xmlns:xs=" http://www.w3.org/2001/XMLSchema" xmlns:ns1=" http://org.apache.axis2/xsd" targetNamespace=" http://org.apache.axis2/xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="helloRequest">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="param0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="helloResponse">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="return"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="helloRequestMessage">
<wsdl:part name="part1" element="ns1:helloRequest"/>
</wsdl:message>
<wsdl:message name="helloResponseMessage">
<wsdl:part name="part1" element="ns1:helloResponse"/>
</wsdl:message>
<wsdl:portType name="EchoServicePort">
<wsdl:operation name="hello">
<wsdl:input message="tns:helloRequestMessage"/>
<wsdl:output message="tns:helloResponseMessage"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="EchoServiceBinding" type="tns:EchoServicePort">
<soap:binding transport=" http://schemas.xmlsoap.org/soap/http " style="document"/>
<wsdl:operation name="hello">
<soap:operation name="operation" soapAction="hello" style="document"/>
<wsdl:input>
<soap:body use="literal" namespace="http://www.org.apache.axis2"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal" namespace=" http://www.org.apache.axis2"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="EchoService">
<wsdl:port name="EchoServicePortType" binding="tns:EchoServiceBinding">
<soap:address location=" http://127.0.0.1:8080/axis2/services/EchoService "/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Then I deleted the message element corresponding to helloRequestMessage. Still it generates the classes for the following WSDL (with the helloRequestMessage element deleted)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:ns1=" http://org.apache.axis2/xsd" xmlns:xs=" http://www.w3.org/2001/XMLSchema" xmlns:soap=" http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl=" http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://org.apache.axis2/" targetNamespace=" http://org.apache.axis2/">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1=" http://org.apache.axis2/xsd " targetNamespace="http://org.apache.axis2/xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="helloRequest">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="param0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="helloResponse">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="return"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="helloResponseMessage">
<wsdl:part name="part1" element="ns1:helloResponse"/>
</wsdl:message>
<wsdl:portType name="EchoServicePort">
<wsdl:operation name="hello">
<wsdl:input message="tns:helloRequestMessage"/>
<wsdl:output message="tns:helloResponseMessage"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="EchoServiceBinding" type="tns:EchoServicePort">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<wsdl:operation name="hello">
<soap:operation name="operation" soapAction="hello" style="document"/>
<wsdl:input>
<soap:body use="literal" namespace=" http://www.org.apache.axis2"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal" namespace=" http://www.org.apache.axis2 "/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="EchoService">
<wsdl:port name="EchoServicePortType" binding="tns:EchoServiceBinding">
<soap:address location="http://127.0.0.1:8080/axis2/services/EchoService "/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Shouldn't this report an error instead of generating the java classes?
Thx,
Keith
I tried using the WSDL2Java tool of axis 2 using the following WSDL's.
Using the following valid WSDL it generates the java classes
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:ns1=" http://org.apache.axis2/xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soap=" http://schemas.xmlsoap.org/wsdl/soap/ " xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns=" http://org.apache.axis2/" targetNamespace=" http://org.apache.axis2/">
<wsdl:types>
<xs:schema xmlns:xs=" http://www.w3.org/2001/XMLSchema" xmlns:ns1=" http://org.apache.axis2/xsd" targetNamespace=" http://org.apache.axis2/xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="helloRequest">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="param0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="helloResponse">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="return"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="helloRequestMessage">
<wsdl:part name="part1" element="ns1:helloRequest"/>
</wsdl:message>
<wsdl:message name="helloResponseMessage">
<wsdl:part name="part1" element="ns1:helloResponse"/>
</wsdl:message>
<wsdl:portType name="EchoServicePort">
<wsdl:operation name="hello">
<wsdl:input message="tns:helloRequestMessage"/>
<wsdl:output message="tns:helloResponseMessage"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="EchoServiceBinding" type="tns:EchoServicePort">
<soap:binding transport=" http://schemas.xmlsoap.org/soap/http " style="document"/>
<wsdl:operation name="hello">
<soap:operation name="operation" soapAction="hello" style="document"/>
<wsdl:input>
<soap:body use="literal" namespace="http://www.org.apache.axis2"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal" namespace=" http://www.org.apache.axis2"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="EchoService">
<wsdl:port name="EchoServicePortType" binding="tns:EchoServiceBinding">
<soap:address location=" http://127.0.0.1:8080/axis2/services/EchoService "/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Then I deleted the message element corresponding to helloRequestMessage. Still it generates the classes for the following WSDL (with the helloRequestMessage element deleted)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:ns1=" http://org.apache.axis2/xsd" xmlns:xs=" http://www.w3.org/2001/XMLSchema" xmlns:soap=" http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl=" http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://org.apache.axis2/" targetNamespace=" http://org.apache.axis2/">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1=" http://org.apache.axis2/xsd " targetNamespace="http://org.apache.axis2/xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="helloRequest">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="param0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="helloResponse">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="return"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:message name="helloResponseMessage">
<wsdl:part name="part1" element="ns1:helloResponse"/>
</wsdl:message>
<wsdl:portType name="EchoServicePort">
<wsdl:operation name="hello">
<wsdl:input message="tns:helloRequestMessage"/>
<wsdl:output message="tns:helloResponseMessage"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="EchoServiceBinding" type="tns:EchoServicePort">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<wsdl:operation name="hello">
<soap:operation name="operation" soapAction="hello" style="document"/>
<wsdl:input>
<soap:body use="literal" namespace=" http://www.org.apache.axis2"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal" namespace=" http://www.org.apache.axis2 "/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="EchoService">
<wsdl:port name="EchoServicePortType" binding="tns:EchoServiceBinding">
<soap:address location="http://127.0.0.1:8080/axis2/services/EchoService "/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Shouldn't this report an error instead of generating the java classes?
Thx,
