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

Changeset 2011 for trunk/lib

Show
Ignore:
Timestamp:
02/10/08 10:57:09 (8 months ago)
Author:
nahi
Message:
  • merged from 1_5 branch.
    • enabled Sriver#generate_explicit_type for literal services.
    • test added.
    • removed generated files.
Files:

Legend:

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

    r1970 r2011  
    4949  attr_reader :extraattr 
    5050  attr_accessor :definedtype 
     51  attr_accessor :force_typed 
    5152 
    5253  def initialize(*arg) 
     
    6162    @definedtype = nil 
    6263    @extraattr = {} 
     64    @force_typed = false 
    6365  end 
    6466 
  • trunk/lib/soap/encodingstyle/literalHandler.rb

    r1975 r2011  
    3030    attrs = {} 
    3131    name = generator.encode_name(ns, data, attrs) 
     32    if data.type and data.type.name and 
     33        (@generate_explicit_type or data.force_typed) 
     34      data.extraattr[XSD::AttrTypeName] = data.type 
     35    end 
    3236    data.extraattr.each do |key, value| 
    33       next if !@generate_explicit_type and key == XSD::AttrTypeName 
    3437      keytag = key 
    3538      if key.is_a?(XSD::QName) 
  • trunk/lib/soap/generator.rb

    r2000 r2011  
    142142    else 
    143143      if obj.is_a?(SOAPEnvelope) 
    144         # xsi:nil="true" can appear even if dumping without explicit type. 
    145144        Generator.assign_ns(attrs, ns, XSD::InstanceNamespace) 
    146         if @generate_explicit_type 
    147           Generator.assign_ns(attrs, ns, XSD::Namespace) 
    148         end 
     145        Generator.assign_ns(attrs, ns, XSD::Namespace) 
    149146      end 
    150147      obj.encode(self, ns, attrs) do |child| 
  • trunk/lib/soap/mapping/literalregistry.rb

    r1993 r2011  
    137137    end 
    138138    ele.qualified = definition.qualified 
    139     if definition.type and (definition.basetype or Mapping.root_type_hint) 
    140       Mapping.reset_root_type_hint 
    141       ele.extraattr[XSD::AttrTypeName] = definition.type 
     139    if definition.type 
     140      ele.type = definition.type 
     141      if definition.basetype or Mapping.root_type_hint 
     142        Mapping.reset_root_type_hint 
     143        ele.force_typed = true 
     144      end 
    142145    end 
    143146    if qname.nil? and definition.elename 
  • trunk/lib/soap/mapping/wsdlliteralregistry.rb

    r1949 r2011  
    110110      else 
    111111        ele = complexobj2soap(obj, type) 
     112      end 
     113      ele.type = type.name 
     114      if type.base or Mapping.root_type_hint 
     115        Mapping.reset_root_type_hint 
     116        ele.force_typed = true 
    112117      end 
    113118      add_definedattributes2soap(obj, ele, type) 
  • trunk/lib/soap/rpc/proxy.rb

    r2005 r2011  
    5757    @allow_unqualified_element = true 
    5858    @default_encodingstyle = nil 
    59     @generate_explicit_type = true 
     59    @generate_explicit_type = nil 
    6060    @use_default_namespace = false 
    6161    @return_response_as_xml = false 
     
    141141        @default_encodingstyle || op_info.response_default_encodingstyle 
    142142    ) 
     143    if reqopt[:generate_explicit_type].nil? 
     144      reqopt[:generate_explicit_type] = (op_info.request_use == :encoded) 
     145    end 
     146    if resopt[:generate_explicit_type].nil? 
     147      resopt[:generate_explicit_type] = (op_info.response_use == :encoded) 
     148    end 
    143149    env = route(req_header, req_body, reqopt, resopt) 
    144150    if op_info.response_use.nil? 
  • trunk/lib/xsd/mapping.rb

    r1936 r2011  
    3131    MAPPING_OPT = { 
    3232      :default_encodingstyle => SOAP::LiteralNamespace, 
     33      :generate_explicit_type => false, 
    3334      :root_type_hint => true 
    3435    }.freeze