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

Changeset 1980

Show
Ignore:
Timestamp:
09/21/07 19:24:02 (10 months ago)
Author:
nahi
Message:
Files:

Legend:

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

    r1979 r1980  
    3030      dump_complex_typemap(mpath, qname, typedef, as_element, opt) 
    3131    when :TYPE_ARRAY 
    32       dump_array_typemap(mpath, qname, typedef, opt) 
     32      dump_array_typemap(mpath, qname, typedef, as_element, opt) 
    3333    when :TYPE_SIMPLE 
    3434      dump_simple_typemap(mpath, qname, typedef, as_element, opt) 
     
    4242  end 
    4343 
    44   def dump_array_typemap(mpath, qname, typedef, opt) 
     44  def dump_array_typemap(mpath, qname, typedef, as_element, opt) 
    4545    if typedef.find_soapenc_arytype 
    4646      if opt[:encoded] 
    47         dump_encoded_array_typemap(mpath, qname, typedef, opt) 
    48       end 
    49     else 
    50       dump_literal_array_typemap(mpath, qname, typedef, opt) 
     47        dump_encoded_array_typemap(mpath, qname, typedef, as_element, opt) 
     48      end 
     49    else 
     50      dump_literal_array_typemap(mpath, qname, typedef, as_element, opt) 
    5151    end 
    5252  end 
     
    5454  def dump_complex_typemap(mpath, qname, typedef, as_element, opt) 
    5555    var = {} 
    56     var[:class] = mapped_class_name(qname, mpath) 
    57     if as_element 
    58       var[:schema_name] = as_element 
    59       chema_ns = as_element.namespace 
    60     elsif typedef.name.nil? 
    61       var[:schema_name] = qname 
    62       schema_ns = qname.namespace 
    63     else 
    64       var[:schema_type] = qname 
    65       var[:schema_basetype] = typedef.base if typedef.base 
    66       schema_ns = qname.namespace 
    67     end 
    68     var[:is_anonymous] = opt[:is_anonymous] if opt.key?(:is_anonymous) 
    69     # true, false, or nil 
    70     if opt.key?(:qualified) 
    71       var[:schema_qualified] = opt[:qualified].to_s 
     56    define_dump_class(var, mpath, qname, typedef, as_element, opt) 
     57    schema_ns = (var[:schema_name] || var[:schema_type]).namespace 
     58    if var[:schema_type] and typedef.base 
     59      var[:schema_basetype] = typedef.base 
    7260    end 
    7361    parentmodule = var[:class] 
     
    8775  def dump_simple_typemap(mpath, qname, typedef, as_element, opt) 
    8876    var = {} 
    89     var[:class] = mapped_class_name(qname, mpath) 
    90     if as_element 
    91       var[:schema_name] = as_element 
    92       schema_ns = as_element.namespace 
    93     elsif typedef.name.nil? 
    94       var[:schema_name] = qname 
    95       schema_ns = qname.namespace 
    96     else 
    97       var[:schema_type] = qname 
    98       schema_ns = qname.namespace 
    99     end 
    100     var[:is_anonymous] = opt[:is_anonymous] if opt.key?(:is_anonymous) 
     77    define_dump_class(var, mpath, qname, typedef, as_element, opt) 
     78    schema_ns = (var[:schema_name] || var[:schema_type]).namespace 
    10179    unless typedef.attributes.empty? 
    10280      var[:schema_attribute] = define_attribute(typedef.attributes) 
     
    300278    end 
    301279    var = {} 
    302     var[:class] = mapped_class_name(qname, mpath) 
    303     if as_element 
    304       var[:schema_name] = as_element 
    305       schema_ns = as_element.namespace 
    306     elsif typedef.name.nil? 
    307       var[:schema_name] = qname 
    308       schema_ns = qname.namespace 
    309     else 
    310       var[:schema_type] = qname 
    311       schema_ns = qname.namespace 
    312     end 
    313     var[:is_anonymous] = opt[:is_anonymous] if opt.key?(:is_anonymous) 
     280    define_dump_class(var, mpath, qname, typedef, as_element, opt) 
     281    schema_ns = (var[:schema_name] || var[:schema_type]).namespace 
    314282    assign_const(schema_ns, 'Ns') 
    315283    dump_entry(@varname, var) 
     
    326294  DEFAULT_ITEM_NAME = XSD::QName.new(nil, 'item') 
    327295 
    328   def dump_literal_array_typemap(mpath, qname, typedef, opt) 
     296  def dump_literal_array_typemap(mpath, qname, typedef, as_element, opt) 
    329297    var = {} 
    330     var[:class] = mapped_class_name(qname, mpath) 
    331     schema_ns = qname.namespace 
    332     if typedef.name.nil? 
    333       # local complextype of a element 
    334       var[:schema_name] = qname 
    335     else 
    336       # named complextype 
    337       var[:schema_type] = qname 
    338     end 
    339     var[:is_anonymous] = opt[:is_anonymous] if opt.key?(:is_anonymous) 
     298    define_dump_class(var, mpath, qname, typedef, as_element, opt) 
     299    schema_ns = (var[:schema_name] || var[:schema_type]).namespace 
    340300    parsed_element = 
    341301      parse_elements(typedef.elements, qname.namespace, var[:class], opt) 
     
    348308  end 
    349309 
    350   def dump_encoded_array_typemap(mpath, qname, typedef, opt) 
     310  def dump_encoded_array_typemap(mpath, qname, typedef, as_element, opt) 
    351311    arytype = typedef.find_arytype || XSD::AnyTypeName 
    352312    type = XSD::QName.new(arytype.namespace, arytype.name.sub(/\[(?:,)*\]$/, '')) 
     
    391351    [child_element_name.name, child_element_name, type, occurrence] 
    392352  end 
     353 
     354  def define_dump_class(var, mpath, qname, typedef, as_element, opt) 
     355    var[:class] = mapped_class_name(qname, mpath) 
     356    if as_element 
     357      var[:schema_name] = as_element 
     358      schema_ns = as_element.namespace 
     359    elsif typedef.name.nil? 
     360      var[:schema_name] = qname 
     361      schema_ns = qname.namespace 
     362    else 
     363      var[:schema_type] = qname 
     364      schema_ns = qname.namespace 
     365    end 
     366    var[:is_anonymous] = opt[:is_anonymous] if opt.key?(:is_anonymous) 
     367    # true, false, or nil 
     368    if opt.key?(:qualified) 
     369      var[:schema_qualified] = opt[:qualified].to_s 
     370    end 
     371  end 
    393372end 
    394373