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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Feb 13 10:34:03 EST 2009


Author: alex.loubyansky at jboss.com
Date: 2009-02-13 10:34:03 -0500 (Fri, 13 Feb 2009)
New Revision: 2979

Added:
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/AbstractChoice.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/ChoiceA.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/ChoiceB.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/PropertiesAll.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/PropertiesChoice.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/PropertiesSequence.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithParticlesChoice.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithParticlesChoiceCollection.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesAll.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesAllCollection.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesChoice.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesChoiceCollection.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesSequence.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesSequenceCollection.java
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/
   jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroupUnitTestCase.java
   jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/
   jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/
   jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testParticlesChoiceCollectionUnmarshalling.xml
   jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testParticlesChoiceUnmarshalling.xml
   jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesAllCollectionUnmarshalling.xml
   jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesAllUnmarshalling.xml
   jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesChoiceCollectionUnmarshalling.xml
   jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesChoiceUnmarshalling.xml
   jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesSequenceCollectionUnmarshalling.xml
   jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesSequenceUnmarshalling.xml
Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
Log:
JBXB-180

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java	2009-02-12 10:42:36 UTC (rev 2978)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -756,7 +756,7 @@
     * @return the type binding
     */
    public TypeBinding generateType(ClassInfo typeInfo, boolean root)
-   {
+   {      
       // Determine the parameters
       String overrideNamespace = null;
       String overrideName = null;
@@ -1051,71 +1051,14 @@
       {
          typeParticle.setMinOccurs(0);
          typeParticle.setMaxOccursUnbounded(true);
-         TypeInfo memberBaseType = typeInfo.getComponentType();
+/*         TypeInfo memberBaseType = typeInfo.getComponentType();
 
-         JBossXmlModelGroup xmlModelGroup = ((ClassInfo) memberBaseType)
-               .getUnderlyingAnnotation(JBossXmlModelGroup.class);
-         if (xmlModelGroup != null && xmlModelGroup.particles().length > 0)
+         JBossXmlModelGroup xmlModelGroup = ((ClassInfo) memberBaseType).getUnderlyingAnnotation(JBossXmlModelGroup.class);
+         if (xmlModelGroup != null)
          {
-            if (trace)
-               log.trace("Item base type for " + typeInfo.getName() + " is " + memberBaseType.getName()
-                     + " and bound to repeatable choice");
-
-            // it's choice by default based on the idea that the
-            // type parameter is a base class for items
-            ModelGroupBinding choiceGroup = null;
-            QName choiceName = null;
-            if(!JBossXmlConstants.DEFAULT.equals(xmlModelGroup.name()))
-            {
-               choiceName = new QName(defaultNamespace, xmlModelGroup.name());
-               choiceGroup = schemaBinding.getGroup(choiceName);
-            }
-            
-            if(choiceGroup == null)
-            {
-               choiceGroup = new ChoiceBinding(schemaBinding);
-               choiceGroup.setHandler(BuilderParticleHandler.INSTANCE);
-               if (choiceName != null)
-               {
-                  choiceGroup.setQName(choiceName);
-                  schemaBinding.addGroup(choiceGroup.getQName(), choiceGroup);
-               }
-
-               ParticleBinding choiceParticle = new ParticleBinding(choiceGroup, 0, 1, true);
-               model.addParticle(choiceParticle);
-
-               for (JBossXmlModelGroup.Particle member : xmlModelGroup.particles())
-               {
-                  XmlElement element = member.element();
-                  QName memberQName = generateXmlName(element.name(), XmlNsForm.QUALIFIED, element.namespace(), null);
-                  TypeInfo memberTypeInfo = typeInfo.getTypeInfoFactory().getTypeInfo(member.type());
-
-                  boolean isCol = false;
-                  if (memberTypeInfo.isCollection())
-                  {
-                     memberTypeInfo = ((ClassInfo) memberTypeInfo).getComponentType();
-                     isCol = true;
-                  }
-
-                  TypeBinding memberTypeBinding = resolveTypeBinding(memberTypeInfo);
-                  ElementBinding memberElement = createElementBinding(memberTypeInfo, memberTypeBinding, memberQName, false);
-                  memberElement.setNillable(true);
-                  ParticleBinding memberParticle = new ParticleBinding(memberElement, 0, 1, isCol);
-                  choiceGroup.addParticle(memberParticle);
-
-                  typeBinding.pushInterceptor(memberQName, ChildCollectionInterceptor.SINGLETON);
-               }
-            }
-            else
-            {
-               ParticleBinding choiceParticle = new ParticleBinding(choiceGroup, 0, 1, true);
-               model.addParticle(choiceParticle);
-            }
-            
-            if (trace)
-               log.trace("choices for " + typeBinding.getQName() + ": " + choiceGroup.getParticles());
+            bindParticlesModelGroup(typeBinding, model, memberBaseType, xmlModelGroup, true, beanAdapterFactory, null);
          }
-      }
+*/      }
 
       // Determine the wildcard handler
       AbstractPropertyHandler wildcardHandler = null;
@@ -1284,7 +1227,7 @@
       return typeBinding;
    }
 
-   private void bindProperty(PropertyInfo property, TypeBinding typeBinding, ModelGroupBinding model,
+   private void bindProperty(PropertyInfo property, TypeBinding parentType, ModelGroupBinding parentModel,
          BeanAdapterFactory beanAdapterFactory, String[] propertyOrder, boolean wildcardProperty)
    {
       TypeInfo propertyType = property.getType();
@@ -1298,8 +1241,9 @@
                + Arrays.asList(propertyOrder) + " is marked @XmlTransient");
 
       // The current model
-      ModelGroupBinding localModel = model;
+      ModelGroupBinding localModel = parentModel;
 
+      TypeInfo componentType = propertyType;
       // Setup any new model
       if (propertyType.isArray())
       {
@@ -1311,41 +1255,39 @@
       {
          if (trace)
             log.trace("Property " + property.getName() + " is a collection");
-
          JBossXmlCollection xmlCol = property.getUnderlyingAnnotation(JBossXmlCollection.class);
          if (xmlCol != null)
          {
             // this is the type that should be analyzed
             propertyType = propertyType.getTypeInfoFactory().getTypeInfo(xmlCol.type());
-         }         
+         }
+         componentType = ((ClassInfo)propertyType).getComponentType();
       }
+
       // Is this property bound to a model group
-      else if (!property.getType().isPrimitive())
+      if (!componentType.isPrimitive())
       {
-         ClassInfo propClassInfo = (ClassInfo) property.getType();
+         ClassInfo componentClass = (ClassInfo) componentType;
 
          // TODO XmlElement on this property?..
-         XmlElement propXmlElement = property.getUnderlyingAnnotation(XmlElement.class);
-         if (propXmlElement != null)
+         //XmlElement propXmlElement = property.getUnderlyingAnnotation(XmlElement.class);
+         //if (propXmlElement != null)
+         //   propClassInfo = (ClassInfo) propClassInfo.getTypeInfoFactory().getTypeInfo(propXmlElement.type());
+         
+         // if it's a model group then 
+         JBossXmlModelGroup xmlModelGroup = componentClass.getUnderlyingAnnotation(JBossXmlModelGroup.class);
+         if (xmlModelGroup != null)
          {
-            propClassInfo = (ClassInfo) propClassInfo.getTypeInfoFactory().getTypeInfo(propXmlElement.type());
-         }
-
-         JBossXmlModelGroup xmlModelGroup = propClassInfo.getUnderlyingAnnotation(JBossXmlModelGroup.class);
-         if (xmlModelGroup != null && xmlModelGroup.particles().length == 0)
-         {
-            ModelGroupBinding group = bindModelGroupType(property, model, beanAdapterFactory, propClassInfo, xmlModelGroup);
-            model.addParticle(new ParticleBinding(group));
-
             // model group value handler based on the model group name
             // TODO what if it doesn't have a name?
             AbstractPropertyHandler propertyHandler = null;
-            if (propClassInfo.isCollection())
-               propertyHandler = new CollectionPropertyHandler(property, propClassInfo);
+            if (propertyType.isCollection())
+               propertyHandler = new CollectionPropertyHandler(property, propertyType);
             else
-               propertyHandler = new PropertyHandler(property, propClassInfo);
-            beanAdapterFactory.addProperty(group.getQName(), propertyHandler);
+               propertyHandler = new PropertyHandler(property, propertyType);
 
+            ModelGroupBinding group = bindModelGroup(xmlModelGroup, property, beanAdapterFactory, propertyHandler, parentType);
+            parentModel.addParticle(new ParticleBinding(group, 0, 1, propertyType.isCollection()));               
             return;
          }
       }
@@ -1587,26 +1529,11 @@
                TypeInfo typeArg = ((ClassInfo)property.getType()).getComponentType();
                if (typeArg != null)
                {
-                  JBossXmlModelGroup xmlModelGroup = typeArg.isPrimitive() ? null : ((ClassInfo)typeArg).getUnderlyingAnnotation(JBossXmlModelGroup.class);
-                  if(xmlModelGroup != null)
-                  {
-                     if (xmlModelGroup.particles().length == 0)
-                     {
-                        ModelGroupBinding group = bindModelGroupType(property, model, beanAdapterFactory, (ClassInfo)typeArg, xmlModelGroup);
-                        model.addParticle(new ParticleBinding(group, 0, 1, true));
-                        // TODO what if it doesn't have a name?
-                        beanAdapterFactory.addProperty(group.getQName(), propertyHandler);
-                        return;
-                     }
+                  JBossXmlChild xmlChild = ((ClassInfo) propertyType).getUnderlyingAnnotation(JBossXmlChild.class);
+                  if (xmlChild == null && localPropertyType.equals(propertyType))
+                  {  // the localPropertyType was not overriden previously so use the collection parameter type
+                     localPropertyType = typeArg;
                   }
-                  else
-                  {
-                     JBossXmlChild xmlChild = ((ClassInfo) propertyType).getUnderlyingAnnotation(JBossXmlChild.class);
-                     if (xmlChild == null && localPropertyType.equals(propertyType))
-                     { // the localPropertyType was not overriden previously so use the collection parameter type
-                        localPropertyType = typeArg;
-                     }
-                  }
                }
             }
             // TODO this shouldn't be here (because localPropertyType should specify an item?)
@@ -1615,13 +1542,9 @@
                   && ((ClassInfo) localPropertyType).getUnderlyingAnnotation(XmlType.class) == null)
             {
                if (valueAdapter != null)
-               {
                   propertyHandler = new PropertyHandler(property, localPropertyType);
-               }
                else
-               {
                   propertyHandler = new CollectionPropertyHandler(property, localPropertyType);
-               }
                isCol = true;
                localPropertyType = ((ClassInfo)localPropertyType).getComponentType();               
             }
@@ -1736,12 +1659,9 @@
       }
    }
 
-   private ModelGroupBinding bindModelGroupType(PropertyInfo property, ModelGroupBinding model,
-         BeanAdapterFactory beanAdapterFactory, ClassInfo propClassInfo, JBossXmlModelGroup xmlModelGroup)
+   private ModelGroupBinding bindModelGroup(JBossXmlModelGroup annotation, PropertyInfo property,
+         BeanAdapterFactory beanAdapterFactory, AbstractPropertyHandler propertyHandler, TypeBinding typeBinding)
    {
-      if (trace)
-         log.trace("Property " + property.getName() + " is bound to " + xmlModelGroup.kind());
-
       String groupNs = defaultNamespace;
       String overridenDefaultNamespace = defaultNamespace;
       JBossXmlNsPrefix nsPrefix = property.getUnderlyingAnnotation(JBossXmlNsPrefix.class);
@@ -1749,9 +1669,7 @@
       {
          String ns = schemaBinding.getNamespace(nsPrefix.prefix());
          if (ns == null && nsPrefix.schemaTargetIfNotMapped())
-         {
             throw new IllegalStateException("Prefix '" + nsPrefix.prefix() + "' is not mapped to any namespace!");
-         }
 
          if (nsPrefix.applyToComponentQName())
             groupNs = ns;
@@ -1760,71 +1678,66 @@
       }
 
       QName groupName = null;
-      if (!JBossXmlConstants.DEFAULT.equals(xmlModelGroup.name()))
-         groupName = new QName(groupNs, xmlModelGroup.name());
+      if (!JBossXmlConstants.DEFAULT.equals(annotation.name()))
+         groupName = new QName(groupNs, annotation.name());
 
-      ModelGroupBinding propertyGroup = null;
+      ModelGroupBinding group = null;
       if (groupName != null)
-         propertyGroup = schemaBinding.getGroup(groupName);
+         group = schemaBinding.getGroup(groupName);
 
-      if (propertyGroup == null)
+      if(group != null)
+         return group;
+      
+      String kind = annotation.kind();
+      if (kind.equals(JBossXmlConstants.MODEL_GROUP_SEQUENCE))
+         group = new SequenceBinding(schemaBinding);
+      else if (kind.equals(JBossXmlConstants.MODEL_GROUP_CHOICE))
+         group = new ChoiceBinding(schemaBinding);
+      else if (kind.equals(JBossXmlConstants.MODEL_GROUP_ALL))
+         group = new AllBinding(schemaBinding);
+      else
+         throw new IllegalStateException("Unexpected JBossXmlModelGroup.kind=" + kind);
+
+      if (groupName != null)
       {
-         if (xmlModelGroup.kind().equals(JBossXmlConstants.MODEL_GROUP_SEQUENCE))
-         {
-            propertyGroup = new SequenceBinding(schemaBinding);
-         }
-         else if (xmlModelGroup.kind().equals(JBossXmlConstants.MODEL_GROUP_CHOICE))
-         {
-            propertyGroup = new ChoiceBinding(schemaBinding);
-         }
-         else if (xmlModelGroup.kind().equals(JBossXmlConstants.MODEL_GROUP_ALL))
-         {
-            propertyGroup = new AllBinding(schemaBinding);
-         }
-         else
-         {
-            throw new IllegalStateException("Unexpected JBossXmlModelGroup.kind=" + xmlModelGroup.kind());
-         }
+         // TODO what if it doesn't have a name? should an artificial one be created?
+         group.setQName(groupName);
+         schemaBinding.addGroup(group.getQName(), group);
+      }
 
-         if (groupName != null)
-         {
-            // TODO what if it doesn't have a name? should an artificial one be created?
-            propertyGroup.setQName(groupName);
-            schemaBinding.addGroup(propertyGroup.getQName(), propertyGroup);
-         }
+      TypeInfo groupType = property.getType();
+      if(groupType.isCollection())
+         groupType = ((ClassInfo)groupType).getComponentType();
 
-         propertyGroup.setSkip(Boolean.FALSE);
-
+      if(annotation.particles().length == 0)
+      {
+         group.setSkip(Boolean.FALSE);
+         
          // handler for the model group members
-         BeanInfo propBeanInfo = JBossXBBuilder.configuration.getBeanInfo(propClassInfo);
-         BeanAdapterFactory propBeanAdapterFactory = createAdapterFactory(DefaultBeanAdapterBuilder.class,
-               propBeanInfo, null);
-         BeanHandler propHandler = new BeanHandler(propBeanInfo.getName(), propBeanAdapterFactory);
-         propertyGroup.setHandler(propHandler);
+         BeanInfo groupBeanInfo = JBossXBBuilder.configuration.getBeanInfo(groupType);
+         BeanAdapterFactory propBeanAdapterFactory = createAdapterFactory(DefaultBeanAdapterBuilder.class, groupBeanInfo, null);
+         BeanHandler propHandler = new BeanHandler(groupBeanInfo.getName(), propBeanAdapterFactory);
+         group.setHandler(propHandler);
 
-         String[] memberOrder = xmlModelGroup.propOrder();
+         String[] memberOrder = annotation.propOrder();
          if (memberOrder.length == 0 || memberOrder[0].length() == 0)
          {
             List<String> propNames = new ArrayList<String>();
-            for (PropertyInfo prop : propBeanInfo.getProperties())
-            {
+            for (PropertyInfo prop : groupBeanInfo.getProperties())
                propNames.add(prop.getName());
-            }
             memberOrder = propNames.toArray(new String[propNames.size()]);
          }
 
          if (trace)
-            log.trace("Property order for " + xmlModelGroup.kind() + " property " + property.getName() + ": " + Arrays.asList(memberOrder));
+            log.trace("Property order for " + annotation.kind() + " property " + property.getName() + ": " + Arrays.asList(memberOrder));
 
          // bind model group members
          for (String memberPropName : memberOrder)
          {
             if ("class".equals(memberPropName))
-            {
                continue;
-            }
 
-            PropertyInfo memberProp = propBeanInfo.getProperty(memberPropName);
+            PropertyInfo memberProp = groupBeanInfo.getProperty(memberPropName);
             TypeInfo memberTypeInfo = memberProp.getType();
             XmlElement memberXmlElement = memberProp.getUnderlyingAnnotation(XmlElement.class);
 
@@ -1850,9 +1763,7 @@
                {
                   JBossXmlCollection jbossXmlCollection = memberProp.getUnderlyingAnnotation(JBossXmlCollection.class);
                   if (jbossXmlCollection != null)
-                  {
                      memberTypeInfo = memberTypeInfo.getTypeInfoFactory().getTypeInfo(jbossXmlCollection.type());
-                  }
                   memberTypeInfo = ((ClassInfo) memberTypeInfo).getComponentType();
                }
             }
@@ -1901,19 +1812,49 @@
             memberElement.setNillable(true);
             memberElement.setValueAdapter(valueAdapter);
             ParticleBinding memberParticle = new ParticleBinding(memberElement, 0, 1, isCol);
-            propertyGroup.addParticle(memberParticle);
+            group.addParticle(memberParticle);
 
             if (trace)
-               log.trace("added " + memberParticle + " to " + xmlModelGroup.kind() + ", property " + property.getName());
+               log.trace("added " + memberParticle + " to " + annotation.kind() + ", property " + property.getName());
 
             defaultNamespace = memberOverridenDefaultNamespace;
          }
+         
+         // TODO what if it doesn't have a name?
+         beanAdapterFactory.addProperty(group.getQName(), propertyHandler);
       }
+      else
+      {
+         for (JBossXmlModelGroup.Particle member : annotation.particles())
+         {
+            XmlElement element = member.element();
+            QName memberQName = generateXmlName(element.name(), XmlNsForm.QUALIFIED, element.namespace(), null);
+            TypeInfo memberTypeInfo = groupType.getTypeInfoFactory().getTypeInfo(member.type());
 
+            boolean isCol = false;
+            if (memberTypeInfo.isCollection())
+            {
+               memberTypeInfo = ((ClassInfo) memberTypeInfo).getComponentType();
+               isCol = true;
+            }
+
+            TypeBinding memberTypeBinding = resolveTypeBinding(memberTypeInfo);
+            ElementBinding memberElement = createElementBinding(memberTypeInfo, memberTypeBinding, memberQName, false);
+            memberElement.setNillable(true);
+            ParticleBinding memberParticle = new ParticleBinding(memberElement, 0, 1, isCol);
+            group.addParticle(memberParticle);
+
+            if(propertyHandler != null)
+               beanAdapterFactory.addProperty(memberQName, propertyHandler);
+            else
+               typeBinding.pushInterceptor(memberQName, ChildCollectionInterceptor.SINGLETON);
+         }
+      }
+      
       defaultNamespace = overridenDefaultNamespace;
-      return propertyGroup;
+      return group;
    }
-   
+      
    private SequenceBinding bindXmlElementWrapper(TypeInfo propertyType, ModelGroupBinding parentModel, XmlElementWrapper annotation, QName wrapperQName)
    {
       TypeBinding wrapperType = new TypeBinding();

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/AbstractChoice.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/AbstractChoice.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/AbstractChoice.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support;
+
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlValue;
+
+import org.jboss.xb.annotations.JBossXmlConstants;
+import org.jboss.xb.annotations.JBossXmlModelGroup;
+
+/**
+ * A AbstractChoiceItem.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+ at JBossXmlModelGroup
+(
+      name="ab",
+      kind=JBossXmlConstants.MODEL_GROUP_CHOICE,
+      particles={
+            @JBossXmlModelGroup.Particle(element=@XmlElement(name="a"), type = ChoiceA.class),
+            @JBossXmlModelGroup.Particle(element=@XmlElement(name="b"), type = ChoiceB.class)
+      }
+)
+public class AbstractChoice
+{
+   private String value;
+   
+   @XmlValue
+   public String getValue()
+   {
+      return value;
+   }
+   
+   public void setValue(String value)
+   {
+      this.value = value;
+   }
+}

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/ChoiceA.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/ChoiceA.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/ChoiceA.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support;
+
+/**
+ * A ChoiceA.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+public class ChoiceA extends AbstractChoice
+{
+}

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/ChoiceB.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/ChoiceB.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/ChoiceB.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support;
+
+/**
+ * A ChoiceA.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+public class ChoiceB extends AbstractChoice
+{
+}

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/PropertiesAll.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/PropertiesAll.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/PropertiesAll.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,69 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support;
+
+import org.jboss.xb.annotations.JBossXmlConstants;
+import org.jboss.xb.annotations.JBossXmlModelGroup;
+
+/**
+ * A PropertiesSequence.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+ at JBossXmlModelGroup(name="pa", kind=JBossXmlConstants.MODEL_GROUP_ALL)
+public class PropertiesAll
+{
+   private String a;
+   private String b;
+   private String c;
+   
+   public String getA()
+   {
+      return a;
+   }
+   
+   public void setA(String a)
+   {
+      this.a = a;
+   }
+   
+   public String getB()
+   {
+      return b;
+   }
+   
+   public void setB(String b)
+   {
+      this.b = b;
+   }
+   
+   public String getC()
+   {
+      return c;
+   }
+   
+   public void setC(String c)
+   {
+      this.c = c;
+   }
+}

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/PropertiesChoice.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/PropertiesChoice.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/PropertiesChoice.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,69 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support;
+
+import org.jboss.xb.annotations.JBossXmlConstants;
+import org.jboss.xb.annotations.JBossXmlModelGroup;
+
+/**
+ * A PropertiesSequence.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+ at JBossXmlModelGroup(name="pc", kind=JBossXmlConstants.MODEL_GROUP_CHOICE)
+public class PropertiesChoice
+{
+   private String a;
+   private String b;
+   private String c;
+   
+   public String getA()
+   {
+      return a;
+   }
+   
+   public void setA(String a)
+   {
+      this.a = a;
+   }
+   
+   public String getB()
+   {
+      return b;
+   }
+   
+   public void setB(String b)
+   {
+      this.b = b;
+   }
+   
+   public String getC()
+   {
+      return c;
+   }
+   
+   public void setC(String c)
+   {
+      this.c = c;
+   }
+}

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/PropertiesSequence.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/PropertiesSequence.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/PropertiesSequence.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,69 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support;
+
+import org.jboss.xb.annotations.JBossXmlConstants;
+import org.jboss.xb.annotations.JBossXmlModelGroup;
+
+/**
+ * A PropertiesSequence.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+ at JBossXmlModelGroup(name="ps", kind=JBossXmlConstants.MODEL_GROUP_SEQUENCE, propOrder={"c", "b", "a"})
+public class PropertiesSequence
+{
+   private String a;
+   private String b;
+   private String c;
+   
+   public String getA()
+   {
+      return a;
+   }
+   
+   public void setA(String a)
+   {
+      this.a = a;
+   }
+   
+   public String getB()
+   {
+      return b;
+   }
+   
+   public void setB(String b)
+   {
+      this.b = b;
+   }
+   
+   public String getC()
+   {
+      return c;
+   }
+   
+   public void setC(String c)
+   {
+      this.c = c;
+   }
+}

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithParticlesChoice.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithParticlesChoice.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithParticlesChoice.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * A RootWithParticlesChoice.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlRootElement(name="root")
+ at XmlType(propOrder={"choice", "e"})
+public class RootWithParticlesChoice
+{
+   private AbstractChoice choice;
+   private String e;
+   
+   public AbstractChoice getChoice()
+   {
+      return choice;
+   }
+   
+   public void setChoice(AbstractChoice choice)
+   {
+      this.choice = choice;
+   }
+   
+   public String getE()
+   {
+      return e;
+   }
+   
+   public void setE(String e)
+   {
+      this.e = e;
+   }
+}

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithParticlesChoiceCollection.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithParticlesChoiceCollection.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithParticlesChoiceCollection.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,61 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support;
+
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * A RootWithParticlesChoice.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlRootElement(name="root")
+ at XmlType(propOrder={"choices", "e"})
+public class RootWithParticlesChoiceCollection
+{
+   private List<AbstractChoice> choices;
+   private String e;
+   
+   public List<AbstractChoice> getChoices()
+   {
+      return choices;
+   }
+   
+   public void setChoices(List<AbstractChoice> choices)
+   {
+      this.choices = choices;
+   }
+   
+   public String getE()
+   {
+      return e;
+   }
+   
+   public void setE(String e)
+   {
+      this.e = e;
+   }
+}

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesAll.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesAll.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesAll.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * A RootWithPropertiesSequence.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlRootElement(name="root")
+public class RootWithPropertiesAll
+{
+   private PropertiesAll group;
+   
+   public PropertiesAll getGroup()
+   {
+      return group;
+   }
+   
+   public void setGroup(PropertiesAll group)
+   {
+      this.group = group;
+   }
+}

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesAllCollection.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesAllCollection.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesAllCollection.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support;
+
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * A RootWithPropertiesSequenceCollection.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlRootElement(name="root")
+public class RootWithPropertiesAllCollection
+{
+   private List<PropertiesAll> groups;
+   
+   public List<PropertiesAll> getGroups()
+   {
+      return groups;
+   }
+   
+   public void setGroups(List<PropertiesAll> groups)
+   {
+      this.groups = groups;
+   }
+}

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesChoice.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesChoice.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesChoice.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * A RootWithPropertiesSequence.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlRootElement(name="root")
+public class RootWithPropertiesChoice
+{
+   private PropertiesChoice group;
+   
+   public PropertiesChoice getGroup()
+   {
+      return group;
+   }
+   
+   public void setGroup(PropertiesChoice group)
+   {
+      this.group = group;
+   }
+}

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesChoiceCollection.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesChoiceCollection.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesChoiceCollection.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support;
+
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * A RootWithPropertiesSequenceCollection.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlRootElement(name="root")
+public class RootWithPropertiesChoiceCollection
+{
+   private List<PropertiesChoice> groups;
+   
+   public List<PropertiesChoice> getGroups()
+   {
+      return groups;
+   }
+   
+   public void setGroups(List<PropertiesChoice> groups)
+   {
+      this.groups = groups;
+   }
+}

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesSequence.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesSequence.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesSequence.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * A RootWithPropertiesSequence.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlRootElement(name="root")
+public class RootWithPropertiesSequence
+{
+   private PropertiesSequence group;
+   
+   public PropertiesSequence getGroup()
+   {
+      return group;
+   }
+   
+   public void setGroup(PropertiesSequence group)
+   {
+      this.group = group;
+   }
+}

Added: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesSequenceCollection.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesSequenceCollection.java	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/support/RootWithPropertiesSequenceCollection.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support;
+
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+/**
+ * A RootWithPropertiesSequenceCollection.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+ at XmlRootElement(name="root")
+public class RootWithPropertiesSequenceCollection
+{
+   private List<PropertiesSequence> groups;
+   
+   public List<PropertiesSequence> getGroups()
+   {
+      return groups;
+   }
+   
+   public void setGroups(List<PropertiesSequence> groups)
+   {
+      this.groups = groups;
+   }
+}

Added: 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	                        (rev 0)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroupUnitTestCase.java	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,367 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.test;
+
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+
+import org.jboss.test.xb.builder.AbstractBuilderTest;
+import org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support.AbstractChoice;
+import org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support.ChoiceA;
+import org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support.ChoiceB;
+import org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support.PropertiesAll;
+import org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support.PropertiesChoice;
+import org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support.PropertiesSequence;
+import org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support.RootWithParticlesChoice;
+import org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support.RootWithParticlesChoiceCollection;
+import org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support.RootWithPropertiesAll;
+import org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support.RootWithPropertiesAllCollection;
+import org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support.RootWithPropertiesChoice;
+import org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support.RootWithPropertiesChoiceCollection;
+import org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support.RootWithPropertiesSequence;
+import org.jboss.test.xb.builder.object.type.jbossxmlmodelgroup.support.RootWithPropertiesSequenceCollection;
+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.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.builder.JBossXBBuilder;
+
+/**
+ * A JBossXmlModelGroupUnitTestCase.
+ * 
+ * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
+ * @version $Revision: 1.1 $
+ */
+public class JBossXmlModelGroupUnitTestCase extends AbstractBuilderTest
+{
+   public JBossXmlModelGroupUnitTestCase(String name)
+   {
+      super(name);
+   }
+
+   public void testPropertiesSequenceUnmarshalling() throws Exception
+   {
+      RootWithPropertiesSequence o = unmarshalObject(RootWithPropertiesSequence.class);
+      PropertiesSequence g = o.getGroup();
+      assertNotNull(g);
+      assertEquals("a", g.getA());
+      assertEquals("b", g.getB());
+      assertEquals("c", g.getC());
+   }
+
+   public void testPropertiesSequenceCollectionUnmarshalling() throws Exception
+   {
+      RootWithPropertiesSequenceCollection o = unmarshalObject(RootWithPropertiesSequenceCollection.class);
+      List<PropertiesSequence> gs = o.getGroups();
+      assertNotNull(gs);
+      assertEquals(2, gs.size());
+      int i = 0;
+      for(PropertiesSequence g : gs)
+      {
+         assertNotNull(g);
+         ++i;
+         assertEquals("a" + i, g.getA());
+         assertEquals("b" + i, g.getB());
+         assertEquals("c" + i, g.getC());
+      }
+   }
+
+   public void testPropertiesChoiceUnmarshalling() throws Exception
+   {
+      RootWithPropertiesChoice o = unmarshalObject(RootWithPropertiesChoice.class);
+      PropertiesChoice g = o.getGroup();
+      assertNotNull(g);
+      assertNull(g.getA());
+      assertNull(g.getB());
+      assertEquals("c", g.getC());
+   }
+
+   public void testPropertiesChoiceCollectionUnmarshalling() throws Exception
+   {
+      RootWithPropertiesChoiceCollection o = unmarshalObject(RootWithPropertiesChoiceCollection.class);
+      List<PropertiesChoice> gs = o.getGroups();
+      assertNotNull(gs);
+      assertEquals(3, gs.size());
+      PropertiesChoice g = gs.get(0);
+      assertEquals("c", g.getC());
+      assertNull(g.getA());
+      assertNull(g.getB());
+      g = gs.get(1);
+      assertNull(g.getC());
+      assertNull(g.getA());
+      assertEquals("b", g.getB());
+      g = gs.get(2);
+      assertEquals("a", g.getA());
+      assertNull(g.getC());
+      assertNull(g.getB());
+   }
+
+   public void testPropertiesAllUnmarshalling() throws Exception
+   {
+      RootWithPropertiesAll o = unmarshalObject(RootWithPropertiesAll.class);
+      PropertiesAll g = o.getGroup();
+      assertNotNull(g);
+      assertEquals("a", g.getA());
+      assertEquals("b", g.getB());
+      assertEquals("c", g.getC());
+   }
+
+   public void testPropertiesAllCollectionUnmarshalling() throws Exception
+   {
+      RootWithPropertiesAllCollection o = unmarshalObject(RootWithPropertiesAllCollection.class);
+      List<PropertiesAll> gs = o.getGroups();
+      assertNotNull(gs);
+      assertEquals("this is a known issue with repeatable all", 2, gs.size());
+      PropertiesAll g = gs.get(0);
+      assertEquals("c", g.getC());
+      assertEquals("a", g.getA());
+      assertEquals("b", g.getB());
+      g = gs.get(1);
+      assertEquals("cc", g.getC());
+      assertEquals("aa", g.getA());
+      assertEquals("bb", g.getB());
+   }
+
+   public void testPropertiesSequenceBinding() throws Exception
+   {
+      assertPropertiesSequenceBinding(RootWithPropertiesSequence.class, false);
+   }
+
+   public void testPropertiesSequenceCollectionBinding() throws Exception
+   {
+      assertPropertiesSequenceBinding(RootWithPropertiesSequenceCollection.class, true);
+   }
+
+   public void testPropertiesChoiceBinding() throws Exception
+   {
+      assertPropertiesChoiceBinding(RootWithPropertiesChoice.class, false);
+   }
+
+   public void testPropertiesChoiceCollectionBinding() throws Exception
+   {
+      assertPropertiesChoiceBinding(RootWithPropertiesChoiceCollection.class, true);
+   }
+
+   public void testPropertiesAllBinding() throws Exception
+   {
+      assertPropertiesAllBinding(RootWithPropertiesAll.class, false);
+   }
+
+   public void testPropertiesAllCollectionBinding() throws Exception
+   {
+      assertPropertiesAllBinding(RootWithPropertiesAllCollection.class, true);
+   }
+
+   public void testParticlesChoiceUnmarshalling() throws Exception
+   {
+      RootWithParticlesChoice o = unmarshalObject(RootWithParticlesChoice.class);
+      AbstractChoice choice = o.getChoice();
+      assertNotNull(choice);
+      assertTrue(choice instanceof ChoiceB);
+      assertEquals("b", choice.getValue());
+   }
+
+   public void testParticlesChoiceCollectionUnmarshalling() throws Exception
+   {
+      RootWithParticlesChoiceCollection o = unmarshalObject(RootWithParticlesChoiceCollection.class);
+      List<AbstractChoice> choices = o.getChoices();
+      assertNotNull(choices);
+      assertEquals(2, choices.size());
+      AbstractChoice choice = choices.get(0);
+      assertTrue(choice instanceof ChoiceA);
+      assertEquals("a", choice.getValue());
+      choice = choices.get(1);
+      assertTrue(choice instanceof ChoiceB);
+      assertEquals("b", choice.getValue());
+   }
+
+   public void testParticlesChoiceBinding() throws Exception
+   {
+      SchemaBinding schema = JBossXBBuilder.build(RootWithParticlesChoice.class);
+      ElementBinding e = schema.getElement(new QName("root"));
+      assertNotNull(e);
+      TermBinding t = e.getType().getParticle().getTerm();
+      assertTrue(t instanceof SequenceBinding);
+      SequenceBinding s = (SequenceBinding) 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 ChoiceBinding);
+      assertEquals(1, p.getMaxOccurs());
+      assertFalse(p.getMaxOccursUnbounded());
+      
+      ChoiceBinding c = (ChoiceBinding) t;
+      particles = c.getParticles();
+      assertEquals(2, particles.size());
+      Iterator<ParticleBinding> choiceIter = particles.iterator();
+      t = choiceIter.next().getTerm();
+      assertTrue(t.isElement());
+      assertEquals(new QName("a"), ((ElementBinding)t).getQName());
+      t = choiceIter.next().getTerm();
+      assertTrue(t.isElement());
+      assertEquals(new QName("b"), ((ElementBinding)t).getQName());
+      
+      t = i.next().getTerm();
+      assertTrue(t.isElement());
+      assertEquals(new QName("e"), ((ElementBinding)t).getQName());
+   }
+
+   public void testParticlesChoiceCollectionBinding() throws Exception
+   {
+      SchemaBinding schema = JBossXBBuilder.build(RootWithParticlesChoiceCollection.class);
+      ElementBinding e = schema.getElement(new QName("root"));
+      assertNotNull(e);
+      TermBinding t = e.getType().getParticle().getTerm();
+      assertTrue(t instanceof SequenceBinding);
+      SequenceBinding s = (SequenceBinding) 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 ChoiceBinding);
+      assertEquals(1, p.getMaxOccurs());
+      assertTrue(p.getMaxOccursUnbounded());
+      
+      ChoiceBinding c = (ChoiceBinding) t;
+      particles = c.getParticles();
+      assertEquals(2, particles.size());
+      Iterator<ParticleBinding> choiceIter = particles.iterator();
+      t = choiceIter.next().getTerm();
+      assertTrue(t.isElement());
+      assertEquals(new QName("a"), ((ElementBinding)t).getQName());
+      t = choiceIter.next().getTerm();
+      assertTrue(t.isElement());
+      assertEquals(new QName("b"), ((ElementBinding)t).getQName());
+      
+      t = i.next().getTerm();
+      assertTrue(t.isElement());
+      assertEquals(new QName("e"), ((ElementBinding)t).getQName());
+   }
+
+   private void assertPropertiesSequenceBinding(Class<?> root, boolean inCollection)
+   {
+      SchemaBinding schema = JBossXBBuilder.build(root);
+      ElementBinding e = schema.getElement(new QName("root"));
+      assertNotNull(e);
+      TermBinding t = e.getType().getParticle().getTerm();
+      assertTrue(t instanceof SequenceBinding);
+      SequenceBinding s = (SequenceBinding) t;
+      Collection<ParticleBinding> particles = s.getParticles();
+      assertEquals(1, particles.size());
+      ParticleBinding p = particles.iterator().next();
+      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());
+   }
+
+   private void assertPropertiesChoiceBinding(Class<?> root, boolean inCollection)
+   {
+      SchemaBinding schema = JBossXBBuilder.build(root);
+      ElementBinding e = schema.getElement(new QName("root"));
+      assertNotNull(e);
+      TermBinding t = e.getType().getParticle().getTerm();
+      assertTrue(t instanceof SequenceBinding);
+      SequenceBinding s = (SequenceBinding) t;
+      Collection<ParticleBinding> particles = s.getParticles();
+      assertEquals(1, particles.size());
+      ParticleBinding p = particles.iterator().next();
+      t = p.getTerm();
+      assertTrue(t instanceof ChoiceBinding);
+      //assertEquals(0, p.getMinOccurs());
+      assertEquals(1, p.getMaxOccurs());
+      assertEquals(inCollection, p.getMaxOccursUnbounded());
+      ChoiceBinding c = (ChoiceBinding) t;
+      particles = c.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)
+      {
+         t = cp.getTerm();
+         assertTrue(t.isElement());
+         assertTrue(set.contains(((ElementBinding) t).getQName()));
+      }
+   }
+
+   private void assertPropertiesAllBinding(Class<?> root, boolean inCollection)
+   {
+      SchemaBinding schema = JBossXBBuilder.build(root);
+      ElementBinding e = schema.getElement(new QName("root"));
+      assertNotNull(e);
+      TermBinding t = e.getType().getParticle().getTerm();
+      assertTrue(t instanceof SequenceBinding);
+      SequenceBinding s = (SequenceBinding) t;
+      Collection<ParticleBinding> particles = s.getParticles();
+      assertEquals(1, particles.size());
+      ParticleBinding p = particles.iterator().next();
+      t = p.getTerm();
+      assertTrue(t instanceof AllBinding);
+      //assertEquals(0, p.getMinOccurs());
+      assertEquals(1, p.getMaxOccurs());
+      assertEquals(inCollection, p.getMaxOccursUnbounded());
+      AllBinding a = (AllBinding) t;
+      particles = a.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)
+      {
+         t = cp.getTerm();
+         assertTrue(t.isElement());
+         assertTrue(set.contains(((ElementBinding) t).getQName()));
+      }
+   }
+}

Added: jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testParticlesChoiceCollectionUnmarshalling.xml
===================================================================
--- jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testParticlesChoiceCollectionUnmarshalling.xml	                        (rev 0)
+++ jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testParticlesChoiceCollectionUnmarshalling.xml	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<root>
+   <a>a</a>
+   <b>b</b>
+</root>

Added: jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testParticlesChoiceUnmarshalling.xml
===================================================================
--- jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testParticlesChoiceUnmarshalling.xml	                        (rev 0)
+++ jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testParticlesChoiceUnmarshalling.xml	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<root>
+   <b>b</b>
+</root>

Added: jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesAllCollectionUnmarshalling.xml
===================================================================
--- jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesAllCollectionUnmarshalling.xml	                        (rev 0)
+++ jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesAllCollectionUnmarshalling.xml	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<root>
+   <b>b</b>
+</root>

Added: jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesAllUnmarshalling.xml
===================================================================
--- jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesAllUnmarshalling.xml	                        (rev 0)
+++ jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesAllUnmarshalling.xml	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<root>
+   <a>a</a>
+   <c>c</c>
+   <b>b</b>
+</root>

Added: jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesChoiceCollectionUnmarshalling.xml
===================================================================
--- jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesChoiceCollectionUnmarshalling.xml	                        (rev 0)
+++ jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesChoiceCollectionUnmarshalling.xml	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<root>
+   <c>c</c>
+   <b>b</b>
+   <a>a</a>
+</root>

Added: jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesChoiceUnmarshalling.xml
===================================================================
--- jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesChoiceUnmarshalling.xml	                        (rev 0)
+++ jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesChoiceUnmarshalling.xml	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<root>
+   <c>c</c>
+</root>

Added: jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesSequenceCollectionUnmarshalling.xml
===================================================================
--- jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesSequenceCollectionUnmarshalling.xml	                        (rev 0)
+++ jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesSequenceCollectionUnmarshalling.xml	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<root>
+   <c>c1</c>
+   <b>b1</b>
+   <a>a1</a>
+   <c>c2</c>
+   <b>b2</b>
+   <a>a2</a>
+</root>

Added: jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesSequenceUnmarshalling.xml
===================================================================
--- jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesSequenceUnmarshalling.xml	                        (rev 0)
+++ jbossxb/trunk/src/test/resources/org/jboss/test/xb/builder/object/type/jbossxmlmodelgroup/test/JBossXmlModelGroup_testPropertiesSequenceUnmarshalling.xml	2009-02-13 15:34:03 UTC (rev 2979)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<root>
+   <c>c</c>
+   <b>b</b>
+   <a>a</a>
+</root>




More information about the jboss-svn-commits mailing list