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