Hi all,
I've written my own (de)serializers and my own provider and i've successfully deployed 
them on Axis.
Now i've a problem with document style:
with this style a soap message coming from a client looks like this:

<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>
  <IN01 xmlns="http://www.cadit.it/city/service/ZZ/ZZGWOPR/Schema";>
   <SELA>ELABORA</SELA>
   <COPRDA>a</COPRDA>
   <COPRA>z</COPRA>
  </IN01>
 </soapenv:Body>
</soapenv:Envelope>

I need that Axis engine calls the deserializer registered for element
{http://www.cadit.it/city/service/ZZ/ZZGWOPR/Schema}IN01

but it doesn't call it. It proceeds with his children (SELA, COPRDA and COPRA).

The piece of provider source code that calls the deserialization is this:

...
Message reqMsg = msgContext.getRequestMessage();
SOAPEnvelope reqEnv  = reqMsg.getSOAPEnvelope();
Vector bodies = reqEnv.getBodyElements();
RPCElement body = null;
for (int i = 0; body == null && i < bodies.size(); i++)
{
        if (bodies.get(i) instanceof RPCElement) {
                body = (RPCElement) bodies.get(i);
        }
        Vector params = null;
        try
        {
                body.deserialize();
        }
...




With rpc style (use literal) soap message looks like this:

<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>
  <M01 xmlns="http://www.cadit.it/city/service/ZZ/ZZGWOPR/SOAPBinding";>
   <ns1:IN01 xmlns:ns1="http://www.cadit.it/city/service/ZZ/ZZGWOPR/Schema";>
    <ns1:SELA>ELABORA</ns1:SELA>
    <ns1:COPRDA>a</ns1:COPRDA>
    <ns1:COPRA>z</ns1:COPRA>
   </ns1:IN01>
  </M01>
 </soapenv:Body>
</soapenv:Envelope>

and in this case Axis engine calls my deserializer for IN01 element.

any helps?

thanks

A.T.

Reply via email to