code: public ReconfigBeanDefinitionHolder parseBeanDefinitionElement(Element ele, BeanDefinition containingBean) {
      String id = ele.getAttribute(ID_ATTRIBUTE);
      String nameAttr = ele.getAttribute(NAME_ATTRIBUTE);
  
      List<String> aliases = new ArrayList<String>();
      if (StringUtils.hasLength(nameAttr)) {
        String[] nameArr = StringUtils.tokenizeToStringArray(nameAttr, MULTI_VALUE_ATTRIBUTE_DELIMITERS);
        aliases.addAll(Arrays.asList(nameArr));
      }
  
      String beanName = id;
      if (!StringUtils.hasText(beanName) && !aliases.isEmpty()) {
        beanName = aliases.remove(0);
        logger.debug("No XML 'id' specified - using '{}' as bean name and {} as aliases", beanName, aliases);
      }
  
      if (containingBean == null) checkNameUniqueness(beanName, aliases, ele);
  
      AbstractBeanDefinition beanDefinition = parseBeanDefinitionElement(ele, beanName, containingBean);
      if (beanDefinition != null) {
        String[] aliasesArray = StringUtils.toStringArray(aliases);
        ReconfigBeanDefinitionHolder bdh = new ReconfigBeanDefinitionHolder(beanDefinition, beanName,
            aliasesArray);
        String override = ele.getAttribute("override");
        if (null != override && override.equals("remove")) bdh.setConfigType(ReconfigType.REMOVE);
        String primary = ele.getAttribute("primary");
        if (null != primary && primary.equals("true")) bdh.setConfigType(ReconfigType.PRIMARY);
        return bdh;
      }
  
      return null;
    }
docs: Parses the supplied <code>&lt;bean&gt;</code> element. May return <code>null</code> if there
  were errors during parse. Errors are reported
  to the {@link org.springframework.beans.factory.parsing.ProblemReporter}.
  
  @param ele a {@link org.w3c.dom.Element} object.
  @param containingBean a {@link org.springframework.beans.factory.config.BeanDefinition} object.
  @return a {@link org.beangle.inject.spring.config.context.spring.ReconfigBeanDefinitionHolder}
  object.