summaryrefslogtreecommitdiff
path: root/lib/wsdl/soap/header.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/wsdl/soap/header.rb')
-rw-r--r--lib/wsdl/soap/header.rb13
1 files changed, 10 insertions, 3 deletions
diff --git a/lib/wsdl/soap/header.rb b/lib/wsdl/soap/header.rb
index 247531a76d..8d7c4e9d70 100644
--- a/lib/wsdl/soap/header.rb
+++ b/lib/wsdl/soap/header.rb
@@ -32,8 +32,12 @@ class Header < Info
@headerfault = nil
end
+ def targetnamespace
+ parent.targetnamespace
+ end
+
def find_message
- root.message(@message)
+ root.message(@message) or raise RuntimeError.new("#{@message} not found")
end
def find_part
@@ -42,7 +46,7 @@ class Header < Info
return part
end
end
- nil
+ raise RuntimeError.new("#{@part} not found")
end
def parse_element(element)
@@ -59,7 +63,10 @@ class Header < Info
def parse_attr(attr, value)
case attr
when MessageAttrName
- @message = XSD::QName.new(targetnamespace, value.source)
+ if value.namespace.nil?
+ value = XSD::QName.new(targetnamespace, value.source)
+ end
+ @message = value
when PartAttrName
@part = value.source
when UseAttrName