[jboss-svn-commits] JBoss Common SVN: r2009 - jbossxb/trunk/src/main/java/org/jboss/xb/binding

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Sep 4 10:24:48 EDT 2006


Author: alex.loubyansky at jboss.com
Date: 2006-09-04 10:24:46 -0400 (Mon, 04 Sep 2006)
New Revision: 2009

Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/DtdMarshaller.java
Log:
JBXB-81

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/DtdMarshaller.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/DtdMarshaller.java	2006-09-01 15:16:17 UTC (rev 2008)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/DtdMarshaller.java	2006-09-04 14:24:46 UTC (rev 2009)
@@ -217,7 +217,7 @@
       DTDItem item = element.content;
       if(item instanceof DTDMixed)
       {
-         handleMixedElement((DTDMixed)item, element.getName(), attrs);
+         handleMixedElement(element, attrs);
       }
       else if(item instanceof DTDEmpty)
       {
@@ -239,8 +239,17 @@
       }
    }
 
-   private final void handleMixedElement(DTDMixed mixed, String elementName, Attributes attrs)
+   private final void handleMixedElement(DTDElement element, Attributes attrs)
    {
+      boolean startElement = false;
+      if(!elementStack.isEmpty())
+      {
+         Element e = (Element) elementStack.get(elementStack.size() - 1);
+         startElement = element != e.element;
+      }
+      
+      DTDMixed mixed = (DTDMixed) element.content;
+      String elementName = element.getName();
       Object parent = stack.peek();
       DTDItem[] items = mixed.getItems();
       for(int i = 0; i < items.length; ++i)
@@ -265,9 +274,17 @@
                }
 
                char[] ch = marshalled.toCharArray();
-               content.startElement("", elementName, elementName, attrs);
+               if(startElement)
+               {
+                  content.startElement("", elementName, elementName, attrs);
+               }
+               
                content.characters(ch, 0, ch.length);
-               content.endElement("", elementName, elementName);
+
+               if(startElement)
+               {
+                  content.endElement("", elementName, elementName);
+               }
             }
          }
       }




More information about the jboss-svn-commits mailing list