Flowdock
method

decode_tag

Importance_0
v1_8_7_330 - Show latest stable - 0 notes - Class: WSDL::XMLSchema::Parser
decode_tag(ns, name, attrs, parent) private

No documentation

This method has no description. You can help the Ruby community by adding new notes.

Hide source
# File lib/wsdl/xmlSchema/parser.rb, line 108
  def decode_tag(ns, name, attrs, parent)
    o = nil
    elename = ns.parse(name)
    if !parent
      if elename == SchemaName
        o = Schema.parse_element(elename)
        o.location = @location
      else
        raise UnknownElementError.new("unknown element: #{elename}")
      end
      o.root = @originalroot if @originalroot   # o.root = o otherwise
    else
      if elename == AnnotationName
        # only the first annotation element is allowed for each element.
        o = Annotation.new
      else
        o = parent.parse_element(elename)
      end
      unless o
        unless @ignored.key?(elename)
          warn("ignored element: #{elename} of #{parent.class}")
          @ignored[elename] = elename
        end
        o = Documentation.new  # which accepts any element.
      end
      # node could be a pseudo element.  pseudo element has its own parent.
      o.root = parent.root
      o.parent = parent if o.parent.nil?
    end
    attrs.each do |key, value|
      attr_ele = ns.parse(key, true)
      value_ele = ns.parse(value, true)
      value_ele.source = value  # for recovery; value may not be a QName
      if attr_ele == IdAttrName
        o.id = value_ele
      else
        unless o.parse_attr(attr_ele, value_ele)
          unless @ignored.key?(attr_ele)
            warn("ignored attr: #{attr_ele}")
            @ignored[attr_ele] = attr_ele
          end
        end
      end
    end
    o
  end
Register or log in to add new notes.