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

Changeset 1866

Show
Ignore:
Timestamp:
06/29/07 20:20:11 (1 year ago)
Author:
nahi
Message:
  • an rpc/encoded parameter could be wrongly typed when the parameter is typed as a derived type from a base type of XML Schema datatypes. closes #371.
  • extraattr did not work for rpc/encoded service. fixed.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lib/soap/encodingstyle/literalHandler.rb

    r1836 r1866  
    3333      next if !@generate_explicit_type and key == XSD::AttrTypeName 
    3434      # ToDo: check generator.attributeformdefault here 
     35      keytag = key 
    3536      if key.is_a?(XSD::QName) 
    36         key = encode_qname(attrs, ns, key) 
     37        keytag = encode_qname(attrs, ns, key) 
    3738      end 
    3839      if value.is_a?(XSD::QName) 
    3940        value = encode_qname(attrs, ns, value) 
    4041      end 
    41       attrs[key] = value 
     42      attrs[keytag] = value 
    4243    end 
    4344    case data 
  • trunk/lib/soap/encodingstyle/soapHandler.rb

    r1836 r1866  
    298298      end 
    299299    end 
    300  
    301300    data.extraattr.each do |key, value| 
     301      keytag = key 
    302302      if key.is_a?(XSD::QName) 
    303303        keytag = encode_qname(attrs, ns, key) 
    304304      end 
    305       attrs[keytag] = encode_attr_value(generator, ns, key, value) 
     305      if value.is_a?(XSD::QName) 
     306        value = encode_qname(attrs, ns, value) 
     307      else 
     308        value = encode_attr_value(generator, ns, key, value) 
     309      end 
     310      attrs[keytag] = value 
    306311    end 
    307312    if data.id 
     
    317322      generator.add_reftarget(qname.name, value) 
    318323      ref.refidstr 
    319     when XSD::QName 
    320       encode_qname(attrs, ns, value) 
    321324    else 
    322325      value.to_s 
  • trunk/lib/soap/mapping/encodedregistry.rb

    r1839 r1866  
    434434      array2soap(obj, definition) 
    435435    else 
    436       return unknownstubobj2soap(obj, definition) 
     436      unknownstubobj2soap(obj, definition) 
    437437    end 
    438438  end 
     
    454454      ele = Mapping.obj2soap(obj) 
    455455      ele.elename = definition.elename if definition.elename 
     456      ele.extraattr[XSD::AttrTypeName] = definition.type if definition.type 
    456457      return ele 
    457458    else