[Soap-Python] bug with generation of header elements (+ patch)

Burak Arslan burak.arslan at arskom.com.tr
Thu May 3 02:33:29 CEST 2012


On 05/02/12 20:32, Wolfgang Sourdeau wrote:
>
>>
>> This indeed fixes my output. Does this seem reasonable?
>>
> The only downturn I see is that the default tns is not fallen back on 
> when __namespace__ is not defined. So this is likely to be wrong in 
> the general case. I don't know how to reconcile this though, since 
> __namespace__ will always return something and I would think comparing 
> this to the class's module name would be rather hackish.
>


No need to worry about non-defined namespaces, they're substituted with 
the module name.

This commit fixes the issue:

https://github.com/plq/rpclib/commit/215b8cf1502eb8f390d595a4cb6c3e4f9285ffdd

Start tags are now in the same namespace as the definitions themselves. 
intermediate tags are in the parent's namespace, just as before.

In the below example; SomeObject here is the direct child of a senv: 
child, so i call it a start tag. Its namespace is the namespace defined 
in rpclib model definition. SomeChild is in the s1: namespace in 
rpclib.model definition. But its start tag is in its parent namespace, 
and its child tag is in SomeChild's own namespace.

<senv:Header>
<s0:SomeObject>
<s0:SomeChild>
<s1:SomeString>blah</s1:SomeString>
</s0:SomeChild>
</s0:SomeObject>
</senv:Header>

With the previous behaviour, start tags were always in the tns: prefix, 
like the SomeObject case here:

<senv:Header>
<tns:SomeObject>
<s0:SomeChild>
<s1:SomeString>blah</s1:SomeString>
</s0:SomeChild>
</tns:SomeObject>
</senv:Header>


I think this is an important change. Please let me know if you think 
this is wrong.

Best,
Burak


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/soap/attachments/20120503/ca0f8771/attachment.html>


More information about the Soap mailing list