# File lib/xml/dom2/element.rb, line 35
      def initialize(tag = nil, attr = nil, *children)
        super(*children)
        raise "parameter error" if !tag
        @name = nil
        @prefix = nil
        @localname = nil
        @uri = nil
        @idAttribute = nil
        if tag.is_a?(Array)
          ## namespaces
          raise "parameter error" if tag.length != 2
          @localname = tag[1]
          if tag[1].index(':')
            @prefix, @localname = tag[1].split(':')
          end
          @name = tag[1] ## qualified name
          @uri =  tag[0] ## namespace URI
        else
          @name = tag
        end
        @name.freeze
        @localname.freeze
        @uri.freeze
        @prefix.freeze

        if attr.nil?
          @attr = NamedNodeMap.new([])
        elsif attr.is_a?(Hash)
          nodes = []
          attr.each do |key, value|
            nodes.push(Attr.new(key, value))
          end
          @attr = NamedNodeMap.new(nodes)
        elsif attr.is_a?(Array)
          @attr = NamedNodeMap.new(attr)
        elsif attr.nodeType == ATTRIBUTE_NODE
          @attr = NamedNodeMap.new([attr])
        else
          raise "parameter error: #{attr}"
        end
        @attr.each do |attr|
          attr.ownerElement = self
        end
      end