- Timestamp:
- 02/10/08 10:57:09 (8 months ago)
- Files:
-
- trunk/lib/soap/baseData.rb (modified) (2 diffs)
- trunk/lib/soap/encodingstyle/literalHandler.rb (modified) (1 diff)
- trunk/lib/soap/generator.rb (modified) (1 diff)
- trunk/lib/soap/mapping/literalregistry.rb (modified) (1 diff)
- trunk/lib/soap/mapping/wsdlliteralregistry.rb (modified) (1 diff)
- trunk/lib/soap/rpc/proxy.rb (modified) (2 diffs)
- trunk/lib/xsd/mapping.rb (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lib/soap/baseData.rb
r1970 r2011 49 49 attr_reader :extraattr 50 50 attr_accessor :definedtype 51 attr_accessor :force_typed 51 52 52 53 def initialize(*arg) … … 61 62 @definedtype = nil 62 63 @extraattr = {} 64 @force_typed = false 63 65 end 64 66 trunk/lib/soap/encodingstyle/literalHandler.rb
r1975 r2011 30 30 attrs = {} 31 31 name = generator.encode_name(ns, data, attrs) 32 if data.type and data.type.name and 33 (@generate_explicit_type or data.force_typed) 34 data.extraattr[XSD::AttrTypeName] = data.type 35 end 32 36 data.extraattr.each do |key, value| 33 next if !@generate_explicit_type and key == XSD::AttrTypeName34 37 keytag = key 35 38 if key.is_a?(XSD::QName) trunk/lib/soap/generator.rb
r2000 r2011 142 142 else 143 143 if obj.is_a?(SOAPEnvelope) 144 # xsi:nil="true" can appear even if dumping without explicit type.145 144 Generator.assign_ns(attrs, ns, XSD::InstanceNamespace) 146 if @generate_explicit_type 147 Generator.assign_ns(attrs, ns, XSD::Namespace) 148 end 145 Generator.assign_ns(attrs, ns, XSD::Namespace) 149 146 end 150 147 obj.encode(self, ns, attrs) do |child| trunk/lib/soap/mapping/literalregistry.rb
r1993 r2011 137 137 end 138 138 ele.qualified = definition.qualified 139 if definition.type and (definition.basetype or Mapping.root_type_hint) 140 Mapping.reset_root_type_hint 141 ele.extraattr[XSD::AttrTypeName] = definition.type 139 if definition.type 140 ele.type = definition.type 141 if definition.basetype or Mapping.root_type_hint 142 Mapping.reset_root_type_hint 143 ele.force_typed = true 144 end 142 145 end 143 146 if qname.nil? and definition.elename trunk/lib/soap/mapping/wsdlliteralregistry.rb
r1949 r2011 110 110 else 111 111 ele = complexobj2soap(obj, type) 112 end 113 ele.type = type.name 114 if type.base or Mapping.root_type_hint 115 Mapping.reset_root_type_hint 116 ele.force_typed = true 112 117 end 113 118 add_definedattributes2soap(obj, ele, type) trunk/lib/soap/rpc/proxy.rb
r2005 r2011 57 57 @allow_unqualified_element = true 58 58 @default_encodingstyle = nil 59 @generate_explicit_type = true59 @generate_explicit_type = nil 60 60 @use_default_namespace = false 61 61 @return_response_as_xml = false … … 141 141 @default_encodingstyle || op_info.response_default_encodingstyle 142 142 ) 143 if reqopt[:generate_explicit_type].nil? 144 reqopt[:generate_explicit_type] = (op_info.request_use == :encoded) 145 end 146 if resopt[:generate_explicit_type].nil? 147 resopt[:generate_explicit_type] = (op_info.response_use == :encoded) 148 end 143 149 env = route(req_header, req_body, reqopt, resopt) 144 150 if op_info.response_use.nil? trunk/lib/xsd/mapping.rb
r1936 r2011 31 31 MAPPING_OPT = { 32 32 :default_encodingstyle => SOAP::LiteralNamespace, 33 :generate_explicit_type => false, 33 34 :root_type_hint => true 34 35 }.freeze