class MyData::Xsd::ComplexType
Attributes
doc[R]
namespace[R]
Public Class Methods
new(doc, namespace: nil)
click to toggle source
# File lib/my_data/xsd/complex_type.rb, line 6 def initialize(doc, namespace: nil) @doc = doc @namespace = namespace end
Public Instance Methods
elements()
click to toggle source
# File lib/my_data/xsd/complex_type.rb, line 15 def elements @elements ||= extract_elements(doc).flatten.map do |element| MyData::Xsd::Element.new(element) end end
inspect()
click to toggle source
# File lib/my_data/xsd/complex_type.rb, line 21 def inspect "ComplexType: { name: #{name.to_json}, elements: #{elements} }" end
name()
click to toggle source
# File lib/my_data/xsd/complex_type.rb, line 11 def name @name ||= doc.attributes["name"].value.camelize end
Private Instance Methods
extract_elements(node)
click to toggle source
# File lib/my_data/xsd/complex_type.rb, line 27 def extract_elements(node) return node if node.name == "element" node.element_children.map { |child| extract_elements(child) } end