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

Changeset 1471

Show
Ignore:
Timestamp:
04/14/05 22:32:21 (4 years ago)
Author:
nahi
Message:

let @@schema_element preserve ordering of contained elements defined in WSDL.
(I hope it) closes #84.

Files:

Legend:

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

    r1457 r1471  
    3838 
    3939  def setiv2soap(node, obj, map) 
    40     # should we sort instance_variables? 
    4140    if obj.class.class_variables.include?('@@schema_element') 
    42       elements = obj.class.class_eval('@@schema_element') 
    43     end 
    44     obj.instance_variables.each do |var| 
    45       name = var.sub(/^@/, '') 
    46       if elements 
    47         type, qname = elements[name] 
     41      obj.class.class_eval('@@schema_element').each do |name, info| 
     42        type, qname = info 
    4843        if qname 
    4944          elename = qname.name 
     45        else 
     46          elename = Mapping.name2elename(name) 
    5047        end 
    51       end 
    52       elename ||= Mapping.name2elename(name) 
    53       node.add(elename, Mapping._obj2soap(obj.instance_variable_get(var), map)) 
     48        node.add(elename, 
     49          Mapping._obj2soap(obj.instance_variable_get('@' + name), map)) 
     50      end 
     51    else 
     52      # should we sort instance_variables? 
     53      obj.instance_variables.each do |var| 
     54        name = var.sub(/^@/, '') 
     55        elename = Mapping.name2elename(name) 
     56        node.add(elename, 
     57          Mapping._obj2soap(obj.instance_variable_get(var), map)) 
     58      end 
    5459    end 
    5560  end 
  • trunk/lib/wsdl/soap/classDefCreator.rb

    r1469 r1471  
    164164    end 
    165165    c.def_classvar('schema_element', 
    166       '{' + 
     166      '[' + 
    167167        schema_element.collect { |varname, name, type| 
    168           if name 
    169             varname.dump + ' => [' + ndq(type) + ', ' + dqname(name) + ']' 
    170           else 
    171             varname.dump + ' => ' + ndq(type) 
    172           end 
     168          '[' + 
     169            ( 
     170              if name 
     171                varname.dump + ', [' + ndq(type) + ', ' + dqname(name) + ']' 
     172              else 
     173                varname.dump + ', ' + ndq(type) 
     174              end 
     175            ) + 
     176          ']' 
    173177        }.join(', ') + 
    174       '}
     178      ']
    175179    ) 
    176180    c.def_method('initialize', *params) do 
  • trunk/test/wsdl/any/expectedEcho.rb

    r1432 r1471  
    33  @@schema_type = "foo.bar" 
    44  @@schema_ns = "urn:example.com:echo-type" 
    5   @@schema_element = {"any" => nil} 
     5  @@schema_element = [["any", nil]] 
    66 
    77  attr_accessor :any 
  • trunk/test/wsdl/any/test_any.rb

    r1437 r1471  
    11require 'test/unit' 
    22require 'wsdl/parser' 
     3require 'wsdl/soap/wsdl2ruby' 
    34module WSDL; module Any 
    45 
  • trunk/test/wsdl/document/echo.rb

    r1470 r1471  
    44  @@schema_ns = "urn:docrpc" 
    55  @@schema_attribute = {"attr_string" => "SOAP::SOAPString", "attr_int" => "SOAP::SOAPInt"} 
    6   @@schema_element = {"struct1" => "Echo_struct", "struct2" => "Echo_struct"} 
     6  @@schema_element = [["struct1", "Echo_struct"], ["struct2", "Echo_struct"]] 
    77 
    88  attr_accessor :struct1 
     
    3737  @@schema_ns = "urn:docrpc" 
    3838  @@schema_attribute = {"attr_string" => "SOAP::SOAPString", "attr_int" => "SOAP::SOAPInt"} 
    39   @@schema_element = {"struct1" => "Echo_struct", "struct2" => "Echo_struct"} 
     39  @@schema_element = [["struct1", "Echo_struct"], ["struct2", "Echo_struct"]] 
    4040 
    4141  attr_accessor :struct1 
     
    7070  @@schema_ns = "urn:docrpc" 
    7171  @@schema_attribute = {"m_attr" => "SOAP::SOAPString"} 
    72   @@schema_element = {"m_string" => "SOAP::SOAPString", "m_datetime" => "SOAP::SOAPDateTime"} 
     72  @@schema_element = [["m_string", "SOAP::SOAPString"], ["m_datetime", "SOAP::SOAPDateTime"]] 
    7373 
    7474  attr_accessor :m_string 
  • trunk/test/wsdl/marshal/person_org.rb

    r1432 r1471  
    33  @@schema_type = "Person" 
    44  @@schema_ns = "http://www.jin.gr.jp/~nahi/xmlns/sample/Person" 
    5   @@schema_element = {"familyname" => "SOAP::SOAPString", "givenname" => "SOAP::SOAPString", "var1" => "SOAP::SOAPInt", "var2" => "SOAP::SOAPDouble", "var3" => "SOAP::SOAPString"} 
     5  @@schema_element = [["familyname", "SOAP::SOAPString"], ["givenname", "SOAP::SOAPString"], ["var1", "SOAP::SOAPInt"], ["var2", "SOAP::SOAPDouble"], ["var3", "SOAP::SOAPString"]] 
    66 
    77  attr_accessor :familyname 
  • trunk/test/wsdl/ref/expectedProduct.rb

    r1470 r1471  
    1111  @@schema_ns = "urn:product" 
    1212  @@schema_attribute = {"version" => "SOAP::SOAPString", "yesno" => "SOAP::SOAPString"} 
    13   @@schema_element = {"bag" => "Product[]", "rating" => ["SOAP::SOAPString[]", XSD::QName.new("urn:product", "Rating")], "product_Bag" => [nil, XSD::QName.new("urn:product", "Product-Bag")], "comment_1" => nil, "comment_2" => ["Comment[]", XSD::QName.new(nil, "comment-2")]} 
     13  @@schema_element = [["bag", "Product[]"], ["rating", ["SOAP::SOAPString[]", XSD::QName.new("urn:product", "Rating")]], ["product_Bag", [nil, XSD::QName.new("urn:product", "Product-Bag")]], ["comment_1", nil], ["comment_2", ["Comment[]", XSD::QName.new(nil, "comment-2")]]] 
    1414 
    1515  attr_accessor :bag 
     
    5656  @@schema_type = "Creator" 
    5757  @@schema_ns = "urn:product" 
    58   @@schema_element = {} 
     58  @@schema_element = [] 
    5959 
    6060  def initialize 
     
    6666  @@schema_type = "Product" 
    6767  @@schema_ns = "urn:product" 
    68   @@schema_element = {"name" => "SOAP::SOAPString", "rating" => ["SOAP::SOAPString", XSD::QName.new("urn:product", "Rating")]} 
     68  @@schema_element = [["name", "SOAP::SOAPString"], ["rating", ["SOAP::SOAPString", XSD::QName.new("urn:product", "Rating")]]] 
    6969 
    7070  attr_accessor :name 
  • trunk/test/wsdl/simpletype/rpc/expectedEchoVersion.rb

    r1432 r1471  
    33  @@schema_type = "version_struct" 
    44  @@schema_ns = "urn:example.com:simpletype-rpc-type" 
    5   @@schema_element = {"version" => "SOAP::SOAPString", "msg" => "SOAP::SOAPString"} 
     5  @@schema_element = [["version", "SOAP::SOAPString"], ["msg", "SOAP::SOAPString"]] 
    66 
    77  attr_accessor :version 
  • trunk/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb

    r1432 r1471  
    33  @@schema_type = "version_struct" 
    44  @@schema_ns = "urn:example.com:simpletype-rpc-type" 
    5   @@schema_element = {"version" => "SOAP::SOAPString", "msg" => "SOAP::SOAPString"} 
     5  @@schema_element = [["version", "SOAP::SOAPString"], ["msg", "SOAP::SOAPString"]] 
    66 
    77  attr_accessor :version 
  • trunk/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb

    r1432 r1471  
    33  @@schema_type = "question" 
    44  @@schema_ns = "urn:mysample" 
    5   @@schema_element = {"something" => "SOAP::SOAPString"} 
     5  @@schema_element = [["something", "SOAP::SOAPString"]] 
    66 
    77  attr_accessor :something 
     
    1616  @@schema_type = "section" 
    1717  @@schema_ns = "urn:mysample" 
    18   @@schema_element = {"sectionID" => "SOAP::SOAPInt", "name" => "SOAP::SOAPString", "description" => "SOAP::SOAPString", "index" => "SOAP::SOAPInt", "firstQuestion" => "Question"} 
     18  @@schema_element = [["sectionID", "SOAP::SOAPInt"], ["name", "SOAP::SOAPString"], ["description", "SOAP::SOAPString"], ["index", "SOAP::SOAPInt"], ["firstQuestion", "Question"]] 
    1919 
    2020  attr_accessor :sectionID