Changeset 1923
- Timestamp:
- 08/26/07 17:45:43 (1 year ago)
- Files:
-
- trunk/lib/soap/baseData.rb (modified) (1 diff)
- trunk/lib/soap/mapping/mapping.rb (modified) (4 diffs)
- trunk/lib/soap/mapping/registry.rb (modified) (2 diffs)
- trunk/lib/wsdl/soap/literalMappingRegistryCreator.rb (modified) (2 diffs)
- trunk/lib/wsdl/soap/mappingRegistryCreatorSupport.rb (modified) (7 diffs)
- trunk/test/wsdl/anonymous/expectedMappingRegistry.rb (modified) (8 diffs)
- trunk/test/wsdl/any/expectedMappingRegistry.rb (modified) (5 diffs)
- trunk/test/wsdl/group/expectedMappingRegistry.rb (modified) (3 diffs)
- trunk/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb (modified) (3 diffs)
- trunk/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb (modified) (3 diffs)
- trunk/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/baseData.rb
r1910 r1923 643 643 if elename.nil? 644 644 elename = XSD::QName::EMPTY 645 els if !elename.is_a?(XSD::QName)646 elename = XSD::QName.new(nil,elename)645 else 646 elename = Mapping.to_qname(elename) 647 647 end 648 648 @encodingstyle = LiteralNamespace trunk/lib/soap/mapping/mapping.rb
r1894 r1923 270 270 else 271 271 XSD::QName.new(namespace, name) 272 end 273 end 274 275 def self.to_qname(obj, ns = nil) 276 if obj.is_a?(XSD::QName) 277 obj 278 else 279 XSD::QName.new(ns, obj) 272 280 end 273 281 end … … 391 399 return Thread.current[:SOAPMapping][:SchemaDefinition][klass] 392 400 end 393 ns = schema_ns_definition(klass)394 name = schema_name_definition(klass)395 type = schema_type_definition(klass)401 schema_ns = schema_ns_definition(klass) 402 schema_name = schema_name_definition(klass) 403 schema_type = schema_type_definition(klass) 396 404 qualified = schema_qualified_definition(klass) 397 405 elements = schema_element_definition(klass) 398 406 attributes = schema_attribute_definition(klass) 399 return nil if ns.nil? and name.nil? and type.nil? and elements.nil? and attributes.nil? 407 return nil if schema_name.nil? and schema_type.nil? 408 schema_name = Mapping.to_qname(schema_name, schema_ns) if schema_name 409 schema_type = Mapping.to_qname(schema_type, schema_ns) if schema_type 400 410 definition = create_schema_definition(klass, 401 :schema_ns => ns, 402 :schema_name => name, 403 :schema_type => type, 411 :schema_name => schema_name, 412 :schema_type => schema_type, 404 413 :schema_qualified => qualified, 405 414 :schema_element => elements, … … 414 423 schema_name = definition[:schema_name] 415 424 schema_type = definition[:schema_type] 425 # wrap if needed for backward compatibility 426 if schema_ns 427 schema_name = Mapping.to_qname(schema_name, schema_ns) if schema_name 428 schema_type = Mapping.to_qname(schema_type, schema_ns) if schema_type 429 end 416 430 schema_qualified = definition[:schema_qualified] 417 431 schema_element = definition[:schema_element] 418 432 schema_attributes = definition[:schema_attribute] 419 elename = schema_name ? XSD::QName.new(schema_ns, schema_name) : nil 420 type = schema_type ? XSD::QName.new(schema_ns, schema_type) : nil 421 definition = SchemaDefinition.new(klass, elename, type, schema_qualified) 433 definition = SchemaDefinition.new(klass, schema_name, schema_type, schema_qualified) 422 434 definition.attributes = schema_attributes 423 435 if schema_element … … 426 438 definition.elements = schema_element 427 439 else 428 default_ns = elename.namespace if elename429 default_ns ||= type.namespace iftype440 default_ns = schema_name.namespace if schema_name 441 default_ns ||= schema_type.namespace if schema_type 430 442 definition.elements = parse_schema_definition(schema_element, default_ns) 431 443 if klass < ::Array trunk/lib/soap/mapping/registry.rb
r1862 r1923 52 52 53 53 def [](qname) 54 unless qname.is_a?(XSD::QName) 55 qname = XSD::QName.new(nil, qname) 56 end 54 qname = Mapping.to_qname(qname) 57 55 @__xmlele.each do |k, v| 58 56 return v if k == qname … … 66 64 67 65 def []=(qname, value) 68 unless qname.is_a?(XSD::QName) 69 qname = XSD::QName.new(nil, qname) 70 end 66 qname = Mapping.to_qname(qname) 71 67 found = false 72 68 @__xmlele.each do |pair| trunk/lib/wsdl/soap/literalMappingRegistryCreator.rb
r1915 r1923 124 124 var = {} 125 125 var[:class] = create_class_name(qname, @modulepath) 126 var[:schema_ns]= qname.namespace126 schema_ns = qname.namespace 127 127 if typedef.name.nil? 128 128 # local complextype of a element 129 var[:schema_name] = qname .name129 var[:schema_name] = qname 130 130 else 131 131 # named complextype 132 var[:schema_type] = qname .name132 var[:schema_type] = qname 133 133 end 134 134 child_type = typedef.child_type … … 161 161 parsed_element << [child_element_name.name, child_element_name, type, occurrence] 162 162 var[:schema_element] = dump_schema_element_definition(parsed_element, 2) 163 assign_const( var[:schema_ns], 'Ns')163 assign_const(schema_ns, 'Ns') 164 164 dump_entry(@varname, var) 165 165 end trunk/lib/wsdl/soap/mappingRegistryCreatorSupport.rb
r1915 r1923 30 30 var[:class] = create_class_name(qname, parentmodule) 31 31 if as_element 32 var[:schema_name] = as_element .name33 var[:schema_ns]= as_element.namespace32 var[:schema_name] = as_element 33 chema_ns = as_element.namespace 34 34 elsif typedef.name.nil? 35 var[:schema_name] = qname .name36 var[:schema_ns]= qname.namespace37 else 38 var[:schema_type] = qname .name39 var[:schema_ns]= qname.namespace35 var[:schema_name] = qname 36 schema_ns = qname.namespace 37 else 38 var[:schema_type] = qname 39 schema_ns = qname.namespace 40 40 end 41 41 # true, false, or nil … … 53 53 var[:schema_attribute] = define_attribute(typedef.attributes) 54 54 end 55 assign_const( var[:schema_ns], 'Ns')55 assign_const(schema_ns, 'Ns') 56 56 dump_entry(@varname, var) 57 57 end … … 61 61 var[:class] = create_class_name(qname, @modulepath) 62 62 if as_element 63 var[:schema_name] = as_element .name64 var[:schema_ns]= as_element.namespace63 var[:schema_name] = as_element 64 schema_ns = as_element.namespace 65 65 elsif typedef.name.nil? 66 var[:schema_name] = qname .name67 var[:schema_ns]= qname.namespace68 else 69 var[:schema_type] = qname .name70 var[:schema_ns]= qname.namespace66 var[:schema_name] = qname 67 schema_ns = qname.namespace 68 else 69 var[:schema_type] = qname 70 schema_ns = qname.namespace 71 71 end 72 72 unless typedef.attributes.empty? 73 73 var[:schema_attribute] = define_attribute(typedef.attributes) 74 74 end 75 assign_const( var[:schema_ns], 'Ns')75 assign_const(schema_ns, 'Ns') 76 76 dump_entry(@varname, var) 77 77 end … … 211 211 dump_entry_item(var, :class), 212 212 dump_entry_item(var, :soap_class), 213 dump_entry_item(var, :schema_ns, true), 214 dump_entry_item(var, :schema_name, true), 215 dump_entry_item(var, :schema_type, true), 213 dump_entry_item(var, :schema_name, :qname), 214 dump_entry_item(var, :schema_type, :qname), 216 215 dump_entry_item(var, :schema_qualified), 217 216 dump_entry_item(var, :schema_element), … … 221 220 end 222 221 223 def dump_entry_item(var, key, as_string = false)222 def dump_entry_item(var, key, dump_type = :none) 224 223 if var.key?(key) 225 if as_string 224 case dump_type 225 when :none 226 ":#{key} => #{var[key]}" 227 when :string 226 228 if @defined_const.key?(var[key]) 227 229 ":#{key} => #{@defined_const[var[key]]}" … … 229 231 ":#{key} => #{ndq(var[key])}" 230 232 end 233 when :qname 234 qname = var[key] 235 if @defined_const.key?(qname.namespace) 236 ns = @defined_const[qname.namespace] 237 else 238 ns = ndq(qname.namespace) 239 end 240 ":#{key} => XSD::QName.new(#{ns}, #{ndq(qname.name)})" 231 241 else 232 ":#{key} => #{var[key]}"242 raise "Unknown dump type: #{dump_type}" 233 243 end 234 else235 nil236 244 end 237 245 end … … 258 266 var[:class] = create_class_name(qname, @modulepath) 259 267 if as_element 260 var[:schema_ type] = nil261 var[:schema_ns]= as_element.namespace268 var[:schema_name] = as_element 269 schema_ns = as_element.namespace 262 270 elsif typedef.name.nil? 263 var[:schema_ type] = nil264 var[:schema_ns]= qname.namespace265 else 266 var[:schema_type] = qname .name267 var[:schema_ns]= qname.namespace268 end 269 assign_const( var[:schema_ns], 'Ns')271 var[:schema_name] = qname 272 schema_ns = qname.namespace 273 else 274 var[:schema_type] = qname 275 schema_ns = qname.namespace 276 end 277 assign_const(schema_ns, 'Ns') 270 278 dump_entry(@varname, var) 271 279 end trunk/test/wsdl/anonymous/expectedMappingRegistry.rb
r1915 r1923 11 11 EncodedRegistry.register( 12 12 :class => WSDL::Anonymous::LoginResponse, 13 :schema_ns => NsLp, 14 :schema_type => "loginResponse", 13 :schema_type => XSD::QName.new(NsLp, "loginResponse"), 15 14 :schema_element => [ 16 15 ["loginResult", ["WSDL::Anonymous::LoginResponse::LoginResult", XSD::QName.new(nil, "loginResult")]] … … 20 19 EncodedRegistry.register( 21 20 :class => WSDL::Anonymous::LoginResponse::LoginResult, 22 :schema_ns => nil, 23 :schema_name => "loginResult", 21 :schema_name => XSD::QName.new(nil, "loginResult"), 24 22 :schema_element => [ 25 23 ["sessionID", "SOAP::SOAPString"] … … 29 27 LiteralRegistry.register( 30 28 :class => WSDL::Anonymous::LoginResponse, 31 :schema_ns => NsLp, 32 :schema_type => "loginResponse", 29 :schema_type => XSD::QName.new(NsLp, "loginResponse"), 33 30 :schema_qualified => false, 34 31 :schema_element => [ … … 39 36 LiteralRegistry.register( 40 37 :class => WSDL::Anonymous::LoginResponse::LoginResult, 41 :schema_ns => nil, 42 :schema_name => "loginResult", 38 :schema_name => XSD::QName.new(nil, "loginResult"), 43 39 :schema_qualified => false, 44 40 :schema_element => [ … … 49 45 LiteralRegistry.register( 50 46 :class => WSDL::Anonymous::Login, 51 :schema_ns => NsLp, 52 :schema_name => "login", 47 :schema_name => XSD::QName.new(NsLp, "login"), 53 48 :schema_qualified => true, 54 49 :schema_element => [ … … 59 54 LiteralRegistry.register( 60 55 :class => WSDL::Anonymous::Login::LoginRequest, 61 :schema_ns => nil, 62 :schema_name => "loginRequest", 56 :schema_name => XSD::QName.new(nil, "loginRequest"), 63 57 :schema_qualified => true, 64 58 :schema_element => [ … … 71 65 LiteralRegistry.register( 72 66 :class => WSDL::Anonymous::LoginResponse, 73 :schema_ns => NsLp, 74 :schema_name => "loginResponse", 67 :schema_name => XSD::QName.new(NsLp, "loginResponse"), 75 68 :schema_qualified => true, 76 69 :schema_element => [ … … 81 74 LiteralRegistry.register( 82 75 :class => WSDL::Anonymous::LoginResponse::LoginResult, 83 :schema_ns => nil, 84 :schema_name => "loginResult", 76 :schema_name => XSD::QName.new(nil, "loginResult"), 85 77 :schema_qualified => true, 86 78 :schema_element => [ trunk/test/wsdl/any/expectedMappingRegistry.rb
r1915 r1923 12 12 EncodedRegistry.register( 13 13 :class => WSDL::Any::FooBar, 14 :schema_ns => NsEchoType, 15 :schema_type => "foo.bar", 14 :schema_type => XSD::QName.new(NsEchoType, "foo.bar"), 16 15 :schema_element => [ 17 16 ["before", ["SOAP::SOAPString", XSD::QName.new(nil, "before")]], … … 23 22 LiteralRegistry.register( 24 23 :class => WSDL::Any::FooBar, 25 :schema_ns => NsEchoType, 26 :schema_type => "foo.bar", 24 :schema_type => XSD::QName.new(NsEchoType, "foo.bar"), 27 25 :schema_qualified => false, 28 26 :schema_element => [ … … 35 33 LiteralRegistry.register( 36 34 :class => WSDL::Any::FooBar, 37 :schema_ns => NsEchoType, 38 :schema_name => "foo.bar", 35 :schema_name => XSD::QName.new(NsEchoType, "foo.bar"), 39 36 :schema_qualified => true, 40 37 :schema_element => [ … … 47 44 LiteralRegistry.register( 48 45 :class => WSDL::Any::SetOutputAndCompleteRequest, 49 :schema_ns => NsEchoType, 50 :schema_name => "setOutputAndCompleteRequest", 46 :schema_name => XSD::QName.new(NsEchoType, "setOutputAndCompleteRequest"), 51 47 :schema_qualified => true, 52 48 :schema_element => [ … … 59 55 LiteralRegistry.register( 60 56 :class => WSDL::Any::SetOutputAndCompleteRequest::C_Data, 61 :schema_ns => nil, 62 :schema_name => "data", 57 :schema_name => XSD::QName.new(nil, "data"), 63 58 :schema_qualified => true, 64 59 :schema_element => [ trunk/test/wsdl/group/expectedMappingRegistry.rb
r1917 r1923 12 12 EncodedRegistry.register( 13 13 :class => WSDL::Group::Groupele_type, 14 :schema_ns => NsGrouptype, 15 :schema_type => "groupele_type", 14 :schema_type => XSD::QName.new(NsGrouptype, "groupele_type"), 16 15 :schema_element => [ 17 16 ["comment", "SOAP::SOAPString", [0, 1]], … … 31 30 LiteralRegistry.register( 32 31 :class => WSDL::Group::Groupele_type, 33 :schema_ns => NsGrouptype, 34 :schema_type => "groupele_type", 32 :schema_type => XSD::QName.new(NsGrouptype, "groupele_type"), 35 33 :schema_qualified => false, 36 34 :schema_element => [ … … 51 49 LiteralRegistry.register( 52 50 :class => WSDL::Group::Groupele_type, 53 :schema_ns => NsGrouptype, 54 :schema_name => "groupele", 51 :schema_name => XSD::QName.new(NsGrouptype, "groupele"), 55 52 :schema_qualified => true, 56 53 :schema_element => [ trunk/test/wsdl/simpletype/rpc/expectedMappingRegistry.rb
r1896 r1923 9 9 EncodedRegistry.register( 10 10 :class => Version_struct, 11 :schema_ns => NsSimpletypeRpcType, 12 :schema_type => "version_struct", 11 :schema_type => XSD::QName.new(NsSimpletypeRpcType, "version_struct"), 13 12 :schema_element => [ 14 13 ["version", ["Version", XSD::QName.new(nil, "version")]], … … 19 18 EncodedRegistry.register( 20 19 :class => Version, 21 :schema_ns => NsSimpletypeRpcType, 22 :schema_type => "version" 20 :schema_type => XSD::QName.new(NsSimpletypeRpcType, "version") 23 21 ) 24 22 25 23 EncodedRegistry.register( 26 24 :class => StateType, 27 :schema_ns => NsSimpletypeRpcType, 28 :schema_type => "stateType" 25 :schema_type => XSD::QName.new(NsSimpletypeRpcType, "stateType") 29 26 ) 30 27 31 28 EncodedRegistry.register( 32 29 :class => ZipIntType, 33 :schema_ns => NsSimpletypeRpcType, 34 :schema_type => "zipIntType" 30 :schema_type => XSD::QName.new(NsSimpletypeRpcType, "zipIntType") 35 31 ) 36 32 37 33 LiteralRegistry.register( 38 34 :class => Version_struct, 39 :schema_ns => NsSimpletypeRpcType, 40 :schema_type => "version_struct", 35 :schema_type => XSD::QName.new(NsSimpletypeRpcType, "version_struct"), 41 36 :schema_qualified => false, 42 37 :schema_element => [ … … 48 43 LiteralRegistry.register( 49 44 :class => Version, 50 :schema_ns => NsSimpletypeRpcType, 51 :schema_type => "version" 45 :schema_type => XSD::QName.new(NsSimpletypeRpcType, "version") 52 46 ) 53 47 54 48 LiteralRegistry.register( 55 49 :class => StateType, 56 :schema_ns => NsSimpletypeRpcType, 57 :schema_type => "stateType" 50 :schema_type => XSD::QName.new(NsSimpletypeRpcType, "stateType") 58 51 ) 59 52 60 53 LiteralRegistry.register( 61 54 :class => ZipIntType, 62 :schema_ns => NsSimpletypeRpcType, 63 :schema_type => "zipIntType" 55 :schema_type => XSD::QName.new(NsSimpletypeRpcType, "zipIntType") 64 56 ) 65 57 end trunk/test/wsdl/soap/wsdl2ruby/expectedMappingRegistry.rb
r1896 r1923 9 9 EncodedRegistry.register( 10 10 :class => Version_struct, 11 :schema_ns => NsSimpletypeRpcType, 12 :schema_type => "version_struct", 11 :schema_type => XSD::QName.new(NsSimpletypeRpcType, "version_struct"), 13 12 :schema_element => [ 14 13 ["version", ["Version", XSD::QName.new(nil, "version")]], … … 19 18 EncodedRegistry.register( 20 19 :class => Version, 21 :schema_ns => NsSimpletypeRpcType, 22 :schema_type => "version" 20 :schema_type => XSD::QName.new(NsSimpletypeRpcType, "version") 23 21 ) 24 22 25 23 LiteralRegistry.register( 26 24 :class => Version_struct, 27 :schema_ns => NsSimpletypeRpcType, 28 :schema_type => "version_struct", 25 :schema_type => XSD::QName.new(NsSimpletypeRpcType, "version_struct"), 29 26 :schema_qualified => false, 30 27 :schema_element => [ … … 36 33 LiteralRegistry.register( 37 34 :class => Version, 38 :schema_ns => NsSimpletypeRpcType, 39 :schema_type => "version" 35 :schema_type => XSD::QName.new(NsSimpletypeRpcType, "version") 40 36 ) 41 37 end trunk/test/xsd/xsd2ruby/expected_mysample_mapping_registry.rb
r1896 r1923 10 10 Registry.register( 11 11 :class => XSD::XSD2Ruby::Question, 12 :schema_ns => NsMysample, 13 :schema_type => "question", 12 :schema_type => XSD::QName.new(NsMysample, "question"), 14 13 :schema_qualified => false, 15 14 :schema_element => [ … … 20 19 Registry.register( 21 20 :class => XSD::XSD2Ruby::Section, 22 :schema_ns => NsMysample, 23 :schema_type => "section", 21 :schema_type => XSD::QName.new(NsMysample, "section"), 24 22 :schema_qualified => false, 25 23 :schema_element => [ … … 34 32 Registry.register( 35 33 :class => XSD::XSD2Ruby::SectionArray, 36 :schema_ns => NsMysample, 37 :schema_type => "sectionArray", 34 :schema_type => XSD::QName.new(NsMysample, "sectionArray"), 38 35 :schema_element => [ 39 36 ["element", ["XSD::XSD2Ruby::Section[]", XSD::QName.new(nil, "element")], [1, nil]] … … 43 40 Registry.register( 44 41 :class => XSD::XSD2Ruby::SectionElement, 45 :schema_ns => NsMysample, 46 :schema_name => "sectionElement", 42 :schema_name => XSD::QName.new(NsMysample, "sectionElement"), 47 43 :schema_qualified => true, 48 44 :schema_element => [