Problem with WSDL :

One Star

Problem with WSDL :

Hello,
I've some trouble with a WSDL. The error comes from a complextype which inherit from another complex type.
I added the definition :
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance/" targetNamespace="http://www.talend.org/service/"
But when I try to read the WSDL with SoapUI, I got the following error message :
Could not find type 'SpecialisationContactType'. Do you mean to refer to the type named SpecialisationContactType@http://www.talend.org/service/ (in AnnuaireGroupe.xml)?
Here is my WSDL :
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="AnnuaireGroupeService"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.talend.org/service/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance/" targetNamespace="http://www.talend.org/service/">
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.talend.org/service/">
<xsd:element name="CreatePersonneRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NomUsuel" type="xsd:string"
maxOccurs="1" minOccurs="1">
</xsd:element>
<xsd:element name="NomNaissance" type="xsd:string"
maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="PrenomUsuel" type="xsd:string"
maxOccurs="1" minOccurs="1">
</xsd:element>
<xsd:element name="PrenomNaissance" type="xsd:string"
maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="TypePersonne"
type="xsd:string" maxOccurs="1" minOccurs="1">
</xsd:element>
<xsd:element name="Photo" type="xsd:string"
maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="DateNaissance"
type="xsd:date" maxOccurs="1" minOccurs="1">
</xsd:element>
<xsd:element name="DateEntreeGroupe"
type="xsd:date" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="Civilite"
type="xsd:string" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="Titre"
type="xsd:string" maxOccurs="1" minOccurs="0">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="CreatePersonneResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="IdVINCI" type="xsd:string" maxOccurs="1" minOccurs="1"></xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SearchPersonRequest">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="NomUsuel"
type="xsd:string" maxOccurs="1" minOccurs="1">
</xsd:element>
<xsd:element name="PrenomUsuel"
type="xsd:string" maxOccurs="1" minOccurs="1">
</xsd:element>
<xsd:element name="DateNaissance"
type="xsd:date" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="DateEntreeGroupe"
type="xsd:date" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="Civilite"
type="xsd:string" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="Email" type="xsd:string" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="Organisation"
type="xsd:string" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="Pays" type="xsd:string" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="Ville"
type="xsd:string" maxOccurs="1" minOccurs="0">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SearchPersonResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="IdVINCI" type="xsd:string"
maxOccurs="1" minOccurs="1">
</xsd:element>
<xsd:element name="AuthentificationVINCI"
type="xsd:string" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="Photo" type="xsd:string"
maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="TypePersonne"
type="xsd:string" maxOccurs="1" minOccurs="1">
</xsd:element>
<xsd:element name="StatutPersonne"
type="xsd:string" maxOccurs="1" minOccurs="1">
</xsd:element>
<xsd:element name="Civilite" type="xsd:string"
maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="NomUsuel" type="xsd:string"
maxOccurs="1" minOccurs="1">
</xsd:element>
<xsd:element name="NomNaissance"
type="xsd:string" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="PrenomUsuel"
type="xsd:string" maxOccurs="1" minOccurs="1">
</xsd:element>
<xsd:element name="PrenomNaissance"
type="xsd:string" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="DateNaissance"
type="xsd:date" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="DateEntreeGroupe"
type="xsd:date" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="Titre" type="xsd:string"
maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="Contextes"
type="tns:ContexteListe">
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<xsd:complexType name="ContexteListe">
<xsd:sequence>
<xsd:element name="Contexte" type="tns:ContexteType" maxOccurs="unbounded" minOccurs="0"></xsd:element>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="ContexteType">
<xsd:sequence>
<xsd:element name="TypeContexte"
type="xsd:string" maxOccurs="1" minOccurs="1">
</xsd:element>
<xsd:element name="StatutContexte"
type="xsd:string" maxOccurs="1" minOccurs="1">
</xsd:element>
<xsd:element name="DateDebutContexte"
type="xsd:date" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="DateFinContexte" type="xsd:date"
maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="Organisation"
type="xsd:string" maxOccurs="1" minOccurs="0">
</xsd:element>
<xsd:element name="Societe" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
<xsd:element name="Fonction" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
<xsd:element name="Service" type="xsd:string" maxOccurs="1" minOccurs="0"></xsd:element>
<xsd:element name="Contacts" type="tns:ContactListe"
maxOccurs="unbounded" minOccurs="0">
</xsd:element>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="ContactListe">
<xsd:sequence>
<xsd:element name="Contact" type="tns:ContactType" maxOccurs="unbounded" minOccurs="0"></xsd:element>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="ContactType">
<xsd:sequence>
<xsd:element name="ContactStatut" type="xsd:string"
maxOccurs="1" minOccurs="1">
</xsd:element>
<xsd:element name="SpecialisationContactType"
type="xsd:string">
</xsd:element>
</xsd:sequence>
</xsd:complexType>


<xsd:complexType abstract="true" name="SpecialisationContactType">
<xsd:sequence/>
</xsd:complexType>

<xsd:complexType name="SpecialisationContactEmail">
<xsd:complexContent>
<xsd:extension base="SpecialisationContactType">
<xsd:all>
<xsd:element maxOccurs="1" minOccurs="1" name="NatureEmail" type="xsd:string">
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Email" type="xsd:string">
</xsd:element>
</xsd:all>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="SpecialisationContactTelephone">
<xsd:complexContent>
<xsd:extension base="SpecialisationContactType">
<xsd:all>
<xsd:element maxOccurs="1" minOccurs="1" name="NatureTelephone" type="xsd:string">
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="1" name="Numero" type="xsd:string">
</xsd:element>
</xsd:all>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>

<xsd:complexType name="SpecialisationContactLocalisation">
<xsd:complexContent>
<xsd:extension base="SpecialisationContactType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="NatureLocalisation" type="xsd:string">
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Emplacement" type="xsd:string">
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Adresse1" type="xsd:string">
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Adresse2" type="xsd:string">
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Adresse3" type="xsd:string">
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="CodePostal" type="xsd:string">
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Ville" type="xsd:string">
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Region" type="xsd:string">
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Etat" type="xsd:string">
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Pays" type="xsd:string">
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Latitude" type="xsd:string">
</xsd:element>
<xsd:element maxOccurs="1" minOccurs="0" name="Longitude" type="xsd:string">
</xsd:element>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>


</xsd:schema>
</wsdl:types>
<wsdl:message name="CreatePersonneRequest">
<wsdlSmiley Tongueart name="parameters" element="tns:CreatePersonneRequest"></wsdlSmiley Tongueart>
</wsdl:message>
<wsdl:message name="CreatePersonneResponse">
<wsdlSmiley Tongueart name="parameters" element="tns:CreatePersonneResponse"></wsdlSmiley Tongueart>
</wsdl:message>
<wsdl:message name="SearchPersonRequest">
<wsdlSmiley Tongueart name="parameters"
element="tnsSmiley FrustratedearchPersonRequest">
</wsdlSmiley Tongueart>
</wsdl:message>
<wsdl:message name="SearchPersonResponse">
<wsdlSmiley Tongueart name="parameters" element="tnsSmiley FrustratedearchPersonResponse"></wsdlSmiley Tongueart>
</wsdl:message>
<wsdlSmiley TongueortType name="AnnuaireGroupeServicePortType">
<wsdlSmiley Surprisedperation name="CreatePersonne">
<wsdl:input message="tns:CreatePersonneRequest"></wsdl:input>
<wsdlSmiley Surprisedutput message="tns:CreatePersonneResponse"></wsdlSmiley Surprisedutput>
</wsdlSmiley Surprisedperation>
<wsdlSmiley Surprisedperation name="SearchPerson">
<wsdl:input message="tnsSmiley FrustratedearchPersonRequest"></wsdl:input>
<wsdlSmiley Surprisedutput message="tnsSmiley FrustratedearchPersonResponse"></wsdlSmiley Surprisedutput>
</wsdlSmiley Surprisedperation>
</wsdlSmiley TongueortType>
<wsdl:binding name="AnnuaireGroupeServiceBinding"
type="tns:AnnuaireGroupeServicePortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdlSmiley Surprisedperation name="CreatePersonne">
<soapSmiley Surprisedperation
soapAction="http://www.talend.org/service/CreatePersonne" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdlSmiley Surprisedutput>
<soap:body use="literal" />
</wsdlSmiley Surprisedutput>
</wsdlSmiley Surprisedperation>
<wsdlSmiley Surprisedperation name="SearchPerson">
<soapSmiley Surprisedperation
soapAction="http://www.talend.org/service/SearchPerson" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdlSmiley Surprisedutput>
<soap:body use="literal" />
</wsdlSmiley Surprisedutput>
</wsdlSmiley Surprisedperation>
</wsdl:binding>
<wsdl:service name="AnnuaireGroupeService">
<wsdlSmiley Tongueort name="AnnuaireGroupeServicePort" binding="tns:AnnuaireGroupeServiceBinding">
<soap:address location="http://localhost:8090/services/AnnuaireGroupeService" />
</wsdlSmiley Tongueort>
</wsdl:service>
</wsdl:definitions>
Note : I used the definition found in Talend MDM, my MDM datamodel works...
Thanks for your help.
Employee

Re: Problem with WSDL :

The lines like:
<xsd:extension base="SpecialisationContactType">
likely need to be changed to:
<xsd:extension base="tnsSmiley FrustratedpecialisationContactType">

There is nothing that defines a default namespace so you need to make sure the proper prefix is used when referencing the other types.
One Star

Re: Problem with WSDL :

Hello,
thank you, no more issue.