Changeset 1954
- Timestamp:
- 09/12/07 15:05:29 (8 months ago)
- Files:
-
- trunk/lib/soap/generator.rb (modified) (4 diffs)
- trunk/lib/wsdl/soap/classDefCreator.rb (modified) (20 diffs)
- trunk/lib/wsdl/soap/classDefCreatorSupport.rb (modified) (2 diffs)
- trunk/lib/wsdl/soap/classNameCreator.rb (modified) (2 diffs)
- trunk/lib/wsdl/soap/encodedMappingRegistryCreator.rb (modified) (4 diffs)
- trunk/lib/wsdl/soap/literalMappingRegistryCreator.rb (modified) (8 diffs)
- trunk/lib/wsdl/soap/mappingRegistryCreatorSupport.rb (modified) (10 diffs)
- trunk/test/soap/test_custom_ns.rb (modified) (2 diffs)
- trunk/test/wsdl/anonymous/expectedClassDef.rb (modified) (2 diffs)
- trunk/test/wsdl/anonymous/expectedMappingRegistry.rb (modified) (3 diffs)
- trunk/test/wsdl/anonymous/lp.wsdl (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/generator.rb
r1947 r1954 55 55 @indent = '' 56 56 @encode_char_regexp = 57 Regexp.new("[#{EncodeMap.keys.join}]", nil, XSD::Charset.encoding) 57 ENCODE_CHAR_REGEXP[XSD::Charset.encoding] ||= 58 Regexp.new("[#{EncodeMap.keys.join}]", nil, XSD::Charset.encoding) 58 59 59 60 prologue … … 133 134 134 135 def encode_element(ns, obj, parent) 135 attrs = obj.extraattr .dup136 attrs = obj.extraattr 136 137 if obj.is_a?(SOAPBody) 137 138 @reftarget = obj … … 211 212 @buf << str 212 213 end 214 215 ENCODE_CHAR_REGEXP = {} 213 216 214 217 EncodeMap = { … … 220 223 "\r" => '
' 221 224 } 225 222 226 def encode_string(str) 223 227 @buf << get_encoded(str) trunk/lib/wsdl/soap/classDefCreator.rb
r1953 r1954 92 92 @elements.collect { |ele| 93 93 next if @complextypes[ele.name] 94 c = create_elementdef( ele)94 c = create_elementdef(@modulepath, ele) 95 95 c ? c.dump : nil 96 96 }.compact.join("\n") … … 100 100 @attributes.collect { |attribute| 101 101 if attribute.local_simpletype 102 c = create_simpletypedef( attribute.name, attribute.local_simpletype)102 c = create_simpletypedef(@modulepath, attribute.name, attribute.local_simpletype) 103 103 end 104 104 c ? c.dump : nil … … 108 108 def dump_simpletype 109 109 @simpletypes.collect { |type| 110 c = create_simpletypedef( type.name, type)110 c = create_simpletypedef(@modulepath, type.name, type) 111 111 c ? c.dump : nil 112 112 }.compact.join("\n") … … 115 115 def dump_complextype 116 116 definitions = sort_dependency(@complextypes).collect { |type| 117 c = create_complextypedef( type.name, type)117 c = create_complextypedef(@modulepath, type.name, type) 118 118 c ? c.dump : nil 119 119 }.compact.join("\n") … … 126 126 end 127 127 128 def create_elementdef( ele)128 def create_elementdef(mpath, ele) 129 129 qualified = (ele.elementform == 'qualified') 130 130 if ele.local_complextype 131 create_complextypedef( ele.name, ele.local_complextype, qualified)131 create_complextypedef(mpath, ele.name, ele.local_complextype, qualified) 132 132 elsif ele.local_simpletype 133 create_simpletypedef( ele.name, ele.local_simpletype, qualified)133 create_simpletypedef(mpath, ele.name, ele.local_simpletype, qualified) 134 134 elsif ele.empty? 135 create_simpleclassdef( ele.name, nil)135 create_simpleclassdef(mpath, ele.name, nil) 136 136 else 137 137 # ignores type only element … … 140 140 end 141 141 142 def create_simpletypedef( qname, simpletype, qualified = false)142 def create_simpletypedef(mpath, qname, simpletype, qualified = false) 143 143 if simpletype.restriction 144 create_simpletypedef_restriction( qname, simpletype, qualified)144 create_simpletypedef_restriction(mpath, qname, simpletype, qualified) 145 145 elsif simpletype.list 146 create_simpletypedef_list( qname, simpletype, qualified)146 create_simpletypedef_list(mpath, qname, simpletype, qualified) 147 147 elsif simpletype.union 148 create_simpletypedef_union( qname, simpletype, qualified)148 create_simpletypedef_union(mpath, qname, simpletype, qualified) 149 149 else 150 150 raise RuntimeError.new("unknown kind of simpletype: #{simpletype}") … … 152 152 end 153 153 154 def create_simpletypedef_restriction( qname, typedef, qualified)154 def create_simpletypedef_restriction(mpath, qname, typedef, qualified) 155 155 restriction = typedef.restriction 156 156 unless restriction.enumeration? … … 158 158 return nil 159 159 end 160 classname = mapped_class_basename(qname, @modulepath)160 classname = mapped_class_basename(qname, mpath) 161 161 c = ClassDef.new(classname, '::String') 162 162 c.comment = "#{qname}" … … 165 165 end 166 166 167 def create_simpletypedef_list( qname, typedef, qualified)167 def create_simpletypedef_list(mpath, qname, typedef, qualified) 168 168 list = typedef.list 169 classname = mapped_class_basename(qname, @modulepath)169 classname = mapped_class_basename(qname, mpath) 170 170 c = ClassDef.new(classname, '::Array') 171 171 c.comment = "#{qname}" … … 178 178 c.comment << "\n contains list of #{classname}::*" 179 179 elsif list.itemtype 180 c.comment << "\n contains list of #{mapped_class_basename(list.itemtype, @modulepath)}::*"180 c.comment << "\n contains list of #{mapped_class_basename(list.itemtype, mpath)}::*" 181 181 else 182 182 raise RuntimeError.new("unknown kind of list: #{list}") … … 185 185 end 186 186 187 def create_simpletypedef_union( qname, typedef, qualified)187 def create_simpletypedef_union(mpath, qname, typedef, qualified) 188 188 union = typedef.union 189 classname = mapped_class_basename(qname, @modulepath)189 classname = mapped_class_basename(qname, mpath) 190 190 c = ClassDef.new(classname, '::String') 191 191 c.comment = "#{qname}" … … 221 221 end 222 222 223 def create_simpleclassdef( qname, type_or_element)224 classname = mapped_class_basename(qname, @modulepath)223 def create_simpleclassdef(mpath, qname, type_or_element) 224 classname = mapped_class_basename(qname, mpath) 225 225 c = ClassDef.new(classname, '::String') 226 226 c.comment = "#{qname}" … … 236 236 end 237 237 238 def create_complextypedef( qname, type, qualified = false)238 def create_complextypedef(mpath, qname, type, qualified = false) 239 239 case type.compoundtype 240 240 when :TYPE_STRUCT, :TYPE_EMPTY 241 create_classdef( qname, type, qualified)241 create_classdef(mpath, qname, type, qualified) 242 242 when :TYPE_ARRAY 243 create_arraydef( qname, type)243 create_arraydef(mpath, qname, type) 244 244 when :TYPE_SIMPLE 245 create_simpleclassdef( qname, type)245 create_simpleclassdef(mpath, qname, type) 246 246 when :TYPE_MAP 247 247 # mapped as a general Hash … … 253 253 end 254 254 255 def create_classdef( qname, typedef, qualified = false)256 classname = mapped_class_basename(qname, @modulepath)255 def create_classdef(mpath, qname, typedef, qualified = false) 256 classname = mapped_class_basename(qname, mpath) 257 257 baseclassname = nil 258 258 if typedef.complexcontent 259 259 if base = typedef.complexcontent.base 260 baseclassname = mapped_class_basename(base, @modulepath)260 baseclassname = mapped_class_basename(base, mpath) 261 261 end 262 262 end … … 268 268 c.comment = "#{qname}" 269 269 c.comment << "\nabstract" if typedef.abstract 270 parentmodule = mapped_class_name(qname, @modulepath)270 parentmodule = mapped_class_name(qname, mpath) 271 271 init_lines, init_params = 272 272 parse_elements(c, typedef.elements, qname.namespace, parentmodule) … … 281 281 end 282 282 283 def parse_elements(c, elements, base_namespace, parentmodule, as_array = false)283 def parse_elements(c, elements, base_namespace, mpath, as_array = false) 284 284 init_lines = [] 285 285 init_params = [] … … 302 302 typebase = @modulepath 303 303 if element.anonymous_type? 304 begin 305 # swap @modulepath: TODO be smarter 306 @modulepath = parentmodule 307 inner = create_elementdef(element) 308 ensure 309 @modulepath = typebase 310 end 304 inner = create_elementdef(mpath, element) 311 305 unless as_array 312 306 inner.comment = "inner class for member: #{name}\n" + inner.comment 313 307 end 314 308 c.innermodule << inner 315 typebase = parentmodule309 typebase = mpath 316 310 end 317 311 unless as_array … … 325 319 init_params << "#{varname} = nil" 326 320 end 327 c.comment << "\n #{attrname} - #{create_type_name( element, typebase) || '(any)'}"321 c.comment << "\n #{attrname} - #{create_type_name(typebase, element) || '(any)'}" 328 322 end 329 323 when WSDL::XMLSchema::Sequence 330 324 child_init_lines, child_init_params = 331 parse_elements(c, element.elements, base_namespace, parentmodule, as_array)325 parse_elements(c, element.elements, base_namespace, mpath, as_array) 332 326 init_lines.concat(child_init_lines) 333 327 init_params.concat(child_init_params) 334 328 when WSDL::XMLSchema::Choice 335 329 child_init_lines, child_init_params = 336 parse_elements(c, element.elements, base_namespace, parentmodule, as_array)330 parse_elements(c, element.elements, base_namespace, mpath, as_array) 337 331 init_lines.concat(child_init_lines) 338 332 init_params.concat(child_init_params) … … 343 337 end 344 338 child_init_lines, child_init_params = 345 parse_elements(c, element.content.elements, base_namespace, parentmodule, as_array)339 parse_elements(c, element.content.elements, base_namespace, mpath, as_array) 346 340 init_lines.concat(child_init_lines) 347 341 init_params.concat(child_init_params) … … 382 376 end 383 377 384 def create_arraydef( qname, typedef)385 classname = mapped_class_basename(qname, @modulepath)378 def create_arraydef(mpath, qname, typedef) 379 classname = mapped_class_basename(qname, mpath) 386 380 c = ClassDef.new(classname, '::Array') 387 381 c.comment = "#{qname}" 388 parentmodule = mapped_class_name(qname, @modulepath)382 parentmodule = mapped_class_name(qname, mpath) 389 383 parse_elements(c, typedef.elements, qname.namespace, parentmodule, true) 390 384 c trunk/lib/wsdl/soap/classDefCreatorSupport.rb
r1953 r1954 17 17 18 18 19 # requires @defined_const, @simpletypes, @name_creator , and @modulepath19 # requires @defined_const, @simpletypes, @name_creator 20 20 module ClassDefCreatorSupport 21 21 include XSD::CodeGen::GenSupport … … 101 101 end 102 102 103 def create_type_name( element, modulepath = @modulepath)103 def create_type_name(modulepath, element) 104 104 if element.type == XSD::AnyTypeName 105 105 # nil means anyType. trunk/lib/wsdl/soap/classNameCreator.rb
r1953 r1954 23 23 24 24 def assign_name(qname, modulepath = nil) 25 unless @classname[qname] 25 key = [modulepath, qname] 26 unless @classname.key?(key) 26 27 if klass = ::SOAP::TypeMap[qname] 27 name = ::SOAP::Mapping::DefaultRegistry.find_mapped_obj_class(klass).name 28 name = 29 ::SOAP::Mapping::DefaultRegistry.find_mapped_obj_class(klass).name 28 30 else 29 31 name = safeconstname(qname.name) … … 36 38 check_classname(name) 37 39 end 38 @classname[ qname] = name.freeze40 @classname[key] = name.freeze 39 41 end 40 return @classname[qname] 41 =begin 42 if klass = ::SOAP::TypeMap[qname] 43 return ::SOAP::Mapping::DefaultRegistry.find_mapped_obj_class(klass).name 44 end 45 if @classname.key?(qname) 46 name = @classname[qname] 47 else 48 name = safeconstname(qname.name) 49 while @classname.value?(name) 50 name += '_' 51 end 52 @classname[qname] = name.freeze 53 end 54 if modulepath 55 [modulepath, name].join('::') 56 else 57 name 58 end 59 =end 42 @classname[key] 60 43 end 61 44 trunk/lib/wsdl/soap/encodedMappingRegistryCreator.rb
r1948 r1954 52 52 def dump_complextype 53 53 @complextypes.collect { |type| 54 dump_complextypedef( type.name, type) unless type.abstract54 dump_complextypedef(@modulepath, type.name, type) unless type.abstract 55 55 }.compact.join("\n") 56 56 end … … 58 58 def dump_simpletype 59 59 @simpletypes.collect { |type| 60 dump_simpletypedef( type.name, type)60 dump_simpletypedef(@modulepath, type.name, type) 61 61 }.compact.join("\n") 62 62 end 63 63 64 def dump_complextypedef( qname, typedef)64 def dump_complextypedef(mpath, qname, typedef) 65 65 case typedef.compoundtype 66 66 when :TYPE_STRUCT, :TYPE_EMPTY 67 dump_struct_typemap( qname, typedef)67 dump_struct_typemap(mpath, qname, typedef) 68 68 when :TYPE_ARRAY 69 dump_encoded_array_typemap( qname, typedef)69 dump_encoded_array_typemap(mpath, qname, typedef) 70 70 when :TYPE_SIMPLE 71 dump_simple_typemap( qname, typedef)71 dump_simple_typemap(mpath, qname, typedef) 72 72 when :TYPE_MAP 73 73 # mapped as a general Hash … … 79 79 end 80 80 81 def dump_encoded_array_typemap( qname, typedef)81 def dump_encoded_array_typemap(mpath, qname, typedef) 82 82 arytype = typedef.find_arytype || XSD::AnyTypeName 83 83 type = XSD::QName.new(arytype.namespace, arytype.name.sub(/\[(?:,)*\]$/, '')) … … 85 85 return <<__EOD__ 86 86 #{@varname}.set( 87 #{mapped_class_name(qname, @modulepath)},87 #{mapped_class_name(qname, mpath)}, 88 88 ::SOAP::SOAPArray, 89 89 ::SOAP::Mapping::EncodedRegistry::TypedArrayFactory, trunk/lib/wsdl/soap/literalMappingRegistryCreator.rb
r1948 r1954 67 67 qualified = (ele.elementform == 'qualified') 68 68 if ele.local_complextype 69 dump_complextypedef( ele.name, ele.local_complextype, nil, qualified)69 dump_complextypedef(@modulepath, ele.name, ele.local_complextype, nil, qualified) 70 70 elsif ele.local_simpletype 71 dump_simpletypedef( ele.name, ele.local_simpletype, nil, qualified)71 dump_simpletypedef(@modulepath, ele.name, ele.local_simpletype, nil, qualified) 72 72 elsif ele.type 73 73 if typedef = @complextypes[ele.type] 74 dump_complextypedef( ele.type, typedef, ele.name, qualified)74 dump_complextypedef(@modulepath, ele.type, typedef, ele.name, qualified) 75 75 elsif typedef = @simpletypes[ele.type] 76 dump_simpletypedef( ele.type, typedef, ele.name, qualified)76 dump_simpletypedef(@modulepath, ele.type, typedef, ele.name, qualified) 77 77 else 78 78 nil … … 87 87 @attributes.collect { |attr| 88 88 if attr.local_simpletype 89 dump_simpletypedef( attr.name, attr.local_simpletype)89 dump_simpletypedef(@modulepath, attr.name, attr.local_simpletype) 90 90 end 91 91 }.compact.join("\n") … … 94 94 def dump_simpletype 95 95 @simpletypes.collect { |type| 96 dump_simpletypedef( type.name, type)96 dump_simpletypedef(@modulepath, type.name, type) 97 97 }.compact.join("\n") 98 98 end … … 100 100 def dump_complextype 101 101 @complextypes.collect { |type| 102 dump_complextypedef( type.name, type) unless type.abstract102 dump_complextypedef(@modulepath, type.name, type) unless type.abstract 103 103 }.compact.join("\n") 104 104 end 105 105 106 def dump_complextypedef( qname, typedef, as_element = nil, qualified = false)106 def dump_complextypedef(mpath, qname, typedef, as_element = nil, qualified = false) 107 107 case typedef.compoundtype 108 108 when :TYPE_STRUCT, :TYPE_EMPTY 109 dump_struct_typemap( qname, typedef, as_element, qualified)109 dump_struct_typemap(mpath, qname, typedef, as_element, qualified) 110 110 when :TYPE_ARRAY 111 dump_array_typemap( qname, typedef)111 dump_array_typemap(mpath, qname, typedef) 112 112 when :TYPE_SIMPLE 113 dump_simple_typemap( qname, typedef, as_element, qualified)113 dump_simple_typemap(mpath, qname, typedef, as_element, qualified) 114 114 when :TYPE_MAP 115 115 # mapped as a general Hash … … 123 123 DEFAULT_ITEM_NAME = XSD::QName.new(nil, 'item') 124 124 125 def dump_array_typemap( qname, typedef)125 def dump_array_typemap(mpath, qname, typedef) 126 126 @dump_struct_typemap_innerstruct = [] 127 127 @dump_struct_typemap_innerstruct.unshift( 128 dump_literal_array_typemap( qname, typedef))128 dump_literal_array_typemap(mpath, qname, typedef)) 129 129 @dump_struct_typemap_innerstruct.join("\n") 130 130 end 131 131 132 def dump_literal_array_typemap( qname, typedef)132 def dump_literal_array_typemap(mpath, qname, typedef) 133 133 var = {} 134 var[:class] = mapped_class_name(qname, @modulepath)134 var[:class] = mapped_class_name(qname, mpath) 135 135 schema_ns = qname.namespace 136 136 if typedef.name.nil? … … 144 144 parse_elements(typedef.elements, qname.namespace, var[:class], nil) 145 145 if parsed_element.empty? 146 parsed_element = [create_soapenc_array_element_definition(typedef )]146 parsed_element = [create_soapenc_array_element_definition(typedef, mpath)] 147 147 end 148 148 var[:schema_element] = dump_schema_element_definition(parsed_element, 2) … … 151 151 end 152 152 153 def create_soapenc_array_element_definition(typedef )153 def create_soapenc_array_element_definition(typedef, mpath) 154 154 child_type = typedef.child_type 155 155 child_element = typedef.find_aryelement … … 161 161 else 162 162 typename = child_element.type || child_element.name 163 type = mapped_class_name(typename, @modulepath)163 type = mapped_class_name(typename, mpath) 164 164 end 165 165 elsif child_type 166 type = mapped_class_name(child_type, @modulepath)166 type = mapped_class_name(child_type, mpath) 167 167 else 168 168 type = nil trunk/lib/wsdl/soap/mappingRegistryCreatorSupport.rb
r1948 r1954 14 14 15 15 16 # requires @defined_const = {}, @dump_struct_typemap_innerstruct 16 # requires @defined_const = {}, @dump_struct_typemap_innerstruct, @modulepath 17 17 module MappingRegistryCreatorSupport 18 18 include ClassDefCreatorSupport 19 19 include XSD::CodeGen 20 20 21 def dump_struct_typemap( qname, typedef, as_element = nil, qualified = nil)21 def dump_struct_typemap(mpath, qname, typedef, as_element = nil, qualified = nil) 22 22 @dump_struct_typemap_innerstruct = [] 23 23 @dump_struct_typemap_innerstruct.unshift( 24 dump_complex_typemap( qname, typedef, @modulepath, as_element, qualified))24 dump_complex_typemap(mpath, qname, typedef, as_element, qualified)) 25 25 @dump_struct_typemap_innerstruct.join("\n") 26 26 end 27 27 28 def dump_complex_typemap( qname, typedef, parentmodule, as_element = nil, qualified = nil)28 def dump_complex_typemap(mpath, qname, typedef, as_element = nil, qualified = nil) 29 29 var = {} 30 var[:class] = mapped_class_name(qname, parentmodule)30 var[:class] = mapped_class_name(qname, mpath) 31 31 if as_element 32 32 var[:schema_name] = as_element … … 58 58 end 59 59 60 def dump_simple_typemap( qname, typedef, as_element = nil, qualified = nil)60 def dump_simple_typemap(mpath, qname, typedef, as_element = nil, qualified = nil) 61 61 var = {} 62 var[:class] = mapped_class_name(qname, @modulepath)62 var[:class] = mapped_class_name(qname, mpath) 63 63 if as_element 64 64 var[:schema_name] = as_element … … 123 123 end 124 124 125 def parse_elements(elements, base_namespace, parentmodule, qualified = false)125 def parse_elements(elements, base_namespace, mpath, qualified = false) 126 126 schema_element = [] 127 127 any = false … … 141 141 typebase = @modulepath 142 142 if element.anonymous_type? 143 @dump_struct_typemap_innerstruct << 144 dump_complex_typemap(element.name, element.local_complextype, 145 parentmodule, nil, qualified) 146 typebase = parentmodule 147 end 148 type = create_type_name(element, typebase) 143 @dump_struct_typemap_innerstruct << dump_complex_typemap( 144 mpath, element.name, element.local_complextype, nil, qualified) 145 typebase = mpath 146 end 147 type = create_type_name(typebase, element) 149 148 name = name_element(element).name 150 149 varname = safevarname(name) … … 165 164 when WSDL::XMLSchema::Sequence 166 165 child_schema_element = 167 parse_elements(element.elements, base_namespace, parentmodule, qualified)166 parse_elements(element.elements, base_namespace, mpath, qualified) 168 167 schema_element << child_schema_element 169 168 when WSDL::XMLSchema::Choice 170 169 child_schema_element = 171 parse_elements(element.elements, base_namespace, parentmodule, qualified)170 parse_elements(element.elements, base_namespace, mpath, qualified) 172 171 if !element.map_as_array? 173 172 # choice + maxOccurs="unbounded" is treated just as 'all' now. … … 181 180 end 182 181 child_schema_element = 183 parse_elements(element.content.elements, base_namespace, parentmodule, qualified)182 parse_elements(element.content.elements, base_namespace, mpath, qualified) 184 183 schema_element.concat(child_schema_element) 185 184 else … … 250 249 end 251 250 252 def dump_simpletypedef( qname, simpletype, as_element = nil, qualified = false)251 def dump_simpletypedef(mpath, qname, simpletype, as_element = nil, qualified = false) 253 252 if simpletype.restriction 254 dump_simpletypedef_restriction( qname, simpletype, as_element, qualified)253 dump_simpletypedef_restriction(mpath, qname, simpletype, as_element, qualified) 255 254 elsif simpletype.list 256 dump_simpletypedef_list( qname, simpletype, as_element, qualified)255 dump_simpletypedef_list(mpath, qname, simpletype, as_element, qualified) 257 256 elsif simpletype.union 258 dump_simpletypedef_union( qname, simpletype, as_element, qualified)257 dump_simpletypedef_union(mpath, qname, simpletype, as_element, qualified) 259 258 else 260 259 raise RuntimeError.new("unknown kind of simpletype: #{simpletype}") … … 262 261 end 263 262 264 def dump_simpletypedef_restriction( qname, typedef, as_element, qualified)263 def dump_simpletypedef_restriction(mpath, qname, typedef, as_element, qualified) 265 264 restriction = typedef.restriction 266 265 unless restriction.enumeration? … … 269 268 end 270 269 var = {} 271 var[:class] = mapped_class_name(qname, @modulepath)270 var[:class] = mapped_class_name(qname, mpath) 272 271 if as_element 273 272 var[:schema_name] = as_element … … 284 283 end 285 284 286 def dump_simpletypedef_list( qname, typedef, as_element, qualified)285 def dump_simpletypedef_list(mpath, qname, typedef, as_element, qualified) 287 286 nil 288 287 end 289 288 290 def dump_simpletypedef_union( qname, typedef, as_element, qualified)289 def dump_simpletypedef_union(mpath, qname, typedef, as_element, qualified) 291 290 nil 292 291 end trunk/test/soap/test_custom_ns.rb
r1898 r1954 27 27 <?xml version="1.0" encoding="utf-8" ?> 28 28 <ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" 29 xmlns:myns="my:foo" 29 30 xmlns:ENV="http://schemas.xmlsoap.org/soap/envelope/" 30 xmlns:myns="my:foo"31 31 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 32 32 <ENV:Header> … … 55 55 assert_equal(NORMAL_XML, result) 56 56 # Envelope ns customize 57 env = SOAP::SOAPEnvelope.new(header, body) 57 58 ns = XSD::NS.new 58 59 ns.assign(SOAP::EnvelopeNamespace, 'ENV') trunk/test/wsdl/anonymous/expectedClassDef.rb
r1949 r1954 3 3 module WSDL; module Anonymous 4 4 5 6 # {urn:lp}Header 7 # header3 - SOAP::SOAPString 8 class Header 9 attr_accessor :header3 10 11 def initialize(header3 = nil) 12 @header3 = header3 13 end 14 end 5 15 6 16 # {urn:lp}ExtraInfo … … 43 53 end 44 54 55 # {urn:lp}Pack 56 # header - WSDL::Anonymous::Pack::Header 57 class Pack 58 59 # inner class for member: Header 60 # {}Header 61 # header1 - SOAP::SOAPString 62 class Header 63 attr_accessor :header1 64 65 def initialize(header1 = nil) 66 @header1 = header1 67 end 68 end 69 70 attr_accessor :header 71 72 def initialize(header = nil) 73 @header = header 74 end 75 end 76 77 # {urn:lp}Envelope 78 # header - WSDL::Anonymous::Envelope::Header 79 class Envelope 80 81 # inner class for member: Header 82 # {}Header 83 # header2 - SOAP::SOAPString 84 class Header 85 attr_accessor :header2 86 87 def initialize(header2 = nil) 88 @header2 = header2 89 end 90 end 91 92 attr_accessor :header 93 94 def initialize(header = nil) 95 @header = header 96 end 97 end 98 45 99 # {urn:lp}login 46 100 # loginRequest - WSDL::Anonymous::Login::LoginRequest trunk/test/wsdl/anonymous/expectedMappingRegistry.rb
r1938 r1954 9 9 NsLp = "urn:lp" 10 10 NsXMLSchema = "http://www.w3.org/2001/XMLSchema" 11 12 EncodedRegistry.register( 13 :class => WSDL::Anonymous::Header, 14 :schema_type => XSD::QName.new(NsLp, "Header"), 15 :schema_element => [ 16 ["header3", ["SOAP::SOAPString", XSD::QName.new(nil, "Header3")]] 17 ] 18 ) 11 19 12 20 EncodedRegistry.set( … … 30 38 :schema_element => [ 31 39 ["sessionID", "SOAP::SOAPString"] 40 ] 41 ) 42 43 LiteralRegistry.register( 44 :class => WSDL::Anonymous::Header, 45 :schema_type => XSD::QName.new(NsLp, "Header"), 46 :schema_qualified => false, 47 :schema_element => [ 48 ["header3", ["SOAP::SOAPString", XSD::QName.new(nil, "Header3")]] 32 49 ] 33 50 ) … … 69 86 70 87 LiteralRegistry.register( 88 :class => WSDL::Anonymous::Pack, 89 :schema_name => XSD::QName.new(NsLp, "Pack"), 90 :schema_qualified => true, 91 :schema_element => [ 92 ["header", ["WSDL::Anonymous::Pack::Header", XSD::QName.new(nil, "Header")]] 93 ] 94 ) 95 96 LiteralRegistry.register( 97 :class => WSDL::Anonymous::Pack::Header, 98 :schema_name => XSD::QName.new(nil, "Header"), 99 :schema_qualified => true, 100 :schema_element => [ 101 ["header1", ["SOAP::SOAPString", XSD::QName.new(nil, "Header1")]] 102 ] 103 ) 104 105 LiteralRegistry.register( 106 :class => WSDL::Anonymous::Envelope, 107 :schema_name => XSD::QName.new(NsLp, "Envelope"), 108 :schema_qualified => true, 109 :schema_element => [ 110 ["header", ["WSDL::Anonymous::Envelope::Header", XSD::QName.new(nil, "Header")]] 111 ] 112 ) 113 114 LiteralRegistry.register( 115 :class => WSDL::Anonymous::Envelope::Header, 116 :schema_name => XSD::QName.new(nil, "Header"), 117 :schema_qualified => true, 118 :schema_element => [ 119 ["header2", ["SOAP::SOAPString", XSD::QName.new(nil, "Header2")]] 120 ] 121 ) 122 123 LiteralRegistry.register( 71 124 :class => WSDL::Anonymous::Login, 72 125 :schema_name => XSD::QName.new(NsLp, "login"), trunk/test/wsdl/anonymous/lp.wsdl
r1934 r1954 9 9 <types> 10 10 <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:lp"> 11 <element name="Pack"> 12 <complexType> 13 <sequence> 14 <element name="Header"> 15 <complexType> 16 <sequence> 17 <element name="Header1" type="xsd:string"/> 18 </sequence> 19 </complexType> 20 </element> 21 </sequence> 22 </complexType> 23 </element> 24 25 <element name="Envelope"> 26 <complexType> 27 <sequence> 28 <element name="Header"> 29 <complexType> 30 <sequence> 31 <element name="Header2" type="xsd:string"/> 32 </sequence> 33 </complexType> 34 </element> 35 </sequence> 36 </complexType> 37 </element> 38 39 <complexType name="Header"> 40 <sequence> 41 <element name="Header3" type="xsd:string"/> 42 </sequence> 43 </complexType> 44 11 45 <complexType name="ExtraInfo"> 12 46 <annotation>