org.springframework.beans.factory.xml

## Interface BeanDefinitionParser

All Known Implementing Classes:
  AbstractBeanDefinitionParser, AbstractSimpleBeanDefinitionParser, AbstractSingleBeanDefinitionParser, AnnotationConfigBeanDefinitionParser, AnnotationDrivenBeanDefinitionParser, CastorMarshallerBeanDefinitionParser, ComponentScanBeanDefinitionParser, ExecutorBeanDefinitionParser, JtaTransactionManagerBeanDefinitionParser, ScheduledTasksBeanDefinitionParser, SchedulerBeanDefinitionParser, ScriptingDefaultsParser

    public interface BeanDefinitionParser

Interface used by the `DefaultBeanDefinitionDocumentReader` to handle custom, top-level (directly under `<beans/>`) tags.

Implementations are free to turn the metadata in the custom tag into as many `BeanDefinitions` as required.

The parser locates a `BeanDefinitionParser` from the associated `NamespaceHandler` for the namespace in which the custom tag resides.

Since:
  2.0
Author:
  Rob Harrop
See Also:
  `NamespaceHandler`, `AbstractBeanDefinitionParser`

### Method Summary

Methods
`BeanDefinition` `parse(Element element, ParserContext parserContext)` Parse the specified `Element` and register the resulting `BeanDefinition(s)` with the `BeanDefinitionRegistry` embedded in the supplied `ParserContext`.

### Method Detail

#### parse

    BeanDefinition parse(Element element,
                       ParserContext parserContext)

Parse the specified `Element` and register the resulting `BeanDefinition(s)` with the `BeanDefinitionRegistry` embedded in the supplied `ParserContext`.

Implementations must return the primary `BeanDefinition` that results from the parse if they will ever be used in a nested fashion (for example as an inner tag in a `<property/>` tag). Implementations may return `null` if they will not be used in a nested fashion.

Parameters:
  `element` - the element that is to be parsed into one or more `BeanDefinitions`
  `parserContext` - the object encapsulating the current state of the parsing process; provides access to a `BeanDefinitionRegistry`
Returns:
  the primary `BeanDefinition`