# File lib_wpm/wpm.rb, line 1445
    def end_element(ns_uri, prefix, name)
      if (ns_uri == XMLNS_MAP_URI) then
        case (@depth)
        when 1
          if (name != 'map') then
            raise WidgetMappingError, "invalid top level element: #{name.inspect}"
          end
        when 2
          if (FACTORY_MAP.include? name) then
            @curr_properties.check_mapping
            @curr_properties = nil
          else
            raise WidgetMappingError, "unknown widget: #{name.inspect}"
          end
        when 3
          @curr_properties.set_common_property(name, @curr_attr_map, @curr_value)
          @curr_attr_map = nil
          @curr_value = nil
        else
          raise WidgetMappingError, "too deep element: #{name.inspect}"
        end
        @depth -= 1
      else
        if (@depth >= 3) then
          raise WidgetMappingError, "not allowed element: #{name.inspect}"
        end
      end
    end