summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjortel <devnull@localhost>2009-12-22 21:40:41 +0000
committerjortel <devnull@localhost>2009-12-22 21:40:41 +0000
commit2fc3d60c9fd0aac7d4552bd685a4642afa1c07d5 (patch)
treeee04b5075cd160bf8125aadecc619d9c49bb9cb6
parentcbcf8acf40cceff51166d0b241edc441be1fc4e1 (diff)
downloadsuds-2fc3d60c9fd0aac7d4552bd685a4642afa1c07d5.tar.gz
Set /real/ type as Object metadata type in typed unmarshaller. Cast Objects in encoded marshaller when casting array content.
-rw-r--r--suds/__init__.py2
-rw-r--r--suds/mx/encoded.py7
-rw-r--r--suds/umx/typed.py2
3 files changed, 8 insertions, 3 deletions
diff --git a/suds/__init__.py b/suds/__init__.py
index 9fdf3a4..7e4c77e 100644
--- a/suds/__init__.py
+++ b/suds/__init__.py
@@ -29,7 +29,7 @@ import sys
#
__version__ = '0.3.9'
-__build__="(beta) R630-20091221"
+__build__="(beta) R632-20091221"
#
# Exceptions
diff --git a/suds/mx/encoded.py b/suds/mx/encoded.py
index 18cdec1..93fe444 100644
--- a/suds/mx/encoded.py
+++ b/suds/mx/encoded.py
@@ -111,9 +111,14 @@ class Encoded(Literal):
if ref is None:
raise TypeNotFound(qref)
for x in content.value:
- if isinstance(x, (list, tuple, Object)):
+ if isinstance(x, (list, tuple)):
array.item.append(x)
continue
+ if isinstance(x, Object):
+ md = x.__metadata__
+ md.sxtype = ref
+ array.item.append(x)
+ continue
if isinstance(x, dict):
x = Factory.object(ref.name, x)
md = x.__metadata__
diff --git a/suds/umx/typed.py b/suds/umx/typed.py
index 0db22d7..f272a25 100644
--- a/suds/umx/typed.py
+++ b/suds/umx/typed.py
@@ -90,7 +90,7 @@ class Typed(Core):
cls_name = content.node.name
content.data = Factory.object(cls_name)
md = content.data.__metadata__
- md.sxtype = content.type
+ md.sxtype = real
def end(self, content):
self.resolver.pop()