summaryrefslogtreecommitdiff
path: root/lib/wsdl/definitions.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/wsdl/definitions.rb')
-rw-r--r--lib/wsdl/definitions.rb21
1 files changed, 17 insertions, 4 deletions
diff --git a/lib/wsdl/definitions.rb b/lib/wsdl/definitions.rb
index 561a335744..c530220fde 100644
--- a/lib/wsdl/definitions.rb
+++ b/lib/wsdl/definitions.rb
@@ -43,8 +43,7 @@ class Definitions < Info
end
def inspect
- name = @name || '(unnamed)'
- "#<#{self.class}:#{name}>"
+ sprintf("#<%s:0x%x %s>", self.class.name, __id__, @name || '(unnamed)')
end
def targetnamespace=(targetnamespace)
@@ -58,7 +57,7 @@ class Definitions < Info
result = XSD::NamedElements.new
if @types
@types.schemas.each do |schema|
- result.concat(schema.elements)
+ result.concat(schema.collect_elements)
end
end
@imports.each do |import|
@@ -71,7 +70,7 @@ class Definitions < Info
result = @anontypes.dup
if @types
@types.schemas.each do |schema|
- result.concat(schema.complextypes)
+ result.concat(schema.collect_complextypes)
end
end
@imports.each do |import|
@@ -80,6 +79,20 @@ class Definitions < Info
result
end
+ def collect_simpletypes
+ result = XSD::NamedElements.new
+ if @types
+ @types.schemas.each do |schema|
+ result.concat(schema.collect_simpletypes)
+ end
+ end
+ @imports.each do |import|
+ result.concat(import.content.collect_simpletypes)
+ end
+ result
+ end
+
+ # ToDo: simpletype must be accepted...
def add_type(complextype)
@anontypes << complextype
end