code: public AbstractBeanDefinition parseBeanDefinitionElement(Element ele, String beanName,
        BeanDefinition containingBean) {
  
      this.parseState.push(new BeanEntry(beanName));
  
      String className = null;
      if (ele.hasAttribute(CLASS_ATTRIBUTE)) {
        className = ele.getAttribute(CLASS_ATTRIBUTE).trim();
      }
  
      try {
        String parent = null;
        if (ele.hasAttribute(PARENT_ATTRIBUTE)) {
          parent = ele.getAttribute(PARENT_ATTRIBUTE);
        }
        AbstractBeanDefinition bd = createBeanDefinition(className, parent);
  
        parseBeanDefinitionAttributes(ele, beanName, containingBean, bd);
        bd.setDescription(DomUtils.getChildElementValueByTagName(ele, DESCRIPTION_ELEMENT));
  
        parseMetaElements(ele, bd);
        parseLookupOverrideSubElements(ele, bd.getMethodOverrides());
        parseReplacedMethodSubElements(ele, bd.getMethodOverrides());
  
        parseConstructorArgElements(ele, bd);
        parsePropertyElements(ele, bd);
        parseQualifierElements(ele, bd);
  
        // bd.setResource(this.readerContext.getResource());
        bd.setSource(extractSource(ele));
  
        return bd;
      } catch (ClassNotFoundException ex) {
        error("Bean class [" + className + "] not found", ele, ex);
      } catch (NoClassDefFoundError err) {
        error("Class that bean class [" + className + "] depends on not found", ele, err);
      } catch (Throwable ex) {
        error("Unexpected failure during bean definition parsing", ele, ex);
      } finally {
        this.parseState.pop();
      }
  
      return null;
    }
docs: Parse the bean definition itself, without regard to name or aliases. May
  return <code>null</code> if problems occured during the parse of the bean
  definition.
  
  @param ele a {@link org.w3c.dom.Element} object.
  @param beanName a {@link java.lang.String} object.
  @param containingBean a {@link org.springframework.beans.factory.config.BeanDefinition} object.
  @return a {@link org.springframework.beans.factory.support.AbstractBeanDefinition} object.