summaryrefslogtreecommitdiff
path: root/lib/wsdl/xmlSchema/attribute.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/wsdl/xmlSchema/attribute.rb')
-rw-r--r--lib/wsdl/xmlSchema/attribute.rb25
1 files changed, 14 insertions, 11 deletions
diff --git a/lib/wsdl/xmlSchema/attribute.rb b/lib/wsdl/xmlSchema/attribute.rb
index e5046dd991..6861fc171e 100644
--- a/lib/wsdl/xmlSchema/attribute.rb
+++ b/lib/wsdl/xmlSchema/attribute.rb
@@ -33,10 +33,13 @@ class Attribute < Info
@type = nil
@default = nil
@fixed = nil
-
@arytype = nil
end
+ def targetnamespace
+ parent.targetnamespace
+ end
+
def parse_element(element)
nil
end
@@ -46,23 +49,23 @@ class Attribute < Info
when RefAttrName
@ref = value
when UseAttrName
- @use = value
+ @use = value.source
when FormAttrName
- @form = value
+ @form = value.source
when NameAttrName
- @name = value
+ @name = XSD::QName.new(targetnamespace, value.source)
when TypeAttrName
@type = value
when DefaultAttrName
- @default = value
+ @default = value.source
when FixedAttrName
- @fixed = value
+ @fixed = value.source
when ArrayTypeAttrName
- @arytype = if value.is_a?(XSD::QName)
- value
- else
- XSD::QName.new(XSD::Namespace, value)
- end
+ @arytype = if value.namespace.nil?
+ XSD::QName.new(XSD::Namespace, value.source)
+ else
+ value
+ end
else
nil
end