Hi, I created a simple web service with style RPC/encoded, which receives and returns complex objects (a request containing an array of sub-requests, which in turn contain arrays of sub-sub-requests and the same structure for the response). It works fine (for the moment), however I see that the generated message (I see it on the SOAPMonitor) is (for me) something strange. In fact the child collections are not directed included in their parents but referenced, like:
<doctorResponse soapenc:arrayType="ns2:DigniResponseDoctorRPC[1]" xsi:type="soapenc:Array"> <item href="#id2"/> </doctorResponse> The same happens also for "xsd:int" elements like: <requestResponseCode href="#id1"/> ... <multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">0</multiRef> This makes it difficult for a human to read these messages. Could you kindly tell me whether this is the normal behavior of RPC/encoded messages or if it is due to a problem/mistake in my WSDL definition? I join a simple Response message and an extract of my WSDL file (schema and message definitions). Thanks a lot for your help! Regards, Patrick <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:validateResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:ch.arpage.digni.rpc"> <response href="#id0"/> </ns1:validateResponse> <multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:DigniResponseRPC" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:ch.arpage.digni.rpc"> <insuranceEAN xsi:type="xsd:string">7612345678901</insuranceEAN> <insuranceRequestId xsi:type="xsd:string">123</insuranceRequestId> <responseDate xsi:type="xsd:dateTime">2004-09-22T11:19:24.574Z</responseDate> <requestResponseCode href="#id1"/> <doctorResponse soapenc:arrayType="ns2:DigniResponseDoctorRPC[1]" xsi:type="soapenc:Array"> <item href="#id2"/> </doctorResponse> </multiRef> <multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">0</multiRef> <multiRef id="id2" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:DigniResponseDoctorRPC" xmlns:ns3="urn:ch.arpage.digni.rpc" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"> <doctorEAN xsi:type="xsd:string">1108</doctorEAN> <doctorResponseCode href="#id3"/> <positionResponse xsi:type="ns3:DigniResponsePositionRPC" xsi:nil="true"/> </multiRef> <multiRef id="id3" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="xsd:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">100</multiRef> </soapenv:Body> </soapenv:Envelope> SCHEMA DEFINITION (EXTRACT): =========================== <complexType name="DigniResponsePositionRPC"> <sequence> <element name="tarmedKey" nillable="true" type="xsd:string"/> <element name="invoiceDate" nillable="true" type="xsd:date"/> <element name="responseCode" type="xsd:int"/> </sequence> </complexType> <complexType name="DigniResponsePositionRPCList"> <complexContent> <restriction base="soapenc:Array"> <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:DigniResponsePositionRPC[]"/> </restriction> </complexContent> </complexType> <complexType name="DigniResponseDoctorRPC"> <sequence> <element name="doctorEAN" nillable="true" type="xsd:string"/> <element name="doctorResponseCode" type="xsd:int"/> <element name="positionResponse" nillable="true" type="impl:DigniResponsePositionRPCList"/> </sequence> </complexType> <complexType name="DigniResponseDoctorRPCList"> <complexContent> <restriction base="soapenc:Array"> <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:DigniResponseDoctorRPC[]"/> </restriction> </complexContent> </complexType> <complexType name="DigniResponseRPC"> <sequence> <element name="insuranceEAN" nillable="true" type="xsd:string"/> <element name="insuranceRequestId" nillable="true" type="xsd:string"/> <element name="responseDate" nillable="true" type="xsd:dateTime"/> <element name="requestResponseCode" type="xsd:int"/> <element name="doctorResponse" nillable="true" type="impl:DigniResponseDoctorRPCList"/> </sequence> </complexType> MESSAGE DEFINITION ================== <wsdl:message name="validateResponse"> <wsdl:part name="response" type="impl:DigniResponseRPC"/> </wsdl:message>