A debug session I tried to find the code to find where the response namespace prefix is mapped to the auto-generated namespace prefix from the wsdl analysis.

To resume:

   *   TCLWS namespace prefix for type "EnvelopeN": tns1
   *   Response XML namespace for same type: tns

Both are not mapped together resulting in a miss-interpretation of the response.

<hr />

So, line 2170 of

<verbatim>
::log::log debug "Using namespaces {$xns}"
</verbatim>

of function

<verbatim>
proc ::WS::Client::parseResults {serviceName operationName inXML} {
</verbatim>

outputs:

<verbatim>
Using namespaces {
  ENV
  xsi
  xs
  tns1
  d
  xs
</verbatim>

So, here is "tns1 in "$serviceInfo targetNamespace".

Then, this is called:

<verbatim>
::WS::Utils::convertTypeToDict
</verbatim>

The response namespace prefix contained in the top "Envelope" tag is never looked up. It seams to be ignored. But the required information is in there:

<verbatim>
<soap:Envelope
  ...

</verbatim>

How may this work ?

IMHO there should be a match done of the header namespace prefixes to the ones saved in the wsdl.

Or is this an issue in tdom ?

Should the command

<verbatim>
$doc selectNodesNamespaces $xns
</verbatim>

(Line 2171 ClientSide, directly follows the debug line mentioned here at the top)

change the namespace prefixes ?

Any idea appreciated.

Thank you,
Harald