class WsdlMapper::DomParsing::ElementParser

Public Instance Methods

parse(node) click to toggle source

@param [Nokogiri::XML::Node] node

# File lib/wsdl_mapper/dom_parsing/element_parser.rb, line 8
def parse(node)
  name = parse_name_in_attribute 'name', node

  element = Element.new name

  element.type_name = parse_name_in_attribute 'type', node

  each_element node do |child|
    parse_element_child child, element
  end

  @base.schema.add_element element
end

Protected Instance Methods

parse_element_child(node, element) click to toggle source

@param [Nokogiri::XML::Node] node @param [WsdlMapper::Dom::Element] element

# File lib/wsdl_mapper/dom_parsing/element_parser.rb, line 25
def parse_element_child(node, element)
  case get_name node
  when ANNOTATION
    parse_annotation node, element
  when COMPLEX_TYPE
    element.type = @base.parsers[COMPLEX_TYPE].parse node
    element.type.containing_element = element
  when SIMPLE_TYPE
    element.type = @base.parsers[SIMPLE_TYPE].parse node
    element.type.containing_element = element
  when UNIQUE
    # ignore
  else
    log_msg node, :unknown
  end
end