Hello,
I trie for a long time to generate my client classes from a wsdl file with wsimport. The wsdl file was generated by gsoap.
Here, the wsdl file :
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="form"
targetNamespace="https://enterprise-name-masked.com/form.wsdl"
xmlns:tns="https://enterprise-name-masked.com/form.wsdl"
xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:generic="generic"
xmlns:xop="http://www.w3.org/2004/08/xop/include"
xmlns:xmime4="http://www.w3.org/2004/11/xmlmime"
xmlns:form="form"
xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:DIME="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/"
xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<schema targetNamespace="generic"
xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:generic="generic"
xmlns:xop="http://www.w3.org/2004/08/xop/include"
xmlns:xmime4="http://www.w3.org/2004/11/xmlmime"
xmlns:form="form"
xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
<import namespace="http://www.w3.org/2004/08/xop/include"/>
<import namespace="http://www.w3.org/2004/11/xmlmime"/>
<import namespace="http://www.w3.org/2003/05/soap-encoding"/>
<simpleType name="service">
<restriction base="xsd:string">
<enumeration value="service-none"/><!-- enum const = 0 -->
<enumeration value="service-ident"/><!-- enum const = 1 -->
<enumeration value="service-pool"/><!-- enum const = 2 -->
<enumeration value="service-hwr"/><!-- enum const = 3 -->
<enumeration value="service-form"/><!-- enum const = 4 -->
<enumeration value="service-document"/><!-- enum const = 5 -->
</restriction>
</simpleType>
<simpleType name="result-code">
<restriction base="xsd:string">
<enumeration value="ok"/><!-- enum const = 0 -->
<enumeration value="already-exists"/><!-- enum const = 1 -->
<enumeration value="not-found"/><!-- enum const = 2 -->
<enumeration value="cant-connect"/><!-- enum const = 3 -->
<enumeration value="exception"/><!-- enum const = 4 -->
<enumeration value="bad-conversion"/><!-- enum const = 5 -->
<enumeration value="bad-values"/><!-- enum const = 6 -->
<enumeration value="session-not-found"/><!-- enum const = 7 -->
<enumeration value="initialization-failed"/><!-- enum const = 8 -->
</restriction>
</simpleType>
<complexType name="result">
<sequence>
<element name="code" type="generic:result-code" minOccurs="1" maxOccurs="1"/>
<element name="details" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
</schema>
<schema targetNamespace="form"
xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"
xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:generic="generic"
xmlns:xop="http://www.w3.org/2004/08/xop/include"
xmlns:xmime4="http://www.w3.org/2004/11/xmlmime"
xmlns:form="form"
xmlns="http://www.w3.org/2001/XMLSchema"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
<import namespace="http://www.w3.org/2004/08/xop/include"/>
<import namespace="http://www.w3.org/2004/11/xmlmime"/>
<import namespace="http://www.w3.org/2003/05/soap-encoding"/>
<simpleType name="area-type">
<restriction base="xsd:string">
<enumeration value="area-type-text"/><!-- enum const = 0 -->
<enumeration value="area-type-numeric"/><!-- enum const = 1 -->
<enumeration value="area-type-date"/><!-- enum const = 2 -->
<enumeration value="area-type-checkbox"/><!-- enum const = 3 -->
<enumeration value="area-type-slider"/><!-- enum const = 4 -->
<enumeration value="area-type-draw"/><!-- enum const = 5 -->
<enumeration value="area-type-identifier"/><!-- enum const = 6 -->
</restriction>
</simpleType>
<simpleType name="format">
<restriction base="xsd:string">
<enumeration value="A5"/><!-- enum const = 0 -->
<enumeration value="A4"/><!-- enum const = 1 -->
<enumeration value="A3"/><!-- enum const = 2 -->
<enumeration value="A2"/><!-- enum const = 3 -->
<enumeration value="A1"/><!-- enum const = 4 -->
<enumeration value="A0"/><!-- enum const = 5 -->
</restriction>
</simpleType>
<complexType name="area">
<sequence>
<element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="x" type="xsd:double" minOccurs="1" maxOccurs="1"/>
<element name="y" type="xsd:double" minOccurs="1" maxOccurs="1"/>
<element name="width" type="xsd:double" minOccurs="1" maxOccurs="1"/>
<element name="height" type="xsd:double" minOccurs="1" maxOccurs="1"/>
<element name="comments" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="area-type" type="form:area-type" minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
<complexType name="area-with-string">
<sequence>
<element name="area" type="form:area" minOccurs="1" maxOccurs="1"/>
<element name="string" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
<complexType name="area-with-integer">
<sequence>
<element name="area" type="form:area" minOccurs="1" maxOccurs="1"/>
<element name="integer" type="xsd:int" minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
<complexType name="area-with-range">
<sequence>
<element name="area" type="form:area" minOccurs="1" maxOccurs="1"/>
<element name="lower" type="xsd:double" minOccurs="1" maxOccurs="1"/>
<element name="upper" type="xsd:double" minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
<complexType name="areas">
<sequence>
<element name="areas" type="form:area" minOccurs="0" maxOccurs="unbounded"/>
<element name="string-areas" type="form:area-with-string" minOccurs="0" maxOccurs="unbounded"/>
<element name="integer-areas" type="form:area-with-integer" minOccurs="0" maxOccurs="unbounded"/>
<element name="range-areas" type="form:area-with-range" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="group">
<sequence>
<element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="areas" type="form:areas" minOccurs="1" maxOccurs="1"/>
<element name="groups" type="form:group" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="background">
<sequence>
<element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="md5" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="mime" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="num-page" type="xsd:int" minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
<complexType name="pattern-type">
<sequence>
<element name="print-once" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
<element name="has-identifier" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
<complexType name="page">
<sequence>
<element name="num-page" type="xsd:int" minOccurs="1" maxOccurs="1"/>
<element name="format" type="form:format" minOccurs="1" maxOccurs="1"/>
<element name="is-portrait" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
<element name="background" type="form:background" minOccurs="1" maxOccurs="1"/>
<element name="areas" type="form:areas" minOccurs="1" maxOccurs="1"/>
<element name="groups" type="form:group" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="document-new">
<sequence>
<element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="pattern-type" type="form:pattern-type" minOccurs="1" maxOccurs="1"/>
<element name="form-pages" type="form:page" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="document">
<sequence>
<element name="uuid" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="pattern-type" type="form:pattern-type" minOccurs="1" maxOccurs="1"/>
<element name="form-pages" type="form:page" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="document-info">
<sequence>
<element name="uuid" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="name" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<element name="page-count" type="xsd:int" minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
<complexType name="Data">
<sequence>
<element ref="xop:Include" minOccurs="1" maxOccurs="1"/>
</sequence>
<attribute ref="xmime4:contentType" use="optional"/>
</complexType>
<complexType name="login-response">
<sequence>
<element name="result" type="generic:result" minOccurs="1" maxOccurs="1"/>
<element name="session" type="xsd:string" minOccurs="1" maxOccurs="1"/>
</sequence>
</complexType>
<!-- operation request element -->
<element name="login" type="xsd:string"/>
<!-- operation request element -->
<element name="password" type="xsd:string"/>
<!-- operation response element -->
<element name="result" type="generic:result"/>
<!-- operation response element -->
<element name="uuid" type="xsd:string"/>
<!-- operation request element -->
<element name="session" type="xsd:string"/>
<!-- operation request element -->
<element name="aform" type="form:document-new"/>
<!-- operation response element -->
<element name="form" type="form:document"/>
<!-- operation request element -->
<element name="md5" type="xsd:string"/>
<!-- operation response element -->
<element name="data" type="form:Data"/>
<!-- operation response element -->
<element name="exists" type="xsd:boolean"/>
<!-- operation response element -->
<element name="backgrounds" type="form:background"/>
<!-- operation response element -->
<element name="forms" type="form:document"/>
<!-- operation response element -->
<element name="forms-info" type="form:document-info"/>
</schema>
</types>
<message name="login">
<part name="login" element="form:login"/>
<part name="password" element="form:password"/>
</message>
<message name="uuid-response">
<part name="result" element="form:result"/>
<part name="uuid" element="form:uuid"/>
</message>
<message name="quit">
<part name="session" element="form:session"/>
</message>
<message name="response">
<part name="result" element="form:result"/>
</message>
<message name="new-form">
<part name="session" element="form:session"/>
<part name="aform" element="form:aform"/>
</message>
<message name="free-form">
<part name="session" element="form:session"/>
<part name="uuid" element="form:uuid"/>
</message>
<message name="get-form">
<part name="session" element="form:session"/>
<part name="uuid" element="form:uuid"/>
</message>
<message name="document-response">
<part name="result" element="form:result"/>
<part name="form" element="form:form"/>
</message>
<message name="get-file">
<part name="session" element="form:session"/>
<part name="md5" element="form:md5"/>
</message>
<message name="data-response">
<part name="result" element="form:result"/>
<part name="data" element="form:data"/>
</message>
<message name="set-file">
<part name="session" element="form:session"/>
<part name="md5" element="form:md5"/>
<part name="data" element="form:data"/>
</message>
<message name="file-exists">
<part name="session" element="form:session"/>
<part name="md5" element="form:md5"/>
</message>
<message name="exists-response">
<part name="result" element="form:result"/>
<part name="exists" element="form:exists"/>
</message>
<message name="list-form-backgrounds">
<part name="session" element="form:session"/>
<part name="uuid" element="form:uuid"/>
</message>
<message name="list-backgrounds-response">
<part name="result" element="form:result"/>
<part name="backgrounds" element="form:backgrounds"/>
</message>
<message name="list-forms">
<part name="session" element="form:session"/>
</message>
<message name="list-forms-response">
<part name="result" element="form:result"/>
<part name="forms" element="form:forms"/>
</message>
<message name="list-forms-info">
<part name="session" element="form:session"/>
</message>
<message name="list-forms-info-response">
<part name="result" element="form:result"/>
<part name="forms-info" element="form:forms-info"/>
</message>
<portType name="formPortType">
<operation name="login">
<documentation>Service definition of function form__login</documentation>
<input message="tns:login"/>
<output message="tns:uuid-response"/>
</operation>
<operation name="quit">
<documentation>Service definition of function form__quit</documentation>
<input message="tns:quit"/>
<output message="tns:response"/>
</operation>
<operation name="new-form">
<documentation>Service definition of function form__new_form</documentation>
<input message="tns:new-form"/>
<output message="tns:uuid-response"/>
</operation>
<operation name="free-form">
<documentation>Service definition of function form__free_form</documentation>
<input message="tns:free-form"/>
<output message="tns:response"/>
</operation>
<operation name="get-form">
<documentation>Service definition of function form__get_form</documentation>
<input message="tns:get-form"/>
<output message="tns:document-response"/>
</operation>
<operation name="get-file">
<documentation>Service definition of function form__get_file</documentation>
<input message="tns:get-file"/>
<output message="tns:data-response"/>
</operation>
<operation name="set-file">
<documentation>Service definition of function form__set_file</documentation>
<input message="tns:set-file"/>
<output message="tns:response"/>
</operation>
<operation name="file-exists">
<documentation>Service definition of function form__file_exists</documentation>
<input message="tns:file-exists"/>
<output message="tns:exists-response"/>
</operation>
<operation name="list-form-backgrounds">
<documentation>Service definition of function form__list_form_backgrounds</documentation>
<input message="tns:list-form-backgrounds"/>
<output message="tns:list-backgrounds-response"/>
</operation>
<operation name="list-forms">
<documentation>Service definition of function form__list_forms</documentation>
<input message="tns:list-forms"/>
<output message="tns:list-forms-response"/>
</operation>
<operation name="list-forms-info">
<documentation>Service definition of function form__list_forms_info</documentation>
<input message="tns:list-forms-info"/>
<output message="tns:list-forms-info-response"/>
</operation>
</portType>
<binding name="form" type="tns:formPortType">
<SOAP:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="login">
<SOAP:operation style="rpc"/>
<input>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</input>
<output>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</output>
</operation>
<operation name="quit">
<SOAP:operation style="rpc"/>
<input>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</input>
<output>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</output>
</operation>
<operation name="new-form">
<SOAP:operation style="rpc"/>
<input>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</input>
<output>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</output>
</operation>
<operation name="free-form">
<SOAP:operation style="rpc"/>
<input>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</input>
<output>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</output>
</operation>
<operation name="get-form">
<SOAP:operation style="rpc"/>
<input>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</input>
<output>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</output>
</operation>
<operation name="get-file">
<SOAP:operation style="rpc"/>
<input>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</input>
<output>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</output>
</operation>
<operation name="set-file">
<SOAP:operation style="rpc"/>
<input>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</input>
<output>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</output>
</operation>
<operation name="file-exists">
<SOAP:operation style="rpc"/>
<input>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</input>
<output>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</output>
</operation>
<operation name="list-form-backgrounds">
<SOAP:operation style="rpc"/>
<input>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</input>
<output>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</output>
</operation>
<operation name="list-forms">
<SOAP:operation style="rpc"/>
<input>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</input>
<output>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</output>
</operation>
<operation name="list-forms-info">
<SOAP:operation style="rpc"/>
<input>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</input>
<output>
<SOAP:body parts="parameters" use="literal" namespace="form"/>
</output>
</operation>
</binding>
<service name="form">
<documentation>gSOAP 2.7.10 generated service definition</documentation>
<port name="form" binding="tns:form">
<SOAP:address location="https://enterprise-name-masked.com/cgi-bin/form.fcgi"/>
</port>
</service>
</definitions>
And here, you can find the generated errors :
wsimport -s Sources -b http://www.w3.org/2004/08/xop/includ
e -b http://www.w3.org/2004/11/xmlmime form.wsdl
parsing WSDL...
[WARNING] src-resolve: Cannot resolve the name 'xmime4:contentType' to a(n) 'attribute declaration' component.
line 215 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2
[WARNING] s4s-elt-invalid-content.1: The content of 'Data' is invalid. Element 'attribute' is invalid, misplaced, or occurs too often.
line 215 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2
[WARNING] src-resolve.4.2: Error resolving component 'generic:result'. It was detected that 'generic:result' is in namespace 'generic', but components
from this namespace are not referenceable from schema document 'file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP
/WSImport/Test/Form/form.wsdl#types?schema2'. If this is the incorrect namespace, perhaps the prefix of 'generic:result' needs to be changed. If this
is the correct namespace, then an appropriate 'import' tag should be added to 'file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Re
cherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2'.
line 230 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2
[WARNING] src-resolve: Cannot resolve the name 'xop:Include' to a(n) 'element declaration' component.
line 213 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl#types?schema2
[WARNING] Ignoring SOAP port "form": it uses non-standard SOAP 1.2 binding.
You must specify the "-extension" option to use this binding.
line 533 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl
[WARNING] Service "form" does not contain any usable ports. try running wsimport with -extension switch.
line 531 of file:/C:/Documents%20and%20Settings/Hopi_1/Mes%20documents/Alexandre/Recherche%20SOAP/WSImport/Test/Form/form.wsdl
generating code...
compiling code...
Could you tell me how to correctly generate my classes in this case ?
Thank you.
Edited by: morphet on May 30, 2008 6:12 AM