Andrew, I have worked with SOAP Toolkit interop, but not .NET. You will undoubtedly find interop is decent but certainly far from perfect. A few things to note in Apache SOAP 2.2 docs:
1. The introduction states that this is an implementation of SOAP 1.1. I believe the URL you refer to is the 1.2 spec. I'm not certain whether anything has changed in the areas you are testing, but the 1.1 spec should be your reference point. 2. There is an Interoperability section of the User's Guide. By all means read this. It covers some problems frequently encountered and has links to some other resources. Finally, you should consider whether you wish to continue interop testing with SOAP 2.2 or switch to Axis, which is the follow on project. If you will not be going into production until very late this year or early next year (there are no exact dates for availability), Axis may be a better target. Scott ----- Original Message ----- From: "Andrew Fyke" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]> Sent: Tuesday, October 23, 2001 11:00 AM Subject: MS .Net/Apache SOAP Interop - Array problem > We are trying to get Microsoft .Net and Apache SOAP to interoperate. To do this > we have focused on limiting the behavior of each platform to the current w3c > SOAP draft ( http://www.w3.org/TR/2001/WD-soap12-part2-20011002/#arrays ). One > problem we have seen is that Apache SOAP does not seem to correctly handle > array encoding as defined in this model; the array is not correctly decoded > because it appears that Apache SOAP wants to see a type attribute defined, such > as xsi:type="ns3:Array". > > Below is an example of a response that is not correctly decoded by Apache SOAP > (although it does work with the .NET tools): > > <?xml version="1.0" encoding="utf-8"?> > <soap:Envelope > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:tns="http://www.tms.com/arrayTest" > xmlns:types="http://www.tms.com/arrayTest/encodedTypes" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:xsd="http://www.w3.org/2001/XMLSchema"> > > <soap:Body > soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> > <tns:synchRequestResponse> > <synchRequestResult href="#id1"/> > </tns:synchRequestResponse> > > <types:RFCReplyAA id="id1" xsi:type="types:RFCReplyAA"> > <m_originatingRequestId xsi:type="xsd:long">6789</m_originatingRequestId> > <m_items href="#id2"/> > </types:RFCReplyAA> > <soapenc:Array id="id2" soapenc:arrayType="types:RFCitemAA[2]"> <== HERE > <Item href="#id3"/> > <Item href="#id4"/> > </soapenc:Array> > <types:Sub1RFCitemAA id="id3" xsi:type="types:Sub1RFCitemAA"> > <m_item_num xsi:type="xsd:long">1234</m_item_num> > <m_item_desc xsi:type="xsd:string">Left Door</m_item_desc> > <m_item_sub1 xsi:type="xsd:long">4321</m_item_sub1> > </types:Sub1RFCitemAA> > <types:Sub2RFCitemAA id="id4" xsi:type="types:Sub2RFCitemAA"> > <m_item_num xsi:type="xsd:long">1234</m_item_num> > <m_item_desc xsi:type="xsd:string">RightDoor</m_item_desc> > <m_item_sub2 xsi:type="xsd:long">4321</m_item_sub2> > </types:Sub2RFCitemAA> > </soap:Body> > </soap:Envelope> > > In order to get the code to work I hacked the Apache SOAP source and added the > following to SoapEncUtils.java > > public static QName getTypeQName(Element el) > throws IllegalArgumentException > { > // Try 1999 > QName typeQName = getAttributeValue(el, Constants.NS_URI_1999_SCHEMA_XSI, > Constants.ATTR_TYPE, null, false); > if (typeQName != null) > return typeQName; > > // Try 2000 > typeQName = getAttributeValue(el, Constants.NS_URI_2000_SCHEMA_XSI, > Constants.ATTR_TYPE, null, false); > if (typeQName != null) > return typeQName; > > // Try 2001 > typeQName = getAttributeValue(el, Constants.NS_URI_2001_SCHEMA_XSI, > Constants.ATTR_TYPE, null, false); > > if (typeQName != null) > return typeQName; > > // > // hack > // > if(el.getTagName().endsWith(":Array") == true) > { > typeQName = new QName(Constants.NS_URI_SOAP_ENC , "Array"); > } > // > // end hack > // > > return typeQName; > } > > Obviously this fix is not a production quality solution, but i think that it > does point out where the problem lays in general. Has anyone else come across > this? > > Andy Fyke > [EMAIL PROTECTED] >