i read all SOAP documentation... in fact my question is more about interoperability...
I generated XML with the tool Castor (xml2java2xml data binding). when i
hard code a SOAP message with the enveloppe and just add my XML in the body
it works fine, i even sent complex types like datasets.

the problem is that when i generate the SOAP (with the code below) the SOAP
message isn't like what is expecting .NET, (i read many documentation about
xsd and co it's not the problem), i followed each recomandations found on
SOAP doc, mailing list archives and so on, but the problem is not solved
: i get this error :
Caught SOAPException (SOAP-ENV:Client): No Deserializer found to deserialize
a 'http://tempuri.org/:BonjourResult' using encoding style 'http://schemas.xmlsoap.org/soap/encoding/'.

i tryed to change the encoding, but it's even worse, or in some cases there
is no error but the .NET webservice doesn't understand my string and can't
return it... my java to java webservices have always worked fine... but i
was wondering if there is maybe a solution to generate a SOAP message that
could be understandable by .NET
I guess that the solution could be in the marshaller, i read many do about
it, but i'm not able to make it works !

here is the code that works : hard code
StringBuffer payload =
new StringBuffer("<?xml version=\'1.0\' encoding=\'UTF-8\'?>");
"<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"
xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">");
payload.append("<WS_UpdateProfileAgency xmlns=\"http://tempuri.org/\">");
URL endpoint = new URL(server + "/PCS_Integration/SynchronizeProfiles.asmx");
URLConnection con = endpoint.openConnection();
con.setRequestProperty("Content-Length", Integer.toString(request.length));
con.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
OutputStream out = con.getOutputStream();

here is the SOAP message generation that doesn't work but should ;-)

SOAPMappingRegistry smr = new SOAPMappingRegistry ();
StringDeserializer sd = new StringDeserializer ();
smr.mapTypes(Constants.NS_URI_SOAP_ENC ,new QName("http://tempuri.org/","BonjourResult"),null,null,sd);

SOAPHTTPConnection st = new SOAPHTTPConnection();

Call call = new Call ();
call.setSOAPMappingRegistry (smr);

call.setTargetObjectURI ("http://tempuri.org/");
call.setEncodingStyleURI (Constants.NS_URI_SOAP_ENC);

Vector params = new Vector();
Parameter pTheByte = new Parameter("strName", String.class, "elise", null);
Response resp = null;
try {
resp = call.invoke (url, "http://tempuri.org/Bonjour");