Changeset 1664
- Timestamp:
- 11/07/05 22:14:12 (3 years ago)
- Files:
-
- trunk/lib/wsdl/soap/classDefCreator.rb (modified) (4 diffs)
- trunk/test/wsdl/any/expectedEcho.rb (modified) (1 diff)
- trunk/test/wsdl/marshal/person_org.rb (modified) (1 diff)
- trunk/test/wsdl/ref/expectedProduct.rb (modified) (7 diffs)
- trunk/test/wsdl/ref/product.wsdl (modified) (2 diffs)
- trunk/test/wsdl/ref/test_ref.rb (modified) (10 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) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/wsdl/soap/classDefCreator.rb
r1663 r1664 151 151 152 152 def dump_simpleclassdef(qname, type_or_element) 153 base = create_class_name(type_or_element.simplecontent.base) 154 c = ClassDef.new(create_class_name(qname), base) 155 c.comment = "#{qname}" 153 base = basetype_class(type_or_element.simplecontent.base) 154 c = ClassDef.new(create_class_name(qname), '::String') 155 c.comment = "#{qname}\n contains #{base}" 156 init_lines = [] 156 157 unless type_or_element.attributes.empty? 157 158 define_attribute(c, type_or_element.attributes) 158 c.def_method('initialize', '*arg') do 159 "super\n" + "@__xmlattr = {}" 160 end 159 init_lines << "@__xmlattr = {}" 160 end 161 c.def_method('initialize', '*arg') do 162 "super\n" + init_lines.join("\n") 161 163 end 162 164 c.dump … … 213 215 definition.shift 214 216 "[ :choice,\n" + ' ' * indent + 215 dump_schema_element(definition, indent) + ']'217 dump_schema_element(definition, indent) + "\n]" 216 218 elsif definition[0].is_a?(::Array) 217 219 "[\n" + ' ' * indent + 218 dump_schema_element(definition, indent) + ']'220 dump_schema_element(definition, indent) + "\n]" 219 221 else 220 222 varname, name, type = definition … … 370 372 end 371 373 c.def_classvar('schema_attribute', 372 '{'+374 "{\n " + 373 375 schema_attribute.collect { |name, type| 374 376 dqname(name) + ' => ' + ndq(type) 375 }.join( ', ') +376 '}'377 }.join(",\n ") + 378 "\n}" 377 379 ) 378 380 end … … 419 421 schema_element << [child_element_name.name, child_element_name, type] 420 422 c.def_classvar('schema_element', 421 '[' + 422 schema_element.collect { |varname, name, type| 423 '[' + 424 ( 425 if name 426 varname.dump + ', [' + ndq(type) + ', ' + dqname(name) + ']' 427 else 428 varname.dump + ', ' + ndq(type) 429 end 430 ) + 431 ']' 432 }.join(', ') + 433 ']' 423 dump_schema_element_definition(schema_element, 2) 434 424 ) 435 425 c.dump trunk/test/wsdl/any/expectedEcho.rb
r1655 r1664 8 8 ["before", ["SOAP::SOAPString", XSD::QName.new(nil, "before")]], 9 9 ["any", [nil, XSD::QName.new("http://www.w3.org/2001/XMLSchema", "anyType")]], 10 ["after", ["SOAP::SOAPString", XSD::QName.new(nil, "after")]]] 10 ["after", ["SOAP::SOAPString", XSD::QName.new(nil, "after")]] 11 ] 11 12 12 13 attr_accessor :before trunk/test/wsdl/marshal/person_org.rb
r1655 r1664 10 10 ["var1", ["SOAP::SOAPInt", XSD::QName.new(nil, "var1")]], 11 11 ["var2", ["SOAP::SOAPDouble", XSD::QName.new(nil, "var2")]], 12 ["var3", ["SOAP::SOAPString", XSD::QName.new(nil, "var3")]]] 12 ["var3", ["SOAP::SOAPString", XSD::QName.new(nil, "var3")]] 13 ] 13 14 14 15 attr_accessor :familyname trunk/test/wsdl/ref/expectedProduct.rb
r1663 r1664 12 12 @@schema_type = "Product-Bag" 13 13 @@schema_ns = "urn:ref" 14 @@schema_attribute = {XSD::QName.new("urn:ref", "version") => "SOAP::SOAPString", XSD::QName.new("urn:ref", "yesno") => "SOAP::SOAPString"} 14 @@schema_attribute = { 15 XSD::QName.new("urn:ref", "version") => "SOAP::SOAPString", 16 XSD::QName.new("urn:ref", "yesno") => "SOAP::SOAPString" 17 } 15 18 @@schema_element = [ 16 19 ["bag", ["Product[]", XSD::QName.new(nil, "bag")]], 17 20 ["rating", ["SOAP::SOAPString[]", XSD::QName.new("urn:ref", "Rating")]], 18 21 ["comment_1", ["[]", XSD::QName.new(nil, "comment_1")]], 19 ["comment_2", ["Comment[]", XSD::QName.new(nil, "comment-2")]]] 22 ["comment_2", ["Comment[]", XSD::QName.new(nil, "comment-2")]], 23 ["v___point", ["C__point", XSD::QName.new(nil, "__point")]] 24 ] 20 25 21 26 attr_accessor :bag … … 23 28 attr_accessor :comment_1 24 29 attr_accessor :comment_2 30 31 def m___point 32 @v___point 33 end 34 35 def m___point=(value) 36 @v___point = value 37 end 25 38 26 39 def xmlattr_version … … 40 53 end 41 54 42 def initialize(bag = [], rating = [], comment_1 = [], comment_2 = [] )55 def initialize(bag = [], rating = [], comment_1 = [], comment_2 = [], v___point = nil) 43 56 @bag = bag 44 57 @rating = rating 45 58 @comment_1 = comment_1 46 59 @comment_2 = comment_2 60 @v___point = v___point 47 61 @__xmlattr = {} 48 62 end … … 50 64 51 65 # {urn:ref}Creator 52 class Creator < String 53 @@schema_attribute = {XSD::QName.new(nil, "Role") => nil} 66 # contains SOAP::SOAPString 67 class Creator < ::String 68 @@schema_attribute = { 69 XSD::QName.new(nil, "Role") => nil 70 } 54 71 55 72 def xmlattr_Role … … 79 96 @@schema_element = [ 80 97 ["name", ["SOAP::SOAPString", XSD::QName.new(nil, "name")]], 81 ["rating", ["SOAP::SOAPString", XSD::QName.new("urn:ref", "Rating")]]] 98 ["rating", ["SOAP::SOAPString", XSD::QName.new("urn:ref", "Rating")]] 99 ] 82 100 83 101 attr_accessor :name … … 91 109 92 110 # {urn:ref}Comment 93 class Comment < String 94 @@schema_attribute = {XSD::QName.new(nil, "msgid") => "SOAP::SOAPString"} 111 # contains SOAP::SOAPString 112 class Comment < ::String 113 @@schema_attribute = { 114 XSD::QName.new(nil, "msgid") => "SOAP::SOAPString" 115 } 95 116 96 117 def xmlattr_msgid … … 107 128 end 108 129 end 130 131 # {urn:ref}_point 132 # contains SOAP::SOAPInteger 133 class C__point < ::String 134 @@schema_attribute = { 135 XSD::QName.new(nil, "unit") => "SOAP::SOAPString" 136 } 137 138 def xmlattr_unit 139 (@__xmlattr ||= {})[XSD::QName.new(nil, "unit")] 140 end 141 142 def xmlattr_unit=(value) 143 (@__xmlattr ||= {})[XSD::QName.new(nil, "unit")] = value 144 end 145 146 def initialize(*arg) 147 super 148 @__xmlattr = {} 149 end 150 end trunk/test/wsdl/ref/product.wsdl
r1663 r1664 26 26 <extension base="xsd:string"> 27 27 <attribute name="msgid" type="xsd:string" use="required"/> 28 </extension> 29 </simpleContent> 30 </complexType> 31 32 <complexType name="_point"> 33 <simpleContent> 34 <extension base="xsd:integer"> 35 <attribute name="unit" type="xsd:string" use="required"/> 28 36 </extension> 29 37 </simpleContent> … … 66 74 </element> 67 75 <element name="comment-2" type="tns:Comment" minOccurs="0" maxOccurs="unbounded"/> 76 <element name="__point" type="tns:_point" minOccurs="0" maxOccurs="1"/> 68 77 </sequence> 69 78 <attribute ref="tns:version"/> trunk/test/wsdl/ref/test_ref.rb
r1663 r1664 31 31 arg.bag[1].name, 32 32 arg.bag[1].rating, 33 arg.xmlattr_version, 34 arg.xmlattr_yesno, 33 35 arg.rating[0], 34 36 arg.rating[1], … … 151 153 p2.add(e("name", "bar")) 152 154 p2.add(e(q(Namespace, "Rating"), "+1")) 155 version = "version" 156 yesno = "N" 153 157 r1 = e(q(Namespace, "Rating"), "0") 154 158 r2 = e(q(Namespace, "Rating"), "+1") … … 172 176 bag.add(c21) 173 177 bag.add(c22) 174 bag.extraattr[ "version"] = "version"175 bag.extraattr[ "yesno"] = "Y"178 bag.extraattr[q(Namespace, "version")] = version 179 bag.extraattr[q(Namespace, "yesno")] = yesno 176 180 ret = @client.echo(bag) 177 181 assert_equal( … … 179 183 p1["name"].text, p1["Rating"].text, 180 184 p2["name"].text, p2["Rating"].text, 185 version, yesno, 181 186 r1.text, r2.text, r3.text, 182 187 c11.text, c11.extraattr["msgid"], … … 197 202 p1 = Product.new("foo", Rating::C_0) 198 203 p2 = Product.new("bar", Rating::C_1) 204 version = "version" 205 yesno = Yesno::Y 199 206 r1 = Rating::C_0 200 207 r2 = Rating::C_1 … … 209 216 c22.xmlattr_msgid = "msgid22" 210 217 bag = ProductBag.new([p1, p2], [r1, r2, r3], [c11, c12], [c21, c22]) 211 bag.xmlattr_version = "version"212 bag.xmlattr_yesno = Yesno::Y218 bag.xmlattr_version = version 219 bag.xmlattr_yesno = yesno 213 220 ret = @client.echo(bag) 214 221 assert_equal( … … 216 223 p1.name, p1.rating, 217 224 p2.name, p2.rating, 225 version, yesno, 218 226 r1, r2, r3, 219 227 c11.text, c11.extraattr["msgid"], … … 232 240 p1 = Product.new("foo", Rating::C_0) 233 241 p2 = Product.new("bar", Rating::C_1) 242 version = "version" 243 yesno = Yesno::Y 234 244 r1 = Rating::C_0 235 245 r2 = Rating::C_1 … … 243 253 c22 = Comment.new("comment22") 244 254 c22.xmlattr_msgid = "msgid22" 245 bag = ProductBag.new([p1, p2], [r1, r2, r3], [c11, c12], [c21, c22]) 246 bag.xmlattr_version = "version" 247 bag.xmlattr_yesno = Yesno::Y 255 pts = C__point.new("123") 256 bag = ProductBag.new([p1, p2], [r1, r2, r3], [c11, c12], [c21, c22], pts) 257 bag.xmlattr_version = version 258 bag.xmlattr_yesno = yesno 248 259 ret = @client.echo(bag) 249 260 assert_equal( … … 251 262 p1.name, p1.rating, 252 263 p2.name, p2.rating, 264 version, yesno, 253 265 r1, r2, r3, 254 266 c11.text, c11.extraattr["msgid"], trunk/test/wsdl/simpletype/rpc/expectedEchoVersion.rb
r1655 r1664 7 7 @@schema_element = [ 8 8 ["version", ["SOAP::SOAPString", XSD::QName.new(nil, "version")]], 9 ["msg", ["SOAP::SOAPString", XSD::QName.new(nil, "msg")]]] 9 ["msg", ["SOAP::SOAPString", XSD::QName.new(nil, "msg")]] 10 ] 10 11 11 12 attr_accessor :version trunk/test/wsdl/soap/wsdl2ruby/expectedClassdef.rb
r1655 r1664 7 7 @@schema_element = [ 8 8 ["version", ["SOAP::SOAPString", XSD::QName.new(nil, "version")]], 9 ["msg", ["SOAP::SOAPString", XSD::QName.new(nil, "msg")]]] 9 ["msg", ["SOAP::SOAPString", XSD::QName.new(nil, "msg")]] 10 ] 10 11 11 12 attr_accessor :version trunk/test/wsdl/soap/wsdl2ruby/section/expectedClassdef.rb
r1655 r1664 6 6 @@schema_ns = "urn:mysample" 7 7 @@schema_element = [ 8 ["something", ["SOAP::SOAPString", XSD::QName.new(nil, "something")]]] 8 ["something", ["SOAP::SOAPString", XSD::QName.new(nil, "something")]] 9 ] 9 10 10 11 attr_accessor :something … … 24 25 ["description", ["SOAP::SOAPString", XSD::QName.new(nil, "description")]], 25 26 ["index", ["SOAP::SOAPInt", XSD::QName.new(nil, "index")]], 26 ["firstQuestion", ["Question", XSD::QName.new(nil, "firstQuestion")]]] 27 ["firstQuestion", ["Question", XSD::QName.new(nil, "firstQuestion")]] 28 ] 27 29 28 30 attr_accessor :sectionID … … 45 47 @@schema_type = "section" 46 48 @@schema_ns = "urn:mysample" 47 @@schema_element = [["item", ["Section", XSD::QName.new(nil, "item")]]] 49 @@schema_element = [ 50 ["item", ["Section", XSD::QName.new(nil, "item")]] 51 ] 48 52 end