Some attributes in the xsd have defaults. For example: transactionManager and jobRepository. However, if a non-default value is set on a parent step, but not re-set on an extending bean, then attribute on the extending bean will be overridden by the default.
Therefore, for elements that allow "parents", defaults should be removed from the xsd and the parser. The defaulting should happen in the FactoryBean, because it is at this time that the framework can see if the value was ever set.