method
complexobj2soap
v1_8_6_287 -
Show latest stable
- Class:
SOAP::Mapping::WSDLLiteralRegistry
complexobj2soap(obj, type, qualified)private
No documentation available.
# File lib/soap/mapping/wsdlliteralregistry.rb, line 119
def complexobj2soap(obj, type, qualified)
o = SOAPElement.new(type.name)
o.qualified = qualified
type.each_element do |child_ele|
child = Mapping.get_attribute(obj, child_ele.name.name)
if child.nil?
if child_ele.nillable
# ToDo: test
# add empty element
child_soap = obj2elesoap(nil, child_ele)
o.add(child_soap)
elsif Integer(child_ele.minoccurs) == 0
# nothing to do
else
raise MappingError.new("nil not allowed: #{child_ele.name.name}")
end
elsif child_ele.map_as_array?
child.each do |item|
child_soap = obj2elesoap(item, child_ele)
o.add(child_soap)
end
else
child_soap = obj2elesoap(child, child_ele)
o.add(child_soap)
end
end
o
end