If I have a Java class that looks like this:
public class ArrayEcho {
    public Object[] echoArray (Object[] a)
    {
        return a;
    }

}


The WSDL we generate looks like this:
  <types>
   <schema targetNamespace="http://schemas.xmlsoap.org/soap/encoding/"; 
         xmlns="http://www.w3.org/2001/XMLSchema";>
     <element name="Array" nillable="true" type="SOAP-ENC:Array"/>
   </schema>
  </types>
  <wsdl:message name="echoArrayRequest">
    <wsdl:part name="a" type="SOAP-ENC:Array"/>
  </wsdl:message>
  <wsdl:message name="echoArrayResponse">
    <wsdl:part name="return" type="SOAP-ENC:Array"/>
  </wsdl:message>

Is this valid WSDL?

.NET wsdl.exe reports:
-------------------------------------
Schema validation warning: Type 'http://schemas.xmlsoap.org/soap/encoding/:Array' is 
not declared.

Warning: Schema could not be validated. Class generation may fail or may produce 
incorrect results.

Error: Unable to import binding 'ArrayEchoSoapBinding' from namespace 
'http://localhost:8080/ArrayEcho.jws'.
  - Unable to import operation 'echoArray'.
  - The datatype 'Array' is missing.
--------------------------------------------

But our tool correctly generates the stub:
   public java.lang.Object[] echoArray(java.lang.Object[] a)

Does anyone (Rich?) who understands the WSDL we generate for Arrays have any insight 
on this?  Are generating (and parsing) incorrect WSDL or do we understand 
SOAP-ENC:Array and .NET just doesn't?

--
Tom Jordahl
Macromedia Server Development


Reply via email to