Changeset 1679
- Timestamp:
- 12/04/05 11:35:26 (3 years ago)
- Files:
-
- trunk/lib/soap/mapping/wsdlencodedregistry.rb (modified) (1 diff)
- trunk/lib/wsdl/soap/classDefCreator.rb (modified) (5 diffs)
- trunk/lib/wsdl/soap/complexType.rb (modified) (1 diff)
- trunk/test/wsdl/ref/expectedProduct.rb (modified) (2 diffs)
- trunk/test/wsdl/rpc/rpc.wsdl (modified) (1 diff)
- trunk/test/wsdl/rpc/test_rpc.rb (modified) (4 diffs)
- trunk/test/wsdl/simpletype/rpc/expectedEchoVersion.rb (modified) (1 diff)
- trunk/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb (modified) (1 diff)
- trunk/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/mapping/wsdlencodedregistry.rb
r1663 r1679 126 126 return SOAPNil.new if obj.nil? # ToDo: check nillable. 127 127 if type.base 128 base2soap(obj, TypeMap[type.base]) 128 soap_obj = base2soap(obj, TypeMap[type.base]) 129 soap_obj.type = type.name 130 soap_obj 129 131 elsif type.list 130 132 base2soap(obj.join(" "), SOAP::SOAPString) trunk/lib/wsdl/soap/classDefCreator.rb
r1664 r1679 114 114 return nil 115 115 end 116 c = ModuleDef.new(create_class_name(qname)) 116 classname = create_class_name(qname) 117 c = ClassDef.new(classname, '::String') 117 118 c.comment = "#{qname}" 118 define_enum_restriction(c, restriction.enumeration) 119 c.def_classvar('schema_type', ndq(qname.name)) 120 c.def_classvar('schema_ns', ndq(qname.namespace)) 121 define_classenum_restriction(c, classname, restriction.enumeration) 119 122 c.dump 120 123 end … … 128 131 "unknown kind of simpletype: #{simpletype}") 129 132 end 130 define_ enum_restriction(c, simpletype.restriction.enumeration)133 define_stringenum_restriction(c, simpletype.restriction.enumeration) 131 134 c.comment << "\n contains list of #{create_class_name(qname)}::*" 132 135 elsif list.itemtype … … 138 141 end 139 142 140 def define_ enum_restriction(c, enumeration)143 def define_stringenum_restriction(c, enumeration) 141 144 const = {} 142 145 enumeration.each do |value| … … 147 150 end 148 151 c.def_const(constname, ndq(value)) 152 end 153 end 154 155 def define_classenum_restriction(c, classname, enumeration) 156 const = {} 157 enumeration.each do |value| 158 constname = safeconstname(value) 159 const[constname] ||= 0 160 if (const[constname] += 1) > 1 161 constname += "_#{const[constname]}" 162 end 163 c.def_const(constname, "#{classname}.new(#{ndq(value)})") 149 164 end 150 165 end … … 398 413 c.comment = "#{qname}" 399 414 child_type = complextype.child_type 400 c.def_classvar('schema_type', ndq(child_type.name))401 c.def_classvar('schema_ns', ndq(child_type.namespace))402 415 child_element = complextype.find_aryelement 403 416 schema_element = [] trunk/lib/wsdl/soap/complexType.rb
r1669 r1679 135 135 else 136 136 # element definition 137 element.name137 nil 138 138 end 139 139 when XMLSchema::Any trunk/test/wsdl/ref/expectedProduct.rb
r1664 r1679 2 2 3 3 # {urn:ref}Rating 4 module Rating 5 C_0 = "0" 6 C_1 = "+1" 7 C_1_2 = "-1" 4 class Rating < ::String 5 @@schema_type = "Rating" 6 @@schema_ns = "urn:ref" 7 8 C_0 = Rating.new("0") 9 C_1 = Rating.new("+1") 10 C_1_2 = Rating.new("-1") 8 11 end 9 12 … … 85 88 86 89 # {urn:ref}yesno 87 module Yesno 88 N = "N" 89 Y = "Y" 90 class Yesno < ::String 91 @@schema_type = "yesno" 92 @@schema_ns = "urn:ref" 93 94 N = Yesno.new("N") 95 Y = Yesno.new("Y") 90 96 end 91 97 trunk/test/wsdl/rpc/rpc.wsdl
r1515 r1679 14 14 <xsd:element name="given_name" type="xsd:string" /> 15 15 <xsd:element name="age" type="xsd:int" /> 16 <xsd:element name="gender" type="txd:gender" /> 16 17 <xsd:element name="link" type="txd:person" /> 17 18 </xsd:all> 18 19 </xsd:complexType> 20 21 <xsd:simpleType name="gender"> 22 <xsd:restriction base="xsd:string"> 23 <xsd:enumeration value="F"/> 24 <xsd:enumeration value="M"/> 25 </xsd:restriction> 26 </xsd:simpleType> 19 27 </xsd:schema> 20 28 </types> trunk/test/wsdl/rpc/test_rpc.rb
r1515 r1679 50 50 def teardown 51 51 teardown_server 52 File.unlink(pathname('echo.rb')) 52 File.unlink(pathname('echo.rb')) unless $DEBUG 53 53 @client.reset_stream if @client 54 54 end … … 95 95 @client.wiredump_dev = STDOUT if $DEBUG 96 96 97 ret = @client.echo(Person.new("normal", "", 12 ), Person.new("Hi", "Na", 21))97 ret = @client.echo(Person.new("normal", "", 12, Gender::F), Person.new("Hi", "Na", 21, Gender::M)) 98 98 assert_equal(Person, ret.class) 99 99 assert_equal("Hi", ret.family_name) … … 101 101 assert_equal(21, ret.age) 102 102 103 ret = @client.echo(Person.new("dummy", "", 12 ), Person.new("Hi", "Na", 21))103 ret = @client.echo(Person.new("dummy", "", 12, Gender::F), Person.new("Hi", "Na", 21, Gender::M)) 104 104 assert_equal(Person, ret.class) 105 105 assert_equal("family-name", ret.family_name) … … 107 107 assert_equal(nil, ret.age) 108 108 109 ret = @client.echo_err(Person.new("Na", "Hi" ), Person.new("Hi", "Na"))109 ret = @client.echo_err(Person.new("Na", "Hi", nil, Gender::F), Person.new("Hi", "Na", nil, Gender::M)) 110 110 assert_equal(Person, ret.class) 111 111 assert_equal("58", ret.given_name) trunk/test/wsdl/simpletype/rpc/expectedEchoVersion.rb
r1664 r1679 20 20 21 21 # {urn:example.com:simpletype-rpc-type}version 22 module Version 23 C_16 = "1.6" 24 C_18 = "1.8" 25 C_19 = "1.9" 22 class Version < ::String 23 @@schema_type = "version" 24 @@schema_ns = "urn:example.com:simpletype-rpc-type" 25 26 C_16 = Version.new("1.6") 27 C_18 = Version.new("1.8") 28 C_19 = Version.new("1.9") 26 29 end trunk/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb
r1664 r1679 20 20 21 21 # {urn:example.com:simpletype-rpc-type}version 22 module Version 23 C_16 = "1.6" 24 C_18 = "1.8" 25 C_19 = "1.9" 22 class Version < ::String 23 @@schema_type = "version" 24 @@schema_ns = "urn:example.com:simpletype-rpc-type" 25 26 C_16 = Version.new("1.6") 27 C_18 = Version.new("1.8") 28 C_19 = Version.new("1.9") 26 29 end trunk/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb
r1664 r1679 45 45 # {urn:mysample}sectionArray 46 46 class SectionArray < ::Array 47 @@schema_type = "section"48 @@schema_ns = "urn:mysample"49 47 @@schema_element = [ 50 48 ["item", ["Section", XSD::QName.new(nil, "item")]]