Welcome to the "trac"-ing site of soap4r!
[soap4r] [httpclient] [openpgp4u] [pkcs1] [logger] [csv] [vtr]

Changeset 1553

Show
Ignore:
Timestamp:
05/20/05 00:06:54 (4 years ago)
Author:
nahi
Message:

mapping an Array with WSDL fails. it must check Element#map_as_array? closes #110.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/soap/mapping/wsdlliteralregistry.rb

    r1540 r1553  
    128128          raise MappingError.new("nil not allowed: #{child_ele.name.name}") 
    129129        end 
     130      elsif child_ele.map_as_array? 
     131        child.each do |item| 
     132          o.add(_obj2soap(item, child_ele)) 
     133        end 
    130134      else 
    131135        o.add(_obj2soap(child, child_ele)) 
     
    194198      elements.each do |elename, type| 
    195199        child = Mapping.get_attribute(obj, elename) 
    196         name = XSD::QName.new(nil, elename) 
    197         if as_array.include?(type) 
    198           child.each do |item| 
    199             ele.add(obj2soap(item, name)) 
     200        unless child.nil? 
     201          name = XSD::QName.new(nil, elename) 
     202          if as_array.include?(type) 
     203            child.each do |item| 
     204              ele.add(obj2soap(item, name)) 
     205            end 
     206          else 
     207            ele.add(obj2soap(child, name)) 
    200208          end 
    201         else 
    202           ele.add(obj2soap(child, name)) 
    203209        end 
    204210      end 
     
    321327  def add_elements2undefinedobj(node, obj) 
    322328    node.each do |name, value| 
    323       obj[XSD::QName.new(nil, name)] = soapele2obj(value
     329      obj.__add_xmlele_value(XSD::QName.new(nil, name), soapele2obj(value)
    324330    end 
    325331  end