summaryrefslogtreecommitdiff
path: root/lib/soap/encodingstyle/soapHandler.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/soap/encodingstyle/soapHandler.rb')
-rw-r--r--lib/soap/encodingstyle/soapHandler.rb10
1 files changed, 5 insertions, 5 deletions
diff --git a/lib/soap/encodingstyle/soapHandler.rb b/lib/soap/encodingstyle/soapHandler.rb
index 51780f5520..1f359bef4e 100644
--- a/lib/soap/encodingstyle/soapHandler.rb
+++ b/lib/soap/encodingstyle/soapHandler.rb
@@ -162,8 +162,6 @@ class SOAPHandler < Handler
o = SOAPReference.decode(elename, href)
@refpool << o
elsif @decode_typemap
- # to parse multi-ref element with decode_tag_by_type.
- # && (parent.node.class != SOAPBody || @is_first_top_ele)
o = decode_tag_by_wsdl(ns, elename, type, parent.node, arytype, extraattr)
else
o = decode_tag_by_type(ns, elename, type, parent.node, arytype, extraattr)
@@ -333,6 +331,7 @@ private
def decode_tag_by_wsdl(ns, elename, typestr, parent, arytypestr, extraattr)
o = nil
+ # should branch by root attribute?
if parent.class == SOAPBody
if @is_first_top_ele
# Unqualified name is allowed here.
@@ -363,11 +362,12 @@ private
extraattr)
end
- # parent.definedtype is nil means the parent is SOAPUnknown. SOAPUnknown is
- # generated by decode_tag_by_type when its type is anyType.
+ # parent.definedtype == nil means the parent is SOAPUnknown. SOAPUnknown
+ # is generated by decode_tag_by_type when its type is anyType.
parenttype = parent.definedtype || @decode_typemap[parent.type]
unless parenttype
- raise EncodingStyleError.new("Unknown type '#{ parent.type }'.")
+ return decode_tag_by_type(ns, elename, typestr, parent, arytypestr,
+ extraattr)
end
definedtype_name = parenttype.child_type(elename)