mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* lib/soap/streamHandler.rb: drop unused http parameters.
* lib/soap/encodingstyle/soapHandler.rb, lib/soap/mapping/factory.rb, lib/soap/mapping/mapping.rb, lib/soap/mapping/registry.rb, lib/wsdl/soap/complexType.rb: ApacheSOAP's map support was broken under WSDL dynanic client environment. fixed. * test/wsdl/raa/*: add tests. * lib/xsd/datatypes.rb: dateTime precision bug fix (at least, I hope.) bug of soap4r. XSDDateTimeImple.to_time passed a Float to Time.local/Time.gm as an usec, and NUM2LONG(rb_num2long for Float) causes rounding error. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5045 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
a017b0cc8a
commit
42bca643c3
18 changed files with 256 additions and 95 deletions
|
|
@ -48,13 +48,22 @@ class ComplexType < Info
|
|||
end
|
||||
|
||||
def child_defined_complextype(name)
|
||||
unless compoundtype == :TYPE_STRUCT
|
||||
raise RuntimeError.new("Assert: not for struct")
|
||||
end
|
||||
unless ele = find_element(name)
|
||||
if name.namespace.nil?
|
||||
ele = find_element_by_name(name.name)
|
||||
ele = nil
|
||||
case compoundtype
|
||||
when :TYPE_STRUCT
|
||||
unless ele = find_element(name)
|
||||
if name.namespace.nil?
|
||||
ele = find_element_by_name(name.name)
|
||||
end
|
||||
end
|
||||
when :TYPE_ARRAY
|
||||
if content.elements.size == 1
|
||||
ele = content.elements[0]
|
||||
else
|
||||
raise RuntimeError.new("Assert: must not reach.")
|
||||
end
|
||||
else
|
||||
raise RuntimeError.new("Assert: Not implemented.")
|
||||
end
|
||||
unless ele
|
||||
raise RuntimeError.new("Cannot find #{name} as a children of #{@name}.")
|
||||
|
|
@ -83,10 +92,13 @@ class ComplexType < Info
|
|||
private
|
||||
|
||||
def content_arytype
|
||||
arytype = find_arytype
|
||||
ns = arytype.namespace
|
||||
name = arytype.name.sub(/\[(?:,)*\]$/, '')
|
||||
XSD::QName.new(ns, name)
|
||||
if arytype = find_arytype
|
||||
ns = arytype.namespace
|
||||
name = arytype.name.sub(/\[(?:,)*\]$/, '')
|
||||
XSD::QName.new(ns, name)
|
||||
else
|
||||
nil
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue