Search code examples
pythonxmlsoapsudsenvelope

Overwrite the Soap Envelope in Suds python


I have a camera and I am trying to connect to it vis suds. I have tried to send raw xml and have found that the only thing stopping the xml suds from working is an incorrect Soap envelope namespace.

The envelope namespace is:

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"

and I want to rewrite it to:

xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope"

In order to add a namespace in python I try this code:

message = Element('Element_name').addPrefix(p='SOAP-ENC', u='www.w3.org/ENC')

But when I add the SOAP-ENV to the namespace it doesn't write as it is hardcoded into the suds bindings. Is there a way to overwrite this in suds?

Thanks for any help.


Solution

  • I managed to get this working, the soap envelope is hard coded into bindings.py that is stored in suds.egg installed in your site-packages. I changed the SOAP envelope address to http://www.w3.org/2003/05/soap-envelope. This was compatible with my camera. I was unable to find a command to overwrite this envelope in suds so I hard coded it in to the bindings.py.

    Thanks for any help