Removendo o namespace da solicitação SOAP

Importei um WSDL e o uso para enviar uma solicitação SOAP. Se parece com isso:

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <SOAP-ENV:Body>
        <Calculate xmlns="urn:xx.WSDL.xxxxxWebService">
            <ContractdocumentIn>
                <AL>
                ...More XML...

O problema é oxmlns="urn:xx.WSDL.xxxxxWebService" parte no elemento Calcular. O serviço da web não pode aceitar isso. O serviço da web não gosta de espaços para nome como este ...
UsandoSoapUI Eu encontrei este pedido para funcionar muito bem:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:col="http://example.com.service.xxx/">
    <SOAP-ENV:Body>
        <col:Calculate>
            <ContractdocumentIn>
                <AL>
                    ...More XML...

Então, como altero a solicitação da primeira para a segunda versão? (Sem usar truques sujos!)
(Reimportar não é um problema se isso resultar no formato de solicitação adequado.)




Novamente: não são permitidos truques sujos, como invadir o fluxo de solicitações para modificá-lo!

E embora eu ainda não o tenha testado completamente, parece que o C # / VS2010 e o Delphi 2010 também não conseguem usar o serviço da Web que estou tentando chamar. Um serviço da web que parece estar escrito em Java.SoapUI passa a ser escrito em Java, portanto, temos um cliente Java conversando com um serviço Java, que parece funcionar muito bem. Mas algum outro cliente?
De qualquer forma, é hora de adicionar mais duas tags: "Java", já que é um serviço Java, e "vs2010" porque o .NET também não gosta desse serviço.
E eu estava prestes a escrever um wrapper sobre esse serviço no .NET, esperando que funcionasse ... Não funciona. Portanto, esta é uma falha muito séria, possivelmente uma falha em Java ...

questionAnswers(2)

yourAnswerToTheQuestion