[jboss-svn-commits] JBoss Common SVN: r3007 - in jbossxb/trunk/src: test/java/org/jboss/test/xb/builder and 7 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Mar 4 10:59:19 EST 2009


Author: alex.loubyansky at jboss.com
Date: 2009-03-04 10:59:18 -0500 (Wed, 04 Mar 2009)
New Revision: 3007

Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ModelGroupBinding.java
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/MultiClassSchemaResolver.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/jbossxmlnsprefix/test/JBossXmlNsPrefixUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/AlphaUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/SequenceUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroupUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmltype/test/JBossXmlTypeUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayElementWildcardUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementBeforePrimitiveUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementPropertiesAndWildcardUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ListElementWildcardUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/NotAnnotatedElementWildcardUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/SimpleObjectWildcardUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xml/elementorder/test/ElementOrderUnitTestCase.java
   jbossxb/trunk/src/test/java/org/jboss/test/xml/unorderedsequence/test/UnorderedSequenceAnnotationUnitTestCase.java
Log:
JBXB-188

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ModelGroupBinding.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ModelGroupBinding.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/ModelGroupBinding.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -242,8 +242,7 @@
             ++occurence;
             return true;
          }
-         else
-            return false;
+         return false;
       }
       
       public abstract boolean isWildcardContent();

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/MultiClassSchemaResolver.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/MultiClassSchemaResolver.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/MultiClassSchemaResolver.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -443,7 +443,6 @@
 
       if( trace )
          log.trace("getInputSource, nsURI="+nsURI+", baseURI="+baseURI+", schemaLocation="+schemaLocation);
-      System.out.println("getInputSource, nsURI="+nsURI+", baseURI="+baseURI+", schemaLocation="+schemaLocation);
 
       // First try what is requested
       try

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -27,6 +27,7 @@
 import org.jboss.test.AbstractTestCaseWithSetup;
 import org.jboss.test.AbstractTestDelegate;
 import org.jboss.util.UnreachableStatementException;
+import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.MultiClassSchemaResolver;
 import org.jboss.xb.binding.sunday.unmarshalling.DefaultHandlers;
 import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
@@ -35,6 +36,7 @@
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBindingResolver;
 import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnorderedSequenceBinding;
 import org.jboss.xb.builder.JBossXBBuilder;
 import org.jboss.xb.builder.runtime.BuilderParticleHandler;
 import org.jboss.test.xml.JBossXBTestDelegate;
@@ -265,8 +267,8 @@
    protected TermBinding assertSingleSequence(TermBinding term)
    {
       assertNotNull(term);
-      assertTrue(term instanceof SequenceBinding);
-      SequenceBinding sequence = (SequenceBinding) term;
+      assertTrue(term instanceof SequenceBinding || term instanceof UnorderedSequenceBinding);
+      ModelGroupBinding sequence = (ModelGroupBinding) term;
       Collection<ParticleBinding> particles = sequence.getParticles();
       assertTrue(particles.size() == 1);
       ParticleBinding particle = particles.iterator().next();

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/jbossxmlnsprefix/test/JBossXmlNsPrefixUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/jbossxmlnsprefix/test/JBossXmlNsPrefixUnitTestCase.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/element/jbossxmlnsprefix/test/JBossXmlNsPrefixUnitTestCase.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -42,6 +42,9 @@
 import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnorderedSequenceBinding;
 import org.jboss.xb.builder.JBossXBBuilder;
 
 /**
@@ -177,24 +180,43 @@
       Collection<ParticleBinding> particles = group.getParticles();
       assertEquals(2, particles.size());
       Iterator<ParticleBinding> particleIterator = particles.iterator();
-      ParticleBinding particle = particleIterator.next();
       
+      ElementBinding child;
+      ElementBinding rootName;
+      if(group instanceof SequenceBinding)
+      {
+         child = (ElementBinding) particleIterator.next().getTerm();
+         rootName = (ElementBinding) particleIterator.next().getTerm();
+      }
+      else
+      {
+         ParticleBinding particle = particleIterator.next();
+         ElementBinding el = (ElementBinding) particle.getTerm();
+         if(el.getQName().equals(new QName("ns.root", "child")))
+         {
+            child = el;
+            rootName = (ElementBinding) particleIterator.next().getTerm();
+         }
+         else
+         {
+            child = (ElementBinding) particleIterator.next().getTerm();
+            rootName = el;
+         }
+      }
+      
       // child
-      e = (ElementBinding) particle.getTerm();
-      assertEquals(new QName("ns.root", "child"), e.getQName());
-      group = (ModelGroupBinding) e.getType().getParticle().getTerm();
+      assertEquals(new QName("ns.root", "child"), child.getQName());
+      group = (ModelGroupBinding) child.getType().getParticle().getTerm();
       particles = group.getParticles();
       assertEquals(1, particles.size());
-      particle = particles.iterator().next();
+      ParticleBinding particle = particles.iterator().next();
 
       // child/name
       e = (ElementBinding) particle.getTerm();
       assertEquals(new QName("ns.root", "name"), e.getQName());
       
       // rootName
-      particle = particleIterator.next();
-      e = (ElementBinding) particle.getTerm();
-      assertEquals(new QName("ns.root", "root-name"), e.getQName());
+      assertEquals(new QName("ns.root", "root-name"), rootName.getQName());
    }
 
    public void testApplyToElementFalseApplyToTypeTrue()
@@ -212,24 +234,43 @@
       Collection<ParticleBinding> particles = group.getParticles();
       assertEquals(2, particles.size());
       Iterator<ParticleBinding> particleIterator = particles.iterator();
-      ParticleBinding particle = particleIterator.next();
+
+      ElementBinding child;
+      ElementBinding rootName;
+      if(group instanceof SequenceBinding)
+      {
+         child = (ElementBinding) particleIterator.next().getTerm();
+         rootName = (ElementBinding) particleIterator.next().getTerm();
+      }
+      else
+      {
+         ParticleBinding particle = particleIterator.next();
+         ElementBinding el = (ElementBinding) particle.getTerm();
+         if(el.getQName().equals(new QName("ns.root", "child")))
+         {
+            child = el;
+            rootName = (ElementBinding) particleIterator.next().getTerm();
+         }
+         else
+         {
+            child = (ElementBinding) particleIterator.next().getTerm();
+            rootName = el;
+         }
+      }
       
       // child
-      e = (ElementBinding) particle.getTerm();
-      assertEquals(new QName("ns.root", "child"), e.getQName());
-      group = (ModelGroupBinding) e.getType().getParticle().getTerm();
+      assertEquals(new QName("ns.root", "child"), child.getQName());
+      group = (ModelGroupBinding) child.getType().getParticle().getTerm();
       particles = group.getParticles();
       assertEquals(1, particles.size());
-      particle = particles.iterator().next();
+      ParticleBinding particle = particles.iterator().next();
 
       // child/name
       e = (ElementBinding) particle.getTerm();
       assertEquals(new QName("ns.child", "name"), e.getQName());
       
       // rootName
-      particle = particleIterator.next();
-      e = (ElementBinding) particle.getTerm();
-      assertEquals(new QName("ns.root", "root-name"), e.getQName());
+      assertEquals(new QName("ns.root", "root-name"), rootName.getQName());
    }
    
    public void testApplyToElementTrueApplyToTypeTrueGroup() throws Exception
@@ -242,8 +283,29 @@
       Collection<ParticleBinding> particles = group.getParticles();
       assertEquals(2, particles.size());
       Iterator<ParticleBinding> iterator = particles.iterator();
-      
-      group = (ModelGroupBinding) iterator.next().getTerm();
+
+      ElementBinding idElement;
+      if(group instanceof SequenceBinding)
+      {
+         group = (ModelGroupBinding) iterator.next().getTerm();
+         idElement = (ElementBinding) iterator.next().getTerm();
+      }
+      else
+      {
+         assertTrue(group instanceof UnorderedSequenceBinding);
+         TermBinding t = iterator.next().getTerm();
+         if(t.isElement())
+         {
+            idElement = (ElementBinding) t;
+            group = (ModelGroupBinding) iterator.next().getTerm();
+         }
+         else
+         {
+            group = (ModelGroupBinding) t;
+            idElement = (ElementBinding) iterator.next().getTerm();
+         }
+      }
+
       assertEquals(new QName("anotherNs", "group"), group.getQName());
       particles = group.getParticles();
       assertEquals(2, particles.size());
@@ -253,8 +315,7 @@
       e = (ElementBinding) groupIterator.next().getTerm();
       assertEquals(new QName("anotherNs", "text"), e.getQName());
       
-      e = (ElementBinding) iterator.next().getTerm();
-      assertEquals(new QName("ns", "id"), e.getQName());
+      assertEquals(new QName("ns", "id"), idElement.getQName());
    }
 
    public void testApplyToElementFalseApplyToTypeTrueGroup() throws Exception
@@ -268,7 +329,28 @@
       assertEquals(2, particles.size());
       Iterator<ParticleBinding> iterator = particles.iterator();
       
-      group = (ModelGroupBinding) iterator.next().getTerm();
+      ElementBinding idElement;
+      if(group instanceof SequenceBinding)
+      {
+         group = (ModelGroupBinding) iterator.next().getTerm();
+         idElement = (ElementBinding) iterator.next().getTerm();
+      }
+      else
+      {
+         assertTrue(group instanceof UnorderedSequenceBinding);
+         TermBinding t = iterator.next().getTerm();
+         if(t.isElement())
+         {
+            idElement = (ElementBinding) t;
+            group = (ModelGroupBinding) iterator.next().getTerm();
+         }
+         else
+         {
+            group = (ModelGroupBinding) t;
+            idElement = (ElementBinding) iterator.next().getTerm();
+         }
+      }
+
       assertEquals(new QName("ns", "group"), group.getQName());
       particles = group.getParticles();
       assertEquals(2, particles.size());
@@ -278,8 +360,7 @@
       e = (ElementBinding) groupIterator.next().getTerm();
       assertEquals(new QName("anotherNs", "text"), e.getQName());
       
-      e = (ElementBinding) iterator.next().getTerm();
-      assertEquals(new QName("ns", "id"), e.getQName());
+      assertEquals(new QName("ns", "id"), idElement.getQName());
    }
 
    public void testApplyToElementTrueApplyToTypeFalseGroup() throws Exception
@@ -293,7 +374,28 @@
       assertEquals(2, particles.size());
       Iterator<ParticleBinding> iterator = particles.iterator();
       
-      group = (ModelGroupBinding) iterator.next().getTerm();
+      ElementBinding idElement;
+      if(group instanceof SequenceBinding)
+      {
+         group = (ModelGroupBinding) iterator.next().getTerm();
+         idElement = (ElementBinding) iterator.next().getTerm();
+      }
+      else
+      {
+         assertTrue(group instanceof UnorderedSequenceBinding);
+         TermBinding t = iterator.next().getTerm();
+         if(t.isElement())
+         {
+            idElement = (ElementBinding) t;
+            group = (ModelGroupBinding) iterator.next().getTerm();
+         }
+         else
+         {
+            group = (ModelGroupBinding) t;
+            idElement = (ElementBinding) iterator.next().getTerm();
+         }
+      }
+
       assertEquals(new QName("anotherNs", "group"), group.getQName());
       particles = group.getParticles();
       assertEquals(2, particles.size());
@@ -303,8 +405,7 @@
       e = (ElementBinding) groupIterator.next().getTerm();
       assertEquals(new QName("ns", "text"), e.getQName());
       
-      e = (ElementBinding) iterator.next().getTerm();
-      assertEquals(new QName("ns", "id"), e.getQName());
+      assertEquals(new QName("ns", "id"), idElement.getQName());
    }
 
    public void testApplyToElementFalseApplyToTypeFalseGroup() throws Exception
@@ -318,7 +419,28 @@
       assertEquals(2, particles.size());
       Iterator<ParticleBinding> iterator = particles.iterator();
       
-      group = (ModelGroupBinding) iterator.next().getTerm();
+      ElementBinding idElement;
+      if(group instanceof SequenceBinding)
+      {
+         group = (ModelGroupBinding) iterator.next().getTerm();
+         idElement = (ElementBinding) iterator.next().getTerm();
+      }
+      else
+      {
+         assertTrue(group instanceof UnorderedSequenceBinding);
+         TermBinding t = iterator.next().getTerm();
+         if(t.isElement())
+         {
+            idElement = (ElementBinding) t;
+            group = (ModelGroupBinding) iterator.next().getTerm();
+         }
+         else
+         {
+            group = (ModelGroupBinding) t;
+            idElement = (ElementBinding) iterator.next().getTerm();
+         }
+      }
+
       assertEquals(new QName("ns", "group"), group.getQName());
       particles = group.getParticles();
       assertEquals(2, particles.size());
@@ -328,8 +450,7 @@
       e = (ElementBinding) groupIterator.next().getTerm();
       assertEquals(new QName("ns", "text"), e.getQName());
       
-      e = (ElementBinding) iterator.next().getTerm();
-      assertEquals(new QName("ns", "id"), e.getQName());
+      assertEquals(new QName("ns", "id"), idElement.getQName());
    }
    
    public void testGroupWithJBossXmlNsProperty() throws Exception
@@ -345,33 +466,57 @@
       assertEquals(4, particles.size());
       Iterator<ParticleBinding> iterator = particles.iterator();
       
-      e = (ElementBinding) iterator.next().getTerm();
-      assertEquals(new QName("childNs", "group-true-content-false"), e.getQName());
-      group = (ModelGroupBinding) e.getType().getParticle().getTerm();
+      ElementBinding gtcf = null;
+      ElementBinding gfcf = null;
+      ElementBinding gtct = null;
+      ElementBinding gfct = null;
+      if(group instanceof SequenceBinding)
+      {
+         gtcf = (ElementBinding) iterator.next().getTerm();
+         gfcf = (ElementBinding) iterator.next().getTerm();
+         gtct = (ElementBinding) iterator.next().getTerm();
+         gfct = (ElementBinding) iterator.next().getTerm();
+      }
+      else
+      {
+         assertTrue(group instanceof UnorderedSequenceBinding);
+         while(iterator.hasNext())
+         {
+            ElementBinding el = (ElementBinding) iterator.next().getTerm();
+            if(el.getQName().getLocalPart().equals("group-true-content-false"))
+               gtcf = el;
+            else if(el.getQName().getLocalPart().equals("group-false-content-false"))
+               gfcf = el;
+            else if(el.getQName().getLocalPart().equals("group-true-content-true"))
+               gtct = el;
+            else if(el.getQName().getLocalPart().equals("group-false-content-true"))
+               gfct = el;
+         }
+      }
+      
+      assertEquals(new QName("childNs", "group-true-content-false"), gtcf.getQName());
+      group = (ModelGroupBinding) gtcf.getType().getParticle().getTerm();
       particles = group.getParticles();
       assertEquals(1, particles.size());
       e = (ElementBinding) particles.iterator().next().getTerm();
       assertEquals(new QName("ns", "name"), e.getQName());
       
-      e = (ElementBinding) iterator.next().getTerm();
-      assertEquals(new QName("ns", "group-false-content-false"), e.getQName());
-      group = (ModelGroupBinding) e.getType().getParticle().getTerm();
+      assertEquals(new QName("ns", "group-false-content-false"), gfcf.getQName());
+      group = (ModelGroupBinding) gfcf.getType().getParticle().getTerm();
       particles = group.getParticles();
       assertEquals(1, particles.size());
       e = (ElementBinding) particles.iterator().next().getTerm();
       assertEquals(new QName("ns", "name"), e.getQName());
       
-      e = (ElementBinding) iterator.next().getTerm();
-      assertEquals(new QName("childNs", "group-true-content-true"), e.getQName());
-      group = (ModelGroupBinding) e.getType().getParticle().getTerm();
+      assertEquals(new QName("childNs", "group-true-content-true"), gtct.getQName());
+      group = (ModelGroupBinding) gtct.getType().getParticle().getTerm();
       particles = group.getParticles();
       assertEquals(1, particles.size());
       e = (ElementBinding) particles.iterator().next().getTerm();
       assertEquals(new QName("childNs", "name"), e.getQName());
 
-      e = (ElementBinding) iterator.next().getTerm();
-      assertEquals(new QName("ns", "group-false-content-true"), e.getQName());
-      group = (ModelGroupBinding) e.getType().getParticle().getTerm();
+      assertEquals(new QName("ns", "group-false-content-true"), gfct.getQName());
+      group = (ModelGroupBinding) gfct.getType().getParticle().getTerm();
       particles = group.getParticles();
       assertEquals(1, particles.size());
       e = (ElementBinding) particles.iterator().next().getTerm();

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/AlphaUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/AlphaUnitTestCase.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/AlphaUnitTestCase.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -33,11 +33,13 @@
 import org.jboss.test.xb.builder.AbstractBuilderTest;
 import org.jboss.test.xb.builder.object.type.accessor.support.Alpha;
 import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnorderedSequenceBinding;
 import org.jboss.xb.builder.JBossXBBuilder;
 
 /**
@@ -79,8 +81,8 @@
       assertNotNull(particle);
       TermBinding term = particle.getTerm();
       assertNotNull(term);
-      assertTrue(term instanceof SequenceBinding);
-      SequenceBinding sequence = (SequenceBinding) term;
+      assertTrue(term instanceof SequenceBinding || term instanceof UnorderedSequenceBinding);
+      ModelGroupBinding sequence = (ModelGroupBinding) term;
       List<QName> elements = new ArrayList<QName>();
       Collection<ParticleBinding> particles = sequence.getParticles();
       for (ParticleBinding p : particles)
@@ -93,6 +95,14 @@
       expected.add(new QName(XMLConstants.NULL_NS_URI, "one"));
       expected.add(new QName(XMLConstants.NULL_NS_URI, "three"));
       expected.add(new QName(XMLConstants.NULL_NS_URI, "two"));
-      assertEquals(expected, elements);
+      
+      if(sequence instanceof SequenceBinding)
+         assertEquals(expected, elements);
+      else
+      {
+         assertTrue(sequence instanceof UnorderedSequenceBinding);
+         assertEquals(expected.size(), elements.size());
+         assertTrue(expected.containsAll(elements));
+      }
    }
 }

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/SequenceUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/SequenceUnitTestCase.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/accessor/test/SequenceUnitTestCase.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -33,11 +33,13 @@
 import org.jboss.test.xb.builder.AbstractBuilderTest;
 import org.jboss.test.xb.builder.object.type.accessor.support.Sequence;
 import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnorderedSequenceBinding;
 import org.jboss.xb.builder.JBossXBBuilder;
 
 /**
@@ -79,8 +81,8 @@
       assertNotNull(particle);
       TermBinding term = particle.getTerm();
       assertNotNull(term);
-      assertTrue(term instanceof SequenceBinding);
-      SequenceBinding sequence = (SequenceBinding) term;
+      assertTrue(term instanceof SequenceBinding || term instanceof UnorderedSequenceBinding);
+      ModelGroupBinding sequence = (ModelGroupBinding) term;
       List<QName> elements = new ArrayList<QName>();
       Collection<ParticleBinding> particles = sequence.getParticles();
       for (ParticleBinding p : particles)
@@ -93,6 +95,13 @@
       expected.add(new QName(XMLConstants.NULL_NS_URI, "three"));
       expected.add(new QName(XMLConstants.NULL_NS_URI, "two"));
       expected.add(new QName(XMLConstants.NULL_NS_URI, "one"));
-      assertEquals(expected, elements);
+      
+      if(sequence instanceof SequenceBinding)
+         assertEquals(expected, elements);
+      else
+      {
+         assertEquals(expected.size(), elements.size());
+         assertTrue(expected.containsAll(elements));
+      }
    }
 }

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroupUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroupUnitTestCase.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroupUnitTestCase.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -53,11 +53,13 @@
 import org.jboss.xb.binding.sunday.unmarshalling.AllBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.ChoiceBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnorderedSequenceBinding;
 import org.jboss.xb.builder.JBossXBBuilder;
 
 /**
@@ -271,21 +273,43 @@
       ElementBinding e = schema.getElement(new QName("root"));
       assertNotNull(e);
       TermBinding t = e.getType().getParticle().getTerm();
-      assertTrue(t instanceof SequenceBinding);
-      SequenceBinding s = (SequenceBinding) t;
+      assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+      ModelGroupBinding s = (ModelGroupBinding) t;
       assertParticleChoiceBinding(s);
    }
 
-   private void assertParticleChoiceBinding(SequenceBinding s)
+   private void assertParticleChoiceBinding(ModelGroupBinding s)
    {
       Collection<ParticleBinding> particles = s.getParticles();
       assertEquals(2, particles.size());
       Iterator<ParticleBinding> i = particles.iterator();
-      ParticleBinding p = i.next();
-      TermBinding t = p.getTerm();
+      
+      ParticleBinding choiceParticle;
+      ParticleBinding elementParticle;
+      if(s instanceof SequenceBinding)
+      {
+         choiceParticle = i.next();
+         elementParticle = i.next();
+      }
+      else
+      {
+         ParticleBinding p = i.next();
+         if(p.getTerm().isModelGroup())
+         {
+            choiceParticle = p;
+            elementParticle = i.next();
+         }
+         else
+         {
+            elementParticle = p;
+            choiceParticle = i.next();
+         }
+      }
+      
+      TermBinding t = choiceParticle.getTerm();
       assertTrue(t instanceof ChoiceBinding);
-      assertEquals(1, p.getMaxOccurs());
-      assertFalse(p.getMaxOccursUnbounded());
+      assertEquals(1, choiceParticle.getMaxOccurs());
+      assertFalse(choiceParticle.getMaxOccursUnbounded());
       
       ChoiceBinding c = (ChoiceBinding) t;
       particles = c.getParticles();
@@ -298,7 +322,7 @@
       assertTrue(t.isElement());
       assertEquals(new QName("b"), ((ElementBinding)t).getQName());
       
-      t = i.next().getTerm();
+      t = elementParticle.getTerm();
       assertTrue(t.isElement());
       assertEquals(new QName("e"), ((ElementBinding)t).getQName());
    }
@@ -311,8 +335,8 @@
       TypeBinding type = e.getType();
       TermBinding t = type.getParticle().getTerm();
       assertNull(type.getSimpleType());
-      assertTrue(t instanceof SequenceBinding);
-      SequenceBinding s = (SequenceBinding) t;
+      assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+      ModelGroupBinding s = (ModelGroupBinding) t;
       Collection<ParticleBinding> particles = s.getParticles();
       assertEquals(1, particles.size());
       ParticleBinding p = particles.iterator().next();
@@ -329,23 +353,44 @@
       assertNotNull(type.getSimpleType());
       
       t = type.getParticle().getTerm();
-      assertTrue(t instanceof SequenceBinding);
-      particles = ((SequenceBinding)t).getParticles();
+      assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+      particles = ((ModelGroupBinding)t).getParticles();
       assertEquals(2, particles.size());
       Iterator<ParticleBinding> i = particles.iterator();
-      p = i.next();
-      t = p.getTerm();
+      
+      ParticleBinding choiceParticle;
+      ParticleBinding elementParticle;
+      if(t instanceof SequenceBinding)
+      {
+         elementParticle = i.next();
+         choiceParticle = i.next();
+      }
+      else
+      {
+         p = i.next();
+         if (p.getTerm().isElement())
+         {
+            elementParticle = p;
+            choiceParticle = i.next();
+         }
+         else
+         {
+            choiceParticle = p;
+            elementParticle = i.next();
+         }
+      }
+
+      t = elementParticle.getTerm();
       assertTrue(t.isElement());
-      assertEquals(0, p.getMinOccurs());
-      assertEquals(1, p.getMaxOccurs());
-      assertFalse(p.getMaxOccursUnbounded());
+      assertEquals(0, elementParticle.getMinOccurs());
+      assertEquals(1, elementParticle.getMaxOccurs());
+      assertFalse(elementParticle.getMaxOccursUnbounded());
       assertEquals(new QName("e"), ((ElementBinding)t).getQName());
       
-      p = i.next();
-      t = p.getTerm();
+      t = choiceParticle.getTerm();
       assertTrue(t instanceof ChoiceBinding);
-      assertEquals(1, p.getMaxOccurs());
-      assertTrue(p.getMaxOccursUnbounded());
+      assertEquals(1, choiceParticle.getMaxOccurs());
+      assertTrue(choiceParticle.getMaxOccursUnbounded());
       
       ChoiceBinding c = (ChoiceBinding) t;
       particles = c.getParticles();
@@ -365,16 +410,39 @@
       ElementBinding e = schema.getElement(new QName("root"));
       assertNotNull(e);
       TermBinding t = e.getType().getParticle().getTerm();
-      assertTrue(t instanceof SequenceBinding);
-      SequenceBinding s = (SequenceBinding) t;
+      assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+      ModelGroupBinding s = (ModelGroupBinding) t;
       Collection<ParticleBinding> particles = s.getParticles();
       assertEquals(2, particles.size());
       Iterator<ParticleBinding> i = particles.iterator();
-      ParticleBinding p = i.next();
-      t = p.getTerm();
+      
+
+      ParticleBinding choiceParticle;
+      ParticleBinding elementParticle;
+      if(t instanceof SequenceBinding)
+      {
+         choiceParticle = i.next();
+         elementParticle = i.next();
+      }
+      else
+      {
+         ParticleBinding p = i.next();
+         if (p.getTerm().isElement())
+         {
+            elementParticle = p;
+            choiceParticle = i.next();
+         }
+         else
+         {
+            choiceParticle = p;
+            elementParticle = i.next();
+         }
+      }
+      
+      t = choiceParticle.getTerm();
       assertTrue(t instanceof ChoiceBinding);
-      assertEquals(1, p.getMaxOccurs());
-      assertTrue(p.getMaxOccursUnbounded());
+      assertEquals(1, choiceParticle.getMaxOccurs());
+      assertTrue(choiceParticle.getMaxOccursUnbounded());
       
       ChoiceBinding c = (ChoiceBinding) t;
       particles = c.getParticles();
@@ -387,7 +455,7 @@
       assertTrue(t.isElement());
       assertEquals(new QName("b"), ((ElementBinding)t).getQName());
       
-      t = i.next().getTerm();
+      t = elementParticle.getTerm();
       assertTrue(t.isElement());
       assertEquals(new QName("e"), ((ElementBinding)t).getQName());
    }
@@ -398,29 +466,50 @@
       ElementBinding e = schema.getElement(new QName("main-root"));
       assertNotNull(e);
       TermBinding t = e.getType().getParticle().getTerm();
-      assertTrue(t instanceof SequenceBinding);
-      Collection<ParticleBinding> particles = ((SequenceBinding)t).getParticles();
+      assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+      Collection<ParticleBinding> particles = ((ModelGroupBinding)t).getParticles();
       assertEquals(2, particles.size());
       Iterator<ParticleBinding> i = particles.iterator();
-      ParticleBinding p = i.next();
-      t = p.getTerm();
+      
+      ParticleBinding group1Particle;
+      ParticleBinding group2Particle;
+      if(t instanceof SequenceBinding)
+      {
+         group1Particle = i.next();
+         group2Particle = i.next();
+      }
+      else
+      {
+         ParticleBinding p = i.next();
+         if(((ElementBinding)p.getTerm()).getQName().equals(new QName("group1")))
+         {
+            group1Particle = p;
+            group2Particle = i.next();
+         }
+         else
+         {
+            group2Particle = p;
+            group1Particle = i.next();
+         }
+      }
+      
+      t = group1Particle.getTerm();
       assertTrue(t.isElement());
-      assertEquals(0, p.getMinOccurs());
-      assertEquals(1, p.getMaxOccurs());
-      assertFalse(p.getMaxOccursUnbounded());
-      e = (ElementBinding) t;
-      assertEquals(new QName("group1"), e.getQName());
-      assertPropertiesSequenceBinding((SequenceBinding)e.getType().getParticle().getTerm(), false);
+      assertEquals(0, group1Particle.getMinOccurs());
+      assertEquals(1, group1Particle.getMaxOccurs());
+      assertFalse(group1Particle.getMaxOccursUnbounded());
+      ElementBinding e1 = (ElementBinding) t;
+      assertEquals(new QName("group1"), e1.getQName());
+      assertPropertiesSequenceBinding((ModelGroupBinding)e1.getType().getParticle().getTerm(), false);
       
-      p = i.next();
-      t = p.getTerm();
+      t = group2Particle.getTerm();
       assertTrue(t.isElement());
-      assertEquals(0, p.getMinOccurs());
-      assertEquals(1, p.getMaxOccurs());
-      assertFalse(p.getMaxOccursUnbounded());
-      e = (ElementBinding) t;
-      assertEquals(new QName("group2"), e.getQName());
-      assertPropertiesSequenceBinding((SequenceBinding)e.getType().getParticle().getTerm(), false);
+      assertEquals(0, group2Particle.getMinOccurs());
+      assertEquals(1, group2Particle.getMaxOccurs());
+      assertFalse(group2Particle.getMaxOccursUnbounded());
+      e1 = (ElementBinding) t;
+      assertEquals(new QName("group2"), e1.getQName());
+      assertPropertiesSequenceBinding((ModelGroupBinding)e1.getType().getParticle().getTerm(), false);
    }
 
    public void testRootWithTwoParticleGroupsBinding() throws Exception
@@ -429,29 +518,51 @@
       ElementBinding e = schema.getElement(new QName("main-root"));
       assertNotNull(e);
       TermBinding t = e.getType().getParticle().getTerm();
-      assertTrue(t instanceof SequenceBinding);
-      Collection<ParticleBinding> particles = ((SequenceBinding)t).getParticles();
+
+      assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+      Collection<ParticleBinding> particles = ((ModelGroupBinding)t).getParticles();
       assertEquals(2, particles.size());
       Iterator<ParticleBinding> i = particles.iterator();
-      ParticleBinding p = i.next();
-      t = p.getTerm();
+      
+      ParticleBinding group1Particle;
+      ParticleBinding group2Particle;
+      if(t instanceof SequenceBinding)
+      {
+         group1Particle = i.next();
+         group2Particle = i.next();
+      }
+      else
+      {
+         ParticleBinding p = i.next();
+         if(((ElementBinding)p.getTerm()).getQName().equals(new QName("group1")))
+         {
+            group1Particle = p;
+            group2Particle = i.next();
+         }
+         else
+         {
+            group2Particle = p;
+            group1Particle = i.next();
+         }
+      }
+      
+      t = group1Particle.getTerm();
       assertTrue(t.isElement());
-      assertEquals(0, p.getMinOccurs());
-      assertEquals(1, p.getMaxOccurs());
-      assertFalse(p.getMaxOccursUnbounded());
+      assertEquals(0, group1Particle.getMinOccurs());
+      assertEquals(1, group1Particle.getMaxOccurs());
+      assertFalse(group1Particle.getMaxOccursUnbounded());
       e = (ElementBinding) t;
       assertEquals(new QName("group1"), e.getQName());
-      assertParticleChoiceBinding((SequenceBinding) e.getType().getParticle().getTerm());
+      assertParticleChoiceBinding((ModelGroupBinding) e.getType().getParticle().getTerm());
       
-      p = i.next();
-      t = p.getTerm();
+      t = group2Particle.getTerm();
       assertTrue(t.isElement());
-      assertEquals(0, p.getMinOccurs());
-      assertEquals(1, p.getMaxOccurs());
-      assertFalse(p.getMaxOccursUnbounded());
+      assertEquals(0, group2Particle.getMinOccurs());
+      assertEquals(1, group2Particle.getMaxOccurs());
+      assertFalse(group2Particle.getMaxOccursUnbounded());
       e = (ElementBinding) t;
       assertEquals(new QName("group2"), e.getQName());
-      assertParticleChoiceBinding((SequenceBinding) e.getType().getParticle().getTerm());
+      assertParticleChoiceBinding((ModelGroupBinding) e.getType().getParticle().getTerm());
    }
 
    private void assertPropertiesSequenceBinding(Class<?> root, boolean inCollection)
@@ -460,34 +571,20 @@
       ElementBinding e = schema.getElement(new QName("root"));
       assertNotNull(e);
       TermBinding t = e.getType().getParticle().getTerm();
-      assertTrue(t instanceof SequenceBinding);
-      SequenceBinding s = (SequenceBinding) t;
+      assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+      ModelGroupBinding s = (ModelGroupBinding) t;
       assertPropertiesSequenceBinding(s, inCollection);
    }
 
-   private void assertPropertiesSequenceBinding(SequenceBinding s, boolean inCollection)
+   private void assertPropertiesSequenceBinding(ModelGroupBinding s, boolean inCollection)
    {
       Collection<ParticleBinding> particles = s.getParticles();
       assertEquals(1, particles.size());
       ParticleBinding p = particles.iterator().next();
-      TermBinding t = p.getTerm();
-      assertTrue(t instanceof SequenceBinding);
-      //assertEquals(0, p.getMinOccurs());
-      assertEquals(1, p.getMaxOccurs());
-      assertEquals(inCollection, p.getMaxOccursUnbounded());
-      s = (SequenceBinding) t;
-      particles = s.getParticles();
-      assertEquals(3, particles.size());
-      Iterator<ParticleBinding> i = particles.iterator();
-      t = i.next().getTerm();
-      assertTrue(t.isElement());
-      assertEquals(new QName("c"), ((ElementBinding)t).getQName());
-      t = i.next().getTerm();
-      assertTrue(t.isElement());
-      assertEquals(new QName("b"), ((ElementBinding)t).getQName());
-      t = i.next().getTerm();
-      assertTrue(t.isElement());
-      assertEquals(new QName("a"), ((ElementBinding)t).getQName());
+      if(p.getTerm() instanceof SequenceBinding)
+         assertABCGroupParticle(p, true, inCollection);
+      else
+         assertABCGroupParticle(p, false, inCollection);
    }
 
    private void assertPropertiesChoiceBinding(Class<?> root, boolean inCollection)
@@ -496,8 +593,8 @@
       ElementBinding e = schema.getElement(new QName("root"));
       assertNotNull(e);
       TermBinding t = e.getType().getParticle().getTerm();
-      assertTrue(t instanceof SequenceBinding);
-      SequenceBinding s = (SequenceBinding) t;
+      assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+      ModelGroupBinding s = (ModelGroupBinding) t;
       Collection<ParticleBinding> particles = s.getParticles();
       assertEquals(1, particles.size());
       ParticleBinding p = particles.iterator().next();
@@ -529,39 +626,78 @@
       ElementBinding e = schema.getElement(new QName("root"));
       assertNotNull(e);
       TermBinding t = e.getType().getParticle().getTerm();
-      assertTrue(t instanceof SequenceBinding);
-      SequenceBinding s = (SequenceBinding) t;
+      assertTrue(t instanceof SequenceBinding || t instanceof UnorderedSequenceBinding);
+      ModelGroupBinding s = (ModelGroupBinding) t;
+
       Collection<ParticleBinding> particles = s.getParticles();
       assertEquals(2, particles.size());
       Iterator<ParticleBinding> i = particles.iterator();
-      ParticleBinding p = i.next();
-      t = p.getTerm();
-      assertTrue(t instanceof AllBinding);
-      //assertEquals(0, p.getMinOccurs());
+
+      ParticleBinding groupParticle = null;
+      ParticleBinding elementParticle = null;
+      if(s instanceof SequenceBinding)
+      {
+         groupParticle = i.next();
+         elementParticle = i.next();
+      }
+      else
+      {
+         groupParticle = i.next();
+         if(groupParticle.getTerm().isElement())
+         {
+            elementParticle = groupParticle;
+            groupParticle = i.next();
+         }
+         else
+            elementParticle = i.next();
+      }
+
+      assertTrue(groupParticle.getTerm() instanceof AllBinding);
+      assertABCGroupParticle(groupParticle, false, inCollection);
+      
+      t = elementParticle.getTerm();
+      assertTrue(t.isElement());
+      assertEquals(0, elementParticle.getMinOccurs());
+      assertEquals(1, elementParticle.getMaxOccurs());
+      assertFalse(elementParticle.getMaxOccursUnbounded());
+      assertEquals(new QName("prop"), ((ElementBinding)t).getQName());
+   }
+
+   private void assertABCGroupParticle(ParticleBinding p, boolean ordered, boolean inCollection)
+   {
+      Collection<ParticleBinding> particles;
       assertEquals(1, p.getMaxOccurs());
       assertEquals(inCollection, p.getMaxOccursUnbounded());
-      AllBinding a = (AllBinding) t;
-      particles = a.getParticles();
+      ModelGroupBinding group = (ModelGroupBinding) p.getTerm();
+      particles = group.getParticles();
       assertEquals(3, particles.size());
-      
-      Set<QName> set = new HashSet<QName>();
-      set.add(new QName("c"));
-      set.add(new QName("b"));
-      set.add(new QName("a"));
 
-      for(ParticleBinding cp : particles)
+      if (ordered)
       {
-         t = cp.getTerm();
+         Iterator<ParticleBinding> i = particles.iterator();
+         TermBinding t = i.next().getTerm();
          assertTrue(t.isElement());
-         assertTrue(set.contains(((ElementBinding) t).getQName()));
+         assertEquals(new QName("c"), ((ElementBinding) t).getQName());
+         t = i.next().getTerm();
+         assertTrue(t.isElement());
+         assertEquals(new QName("b"), ((ElementBinding) t).getQName());
+         t = i.next().getTerm();
+         assertTrue(t.isElement());
+         assertEquals(new QName("a"), ((ElementBinding) t).getQName());
       }
-      
-      p = i.next();
-      t = p.getTerm();
-      assertTrue(t.isElement());
-      assertEquals(0, p.getMinOccurs());
-      assertEquals(1, p.getMaxOccurs());
-      assertFalse(p.getMaxOccursUnbounded());
-      assertEquals(new QName("prop"), ((ElementBinding)t).getQName());
+      else
+      {
+         Set<QName> set = new HashSet<QName>();
+         set.add(new QName("c"));
+         set.add(new QName("b"));
+         set.add(new QName("a"));
+
+         for (ParticleBinding cp : particles)
+         {
+            TermBinding t = cp.getTerm();
+            assertTrue(t.isElement());
+            assertTrue(set.contains(((ElementBinding) t).getQName()));
+         }
+      }
    }
 }

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmltype/test/JBossXmlTypeUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmltype/test/JBossXmlTypeUnitTestCase.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmltype/test/JBossXmlTypeUnitTestCase.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -57,6 +57,21 @@
       super(name);
    }
 
+   private boolean defaultSequence;
+   
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+      defaultSequence = JBossXBBuilder.isUseUnorderedSequence();
+      JBossXBBuilder.setUseUnorderedSequence(false);
+   }
+   
+   protected void tearDown() throws Exception 
+   {
+      super.tearDown();
+      JBossXBBuilder.setUseUnorderedSequence(defaultSequence);
+   }
+   
    public void testModelGroupWithDefaults() throws Exception
    {
       ModelGroupBinding group = getTypeModelGroup(RootWithDefaults.class);

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayElementWildcardUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayElementWildcardUnitTestCase.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ArrayElementWildcardUnitTestCase.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -84,7 +84,6 @@
       assertNotNull(particle);
       TermBinding term = particle.getTerm();
       assertNotNull(term);
-      assertTrue(term instanceof SequenceBinding);
       term = assertSingleSequence(term);
       assertTrue(term instanceof ArraySequenceBinding);
       term = assertSingleSequence(term);

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementBeforePrimitiveUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementBeforePrimitiveUnitTestCase.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementBeforePrimitiveUnitTestCase.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -32,11 +32,13 @@
 import org.jboss.test.xb.builder.AbstractBuilderTest;
 import org.jboss.test.xb.builder.object.type.xmlanyelement.support.ElementBeforePrimitive;
 import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnorderedSequenceBinding;
 import org.jboss.xb.builder.JBossXBBuilder;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
@@ -88,27 +90,47 @@
       assertNotNull(particle);
       TermBinding term = particle.getTerm();
       assertNotNull(term);
-      assertTrue(term instanceof SequenceBinding);
+      assertTrue(term instanceof SequenceBinding || term instanceof UnorderedSequenceBinding);
             
-      Collection<ParticleBinding> particles = ((SequenceBinding)term).getParticles();
+      Collection<ParticleBinding> particles = ((ModelGroupBinding)term).getParticles();
       assertEquals(2, particles.size());
 
+      ParticleBinding domParticle;
+      ParticleBinding textParticle;
       Iterator<ParticleBinding> i = particles.iterator();
-      particle = i.next();
-      term = particle.getTerm();
+      if(term instanceof SequenceBinding)
+      {
+         domParticle = i.next();
+         textParticle = i.next();
+      }
+      else
+      {
+         particle = i.next();
+         if (((ElementBinding) particle.getTerm()).getQName().equals(new QName("dom")))
+         {
+            domParticle = particle;
+            textParticle = i.next();
+         }
+         else
+         {
+            textParticle = particle;
+            domParticle = i.next();
+         }
+      }
+
+      term = domParticle.getTerm();
       assertTrue(term.isElement());
-      assertEquals(0, particle.getMinOccurs());
-      assertEquals(1, particle.getMaxOccurs());
-      assertFalse(particle.getMaxOccursUnbounded());
+      assertEquals(0, domParticle.getMinOccurs());
+      assertEquals(1, domParticle.getMaxOccurs());
+      assertFalse(domParticle.getMaxOccursUnbounded());
       element = (ElementBinding) term;
       assertEquals(new QName("dom"), element.getQName());
 
-      particle = i.next();
-      term = particle.getTerm();
+      term = textParticle.getTerm();
       assertTrue(term.isElement());
-      assertEquals(0, particle.getMinOccurs());
-      assertEquals(1, particle.getMaxOccurs());
-      assertFalse(particle.getMaxOccursUnbounded());
+      assertEquals(0, textParticle.getMinOccurs());
+      assertEquals(1, textParticle.getMaxOccurs());
+      assertFalse(textParticle.getMaxOccursUnbounded());
       element = (ElementBinding) term;
       assertEquals(new QName("text"), element.getQName());
    }

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementPropertiesAndWildcardUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementPropertiesAndWildcardUnitTestCase.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementPropertiesAndWildcardUnitTestCase.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -32,12 +32,14 @@
 import org.jboss.test.xb.builder.AbstractBuilderTest;
 import org.jboss.test.xb.builder.object.type.xmlanyelement.support.ElementPropertiesAndWildcard;
 import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.ParticleHandler;
 import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnorderedSequenceBinding;
 import org.jboss.xb.binding.sunday.unmarshalling.WildcardBinding;
 import org.jboss.xb.builder.JBossXBBuilder;
 import org.jboss.xb.builder.runtime.DOMHandler;
@@ -109,41 +111,64 @@
       assertNotNull(particle);
       TermBinding term = particle.getTerm();
       assertNotNull(term);
-      assertTrue(term instanceof SequenceBinding);
+      assertTrue(term instanceof SequenceBinding || term instanceof UnorderedSequenceBinding);
       
       
-      Collection<ParticleBinding> particles = ((SequenceBinding)term).getParticles();
+      Collection<ParticleBinding> particles = ((ModelGroupBinding)term).getParticles();
       assertEquals(3, particles.size());
       
       Iterator<ParticleBinding> i = particles.iterator();
-      particle = i.next();
-      term = particle.getTerm();
-      assertTrue(particle.getTerm().isElement());
-      assertEquals(0, particle.getMinOccurs());
-      assertEquals(1, particle.getMaxOccurs());
-      assertFalse(particle.getMaxOccursUnbounded());
-      element = (ElementBinding) term;
+      
+      ParticleBinding e1p = null;
+      ParticleBinding e2p = null;
+      ParticleBinding wp = null;
+      if(term instanceof SequenceBinding)
+      {
+         e1p = i.next();
+         e2p = i.next();
+         wp = i.next();
+      }
+      else
+      {
+         while(i.hasNext())
+         {
+            particle = i.next();
+            term = particle.getTerm();
+            if(term.isElement())
+            {
+               if("e1".equals(((ElementBinding)term).getQName().getLocalPart()))
+                  e1p = particle;
+               else
+                  e2p = particle;
+            }
+            else
+               wp = particle;
+         }
+      }
+      
+      assertTrue(e1p.getTerm().isElement());
+      assertEquals(0, e1p.getMinOccurs());
+      assertEquals(1, e1p.getMaxOccurs());
+      assertFalse(e1p.getMaxOccursUnbounded());
+      element = (ElementBinding) e1p.getTerm();
       assertEquals(new QName("e1"), element.getQName());
-      particles = ((SequenceBinding)element.getType().getParticle().getTerm()).getParticles();
+      particles = ((ModelGroupBinding)element.getType().getParticle().getTerm()).getParticles();
       assertEquals(1, particles.size());
       particle = particles.iterator().next();
       assertWildcardTerm(element.getType(), particle, (short) 2);
 
-      particle = i.next();
-      term = particle.getTerm();
-      assertTrue(particle.getTerm().isElement());
-      assertEquals(0, particle.getMinOccurs());
-      assertEquals(1, particle.getMaxOccurs());
-      assertFalse(particle.getMaxOccursUnbounded());
-      element = (ElementBinding) term;
+      assertTrue(e2p.getTerm().isElement());
+      assertEquals(0, e2p.getMinOccurs());
+      assertEquals(1, e2p.getMaxOccurs());
+      assertFalse(e2p.getMaxOccursUnbounded());
+      element = (ElementBinding) e2p.getTerm();
       assertEquals(new QName("e2"), element.getQName());
-      particles = ((SequenceBinding)element.getType().getParticle().getTerm()).getParticles();
+      particles = ((ModelGroupBinding)element.getType().getParticle().getTerm()).getParticles();
       assertEquals(1, particles.size());
       particle = particles.iterator().next();
       assertWildcardTerm(element.getType(), particle, (short) 2);
 
-      particle = i.next();
-      assertWildcardTerm(type, particle, (short) 3);
+      assertWildcardTerm(type, wp, (short) 3);
       WildcardBinding wildcardBinding = type.getWildcard();
       ParticleHandler particleHandler = wildcardBinding.getWildcardHandler();
       assertNotNull(particleHandler);

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardUnitTestCase.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ElementWildcardUnitTestCase.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -81,7 +81,6 @@
       assertNotNull(particle);
       TermBinding term = particle.getTerm();
       assertNotNull(term);
-      assertTrue(term instanceof SequenceBinding);
       term = assertSingleSequence(term);
       assertTrue(term instanceof WildcardBinding);
       WildcardBinding wildcardBinding = type.getWildcard();

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ListElementWildcardUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ListElementWildcardUnitTestCase.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/ListElementWildcardUnitTestCase.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -85,7 +85,6 @@
       assertNotNull(particle);
       TermBinding term = particle.getTerm();
       assertNotNull(term);
-      assertTrue(term instanceof SequenceBinding);
       term = assertSingleSequence(term);
       assertTrue(term instanceof SequenceBinding);
       term = assertSingleSequence(term);

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/NotAnnotatedElementWildcardUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/NotAnnotatedElementWildcardUnitTestCase.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/NotAnnotatedElementWildcardUnitTestCase.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -87,7 +87,6 @@
       assertNotNull(particle);
       TermBinding term = particle.getTerm();
       assertNotNull(term);
-      assertTrue(term instanceof SequenceBinding);
       term = assertSingleSequence(term);
       
       assertTrue(term.isElement());

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/SimpleObjectWildcardUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/SimpleObjectWildcardUnitTestCase.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/xmlanyelement/test/SimpleObjectWildcardUnitTestCase.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -80,7 +80,6 @@
       assertNotNull(particle);
       TermBinding term = particle.getTerm();
       assertNotNull(term);
-      assertTrue(term instanceof SequenceBinding);
       term = assertSingleSequence(term);
       assertTrue(term instanceof WildcardBinding);
       WildcardBinding wildcardBinding = type.getWildcard();

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xml/elementorder/test/ElementOrderUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xml/elementorder/test/ElementOrderUnitTestCase.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xml/elementorder/test/ElementOrderUnitTestCase.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -29,6 +29,7 @@
 import org.jboss.test.xml.elementorder.support.ElementOrderRoot;
 import org.jboss.xb.binding.JBossXBException;
 import org.jboss.xb.binding.JBossXBRuntimeException;
+import org.jboss.xb.builder.JBossXBBuilder;
 
 /**
  * A ElementOrderUnitTestCase.
@@ -43,6 +44,21 @@
       super(name);
    }
 
+   private boolean defaultSequence;
+   
+   protected void setUp() throws Exception
+   {
+      super.setUp();
+      defaultSequence = JBossXBBuilder.isUseUnorderedSequence();
+      JBossXBBuilder.setUseUnorderedSequence(false);
+   }
+   
+   protected void tearDown() throws Exception 
+   {
+      super.tearDown();
+      JBossXBBuilder.setUseUnorderedSequence(defaultSequence);
+   }
+
    public void testValidOneTwoOrder() throws Exception
    {
       ElementOrderRoot o = (ElementOrderRoot) unmarshalObject(ElementOrderRoot.class);

Modified: jbossxb/trunk/src/test/java/org/jboss/test/xml/unorderedsequence/test/UnorderedSequenceAnnotationUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xml/unorderedsequence/test/UnorderedSequenceAnnotationUnitTestCase.java	2009-03-04 15:58:48 UTC (rev 3006)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xml/unorderedsequence/test/UnorderedSequenceAnnotationUnitTestCase.java	2009-03-04 15:59:18 UTC (rev 3007)
@@ -53,23 +53,32 @@
 
    public void testBinding() throws Exception
    {
-      SchemaBinding schema = JBossXBBuilder.build(Root.class);
-      ElementBinding e = schema.getElement(new QName("root"));
-      assertNotNull(e);
-      TermBinding t = e.getType().getParticle().getTerm();
-      assertTrue(t instanceof SequenceBinding);
-      Collection<ParticleBinding> particles = ((SequenceBinding)t).getParticles();
-      assertEquals(3, particles.size());
-      Iterator<ParticleBinding> i = particles.iterator();
-      
-      t = i.next().getTerm();
-      assertTrue(t instanceof SequenceBinding);
-      
-      t = i.next().getTerm();
-      assertTrue(t instanceof SequenceBinding);
+      boolean defaultSequence = JBossXBBuilder.isUseUnorderedSequence();
+      JBossXBBuilder.setUseUnorderedSequence(false);
+      try
+      {
+         SchemaBinding schema = JBossXBBuilder.build(Root.class);
+         ElementBinding e = schema.getElement(new QName("root"));
+         assertNotNull(e);
+         TermBinding t = e.getType().getParticle().getTerm();
+         assertTrue(t instanceof SequenceBinding);
+         Collection<ParticleBinding> particles = ((SequenceBinding) t).getParticles();
+         assertEquals(3, particles.size());
+         Iterator<ParticleBinding> i = particles.iterator();
 
-      t = i.next().getTerm();
-      assertTrue(t instanceof UnorderedSequenceBinding);
+         t = i.next().getTerm();
+         assertTrue(t instanceof SequenceBinding);
+
+         t = i.next().getTerm();
+         assertTrue(t instanceof SequenceBinding);
+
+         t = i.next().getTerm();
+         assertTrue(t instanceof UnorderedSequenceBinding);
+      }
+      finally
+      {
+         JBossXBBuilder.setUseUnorderedSequence(defaultSequence);
+      }
    }
    
    public static class BaseGroup




More information about the jboss-svn-commits mailing list