summaryrefslogtreecommitdiff
path: root/suds/bindings/binding.py
diff options
context:
space:
mode:
authorjortel <devnull@localhost>2009-07-18 00:53:55 +0000
committerjortel <devnull@localhost>2009-07-18 00:53:55 +0000
commit3087a0f9fc2e768e7a441488cccefe584bf07781 (patch)
tree92dbf66cddf40e1ac36218f8fcf471843bd0596f /suds/bindings/binding.py
parent136140850f1d2e0509b0874c1a57012dc713785f (diff)
downloadsuds-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.py36
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):