summaryrefslogtreecommitdiff
path: root/lib/wsdl/parser.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/wsdl/parser.rb')
-rw-r--r--lib/wsdl/parser.rb24
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