TILES-103
Now <put-list-attribute> can have <add-list-attribute> as a child.

git-svn-id: https://svn.apache.org/repos/asf/tiles/framework/trunk@507887 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java b/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
index 3dd5d52..03f6c9e 100644
--- a/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
+++ b/tiles-core/src/main/java/org/apache/tiles/definition/digester/DigesterDefinitionsReader.java
@@ -214,7 +214,7 @@
 
         String listHandlerClass = PACKAGE_NAME + ".context.ComponentListAttribute";
         // Tag value for adding an element in a list
-        String ADD_LIST_ELE_TAG = "*/" + LIST_TAG + "/add-attribute";
+        String ADD_LIST_ELE_TAG = "*/add-attribute";
 
         // syntax rules
         digester.addObjectCreate(DEFINITION_TAG, definitionHandlerClass);
@@ -244,7 +244,7 @@
 
         // nested list elements rules
         // Create a list handler, and add it to parent list
-        String NESTED_LIST = "*/" + LIST_TAG + "/" + LIST_TAG;
+        String NESTED_LIST = "*/add-list-attribute";
         digester.addObjectCreate(NESTED_LIST, listHandlerClass);
         digester.addSetProperties(NESTED_LIST);
         digester.addSetNext(NESTED_LIST, "add", putAttributeHandlerClass);
diff --git a/tiles-core/src/main/resources/org/apache/tiles/resources/tiles-config_2_0.dtd b/tiles-core/src/main/resources/org/apache/tiles/resources/tiles-config_2_0.dtd
index 3a50697..a66d29c 100644
--- a/tiles-core/src/main/resources/org/apache/tiles/resources/tiles-config_2_0.dtd
+++ b/tiles-core/src/main/resources/org/apache/tiles/resources/tiles-config_2_0.dtd
@@ -152,10 +152,10 @@
 
 <!-- The "put-list-attribute" element describes a list attribute of a definition. It allows to
      specify an attribute that is a java List containing any kind of values. In
-     the config file, the list elements are specified by nested <put-attribute>, <item> or
-     <put-list-attribute>.
+     the config file, the list elements are specified by nested <add-attribute>, <item> or
+     <add-list-attribute>.
 -->
-<!ELEMENT put-list-attribute ( (add-attribute* | item* | bean* | put-list-attribute*)+) >
+<!ELEMENT put-list-attribute ( (add-attribute* | item* | bean* | add-list-attribute*)+) >
 <!ATTLIST put-list-attribute id               ID              #IMPLIED>
 <!--
 @attr name           The unique identifier for this put attribute list.
@@ -164,6 +164,7 @@
 
 <!-- ========== Subordinate Elements ====================================== -->
 
+
 <!-- The "add-attribute" element describes an element of a list. It is similar to the
      <put> element.
 -->
@@ -182,6 +183,15 @@
 -->
 <!ATTLIST add-attribute              value            CDATA           #IMPLIED>
 
+<!-- The "add-list-attribute" element describes a list attribute subordinate to another
+     list attribute. It allows to specify an attribute value that is a java List
+     containing any kind of values. In the config file, the list elements are specified
+     by nested <add-attribute>, <item> or
+     <add-list-attribute>.
+-->
+<!ELEMENT add-list-attribute ( (add-attribute* | item* | bean* | add-list-attribute*)+) >
+<!ATTLIST add-list-attribute id               ID              #IMPLIED>
+
 
 <!-- The "bean" element describes an element of a list. It create a bean of the
      specified java classtype. This bean is initialized with appropriate nested