Soap Body namespaces


On wM 7.1.2 we have following problem: We call a WebService and get a valid response, but we have in the response document a namespace that resides within the soap-env:Body (And it’s not defined in the soap-env:Envelope).

Now, this namespace is used for the root element in the Body and thus has a prefix. Now, this prefix can normally be chosen freely. (As long as the namespaces match). But, WebMethods doesn’t parse the namespace. It just copies the field with whatever prefix is used in the response. As a result, we can’t map the document as we don’t know what prefix will be used. When checking with an external tool (SoapUI) it does validate correctly. So the WebService itself is allowed to define namespaces within the soap-env:Body I assume.

What would be the best approach for this issue?

As information the response document, the problematic prefix is in this case “sapgdt”:

<soap-env:Envelope xmlns:soap-env="[URL][/URL]">
               <Note>PLM document 276 is currently locked by user C01215</Note>
               <Note>Instance 000000000276 of object type PostingLockItem could not be changed</Note>

you said that “sapgtd” namespace is not fixed why? as “d” indicates development ns? Is that not defined in the original WSDL and based on this the WSD doctypes should have created with sapgdt:CancelPostingLockDocumentConfirmation_sync

When you use step xmlNodeToDocument(set nsDecls) -
Namespace prefixes to use for the conversion.and tried this out.