diff options
Diffstat (limited to 'lib/wsdl/parser.rb')
-rw-r--r-- | lib/wsdl/parser.rb | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/lib/wsdl/parser.rb b/lib/wsdl/parser.rb index 6387911f79..417ea20b47 100644 --- a/lib/wsdl/parser.rb +++ b/lib/wsdl/parser.rb @@ -123,25 +123,11 @@ private o.parent = parent if o.parent.nil? end attrs.each do |key, value| - attr = unless /:/ =~ key - XSD::QName.new(nil, key) - else - ns.parse(key) - end - value_ele = if /:/ !~ value - value - elsif /^http:\/\// =~ value # ToDo: ugly. - value - else - begin - ns.parse(value) - rescue - value - end - end - unless o.parse_attr(attr, value_ele) - STDERR.puts("Unknown attr #{ attr }.") - # raise UnknownAttributeError.new("Unknown attr #{ attr }.") + attr_ele = ns.parse(key, true) + value_ele = ns.parse(value, true) + value_ele.source = value # for recovery; value may not be a QName + unless o.parse_attr(attr_ele, value_ele) + STDERR.puts("Unknown attr #{ attr_ele }.") end end o |