First, if you intend to support interoperability between Axis and .NET, do
not use SOAP encoding. You should switch to wrapped document/literal style.
(specify style="Wrapped" in your WSDD). Even with wrapped style, though,
array interoperability can be tricky.

Second, if you want to use specific namespaces, you should either:
1- use the WSDL first development approach (preferred)
2- generate your WSDL using Java2WSDL and specify the Pkg2NS option. Be
prepared to tweak the generated WSDL to ensure it comes out the way you want
it to, and then run WSDL2Java.

Alternatively, you can try Axis2 (which does not support SOAP encoding, by
the way).

Anne

On 7/2/07, Lukas Füllemann <[EMAIL PROTECTED]> wrote:

Hi

I am using Axis 1.4 and have two webservices sharing a common type of
class 'Master'. This class has an array of another class 'Detail'. 'Master'
and 'Detail' are in a separate package than the two web services (which are
again in different packages).
While generating the wsdl for the two webservices, each wsdl generates for
the Master type an ArrayOf_tns2_Detail type descriptor defined in the
namespace of the webservice and not in the namespace of the Master or Detail
type. Now I use the .NET wsdl class generator, which creates two different
master classes, because they contain arrays defined in different namespaces.
How can I tell Axis to use a certain namespace for the array definitions?
Can Axis2 solve this problem?

Wsdl of Webservice1:
<wsdl:types>
  <schema targetNamespace="http://commonobjects.ws.arregulo.sowatec.com";
xmlns="http://www.w3.org/2001/XMLSchema";>
   <import namespace="http://webservice.ws1.arregulo.sowatec.com"/>
   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="Detail">
    <sequence>
     <element name="name" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="Master">
    <sequence>
     <element name="details" nillable="true"
type="impl:ArrayOf_tns2_Detail"/>
    </sequence>
   </complexType>
  </schema>
  <schema targetNamespace="http://webservice.ws1.arregulo.sowatec.com";
xmlns="http://www.w3.org/2001/XMLSchema";>
   <import namespace="http://commonobjects.ws.arregulo.sowatec.com"/>
   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="ArrayOf_tns2_Detail">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="tns2:Detail[]"/>
     </restriction>
    </complexContent>
   </complexType>
  </schema>
</wsdl:types>

Wsdl of Webservice2:
<wsdl:types>
  <schema targetNamespace="http://commonobjects.ws.arregulo.sowatec.com";
xmlns="http://www.w3.org/2001/XMLSchema";>
   <import namespace="http://webservice.ws2.arregulo.sowatec.com"/>
   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="Detail">
    <sequence>
     <element name="name" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="Master">
    <sequence>
     <element name="details" nillable="true"
type="impl:ArrayOf_tns2_Detail"/>
    </sequence>
   </complexType>
  </schema>
  <schema targetNamespace="http://webservice.ws2.arregulo.sowatec.com";
xmlns="http://www.w3.org/2001/XMLSchema";>
   <import namespace="http://commonobjects.ws.arregulo.sowatec.com"/>
   <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
   <complexType name="ArrayOf_tns2_Detail">
    <complexContent>
     <restriction base="soapenc:Array">
      <attribute ref="soapenc:arrayType" wsdl:arrayType="tns2:Detail[]"/>
     </restriction>
    </complexContent>
   </complexType>
  </schema>
</wsdl:types>

Thanks,
Lukas


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to