From 226256e2642ffad4c24d81ca4f4cb15cd7714d7c Mon Sep 17 00:00:00 2001 From: Chris Beams Date: Thu, 28 Jul 2011 02:21:22 +0000 Subject: [PATCH] Respect within per beans XSD Prior to this change, a parsing exception would be thrown if a element was placed within a element. The beans XSD has always permitted this arrangement, but BeanDefinitionParserDelegate did not respect it. The latter now simply ignores any element, rather than failing. Issue: SPR-8563 --- .../factory/xml/BeanDefinitionParserDelegate.java | 5 ++++- .../beans/factory/xml/collections.xml | 12 ++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/org.springframework.beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java b/org.springframework.beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java index 17ba6b8487..566dc0ed7e 100644 --- a/org.springframework.beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java +++ b/org.springframework.beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java @@ -1255,7 +1255,10 @@ public class BeanDefinitionParserDelegate { } else { // Child element is what we're looking for. - if (valueEle != null) { + if (nodeNameEquals(candidateEle, DESCRIPTION_ELEMENT)) { + // the element is a -> ignore it + } + else if (valueEle != null) { error(" element must not contain more than one value sub-element", entryEle); } else { diff --git a/org.springframework.beans/src/test/resources/org/springframework/beans/factory/xml/collections.xml b/org.springframework.beans/src/test/resources/org/springframework/beans/factory/xml/collections.xml index 33d2f20698..9d772d3fd5 100644 --- a/org.springframework.beans/src/test/resources/org/springframework/beans/factory/xml/collections.xml +++ b/org.springframework.beans/src/test/resources/org/springframework/beans/factory/xml/collections.xml @@ -155,6 +155,18 @@ + + + + + + A map entry with a description + v1 + + + + +