# File rexml/attribute.rb, line 44
    def initialize( first, second=nil, parent=nil )
      @element = nil
      if first.kind_of? Attribute
	self.name = first.expanded_name
	@value = first.value
	if second.kind_of? Element
	  @element = element
	else
	  @element = first.element
	end
      elsif first.kind_of? String
	@element = parent if parent.kind_of? Element
	self.name = first
	@value = second
      elsif first.kind_of? Source
	@element = second if second.kind_of? Element
	md = first.match(PATTERN, true )
	self.name, @value = md[1],md[3]
      else
	raise "illegal argument #{first.type} to Attribute constructor"
      end
      @value = Node::read_with_substitution @value
    end