on 05-26-2006 3:59 PM
Hello,
can anyone please tell me if the XI has problems (or is unable) to read from soap-encoded arrays of a complex type.
As far as I know this is conform to SOAP 1.1
We developed this webservice for a client, who says, he cannot map this kind of array in his XI.
Would it be better to do it this way ?
<complexType name="ActivityList">
<sequence>
<element name="ActivityEl" maxOccurs="unbounded" type="Activity"/>
</sequence>
</complexType>
Excerpt of the WSDL:
<wsdl:message name="getDataForPbnrResponse">
<wsdl:part name="getDataForPbnrReturn" type="impl:ArrayOf_tns1_Activity"/>
</wsdl:message>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://ipslsv01vm02:9080/axis/services/QEC-Service">
<import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
<complexType name="ArrayOf_tns1_Activity">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:Activity[]"/>
</restriction>
</complexContent>
</complexType>
<complexType name="ArrayOf_tns1_ActivityFeedback">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="tns1:ActivityFeedback[]"/>
</restriction>
</complexContent>
</complexType>
</schema>
Part ot the response:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:getDataForPbnrResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://ipslsv01vm02:9080/axis/services/QEC-Service">
<getDataForPbnrReturn xsi:type="soapenc:Array" soapenc:arrayType="ns3:Activity[7]" xmlns:ns2="http://www.w3.org/2002/12/soap-encoding" xmlns:ns3="urn:BeanService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item href="#id0"/>
<item href="#id1"/>
<item href="#id2"/>
<item href="#id3"/>
<item href="#id4"/>
<item href="#id5"/>
<item href="#id6"/>
</getDataForPbnrReturn>
</ns1:getDataForPbnrResponse>
<multiRef id="id5" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns4:Activity" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns4="urn:BeanService">
<FIN xsi:type="xsd:string">---</FIN>
<VIN xsi:type="xsd:string"></VIN>
-
cut -
<ursache xsi:type="xsd:string"></ursache>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>
Thanks in advance!
I am having this issue as well.
From:
http://help.sap.com/saphelp_nw04/helpdata/en/43/ce993b45cb0a85e10000000a1553f6/frameset.htm
I see that:
The WSDL document in rpc-style format must also not use any soapenc:Array types; these are often used in SOAP code in documents with this format. soapenc:Array uses the tag <xsd:any>, which the Integration Builder editors or proxy generation either ignore or do not support.
You can replace soapenc:Array types with an equivalent <sequence>; see the WS-I example under http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html#refinement16556272.
They give an example of what to use instead.
Of course I have been given a WSDL that has a message I need to map to that uses the enc:Array.
Has anyone else had this issue? I need to map to a SOAP message to send to an external party. I don't know what they are willing to change to support what I can do. I changed the WSDL to use a sequence as below just to pull it in for now.
Thanks,
Eric
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
85 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.