cancel
Showing results for 
Search instead for 
Did you mean: 

External definition import WSDL complex type problem

Former Member
0 Kudos

Hi,

i have created a webservice using apache axis and created an external definition for the service. You can see the respective WSDL recognized by XI below. The service takes an array of adresses. Unfortunately, when I want to define the message mapping, theres only the array but not the address attributes. What would be a proper definition of the service?

Cheers,

Heiko

===================================================

1. WSDL from external defintion:

<?xml version="1.0" encoding="ISO-8859-1"?>

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://localhost:8080/axis/services/AdressService">

<wsdl:types>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://localhost:8080/axis/services/AdressService" targetNamespace="http://localhost:8080/axis/services/AdressService">

<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />

<xsd:complexType xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" name="AddressDto">

<xsd:sequence>

<xsd:element name="ID" type="xsd:string" nillable="true" />

<xsd:element name="name" type="xsd:string" nillable="true" />

<xsd:element name="strasse" type="xsd:string" nillable="true" />

<xsd:element name="ort" type="xsd:string" nillable="true" />

</xsd:sequence>

</xsd:complexType>

<xsd:complexType xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" name="ArrayOfAddressDto">

<xsd:complexContent>

<xsd:restriction base="soapenc:Array">

<xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="impl:AddressDto[]" />

</xsd:restriction>

</xsd:complexContent>

</xsd:complexType>

</xsd:schema>

</wsdl:types>

<wsdl:message name="writeAddressDataResponse" />

<wsdl:message name="writeAddressDataRequest">

<wsdl:part xmlns:generateduniqueprefix3="http://localhost:8080/axis/services/AdressService" name="addresses" type="generateduniqueprefix3:ArrayOfAddressDto" />

</wsdl:message>

</wsdl:definitions>

2. XSD extracted from WSDL:

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema targetNamespace="http://localhost:8080/axis/services/AdressService" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://localhost:8080/axis/services/AdressService">

<xsd:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />

<xsd:element name="addresses" type="ArrayOfAddressDto" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" />

<xsd:complexType name="ArrayOfAddressDto" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">

<xsd:complexContent>

<xsd:restriction base="soapenc:Array">

<xsd:attribute ref="soapenc:arrayType" wsdl:arrayType="impl:AddressDto[]" xmlns:xsd="http://www.w3.org/2001/XMLSchema" />

</xsd:restriction>

</xsd:complexContent>

</xsd:complexType>

</xsd:schema>

??? Where are the atributes of the address here ???

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi Heiko,

XI does not support the use of soapenc:array. Please refer to http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html#refinement16556272 regarding the use of this construct.

Greetings Stephan