protected void processBeanList(BeanContainer container, XmlReader reader, LoaderContext context) { Object source = reader.getSource(); Class<?> beanType = classAttribute(reader, TYPE_ATTRIBUTE, true); String qualifier = reader.getAttribute(QUALIFIER_ATTRIBUTE); boolean override = reader.getBooleanAttribute(OVERRIDE_ATTRIBUTE, context.defaultOverride); List<ValueDefinition> values = new ArrayList<ValueDefinition>(); final QName elementName = reader.getElementName(); while (reader.nextWhileNotEnd(elementName)) { if (reader.isStartElement()) { if (reader.isStartElement(DESCRIPTION_ELEMENT)) { continue; } if (reader.isStartElement(REF_ELEMENT)) { values.add(readRefElement(context, reader)); continue; } if (reader.isStartElement(BEAN_ELEMENT)) { BeanDefinition bd = readBean(container, reader, context); if (null != bd) { values.add(new ValueDefinition(bd)); } continue; } throw new BeanDefinitionException("The value element '" + reader.getElementLocalName() + "' not supported in 'bean-list' element, source : " + reader.getSource()); } } container.addBeanList(new BeanListDefinition(source, beanType, qualifier, override, values)); }