# File lib_wpm/wpm/xmlparser.rb, line 32
    def startElement(name, attrs)
      @ns_map.start_element

      for attr_name, attr_value in attrs
        case (attr_name)
        when /^xmlns($|:)/
          xmlns, prefix = attr_name.split(/:/, 2)
          prefix = '' unless prefix
          ns_uri = attr_value
          @ns_map.add_ns(prefix, ns_uri)
        else
          # nothing to do.
        end
      end

      attr_map = XMLAttributeMap.new
      for attr_name, attr_value in attrs
        case (attr_name)
        when /^xmlns($|:)/
          # nothing to do.
        else
          if (attr_name =~ /:/) then
            prefix, ns_attr_name = attr_name.split(/:/, 2)
            unless (@ns_map[prefix]) then
              raise "not defined a XML namespace prefix: #{prefix.inspect}"
            end
            attr_map.add_attr(@ns_map[prefix], prefix, ns_attr_name, attr_value)
          else
            attr_map.add_attr('', '', attr_name, attr_value)
          end
        end
      end

      if (name =~ /:/) then
        prefix, elem_name = name.split(/:/, 2)
      else
        prefix = ''
        elem_name = name
      end
      unless (@ns_map[prefix]) then
        raise "not defined a XML namespace prefix: #{prefix.inspect}"
      end
      @reader.start_element(@ns_map[prefix], prefix, elem_name, attr_map)
    end