diff options
author | jortel <devnull@localhost> | 2009-07-18 00:53:55 +0000 |
---|---|---|
committer | jortel <devnull@localhost> | 2009-07-18 00:53:55 +0000 |
commit | 3087a0f9fc2e768e7a441488cccefe584bf07781 (patch) | |
tree | 92dbf66cddf40e1ac36218f8fcf471843bd0596f /suds/bindings/binding.py | |
parent | 136140850f1d2e0509b0874c1a57012dc713785f (diff) | |
download | suds-3087a0f9fc2e768e7a441488cccefe584bf07781.tar.gz |
Fix ticket #241. Update wsdl data model to only include message parts in <body/> as specified by binding definition <soap:body parts=''/>. Accomplished by: flushing out (wsdl.py) Definitions: binding.operation.soap.(input|output).body to contain message parts as defined by optional binding <input parts=''/> and <output parts=''/>. When parts omitted, all parts of referenced message parts included in message <body/>. Replace binding.operation.soap.(input|output).headers.header.message with header.message header.part. Move service.methods[].method.(input|output).wrapped to method.soap.(input|output).body. Remove service.method[].method.message because the method.soap not contains all input and output message parts. Update bindings to match wsdl Definitions structural changes.
Diffstat (limited to 'suds/bindings/binding.py')
-rw-r--r-- | suds/bindings/binding.py | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/suds/bindings/binding.py b/suds/bindings/binding.py index 78163e2..0520545 100644 --- a/suds/bindings/binding.py +++ b/suds/bindings/binding.py @@ -402,9 +402,9 @@ class Binding: """ result = [] if input: - parts = method.message.input.parts + parts = method.soap.input.body.parts else: - parts = method.message.output.parts + parts = method.soap.output.body.parts for p in parts: if p.element is not None: query = ElementQuery(p.element) @@ -441,23 +441,23 @@ class Binding: else: headers = method.soap.output.headers for header in headers: - for p in header.message.parts: - if p.element is not None: - query = ElementQuery(p.element) - else: - query = TypeQuery(p.type) - pt = query.execute(self.schema) - if pt is None: - raise TypeNotFound(query.ref) - if p.type is not None: - pt = PartElement(p.name, pt) - if input: - if pt.name is None: - result.append((p.name, pt)) - else: - result.append((pt.name, pt)) + part = header.part + if part.element is not None: + query = ElementQuery(part.element) + else: + query = TypeQuery(part.type) + pt = query.execute(self.schema) + if pt is None: + raise TypeNotFound(query.ref) + if part.type is not None: + pt = PartElement(part.name, pt) + if input: + if pt.name is None: + result.append((part.name, pt)) else: - result.append(pt) + result.append((pt.name, pt)) + else: + result.append(pt) return result def returned_types(self, method): |