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


_______________________________________________
Soap mailing list
[email protected]
http://mail.python.org/mailman/listinfo/soap

Reply via email to