[jboss-cvs] JBossAS SVN: r80355 - in projects/metadata/trunk/src: main/java/org/jboss/metadata/common/jboss and 7 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Nov 2 17:52:20 EST 2008


Author: alex.loubyansky at jboss.com
Date: 2008-11-02 17:52:19 -0500 (Sun, 02 Nov 2008)
New Revision: 80355

Modified:
   projects/metadata/trunk/src/main/java/org/jboss/metadata/IorSecurityConfigMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/common/jboss/WebserviceDescriptionMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/CacheConfigMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/IORASContextMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/IORSecurityConfigMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/InvokerBindingMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBoss50MetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossGenericBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossServiceBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MessagePropertiesMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MethodAttributeMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ProducerMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/RemoteBindingMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ResourceManagerMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/WebservicesMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/ActivationConfigPropertyMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SecurityIdentityMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/AnnotationMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/AnnotationPropertyMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/CallPropertyMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossPortComponentRef.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferenceMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JndiRefMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AbstractEJBReferenceMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/DescriptionGroupMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBLocalReferenceMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBReferenceMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentEntryMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationReferenceMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceContextReferenceMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceUnitReferenceMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceEnvironmentReferenceMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceInjectionMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RunAsMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/AbstractMappedMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImplWithDescriptionGroup.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/MappedMetaDataWithDescriptions.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/NamedMetaData.java
   projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/ResourceInjectionMetaDataWithDescriptionGroup.java
   projects/metadata/trunk/src/main/resources/schema/jboss_5_0.xsd
   projects/metadata/trunk/src/test/java/org/jboss/test/metadata/binding/SchemaBindingValidationUnitTestCase.java
Log:
JBMETA-139 some of the fixes

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/IorSecurityConfigMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/IorSecurityConfigMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/IorSecurityConfigMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -23,6 +23,8 @@
 
 import java.io.Serializable;
 
+import javax.xml.bind.annotation.XmlType;
+
 import org.jboss.metadata.ejb.jboss.IORASContextMetaData;
 import org.jboss.metadata.ejb.jboss.IORSASContextMetaData;
 import org.jboss.metadata.ejb.jboss.IORSecurityConfigMetaData;
@@ -440,6 +442,7 @@
     * sas-context (related to CSIv2 security attribute service) element describes
     * the sas-context fields.
     */
+   @XmlType(name="sas-context-type")
    public class SasContext
    {
       public static final String CALLER_PROPAGATION_NONE = "NONE";

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/common/jboss/WebserviceDescriptionMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/common/jboss/WebserviceDescriptionMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/common/jboss/WebserviceDescriptionMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -21,6 +21,8 @@
 */
 package org.jboss.metadata.common.jboss;
 
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
 import org.jboss.metadata.javaee.support.NamedMetaData;
@@ -31,7 +33,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="webservice-descriptionType")
+ at XmlType(name="webservice-descriptionType", propOrder={"webserviceDescriptionName", "configName", "configFile", "wsdlPublishLocation"})
 public class WebserviceDescriptionMetaData extends NamedMetaData
 {
    /** The serialVersionUID */
@@ -46,11 +48,18 @@
    /** The wsdl publish location */
    private String wsdlPublishLocation;
    
+   @XmlTransient
+   public String getName()
+   {
+      return super.getName();
+   }
+   
    /**
     * Get the webservicesDescriptionName.
     * 
     * @return the webservicesDescriptionName.
     */
+   @XmlElement(required=true)
    public String getWebserviceDescriptionName()
    {
       return getName();

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/CacheConfigMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/CacheConfigMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/CacheConfigMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -22,6 +22,7 @@
 package org.jboss.metadata.ejb.jboss;
 
 import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
 
 
 /**
@@ -31,6 +32,7 @@
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
  * @version <tt>$Revision$</tt>
  */
+ at XmlType(name="cache-configType", propOrder={"value", "maxSize", "idleTimeoutSeconds", "removeTimeoutSeconds", "name", "persistenceManager", "replicationIsPassivation"})
 public class CacheConfigMetaData
 {
    private String value = null;

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/IORASContextMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/IORASContextMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/IORASContextMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -32,7 +32,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="as-contextType")
+ at XmlType(name="as-contextType", propOrder={"descriptions", "authMethod", "realm", "required"})
 public class IORASContextMetaData extends IdMetaDataImplWithDescriptions
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/IORSecurityConfigMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/IORSecurityConfigMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/IORSecurityConfigMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -31,7 +31,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="ior-security-configType")
+ at XmlType(name="ior-security-configType", propOrder={"descriptions", "transportConfig", "asContext", "sasContext"})
 public class IORSecurityConfigMetaData extends IdMetaDataImplWithDescriptions
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/InvokerBindingMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/InvokerBindingMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/InvokerBindingMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -34,7 +34,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="invokerType")
+ at XmlType(name="invokerType", propOrder={"descriptions", "invokerProxyBindingName", "jndiName", "ejbRefs"})
 public class InvokerBindingMetaData extends NamedMetaDataWithDescriptions
 {
    /** The serialVersionUID */
@@ -147,6 +147,7 @@
       this.ejbRefs = ejbRefs;
    }
    
+   @XmlType(name="invoker-ejb-refType", propOrder={"ejbRefName", "jndiName"})
    public static class EjbRef
    {
       private String ejbRefName;

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBoss50MetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBoss50MetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBoss50MetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -42,6 +42,11 @@
       namespace=JavaEEMetaDataConstants.JBOSS_NS,
       elementFormDefault=XmlNsForm.QUALIFIED,
       normalizeSpace=true)
+/*@XmlType(name="jbossType", namespace=JavaEEMetaDataConstants.JBOSS_NS, propOrder={"descriptionGroup", "loaderRepository",
+      "jmxName", "enforceEjbRestrictions", "securityDomain", "excludeMissingMethods", "unauthenticatedPrincipal",
+      "exceptionOnRollback", "jndiBindingPolicy", "jaccContextID", "webservices", "enterpriseBeans", "assemblyDescriptor",
+      "resourceManagers"})
+*/
 @XmlType(name="jbossType", namespace=JavaEEMetaDataConstants.JBOSS_NS)
 public class JBoss50MetaData extends JBossMetaData
 {

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossAssemblyDescriptorMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -26,6 +26,7 @@
 import java.util.Set;
 
 import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
 import org.jboss.metadata.common.ejb.IAssemblyDescriptorMetaData;
@@ -48,7 +49,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="jboss-assembly-descriptorType")
+ at XmlType(name="assembly-descriptorType", propOrder={"securityRoles", "messageDestinations"})
 public class JBossAssemblyDescriptorMetaData extends IdMetaDataImpl
    implements org.jboss.metadata.common.ejb.IAssemblyDescriptorMetaData
 {
@@ -336,6 +337,7 @@
     * Generate a Map of Principal keyed against a set of role names
     * @return map of principal names as keys and set of role name strings as values
     */
+   @XmlTransient
    public Map<String,Set<String>> getPrincipalVersusRolesMap()
    {
       if(securityRoles == null)

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossGenericBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossGenericBeanMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossGenericBeanMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -32,7 +32,11 @@
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
  * @version $Revision$
  */
- at XmlType(name="jboss-generic-beanType")
+ at XmlType(name="generic-beanType", propOrder={"descriptionGroup", "ejbName", "mappedName", "jndiEnvironmentRefsGroup",
+      "securityIdentity", "jndiName", "homeJndiName", "exceptionOnRollback", "timerPersistence", "configurationName",
+      "invokerBindings", "securityProxy", "localJndiName", "localHomeJndiName",
+      "jndiBindingPolicy", "securityDomain", "methodAttributes", "depends", "annotations", "ignoreDependency", "aopDomainName",
+      "poolConfig", "jndiRefs", "portComponent", "iorSecurityConfig"})
 public class JBossGenericBeanMetaData extends JBossEnterpriseBeanMetaData
 {
    private static final long serialVersionUID = 1L;

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMessageDrivenBeanMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -40,7 +40,12 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="jboss-message-driven-beanType")
+ at XmlType(name="message-driven-beanType", propOrder={"descriptionGroup", "ejbName", "destinationJndiName", "localJndiName",
+      "jndiBindingPolicy", "mdbUser", "mdbPassword", "mdbClientId", "mdbSubscriptionId", "resourceAdapterName",
+      "exceptionOnRollback", "timerPersistence", "configurationName", "invokerBindings", "securityProxy",
+      "jndiEnvironmentRefsGroup", "securityIdentity", "securityDomain", "methodAttributes", "depends", "iorSecurityConfig",
+      "ejbTimeoutIdentity", "annotations", "ignoreDependency", "aopDomainName", "poolConfig",
+      "jndiRefs", "activationConfig", "defaultActivationConfig", "createDestination"})
 public class JBossMessageDrivenBeanMetaData extends JBossEnterpriseBeanMetaData implements ITimeoutTarget
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -209,6 +209,7 @@
       return assemblyDescriptor;
    }
    
+   @XmlTransient
    public String getEjbClientJar()
    {
       return this.ejbClientJar;
@@ -232,6 +233,7 @@
       this.ejbVersion = ejbVersion;
    }
 
+   @XmlTransient
    public RelationsMetaData getRelationships()
    {
       return this.relationships;
@@ -241,21 +243,25 @@
       this.relationships = relationships;
    }
 
+   @XmlTransient
    public boolean isEJB1x()
    {
       return ejbVersion != null && ejbVersion.contains("1.");
    }
 
+   @XmlTransient
    public boolean isEJB21()
    {
       return ejbVersion != null && ejbVersion.contains("2.1");
    }
 
+   @XmlTransient
    public boolean isEJB2x()
    {
       return ejbVersion != null && ejbVersion.contains("2.");
    }
 
+   @XmlTransient
    public boolean isEJB3x()
    {
       return ejbVersion != null && ejbVersion.contains("3.");
@@ -294,11 +300,6 @@
       return jmxName;
    }
 
-   public String getJaccContextID()
-   {
-      return jaccContextID;
-   }
-
    /**
     * Set the jmxName.
     * 
@@ -312,6 +313,11 @@
       this.jmxName = jmxName;
    }
 
+   public String getJaccContextID()
+   {
+      return jaccContextID;
+   }
+
    /**
     * Set the JACC context id
     * @param jaccContextID the id to use for the bean JACC context
@@ -408,6 +414,7 @@
       this.exceptionOnRollback = exceptionOnRollback;
    }
 
+   @XmlAttribute
    public boolean isMetadataComplete()
    {
       return metadataComplete;

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossServiceBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossServiceBeanMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossServiceBeanMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -29,7 +29,10 @@
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
  * @version $Revision$
  */
- at XmlType(name="service-beanType")
+ at XmlType(name="service-beanType", propOrder={"descriptionGroup", "ejbName", "mappedName", "businessLocals", "businessRemotes",
+      "ejbClass", "jndiEnvironmentRefsGroup", "securityIdentity", "objectName", "management", "xmbean", "remoteBindings",
+      "jndiName", "localJndiName", "jndiBindingPolicy", "securityDomain", "methodAttributes", "depends", "annotations",
+      "ignoreDependency", "aopDomainName", "jndiRefs"})
 public class JBossServiceBeanMetaData extends JBossSessionBeanMetaData
 {
    private static final long serialVersionUID = 1L;

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/JBossSessionBeanMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -48,7 +48,12 @@
  * @author Scott.Stark at jboss.org
  * @version $Revision$
  */
- at XmlType(name="jboss-session-beanType")
+ at XmlType(name="session-beanType", propOrder={"descriptionGroup", "ejbName", "mappedName", "jndiEnvironmentRefsGroup",
+      "securityIdentity", "remoteBindings", "businessLocals", "businessRemotes", "jndiName", "homeJndiName", "callByValue",
+      "exceptionOnRollback", "timerPersistence", "configurationName", "invokerBindings", "securityProxy", "localJndiName",
+      "localHomeJndiName", "jndiBindingPolicy", "clustered",
+      "clusterConfig", "securityDomain", "methodAttributes", "depends", "annotations", "ignoreDependency", "aopDomainName",
+      "cacheConfig", "poolConfig", "concurrent", "jndiRefs", "portComponent", "ejbTimeoutIdentity", "iorSecurityConfig"})
 public class JBossSessionBeanMetaData extends JBossEnterpriseBeanMetaData implements ITimeoutTarget
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MessagePropertiesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MessagePropertiesMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MessagePropertiesMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -24,13 +24,15 @@
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
+import org.jboss.metadata.javaee.support.IdMetaDataImpl;
+
 /**
  * @author <a href="mailto:bdecoste at jboss.com">William DeCoste</a>
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
  * @version <tt>$Revision$</tt>
  */
 @XmlType(name="message-propertiesType")
-public class MessagePropertiesMetaData
+public class MessagePropertiesMetaData extends IdMetaDataImpl
 {
    private MethodAttributeMetaData method;
    private String delivery;

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MethodAttributeMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MethodAttributeMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/MethodAttributeMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -31,7 +31,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="jboss-methodType")
+ at XmlType(name="jboss-methodType", propOrder={"methodName", "readOnly", "idempotent", "transactionTimeout"})
 public class MethodAttributeMetaData extends NamedMetaData
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ProducerMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ProducerMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ProducerMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -22,8 +22,10 @@
 package org.jboss.metadata.ejb.jboss;
 
 import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlType;
 
 import org.jboss.logging.Logger;
+import org.jboss.metadata.javaee.support.IdMetaDataImpl;
 
 /**
  * Represents a producer element of the jboss.xml deployment descriptor for
@@ -33,7 +35,8 @@
  * @author <a href="mailto:carlo.dewolf at jboss.com">Carlo de Wolf</a>
  * @version <tt>$Revision$</tt>
  */
-public class ProducerMetaData
+ at XmlType(name="producerType", propOrder={"className", "connectionFactory"})
+public class ProducerMetaData extends IdMetaDataImpl
 {
    @SuppressWarnings("unused")
    private static final Logger log = Logger.getLogger(ProducerMetaData.class);

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/RemoteBindingMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/RemoteBindingMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/RemoteBindingMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -31,7 +31,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="remote-bindingType")
+ at XmlType(name="remote-bindingType", propOrder={"descriptions", "jndiName", "clientBindUrl", "interceptorStack", "proxyFactory"})
 public class RemoteBindingMetaData extends IdMetaDataImplWithDescriptions
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ResourceManagerMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ResourceManagerMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/ResourceManagerMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -21,6 +21,9 @@
 */
 package org.jboss.metadata.ejb.jboss;
 
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
 import org.jboss.metadata.javaee.support.NamedMetaDataWithDescriptions;
@@ -31,7 +34,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="resource-managerType")
+ at XmlType(name="resource-managerType", propOrder={"descriptions", "resName", "resJndiName", "resUrl"})
 public class ResourceManagerMetaData extends NamedMetaDataWithDescriptions
 {
    /** The serialVersionUID */
@@ -46,6 +49,12 @@
    /** The resource url */
    private String resUrl;
    
+   @XmlTransient
+   public String getName()
+   {
+      return super.getName();
+   }
+   
    /**
     * Get the resName.
     * 
@@ -62,6 +71,7 @@
     * @param resName the resName.
     * @throws IllegalArgumentException for a null resName
     */
+   @XmlElement(required=true)
    public void setResName(String resName)
    {
       setName(resName);
@@ -72,6 +82,7 @@
     * 
     * @return the resClass.
     */
+   @XmlAttribute
    public String getResClass()
    {
       return resClass;
@@ -129,6 +140,7 @@
     * @param resUrl the resUrl.
     * @throws IllegalArgumentException for a null resUrl
     */
+   @XmlElement(required=true)
    public void setResUrl(String resUrl)
    {
       if (resUrl == null)
@@ -141,6 +153,7 @@
     * 
     * @return the resource
     */
+   @XmlTransient
    public String getResource()
    {
       if (resJndiName != null)

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/WebservicesMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/WebservicesMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/jboss/WebservicesMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -33,7 +33,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="webservicesType")
+ at XmlType(name="webservicesType", propOrder={"contextRoot", "webserviceDescriptions"})
 public class WebservicesMetaData extends IdMetaDataImpl
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/ActivationConfigPropertyMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/ActivationConfigPropertyMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/ActivationConfigPropertyMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -33,7 +33,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="activation-config-propertyType")
+ at XmlType(name="activation-config-propertyType", propOrder={"activationConfigPropertyName", "value"})
 public class ActivationConfigPropertyMetaData extends NamedMetaData
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SecurityIdentityMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SecurityIdentityMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/ejb/spec/SecurityIdentityMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -22,6 +22,7 @@
 package org.jboss.metadata.ejb.spec;
 
 import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
 import javax.xml.bind.annotation.XmlType;
 
 import org.jboss.metadata.javaee.spec.EmptyMetaData;
@@ -36,7 +37,7 @@
  * @author Scott.Stark at jboss.org
  * @version $Revision: 1.1 $
  */
- at XmlType(name="security-identityType")
+ at XmlType(name="security-identityType", propOrder={"descriptions", "useCallerIdentity", "runAs", "runAsPrincipal"})
 public class SecurityIdentityMetaData extends IdMetaDataImplWithDescriptions implements MergeableMetaData<SecurityIdentityMetaData>
 {
    /** The serialVersionUID */
@@ -64,6 +65,7 @@
     * 
     * @return true for caller id
     */
+   @XmlTransient
    public boolean isUseCallerId()
    {
       return useCallerIdentity != null;
@@ -74,6 +76,7 @@
     * 
     * @return the useCallerIdentity.
     */
+   @XmlElement(name="use-caller-identity")
    public EmptyMetaData getUseCallerIdentity()
    {
       return useCallerIdentity;

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/AnnotationMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/AnnotationMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/AnnotationMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -33,7 +33,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="annotationType")
+ at XmlType(name="annotationType", propOrder={"descriptions", "annotationClass", "annotationImplementationClass", "injectionTarget", "properties"})
 public class AnnotationMetaData extends NamedMetaDataWithDescriptions
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/AnnotationPropertyMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/AnnotationPropertyMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/AnnotationPropertyMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -31,7 +31,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="annotation-propertyType")
+ at XmlType(name="annotation-propertyType", propOrder={"descriptions", "propertyName", "propertyValue"})
 public class AnnotationPropertyMetaData extends NamedMetaDataWithDescriptions
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/CallPropertyMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/CallPropertyMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/CallPropertyMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -23,6 +23,7 @@
 
 // $Id: $
 
+import javax.xml.bind.annotation.XmlType;
 import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
 import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
@@ -33,6 +34,7 @@
  * @author Thomas.Diesler at jboss.org
  * @version $Revision: 66409 $
  */
+ at XmlType(name="call-propertyType", propOrder={"propName", "propValue"})
 public class CallPropertyMetaData extends ParamValueMetaData
 {
    private static final long serialVersionUID = 1;

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossPortComponentRef.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossPortComponentRef.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossPortComponentRef.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -53,7 +53,7 @@
  * @author Scott.Stark at jboss.org
  * @version $Revision$
  */
- at XmlType(name = "port-component-refType")
+ at XmlType(name = "port-component-refType", propOrder={"serviceEndpointInterface", "portQname", "configName", "configFile", "stubProperties", "callProperties"})
 public class JBossPortComponentRef extends PortComponentRef
 {
    private static final long serialVersionUID = 1;

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferenceMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JBossServiceReferenceMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -46,7 +46,8 @@
  * @author Scott.Stark at jboss.org
  * @version $Revision$
  */
- at XmlType(name = "service-refType")
+ at XmlType(name = "jboss-service-refType", propOrder={"serviceRefName", "serviceClass",
+      "serviceQname", "configName", "configFile", "handlerChain", "JBossPortComponentRef", "wsdlOverride"})
 public class JBossServiceReferenceMetaData extends ServiceReferenceMetaData
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JndiRefMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JndiRefMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/jboss/JndiRefMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -31,7 +31,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="jndi-refType")
+ at XmlType(name="jndi-refType", propOrder={"descriptions", "jndiRefName", "jndiName", "mappedName", "injectionTargets", "ignoreDependency"})
 public class JndiRefMetaData extends ResourceInjectionMetaDataWithDescriptions
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AbstractEJBReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AbstractEJBReferenceMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/AbstractEJBReferenceMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -22,6 +22,7 @@
 package org.jboss.metadata.javaee.spec;
 
 import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
 
 import org.jboss.metadata.javaee.support.ResourceInjectionMetaDataWithDescriptions;
 
@@ -100,6 +101,7 @@
     * 
     * @return the type.
     */
+   @XmlTransient
    public String getType()
    {
       if (type == null)

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/DescriptionGroupMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/DescriptionGroupMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/DescriptionGroupMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -33,6 +33,7 @@
 import org.jboss.annotation.javaee.Icons;
 import org.jboss.xb.annotations.JBossXmlConstants;
 import org.jboss.xb.annotations.JBossXmlModelGroup;
+//import org.jboss.xb.annotations.JBossXmlNsPrefix;
 
 /**
  * DescriptionGroupMetaData.
@@ -80,6 +81,7 @@
     * @throws IllegalArgumentException for a null descriptions
     */
    @XmlElement(name="description", type=DescriptionsImpl.class)
+   //@JBossXmlNsPrefix(prefix="jee")
    public void setDescriptions(Descriptions descriptions)
    {
       if (descriptions == null)
@@ -124,6 +126,7 @@
     * @throws IllegalArgumentException for a null displayNames
     */
    @XmlElement(name="display-name", type=DisplayNamesImpl.class)
+   //@JBossXmlNsPrefix(prefix="jee")
    public void setDisplayNames(DisplayNames displayNames)
    {
       if (displayNames == null)
@@ -168,6 +171,7 @@
     * @throws IllegalArgumentException for a null icons
     */
    @XmlElement(name="icon", type=IconsImpl.class)
+   //@JBossXmlNsPrefix(prefix="jee")
    public void setIcons(Icons icons)
    {
       if (icons == null)

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBLocalReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBLocalReferenceMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBLocalReferenceMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -32,7 +32,8 @@
  * @author Scott.Stark at jboss.org
  * @version $Revision: 1.1 $
  */
- at XmlType(name="ejb-local-refType")
+ at XmlType(name="ejb-local-refType", propOrder={"descriptions", "ejbRefName", "ejbRefType", "localHome", "local", "link",
+      "injectionTargets", "jndiName", "mappedName", "localJndiName", "ignoreDependency"})
 public class EJBLocalReferenceMetaData extends AbstractEJBReferenceMetaData implements MergeableMappedMetaData<EJBLocalReferenceMetaData>
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBReferenceMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EJBReferenceMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -34,7 +34,8 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="ejb-refType")
+ at XmlType(name="ejb-refType", propOrder={"descriptions", "ejbRefName", "ejbRefType", "home", "remote", "jndiName", "mappedName",
+      "link", "injectionTargets", "ignoreDependency"})
 public class EJBReferenceMetaData extends AbstractEJBReferenceMetaData implements MergeableMappedMetaData<EJBReferenceMetaData>
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentEntryMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentEntryMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/EnvironmentEntryMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -33,7 +33,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="env-entryType")
+ at XmlType(name="env-entryType", propOrder={"descriptions", "envEntryName", "type", "value", "jndiName", "mappedName", "injectionTargets", "ignoreDependency"})
 public class EnvironmentEntryMetaData extends ResourceInjectionMetaDataWithDescriptions
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -33,7 +33,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="message-destinationType")
+ at XmlType(name="message-destinationType", propOrder={"descriptionGroup", "messageDestinationName", "jndiName", "mappedName"})
 public class MessageDestinationMetaData extends NamedMetaDataWithDescriptionGroup implements MergeableMappedMetaData<MessageDestinationMetaData>
 {
    /** The serialVersionUID */
@@ -87,7 +87,6 @@
     * @param mappedName the mappedName.
     * @throws IllegalArgumentException for a null mappedName
     */
-   //@SchemaProperty(mandatory=false)
    @XmlElement(required=false)
    public void setMappedName(String mappedName)
    {
@@ -112,7 +111,6 @@
     * @param jndiName the jndiName.
     * @throws IllegalArgumentException for a null jndiName
     */
-   //@SchemaProperty(mandatory=false)
    @XmlElement(required=false)
    public void setJndiName(String jndiName)
    {

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationReferenceMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/MessageDestinationReferenceMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -33,7 +33,8 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="message-destination-refType")
+ at XmlType(name="message-destination-refType", propOrder={"descriptions", "messageDestinationRefName", "type",
+      "messageDestinationUsage", "link", "jndiName", "mappedName", "injectionTargets", "ignoreDependency"})
 public class MessageDestinationReferenceMetaData extends ResourceInjectionMetaDataWithDescriptions implements MergeableMappedMetaData<MessageDestinationReferenceMetaData>
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceContextReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceContextReferenceMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceContextReferenceMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -35,7 +35,8 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="persistence-context-refType")
+ at XmlType(name="persistence-context-refType", propOrder={"descriptions", "persistenceContextRefName", "persistenceUnitName",
+      "persistenceContextType", "properties", "jndiName", "mappedName", "injectionTargets", "ignoreDependency"})
 public class PersistenceContextReferenceMetaData extends ResourceInjectionMetaDataWithDescriptions
    implements MergeableMappedMetaData<PersistenceContextReferenceMetaData>
 {

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceUnitReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceUnitReferenceMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/PersistenceUnitReferenceMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -31,8 +31,8 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
-//@SchemaType(name="persistence-unit-refType", mandatory=false)
- at XmlType(name="persistence-unit-refType")
+ at XmlType(name="persistence-unit-refType", propOrder={"descriptions", "persistenceUnitRefName", "persistenceUnitName",
+      "jndiName", "mappedName", "injectionTargets", "ignoreDependency"})
 public class PersistenceUnitReferenceMetaData extends ResourceInjectionMetaDataWithDescriptions
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceEnvironmentReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceEnvironmentReferenceMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceEnvironmentReferenceMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -33,7 +33,7 @@
  * @author <a href="adrian at jboss.com">Adrian Brock</a>
  * @version $Revision: 1.1 $
  */
- at XmlType(name="resource-env-refType")
+ at XmlType(name="resource-env-refType", propOrder={"descriptions", "resourceEnvRefName", "type", "jndiName", "mappedName", "injectionTargets", "ignoreDependency"})
 public class ResourceEnvironmentReferenceMetaData extends ResourceInjectionMetaDataWithDescriptions implements MergeableMappedMetaData<ResourceEnvironmentReferenceMetaData>
 {
    /** The serialVersionUID */

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceInjectionMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceInjectionMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ResourceInjectionMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -57,6 +57,12 @@
       // For serialization
    }
 
+   @XmlTransient
+   public String getName()
+   {
+      return super.getName();
+   }
+   
    /**
     * Get the jndiName.
     * 
@@ -73,7 +79,6 @@
     * @param jndiName the jndiName.
     * @throws IllegalArgumentException for a null jndiName
     */
-   //@SchemaProperty(mandatory=false)
    @XmlElement(required=false)
    public void setJndiName(String jndiName)
    {
@@ -96,7 +101,6 @@
     * @param mappedName the mappedName.
     * @throws IllegalArgumentException for a null mappedName
     */
-   //@SchemaProperty(mandatory=false)
    @XmlElement(required=false)
    //@JBossXmlNsPrefix(prefix="jee", schemaTargetIfNotMapped=true)
    public void setMappedName(String mappedName)
@@ -138,7 +142,6 @@
     * @param injectionTargets the injectionTargets.
     * @throws IllegalArgumentException for a null injectionTargets
     */
-   //@SchemaProperty(name="injection-target", impl=NonNullLinkedHashSet.class, mandatory=false)
    @XmlElement(name="injection-target", /*type=NonNullLinkedHashSet.class,*/ required=false)
    //@JBossXmlNsPrefix(prefix="jee", schemaTargetIfNotMapped=true)
    public void setInjectionTargets(Set<ResourceInjectionTargetMetaData> injectionTargets)
@@ -164,7 +167,6 @@
     * @param ignoreDependency the ignoreDependency.
     * @throws IllegalArgumentException for a null ignoreDependency
     */
-   //@SchemaProperty(mandatory=false)
    @XmlElement(required=false)
    public void setIgnoreDependency(EmptyMetaData ignoreDependency)
    {

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RunAsMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RunAsMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/RunAsMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -21,6 +21,7 @@
 */
 package org.jboss.metadata.javaee.spec;
 
+import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlType;
 
 import org.jboss.metadata.javaee.support.IdMetaDataImplWithDescriptions;
@@ -65,6 +66,7 @@
     * @throws IllegalArgumentException for a null roleName
     */
    //@JBossXmlNsPrefix(prefix="jee")
+   @XmlElement(required=true)
    public void setRoleName(String roleName)
    {
       if (roleName == null)

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/SecurityRoleMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -37,7 +37,7 @@
  * @author Scott.Stark at jboss.org
  * @version $Revision: 1.1 $
  */
- at XmlType(name="security-roleType")
+ at XmlType(name="security-roleType", propOrder={"descriptions", "roleName", "principals"})
 public class SecurityRoleMetaData
    extends NamedMetaDataWithDescriptions
    implements MergeableMappedMetaData<SecurityRoleMetaData>

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/spec/ServiceReferenceMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -248,7 +248,6 @@
     * @param serviceRefType the serviceRefType.
     * @throws IllegalArgumentException for a null serviceRefType
     */
-   //@SchemaProperty(mandatory=false)
    @XmlElement(required=false)
    public void setServiceRefType(String serviceRefType)
    {
@@ -332,7 +331,6 @@
     * @param handlerChains the handlerChains.
     * @throws IllegalArgumentException for a null handlerChains
     */
-   //@SchemaProperty(mandatory=false)
    @XmlElement(required=false)
    public void setHandlerChains(ServiceReferenceHandlerChainsMetaData handlerChains)
    {

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/AbstractMappedMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/AbstractMappedMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/AbstractMappedMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -27,6 +27,8 @@
 import java.util.Map;
 import java.util.Set;
 
+import javax.xml.bind.annotation.XmlTransient;
+
 /**
  * MappedMetaData.
  * 
@@ -210,6 +212,7 @@
       return true;
    }
 
+   @XmlTransient
    public boolean isEmpty()
    {
       if (map == null)

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImplWithDescriptionGroup.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImplWithDescriptionGroup.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/IdMetaDataImplWithDescriptionGroup.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -61,7 +61,6 @@
     * @param descriptionGroup the descriptionGroup.
     * @throws IllegalArgumentException for a null descriptionGroup
     */
-   //@SchemaProperty(noInterceptor=true)
    public void setDescriptionGroup(DescriptionGroupMetaData descriptionGroup)
    {
       if (descriptionGroup == null)

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/MappedMetaDataWithDescriptions.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/MappedMetaDataWithDescriptions.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/MappedMetaDataWithDescriptions.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -26,7 +26,9 @@
 import java.util.Map;
 import java.util.Set;
 
+import javax.xml.bind.annotation.XmlTransient;
 
+
 /**
  * MappedMetaData.
  * 
@@ -146,6 +148,7 @@
       return true;
    }
 
+   @XmlTransient
    public boolean isEmpty()
    {
       return size() == 0;

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/NamedMetaData.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/NamedMetaData.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/NamedMetaData.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -22,6 +22,7 @@
 package org.jboss.metadata.javaee.support;
 
 import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlTransient;
 
 
 /**
@@ -38,6 +39,7 @@
    /** The name */
    private String name;
 
+   @XmlTransient
    public String getKey()
    {
       return getName();
@@ -59,7 +61,6 @@
     * @param name the name.
     * @throws IllegalArgumentException for a null name
     */
-   //@SchemaProperty(mandatory=false)
    @XmlElement(required=false)
    public void setName(String name)
    {

Modified: projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/ResourceInjectionMetaDataWithDescriptionGroup.java
===================================================================
--- projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/ResourceInjectionMetaDataWithDescriptionGroup.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/java/org/jboss/metadata/javaee/support/ResourceInjectionMetaDataWithDescriptionGroup.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -53,7 +53,6 @@
     * @param descriptionGroup the descriptionGroup.
     * @throws IllegalArgumentException for a null descriptionGroup
     */
-   //@SchemaProperty(noInterceptor=true)
    public void setDescriptionGroup(DescriptionGroupMetaData descriptionGroup)
    {
       if (descriptionGroup == null)

Modified: projects/metadata/trunk/src/main/resources/schema/jboss_5_0.xsd
===================================================================
--- projects/metadata/trunk/src/main/resources/schema/jboss_5_0.xsd	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/main/resources/schema/jboss_5_0.xsd	2008-11-02 22:52:19 UTC (rev 80355)
@@ -100,14 +100,17 @@
       </xsd:annotation>
 
       <xsd:sequence>
-         <xsd:group ref="javaee:descriptionGroup"/>
+         <xsd:group ref="jboss:descriptionGroup"/>
          <xsd:element name="loader-repository" type="jboss:loader-repositoryType" minOccurs="0"/>
          <xsd:element name="jmx-name" type="jboss:jmx-nameType" minOccurs="0"/>
+         <xsd:element name="enforce-ejb-restrictions" type="javaee:string" minOccurs="0"/>
          <xsd:element name="security-domain" type="jboss:security-domainType" minOccurs="0"/>
          <xsd:element name="missing-method-permissions-excluded-mode" type="jboss:missing-method-permissions-excluded-modeType" minOccurs="0"/>
          <xsd:element name="unauthenticated-principal" type="jboss:unauthenticated-principalType" minOccurs="0"/>
+         <xsd:element name="exception-on-rollback" type="xsd:boolean" minOccurs="0"/>
          <xsd:element name="jndi-binding-policy" type="jboss:jndi-binding-policyType" minOccurs="0"/>
-         <xsd:element name="webservices" type="jboss:webservices-type" minOccurs="0" maxOccurs="1"/>
+         <xsd:element name="jacc-context-id" type="jboss:jacc-context-idType" minOccurs="0"/>
+         <xsd:element name="webservices" type="jboss:webservicesType" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="enterprise-beans" type="jboss:enterprise-beansType" minOccurs="0"/>
          <xsd:element name="assembly-descriptor" type="jboss:assembly-descriptorType" minOccurs="0"/>
          <xsd:element name="resource-managers" type="jboss:resource-managersType" minOccurs="0"/>
@@ -120,6 +123,7 @@
                schema. </xsd:documentation>
          </xsd:annotation>
       </xsd:attribute>
+      <xsd:attribute name="metadata-complete" type="xsd:boolean"/>
       <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>
      
@@ -138,7 +142,7 @@
       <xsd:sequence>
          <xsd:element name="security-role" type="jboss:security-roleType" minOccurs="0"
                       maxOccurs="unbounded"/>
-         <xsd:element name="message-destination" type="jboss:jboss-message-destinationType"
+         <xsd:element name="message-destination" type="jboss:message-destinationType"
                       minOccurs="0" maxOccurs="unbounded"/>
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID"/>
@@ -159,6 +163,17 @@
 
    <!-- **************************************************** -->
 
+   <xsd:complexType name="jacc-context-idType">
+      <xsd:annotation>
+         <xsd:documentation></xsd:documentation>
+      </xsd:annotation>
+      <xsd:simpleContent>
+         <xsd:restriction base="javaee:string"/>
+      </xsd:simpleContent>
+   </xsd:complexType>
+
+   <!-- **************************************************** -->
+
    <xsd:complexType name="security-domainType">
       <xsd:annotation>
          <xsd:documentation> The security-domain element specifies the JNDI name of the security
@@ -381,7 +396,7 @@
                <xsd:field xpath="javaee:env-entry-name"/>
             </xsd:unique>
          </xsd:element>
-         <xsd:element name="service" type="jboss:jboss-service-beanType"> </xsd:element>
+         <xsd:element name="service" type="jboss:service-beanType"> </xsd:element>
          <xsd:element name="consumer" type="jboss:consumer-beanType"> </xsd:element>
          <!-- For generic ejb -->
          <xsd:element name="ejb" type="jboss:generic-beanType"/>
@@ -400,7 +415,7 @@
       </xsd:annotation>
 
       <xsd:sequence>
-         <xsd:group ref="javaee:descriptionGroup"/>
+         <xsd:group ref="jboss:descriptionGroup"/>
          <xsd:element name="ejb-name" type="javaee:ejb-nameType"/>
          <xsd:element name="destination-jndi-name" type="jboss:destination-jndi-nameType"
                       minOccurs="0"/>
@@ -410,8 +425,13 @@
          <xsd:element name="mdb-passwd" type="jboss:mdb-passwdType" minOccurs="0"/>
          <xsd:element name="mdb-client-id" type="jboss:mdb-client-idType" minOccurs="0"/>
          <xsd:element name="mdb-subscription-id" type="jboss:mdb-subscription-idType" minOccurs="0"/>
-         <xsd:element name="resource-adapter-name" type="jboss:resource-adapter-nameType"
-                      minOccurs="0"/>
+         <xsd:element name="resource-adapter-name" type="jboss:resource-adapter-nameType" minOccurs="0"/>
+         <xsd:element name="exception-on-rollback" type="xsd:boolean" minOccurs="0"/>
+         <xsd:element name="timer-persistence" type="xsd:boolean" minOccurs="0"/>
+         <xsd:element name="configuration-name" type="javaee:string" minOccurs="0"/>
+         <xsd:element name="invoker-bindings" type="jboss:invoker-bindingsType" minOccurs="0"/>
+         <xsd:element name="security-proxy" type="javaee:string" minOccurs="0"/>
+
          <xsd:element name="ejb-ref" type="jboss:ejb-refType" minOccurs="0"
                       maxOccurs="unbounded"/>
          <xsd:element name="ejb-local-ref" type="jboss:ejb-local-refType" minOccurs="0"
@@ -425,13 +445,20 @@
                       maxOccurs="unbounded"/>
          <xsd:element name="message-destination-ref" type="jboss:message-destination-refType"
                       minOccurs="0" maxOccurs="unbounded"/>
+
+         <xsd:element name="security-identity" type="jboss:security-identityType" minOccurs="0" maxOccurs="1"/>
+         <xsd:element name="security-domain" type="jboss:security-domainType" minOccurs="0"/>
+         <xsd:element name="method-attributes" type="jboss:method-attributesType" minOccurs="0"/>
          <xsd:element name="depends" type="jboss:dependsType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="ior-security-config" type="jboss:ior-security-configType" minOccurs="0"/>
+         <xsd:element name="ejb-timeout-identity" type="jboss:security-identityType" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="annotation" type="jboss:annotationType" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="ignore-dependency" type="jboss:ignore-dependencyType" minOccurs="0"/>
          <xsd:element name="aop-domain-name" type="jboss:aop-domain-nameType" minOccurs="0"/>
          <xsd:element name="pool-config" type="jboss:pool-configType" minOccurs="0"/>
          <xsd:element name="jndi-ref" type="jboss:jndi-refType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="default-activation-config" type="jboss:default-activation-configType" minOccurs="0"/>
+         <xsd:element name="activation-config" type="jboss:activation-configType" minOccurs="0"/>
+         <xsd:element name="default-activation-config" type="jboss:activation-configType" minOccurs="0"/>
          <xsd:element name="create-destination" type="xsd:boolean" minOccurs="0"/>
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID"/>
@@ -504,7 +531,7 @@
 
    <!-- **************************************************** -->
 
-   <xsd:complexType name="default-activation-configType">
+   <xsd:complexType name="activation-configType">
       <xsd:annotation>
          <xsd:documentation>
 
@@ -529,7 +556,7 @@
                       minOccurs="0"
                       maxOccurs="unbounded"/>
          <xsd:element name="default-activation-config-property"
-                      type="jboss:default-activation-config-propertyType"
+                      type="jboss:activation-config-propertyType"
                       maxOccurs="unbounded"/>
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID"/>
@@ -537,7 +564,7 @@
 
    <!-- **************************************************** -->
 
-   <xsd:complexType name="default-activation-config-propertyType">
+   <xsd:complexType name="activation-config-propertyType">
       <xsd:annotation>
          <xsd:documentation>
 
@@ -671,8 +698,9 @@
 
       <xsd:sequence>
          <xsd:element name="method-name" type="javaee:method-nameType"/>
+         <xsd:element name="read-only" type="xsd:boolean" minOccurs="0"/>
+         <xsd:element name="idempotant" type="xsd:boolean" minOccurs="0"/>
          <xsd:element name="transaction-timeout" type="jboss:transaction-timeoutType" minOccurs="0"/>
-
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>
@@ -771,7 +799,7 @@
          <xsd:element name="aop-domain-name" type="jboss:aop-domain-nameType" minOccurs="0"/>
          <xsd:element name="pool-config" type="jboss:pool-configType" minOccurs="0"/>
          <xsd:element name="jndi-ref" type="jboss:jndi-refType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="default-activation-config" type="jboss:default-activation-configType" minOccurs="0"/>
+         <xsd:element name="default-activation-config" type="jboss:activation-configType" minOccurs="0"/>
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>
@@ -789,7 +817,7 @@
 
    <!-- **************************************************** -->
 
-   <xsd:complexType name="jboss-service-beanType">
+   <xsd:complexType name="service-beanType">
       <xsd:annotation>
          <xsd:documentation> The service element holds all of the information specific about a service
             bean which is a JBoss proprietary extension to EJB3 creating multithreaded, singleton
@@ -920,15 +948,23 @@
       </xsd:annotation>
 
       <xsd:sequence>
+         <xsd:group ref="jboss:descriptionGroup"/>
          <xsd:element name="ejb-name" type="javaee:ejb-nameType"/>
          <xsd:element name="mapped-name" type="javaee:xsdStringType" minOccurs="0"/>
          <xsd:group ref="jboss:jndiEnvironmentRefsGroup"/>
          <xsd:element name="security-identity" type="javaee:security-identityType" minOccurs="0"/>
          <xsd:element name="local-binding" type="jboss:local-bindingType" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="remote-binding" type="jboss:remote-bindingType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="business-local" type="javaee:string" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="business-remote" type="javaee:string" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
          <xsd:element name="home-jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
          <xsd:element name="call-by-value" type="xsd:boolean" minOccurs="0"/>
+         <xsd:element name="exception-on-rollback" type="xsd:boolean" minOccurs="0"/>
+         <xsd:element name="timer-persistence" type="xsd:boolean" minOccurs="0"/>
+         <xsd:element name="configuration-name" type="javaee:string" minOccurs="0"/>
+         <xsd:element name="invoker-bindings" type="jboss:invoker-bindingsType" minOccurs="0"/>
+         <xsd:element name="security-proxy" type="javaee:string" minOccurs="0"/>
          <xsd:element name="local-jndi-name" type="jboss:local-jndi-nameType" minOccurs="0"/>
          <xsd:element name="local-home-jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
          <xsd:element name="jndi-binding-policy" type="jboss:jndi-binding-policyType" minOccurs="0"/>
@@ -944,8 +980,9 @@
          <xsd:element name="pool-config" type="jboss:pool-configType" minOccurs="0"/>
          <xsd:element name="concurrent" type="jboss:concurrentType" minOccurs="0"/>
          <xsd:element name="jndi-ref" type="jboss:jndi-refType" minOccurs="0" maxOccurs="unbounded"/>
-         <xsd:element name="port-component" type="jboss:port-component-type" minOccurs="0" maxOccurs="1"/>
-         <xsd:element name="ior-security-config" type="jboss:ior-security-config-type" minOccurs="0"/>
+         <xsd:element name="port-component" type="jboss:port-componentType" minOccurs="0" maxOccurs="1"/>
+         <xsd:element name="ejb-timeout-identity" type="jboss:security-identityType" minOccurs="0" maxOccurs="1"/>
+         <xsd:element name="ior-security-config" type="jboss:ior-security-configType" minOccurs="0"/>
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>
@@ -980,7 +1017,7 @@
             </xsd:annotation>
          </xsd:element>
 
-         <xsd:group ref="javaee:resourceGroup"/>
+         <xsd:group ref="jboss:resourceGroup"/>
 
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID"/>
@@ -988,6 +1025,61 @@
 
    <!-- **************************************************** -->
 
+   <xsd:complexType name="invoker-bindingsType">
+      <xsd:annotation>
+         <xsd:documentation>
+            <![CDATA[
+          Lists invoker proxy bindings for EJB2 container
+	    ]]>
+         </xsd:documentation>
+      </xsd:annotation>
+
+      <xsd:sequence>
+         <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="invoker" type="jboss:invokerType" minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:sequence>
+      <xsd:attribute name="id" type="xsd:ID"/>
+   </xsd:complexType>
+
+   <!-- **************************************************** -->
+
+   <xsd:complexType name="invokerType">
+      <xsd:annotation>
+         <xsd:documentation>
+            <![CDATA[
+          Describes invoker proxy binding for EJB2 container
+	    ]]>
+         </xsd:documentation>
+      </xsd:annotation>
+
+      <xsd:sequence>
+         <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="invoker-proxy-binding-name" type="javaee:string" minOccurs="1"/>
+         <xsd:element name="jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
+         <xsd:element name="ejb-ref" type="jboss:invoker-ejb-refType" minOccurs="0" maxOccurs="unbounded"/>
+      </xsd:sequence>
+      <xsd:attribute name="id" type="xsd:ID"/>
+   </xsd:complexType>
+
+   <!-- **************************************************** -->
+
+   <xsd:complexType name="invoker-ejb-refType">
+      <xsd:annotation>
+         <xsd:documentation>
+            <![CDATA[
+          Describes ejb-ref for invoker proxy binding for EJB2 container
+	    ]]>
+         </xsd:documentation>
+      </xsd:annotation>
+
+      <xsd:sequence>
+         <xsd:element name="ejb-ref-name" type="javaee:string" minOccurs="1"/>
+         <xsd:element name="jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
+      </xsd:sequence>
+   </xsd:complexType>
+
+   <!-- **************************************************** -->
+
    <xsd:complexType name="concurrentType">
       <xsd:annotation>
          <xsd:documentation> Set on a stateful bean.  Instead of throwing an exception on concurrent access to the stateful bean,
@@ -1061,6 +1153,7 @@
          <xsd:element name="remove-timeout-seconds" type="jboss:remove-timeout-secondsType" minOccurs="0"/>
          <xsd:element name="cache-name" type="jboss:cache-nameType" minOccurs="0"/>
          <xsd:element name="persistence-manager" type="jboss:persistence-managerType" minOccurs="0"/>
+         <xsd:element name="replication-is-passivation" type="jboss:replication-is-passivationType" minOccurs="0"/>
       </xsd:sequence>
    </xsd:complexType>
 
@@ -1077,6 +1170,17 @@
 
    <!-- **************************************************** -->
 
+   <xsd:complexType name="replication-is-passivationType">
+      <xsd:annotation>
+         <xsd:documentation></xsd:documentation>
+      </xsd:annotation>
+      <xsd:simpleContent>
+         <xsd:restriction base="javaee:string"/>
+      </xsd:simpleContent>
+   </xsd:complexType>
+
+   <!-- **************************************************** -->
+
    <xsd:complexType name="cache-valueType">
       <xsd:annotation>
          <xsd:documentation>The value of the cache</xsd:documentation>
@@ -1170,6 +1274,7 @@
          <xsd:documentation> The ignore-dependency element removes an injection dependency</xsd:documentation>
       </xsd:annotation>
       <xsd:sequence>
+         <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="injection-target" type="jboss:injection-targetType" maxOccurs="unbounded"/>
       </xsd:sequence>
    </xsd:complexType>
@@ -1231,6 +1336,7 @@
          </xsd:documentation>
       </xsd:annotation>
       <xsd:sequence>
+         <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
          <xsd:element name="client-bind-url" type="jboss:client-bind-urlType" minOccurs="0"/>
          <xsd:element name="interceptor-stack" type="jboss:interceptor-stackType" minOccurs="0"/>
@@ -1261,15 +1367,13 @@
       </xsd:annotation>
       
       <xsd:sequence>
-         <xsd:element name="description" type="javaee:descriptionType" minOccurs="0"
-                      maxOccurs="unbounded"/>
+         <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="ejb-ref-name" type="javaee:ejb-ref-nameType" minOccurs="0"/>
          <xsd:element name="ejb-ref-type" type="javaee:ejb-ref-typeType" minOccurs="0"/>
          <xsd:element name="home" type="javaee:homeType" minOccurs="0"/>
          <xsd:element name="remote" type="javaee:remoteType" minOccurs="0"/>
          <xsd:element name="ejb-link" type="javaee:ejb-linkType" minOccurs="0"/>
          <xsd:group ref="jboss:resourceGroup"/>
-         <xsd:element name="ignore-dependency" type="javaee:emptyType" minOccurs="0"/>
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID"/>
       
@@ -1302,23 +1406,27 @@
          <xsd:element name="local-home" type="javaee:local-homeType" minOccurs="0"/>
          <xsd:element name="local" type="javaee:localType" minOccurs="0"/>
          <xsd:element name="ejb-link" type="javaee:ejb-linkType" minOccurs="0"/>
+         <xsd:element name="local-jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
          <xsd:group ref="jboss:resourceGroup"/>
-         <xsd:element name="ignore-dependency" type="javaee:emptyType" minOccurs="0"/>
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>
 
    <!-- **************************************************** -->
 
-   <xsd:complexType name="jboss-message-destinationType">
+   <xsd:complexType name="message-destinationType">
       <xsd:annotation>
          <xsd:documentation> The message-destination element is used to configure the jndi-name for a
             message-destination in ejb-jar.xml Used in: assembly-descriptor </xsd:documentation>
       </xsd:annotation>
 
       <xsd:sequence>
+         <xsd:group ref="jboss:descriptionGroup"/>
          <xsd:element name="message-destination-name" type="javaee:xsdStringType"/>
-         <xsd:element name="jndi-name" type="javaee:xsdStringType"/>
+         <xsd:choice>
+            <xsd:element name="jndi-name" type="javaee:xsdStringType"/>
+            <xsd:element name="mapped-name" type="javaee:xsdStringType"/>
+         </xsd:choice>
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>
@@ -1367,6 +1475,8 @@
             type="jboss:injection-targetType" minOccurs="0"
             maxOccurs="unbounded" />
          
+         <xsd:element name="ignore-dependency" type="jboss:ignore-dependencyType" minOccurs="0"/>
+
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID"/>
    </xsd:complexType>
@@ -1393,13 +1503,14 @@
 
    <!-- **************************************************** -->
 
-   <xsd:complexType name="webservices-type">
+   <xsd:complexType name="webservicesType">
       <xsd:sequence>
-         <xsd:element name="webservice-description" type="jboss:webservice-description-type" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="contextRoot" type="javaee:string" minOccurs="0"/>
+         <xsd:element name="webservice-description" type="jboss:webservice-descriptionType" minOccurs="0" maxOccurs="unbounded"/>
       </xsd:sequence>
    </xsd:complexType>
 
-   <xsd:complexType name="webservice-description-type">
+   <xsd:complexType name="webservice-descriptionType">
       <xsd:annotation>
          <xsd:documentation>
             <![CDATA[
@@ -1412,12 +1523,14 @@
       </xsd:annotation>
       <xsd:sequence>
          <xsd:element name="webservice-description-name" type="xsd:string"/>
+         <xsd:element name="config-name" type="xsd:string" minOccurs="0"/>
+         <xsd:element name="config-file" type="xsd:string" minOccurs="0"/>
          <xsd:element name="wsdl-publish-location" type="xsd:string" minOccurs="0" maxOccurs="1"/>
       </xsd:sequence>
    </xsd:complexType>
 
 
-   <xsd:complexType name="port-component-type">
+   <xsd:complexType name="port-componentType">
       <xsd:annotation>
          <xsd:documentation>
             <![CDATA[
@@ -1490,7 +1603,7 @@
          <xsd:element name="config-name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="config-file" type="xsd:string" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="handler-chain" type="xsd:string" minOccurs="0" maxOccurs="1"/>
-         <xsd:element name="port-component-ref" type="jboss:port-component-ref-type" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="port-component-ref" type="jboss:port-component-refType" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="wsdl-override" type="xsd:string" minOccurs="0" maxOccurs="1"/>
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID"/>
@@ -1512,33 +1625,42 @@
      selection, it must not appear in more than one port-component-ref entry
      within the same service-ref.
    -->
-   <xsd:complexType name="port-component-ref-type">
+   <xsd:complexType name="port-component-refType">
       <xsd:sequence>
          <xsd:element name="service-endpoint-interface" type="xsd:string" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="port-qname" type="xsd:string" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="config-name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="config-file" type="xsd:string" minOccurs="0" maxOccurs="1"/>
-         <xsd:element name="stub-property" type="jboss:stub-property-type" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="stub-property" type="jboss:stub-propertyType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="call-property" type="jboss:call-propertyType" minOccurs="0" maxOccurs="unbounded"/>
       </xsd:sequence>
    </xsd:complexType>
 
-   <xsd:complexType name="stub-property-type">
+   <xsd:complexType name="stub-propertyType">
       <xsd:sequence>
          <xsd:element name="prop-name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="prop-value" type="xsd:string" minOccurs="0" maxOccurs="1"/>
       </xsd:sequence>
    </xsd:complexType>
 
+   <xsd:complexType name="call-propertyType">
+      <xsd:sequence>
+         <xsd:element name="prop-name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+         <xsd:element name="prop-value" type="xsd:string" minOccurs="0" maxOccurs="1"/>
+      </xsd:sequence>
+   </xsd:complexType>
+
    <!-- **************************************************** -->
 
    <!--
    ior-security-config element describes the security configuration information for the IOR.
    -->
-   <xsd:complexType name="ior-security-config-type">
+   <xsd:complexType name="ior-security-configType">
       <xsd:sequence>
+         <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="transport-config" type="jboss:transport-config-type" minOccurs="0" maxOccurs="1"/>
-         <xsd:element name="as-context" type="jboss:as-context-type" minOccurs="0" maxOccurs="1"/>
-         <xsd:element name="sas-context" type="jboss:sas-context-type" minOccurs="0" maxOccurs="1"/>
+         <xsd:element name="as-context" type="jboss:as-contextType" minOccurs="0" maxOccurs="1"/>
+         <xsd:element name="sas-context" type="jboss:sas-contextType" minOccurs="0" maxOccurs="1"/>
       </xsd:sequence>
    </xsd:complexType>
 
@@ -1561,8 +1683,9 @@
 mechanism that will be used to authenticate the client. If specified it will be the
 username-password mechanism.
 -->
-   <xsd:complexType name="as-context-type">
+   <xsd:complexType name="as-contextType">
       <xsd:sequence>
+         <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded" />
          <xsd:element name="auth-method" type="xsd:string"/>
          <xsd:element name="realm" type="xsd:string"/>
          <xsd:element name="required" type="xsd:string"/>
@@ -1573,8 +1696,9 @@
 sas-context (related to CSIv2 security attribute service) element describes
 the sas-context fields.
 -->
-   <xsd:complexType name="sas-context-type">
+   <xsd:complexType name="sas-contextType">
       <xsd:sequence>
+         <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="caller-propagation" type="xsd:string"/>
       </xsd:sequence>
    </xsd:complexType>
@@ -1609,6 +1733,7 @@
       </xsd:annotation>
 
       <xsd:sequence>
+         <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="resource-manager" type="jboss:resource-managerType" minOccurs="0"
                       maxOccurs="unbounded"/>
       </xsd:sequence>
@@ -1627,6 +1752,7 @@
       </xsd:annotation>
 
       <xsd:sequence>
+         <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="res-name" type="javaee:xsdStringType"/>
          <xsd:choice>
             <xsd:element name="res-jndi-name" type="javaee:xsdStringType"/>
@@ -1795,15 +1921,31 @@
 
    <xsd:complexType name="generic-beanType">
       <xsd:sequence>
-         <xsd:group ref="javaee:descriptionGroup"/>
+         <xsd:group ref="jboss:descriptionGroup"/>
          <xsd:element name="ejb-name" type="javaee:ejb-nameType"/>
+         <xsd:element name="mapped-name" type="javaee:jndi-nameType" minOccurs="0"/>
          <xsd:group ref="jboss:jndiEnvironmentRefsGroup"/>
          <xsd:element name="security-identity" type="jboss:security-identityType" minOccurs="0"/>
          <xsd:element name="jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
+         <xsd:element name="home-jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
+         <xsd:element name="exception-on-rollback" type="xsd:boolean" minOccurs="0"/>
+         <xsd:element name="timer-persistence" type="xsd:boolean" minOccurs="0"/>
+         <xsd:element name="configuration-name" type="javaee:string" minOccurs="0"/>
+         <xsd:element name="invoker-bindings" type="jboss:invoker-bindingsType" minOccurs="0"/>
+         <xsd:element name="security-proxy" type="javaee:string" minOccurs="0"/>
          <xsd:element name="local-jndi-name" type="jboss:local-jndi-nameType" minOccurs="0"/>
          <xsd:element name="local-home-jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
          <xsd:element name="jndi-binding-policy" type="jboss:jndi-binding-policyType" minOccurs="0"/>
-         <xsd:element name="port-component" type="jboss:port-component-type" minOccurs="0" maxOccurs="1"/>
+         <xsd:element name="security-domain" type="jboss:security-domainType" minOccurs="0"/>
+         <xsd:element name="method-attributes" type="jboss:method-attributesType" minOccurs="0"/>
+         <xsd:element name="depends" type="jboss:dependsType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="annotation" type="jboss:annotationType" minOccurs="0"/>
+         <xsd:element name="ignore-dependency" type="jboss:ignore-dependencyType" minOccurs="0"/>
+         <xsd:element name="aop-domain-name" type="jboss:aop-domain-nameType" minOccurs="0"/>
+         <xsd:element name="pool-config" type="jboss:pool-configType" minOccurs="0"/>
+         <xsd:element name="jndi-ref" type="jboss:jndi-refType" minOccurs="0" maxOccurs="unbounded"/>
+         <xsd:element name="port-component" type="jboss:port-componentType" minOccurs="0" maxOccurs="1"/>
+         <xsd:element name="ior-security-config" type="jboss:ior-security-configType" minOccurs="0"/>
       </xsd:sequence>
    </xsd:complexType>
    
@@ -1960,22 +2102,18 @@
       <xsd:sequence>
          <!-- In jboss xml we allow the use of jndi-name instead of mapped-name -->
          <xsd:choice>
-            <xsd:element name="jndi-name" type="javaee:jndi-nameType"
-               minOccurs="0" />
-            <xsd:element name="mapped-name" type="javaee:xsdStringType"
-               minOccurs="0" />
+            <xsd:element name="jndi-name" type="javaee:jndi-nameType" minOccurs="0" />
+            <xsd:element name="mapped-name" type="javaee:xsdStringType" minOccurs="0" />
          </xsd:choice>
-         <xsd:element name="injection-target"
-            type="jboss:injection-targetType" minOccurs="0"
-            maxOccurs="unbounded" />
+         <xsd:element name="injection-target" type="jboss:injection-targetType" minOccurs="0" maxOccurs="unbounded" />
+         <xsd:element name="ignore-dependency" type="jboss:ignore-dependencyType" minOccurs="0"/>
       </xsd:sequence>
    </xsd:group>
 
    <!-- Bring run-asType into jboss namespace -->
    <xsd:complexType name="run-asType">
       <xsd:sequence>
-         <xsd:element name="description" type="javaee:descriptionType"
-            minOccurs="0" maxOccurs="unbounded" />
+         <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded" />
          <xsd:element name="role-name" type="javaee:role-nameType" />
       </xsd:sequence>
       <xsd:attribute name="id" type="xsd:ID" />

Modified: projects/metadata/trunk/src/test/java/org/jboss/test/metadata/binding/SchemaBindingValidationUnitTestCase.java
===================================================================
--- projects/metadata/trunk/src/test/java/org/jboss/test/metadata/binding/SchemaBindingValidationUnitTestCase.java	2008-11-02 22:50:00 UTC (rev 80354)
+++ projects/metadata/trunk/src/test/java/org/jboss/test/metadata/binding/SchemaBindingValidationUnitTestCase.java	2008-11-02 22:52:19 UTC (rev 80355)
@@ -23,13 +23,17 @@
 
 import java.io.IOException;
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 import javax.xml.namespace.QName;
 
-import junit.framework.TestCase;
-
 import org.apache.xerces.xs.XSAttributeDeclaration;
 import org.apache.xerces.xs.XSAttributeUse;
 import org.apache.xerces.xs.XSComplexTypeDefinition;
@@ -38,6 +42,7 @@
 import org.apache.xerces.xs.XSModel;
 import org.apache.xerces.xs.XSModelGroup;
 import org.apache.xerces.xs.XSNamedMap;
+import org.apache.xerces.xs.XSObject;
 import org.apache.xerces.xs.XSObjectList;
 import org.apache.xerces.xs.XSParticle;
 import org.apache.xerces.xs.XSSimpleTypeDefinition;
@@ -45,6 +50,8 @@
 import org.apache.xerces.xs.XSTypeDefinition;
 import org.apache.xerces.xs.XSWildcard;
 import org.jboss.metadata.ejb.jboss.JBoss50MetaData;
+import org.jboss.metadata.javaee.spec.JavaEEMetaDataConstants;
+import org.jboss.test.BaseTestCase;
 import org.jboss.xb.binding.Constants;
 import org.jboss.xb.binding.Util;
 import org.jboss.xb.binding.sunday.unmarshalling.AllBinding;
@@ -70,8 +77,58 @@
  * @author <a href="alex at jboss.com">Alexey Loubyansky</a>
  * @version $Revision: 1.1 $
  */
-public class SchemaBindingValidationUnitTestCase extends TestCase
+public class SchemaBindingValidationUnitTestCase extends BaseTestCase
 {
+   private static final Set<QName> IGNORED_TYPES;
+   static
+   {
+      // TODO review ignored types
+      IGNORED_TYPES = new HashSet<QName>();
+      // the issue with container-configurations and invoker-proxy-bindings
+      IGNORED_TYPES.add(new QName(JavaEEMetaDataConstants.JBOSS_NS, "jbossType"));
+      // the issue with the subset of the jndi env reference group
+      IGNORED_TYPES.add(new QName(JavaEEMetaDataConstants.JBOSS_NS, "message-driven-beanType"));
+   }
+   
+   private static final Set<String> IGNORED_NS;
+   static
+   {
+      IGNORED_NS = new HashSet<String>();
+      IGNORED_NS.add(Constants.NS_XML_SCHEMA);
+   }
+
+   private static final QName WILDCARD = new QName("wildcard", "wildcard"); 
+   
+   private boolean trace;
+   private Set<QName> validatedTypes;
+   private Set<QName> validatedElements;
+      
+   public SchemaBindingValidationUnitTestCase(String name)
+   {
+      super(name);
+   }
+   
+   public void setUp() throws Exception
+   {
+      super.setUp();
+      trace = getLog().isTraceEnabled();
+      validatedTypes = new HashSet<QName>();
+      validatedElements = new HashSet<QName>();
+   }
+   
+   public void tearDown() throws Exception
+   {
+      super.tearDown();
+      validatedTypes = null;
+      validatedElements = null;
+   }
+   
+   public void configureLogging()
+   {
+      super.configureLogging();
+      enableTrace(getClass().getName());
+   }
+   
    public void testJBoss50() throws Exception
    {
       assertEquivalent("jboss_5_0.xsd", JBoss50MetaData.class);
@@ -79,6 +136,9 @@
 
    public void assertEquivalent(String xsdName, Class<?> cls) throws IOException
    {
+      if(trace)
+         log.trace("assertEquivalent: " + xsdName + ", " + cls);
+      
       URL xsdUrl = Thread.currentThread().getContextClassLoader().getResource("schema/" + xsdName);
       assertNotNull(xsdUrl);
 
@@ -91,7 +151,7 @@
       assertEquivalent(xsModel, binding);
    }
 
-   public static void assertEquivalent(XSModel xsSchema, SchemaBinding schemaBinding)
+   public void assertEquivalent(XSModel xsSchema, SchemaBinding schemaBinding)
    {
       /* TODO groups are not properly bound
       XSNamedMap groups = xsSchema.getComponents(XSConstants.MODEL_GROUP_DEFINITION);
@@ -143,12 +203,15 @@
             
             if(!ignoreIfNotFound)
             {
-/*               for(Iterator<TypeBinding> iter = schemaBinding.getTypes(); iter.hasNext();)
+               if(trace)
                {
-                  TypeBinding type = iter.next();
-                  System.out.println(type.getQName());
+                  log.trace("SchemaBinding global types: ");
+                  for (Iterator<TypeBinding> iter = schemaBinding.getTypes(); iter.hasNext();)
+                  {
+                     TypeBinding type = iter.next();
+                     log.trace("- " + type.getQName());
+                  }
                }
-*/
                fail("Type " + typeQName + " defined in schema binding.");
             }
          }
@@ -168,21 +231,36 @@
       }
    }
 
-   public static void assertEquivalent(XSElementDeclaration xsElement, ElementBinding elementBinding)
-   {
+   public void assertEquivalent(XSElementDeclaration xsElement, ElementBinding elementBinding)
+   {      
       QName xsQName = new QName(xsElement.getNamespace(), xsElement.getName());
       assertEquals("ElementBinding QName.", xsQName, elementBinding.getQName());
+      
+      if(trace)
+         log.trace("assertEquivalent elements: " + xsQName);
+      
+      if(validatedElements.contains(xsQName))
+         return;
+      validatedElements.add(xsQName);
+
       assertEquivalent(xsElement.getTypeDefinition(), elementBinding.getType());
    }
 
-   public static void assertEquivalent(XSTypeDefinition xsType, TypeBinding typeBinding)
+   public void assertEquivalent(XSTypeDefinition xsType, TypeBinding typeBinding)
    {
       if(xsType.getName() == null)
          assertNull("TypeBinding is anonymous.", typeBinding.getQName());
       else
       {
+         if(IGNORED_NS.contains(xsType.getNamespace()))
+            return;
+         
          QName xsQName = new QName(xsType.getNamespace(), xsType.getName());
          assertEquals("TypeBinding QName.", xsQName, typeBinding.getQName());
+         
+         if(validatedTypes.contains(xsQName) || IGNORED_TYPES.contains(xsQName))
+            return;
+         validatedTypes.add(xsQName);
       }
       
       if(xsType.getTypeCategory() == XSTypeDefinition.SIMPLE_TYPE)
@@ -201,11 +279,13 @@
       // TODO the rest of the simple type stuff?
    }
 
-   public static void assertEquivalent(XSComplexTypeDefinition xsType, TypeBinding typeBinding)
+   public void assertEquivalent(XSComplexTypeDefinition xsType, TypeBinding typeBinding)
    {
-      //System.out.println("assert complex type: " + typeBinding.getQName());
-
       QName xsQName = xsType.getName() == null ? null : new QName(xsType.getNamespace(), xsType.getName());
+      
+      if(trace)
+         log.trace("assertEquivalent complex types: " + xsQName);
+         
       assertEquals("Complex type is " + (xsType == null ? "anonymous" : "named '" + xsQName + "'"), xsQName, typeBinding.getQName());
 
       XSObjectList xsAttrUses = xsType.getAttributeUses();
@@ -247,38 +327,65 @@
       }
    }
    
-   public static void assertEquivalent(XSParticle xsParticle, ParticleBinding particleBinding)
+   public void assertEquivalent(XSParticle xsParticle, ParticleBinding particleBinding)
    {
-      assertEquals("ParticleBinding min occurs.", xsParticle.getMinOccurs(), particleBinding.getMinOccurs());
-      
-      if(xsParticle.getMaxOccursUnbounded())
-         assertTrue("ParticleBinding has max occurs unbounded.", particleBinding.getMaxOccursUnbounded());
-      else
-         assertEquals("ParticleBinding max occurs.", xsParticle.getMaxOccurs(), particleBinding.getMaxOccurs());
-      
       XSTerm xsTerm = xsParticle.getTerm();
       TermBinding termBinding = particleBinding.getTerm();
       assertNotNull("Particle binding has a term", termBinding);
       short xsTermType = xsTerm.getType();
+      String termStr = null;
       if(xsTermType == XSConstants.MODEL_GROUP)
       {
+         termStr = "sequence";
+         XSModelGroup xsModelGroup = (XSModelGroup)xsTerm;
+         short xsModelGroupCompositor = (xsModelGroup).getCompositor();
+         if(XSModelGroup.COMPOSITOR_CHOICE == xsModelGroupCompositor)
+            termStr = "choice";
+         else if(XSModelGroup.COMPOSITOR_ALL == xsModelGroupCompositor)
+            termStr = "all";
+
          if(!termBinding.isModelGroup())
          {
-            String groupType = "sequence";
-            short xsModelGroupCompositor = ((XSModelGroup)xsTerm).getCompositor();
-            if(XSModelGroup.COMPOSITOR_CHOICE == xsModelGroupCompositor)
-               groupType = "choice";
-            else if(XSModelGroup.COMPOSITOR_ALL == xsModelGroupCompositor)
-               groupType = "all";
-            fail("TermBinding expected to be a " + groupType + " but was " + termBinding);
+            // TODO review this
+            // let's see whether it's wrapped
+            if(xsModelGroup.getParticles().getLength() == 1)
+            {
+               XSParticle xsWrappedParticle = (XSParticle) xsModelGroup.getParticles().item(0);
+               assertEquivalent(xsWrappedParticle, particleBinding);
+            }
+            else
+               fail("TermBinding expected to be a " + termStr + " but was " + termBinding);
          }
-         assertEquivalent((XSModelGroup) xsTerm, (ModelGroupBinding) termBinding);
+         else
+            assertEquivalent(xsModelGroup, (ModelGroupBinding) termBinding);
       }
       else if(xsTermType == XSConstants.ELEMENT_DECLARATION)
       {
          XSElementDeclaration xsElement = (XSElementDeclaration) xsTerm;
          QName xsElementName = new QName(xsElement.getNamespace(), xsElement.getName());
-         assertTrue("TermBinding expected to be an element " + xsElementName + " but was " + termBinding, termBinding.isElement());         
+         termStr = xsElementName.toString();
+         
+         if(!termBinding.isElement())
+         {
+            // TODO sometimes XB wraps (maybe unnecessarily) repeatable elements into a sequence.
+            // the same xml structure can be described differently in xsd
+            if (/*(xsParticle.getMaxOccursUnbounded() || xsParticle.getMaxOccurs() > 1) &&*/
+                  termBinding instanceof SequenceBinding)
+            {
+               SequenceBinding seq = (SequenceBinding) termBinding;
+               Collection<ParticleBinding> particles = seq.getParticles();
+               if(particles.size() == 1)
+               {
+                  ParticleBinding particle = particles.iterator().next();
+                  if(particle.getTerm().isElement())
+                  {
+                     particleBinding = particle;
+                     termBinding = particle.getTerm();
+                  }
+               }
+            }
+            assertTrue("TermBinding expected to be an element " + termStr + " but was " + termBinding, termBinding.isElement());
+         }
       }
       else if(xsTermType == XSConstants.WILDCARD)
       {
@@ -286,43 +393,238 @@
          XSWildcard xsWildcard = (XSWildcard) xsTerm;
          WildcardBinding wildcardBinding = (WildcardBinding) termBinding;
          assertEquals("WildcardBinding process content.", xsWildcard.getProcessContents(), wildcardBinding.getProcessContents());
+         termStr = "wildcard";
       }
       else
          fail("Unexpected XSTerm type: " + xsTermType);
+      
+      // TODO minOccurs is not trivial for flattened choices
+      //assertEquals("ParticleBinding<" + termStr + "> min occurs.", xsParticle.getMinOccurs(), particleBinding.getMinOccurs());
+      
+      if(xsParticle.getMaxOccursUnbounded())
+         assertTrue("ParticleBinding<" + termStr + "> has max occurs unbounded.", particleBinding.getMaxOccursUnbounded());
+      else
+         assertEquals("ParticleBinding<" + termStr + "> max occurs.", xsParticle.getMaxOccurs(), particleBinding.getMaxOccurs());
    }
    
-   public static void assertEquivalent(XSModelGroup xsModelGroup, ModelGroupBinding modelGroupBinding)
+   public void assertEquivalent(XSModelGroup xsModelGroup, ModelGroupBinding modelGroupBinding)
    {
       short xsCompositor = xsModelGroup.getCompositor();
+      boolean all = false;
       if(xsCompositor == XSModelGroup.COMPOSITOR_SEQUENCE)
-         assertTrue("ModelGroupBinding expected to be a sequence but was " + modelGroupBinding, modelGroupBinding instanceof SequenceBinding);
+      {
+         if(trace)
+            log.trace("sequence");
+         if(!(modelGroupBinding instanceof SequenceBinding))
+         {
+            // another chance...
+            if(modelGroupBinding instanceof AllBinding)
+               all = true;
+            else
+               fail("ModelGroupBinding expected to be a sequence but was " + modelGroupBinding);
+         }
+      }
       else if(xsCompositor == XSModelGroup.COMPOSITOR_CHOICE)
       {
-         System.out.println("choice");
+         if(trace)
+            log.trace("choice");
          assertTrue("ModelGroupBinding expected to be a choice but was " + modelGroupBinding, modelGroupBinding instanceof ChoiceBinding);
       }
       else if(xsCompositor == XSModelGroup.COMPOSITOR_ALL)
       {
-         System.out.println("all");
+         if(trace)
+            log.trace("all");
          assertTrue("ModelGroupBinding expected to be an all but was " + modelGroupBinding, modelGroupBinding instanceof AllBinding);
+         all = true;
       }
       else
          fail("Unexpected compositor type for model group " + xsCompositor);
       
+      
       XSObjectList xsParticles = xsModelGroup.getParticles();
       Collection<ParticleBinding> particleBindings = modelGroupBinding.getParticles();
+      Map<QName, XSParticle> xsElementParticles = null;
+      Map<QName, ParticleBinding> elementParticles = null;
       if(xsParticles.getLength() > 0)
       {
          assertTrue("ModelGroupBinding has particles.", particleBindings != null);
-         assertEquals("ModelGroupBinding particles total.", xsParticles.getLength(), particleBindings.size());
+         if(xsParticles.getLength() != particleBindings.size() || all)
+         {
+            // let's try making it flat... to the elements
+            xsElementParticles = new HashMap<QName, XSParticle>();
+            flatten(xsModelGroup, xsElementParticles);
+            elementParticles = new HashMap<QName, ParticleBinding>();
+            flatten(modelGroupBinding, elementParticles);
+            
+            if(xsElementParticles.size() != elementParticles.size())
+            {
+               if (trace)
+               {
+                  String msg = "expected particles:\n";
+                  for (int i = 0; i < xsParticles.getLength(); ++i)
+                  {
+                     XSTerm xsTerm = ((XSParticle) xsParticles.item(i)).getTerm();
+                     short type = xsTerm.getType();
+                     if (type == XSConstants.MODEL_GROUP)
+                     {
+                        short compositor = ((XSModelGroup) xsTerm).getCompositor();
+                        if (compositor == XSModelGroup.COMPOSITOR_SEQUENCE)
+                           msg += "- sequence\n";
+                        else if (compositor == XSModelGroup.COMPOSITOR_CHOICE)
+                           msg += "- choice\n";
+                        else if (compositor == XSModelGroup.COMPOSITOR_ALL)
+                           msg += "- all\n";
+                     }
+                     else if (type == XSConstants.ELEMENT_DECLARATION)
+                     {
+                        XSElementDeclaration element = (XSElementDeclaration) xsTerm;
+                        msg += "- " + new QName(element.getNamespace(), element.getName()) + "\n";
+                     }
+                     else
+                     {
+                        msg += "- wildcard\n";
+                     }
+                  }
+
+                  msg += "actual particles:\n";
+                  Iterator<ParticleBinding> iter = particleBindings.iterator();
+                  while (iter.hasNext())
+                  {
+                     TermBinding term = iter.next().getTerm();
+                     if (term.isModelGroup())
+                     {
+                        if (term instanceof SequenceBinding)
+                           msg += "- sequence\n";
+                        else if (term instanceof ChoiceBinding)
+                           msg += "- choice\n";
+                        else
+                           msg += "- wildcard\n";
+                     }
+                     else if (term.isElement())
+                        msg += "- " + ((ElementBinding) term).getQName() + "\n";
+                     else
+                        msg += "- wildcard";
+                  }
+                  log.trace(msg);
+                  
+                  String flattenedMsg;
+                  Collection<QName> missing;
+                  if(xsElementParticles.size() > elementParticles.size())
+                  {
+                     missing = new ArrayList<QName>(xsElementParticles.keySet());
+                     missing.removeAll(elementParticles.keySet());
+                     flattenedMsg = "ModelGroupBinding";
+                  }
+                  else
+                  {
+                     missing = new ArrayList<QName>(elementParticles.keySet());
+                     missing.removeAll(xsElementParticles.keySet());
+                     flattenedMsg = "XSModelGroup";
+                  }
+                  
+                  log.trace("flattened " + flattenedMsg + " is missing: ");
+                  for(Iterator<QName> missingNames = missing.iterator(); missingNames.hasNext();)
+                     log.trace("- " + missingNames.next());
+               }
+               fail("ModelGroupBinding particles total expected " + xsParticles.getLength() + " but was "
+                     + particleBindings.size());
+            }
+         }
       }
-      
-      // TODO fir choice and all the order maybe different
-      Iterator<ParticleBinding> iter = particleBindings.iterator();
+
+      if(xsElementParticles != null)
+      {
+         Iterator<ParticleBinding> iter = elementParticles.values().iterator();
+         while(iter.hasNext())
+         {
+            ParticleBinding particleBinding = iter.next();
+            QName particleQName;
+            TermBinding termBinding = particleBinding.getTerm();
+            if(termBinding.isWildcard())
+               particleQName = WILDCARD;
+            else
+               particleQName = ((ElementBinding)termBinding).getQName();
+            XSParticle xsParticle = xsElementParticles.get(particleQName);
+            if(xsParticle == null)
+            {
+               if(particleQName == WILDCARD)
+                  fail("WildcardBinding is missing");
+               else
+                  fail("ElementBinding " + particleQName + " is missing");
+            }
+            assertEquivalent(xsParticle, particleBinding);            
+         }
+      }
+      else
+      {
+         Iterator<ParticleBinding> iter = particleBindings.iterator();
+         for (int i = 0; i < xsParticles.getLength(); ++i)
+         {
+            XSParticle xsParticle = (XSParticle) xsParticles.item(i);
+            assertEquivalent(xsParticle, iter.next());
+         }
+      }
+   }
+
+   private void flatten(XSModelGroup xsModelGroup, Map<QName, XSParticle> elementParticles)
+   {
+      XSObjectList xsParticles = xsModelGroup.getParticles();
       for(int i = 0; i < xsParticles.getLength(); ++i)
       {
-         XSParticle xsParticle = (XSParticle) xsParticles.item(i);
-         assertEquivalent(xsParticle, iter.next());
+         XSParticle particle = (XSParticle)xsParticles.item(i);
+         XSTerm term = particle.getTerm();
+         short termType = term.getType();
+         if(termType == XSConstants.ELEMENT_DECLARATION)
+         {
+            XSElementDeclaration element = (XSElementDeclaration) term;
+            QName qName = new QName(element.getNamespace(), element.getName());
+            elementParticles.put(qName, particle);
+         }
+         else if(termType == XSConstants.WILDCARD)
+            elementParticles.put(WILDCARD, particle);
+         else
+         {
+            XSModelGroup modelGroup = (XSModelGroup) term;
+            flatten(modelGroup, elementParticles);
+         }
       }
    }
+
+   private void flatten(ModelGroupBinding group, Map<QName, ParticleBinding> elementParticles)
+   {
+      Iterator<ParticleBinding> i = group.getParticles().iterator();
+      while(i.hasNext())
+      {
+         ParticleBinding particle = i.next();
+         TermBinding term = particle.getTerm();
+         if(term.isElement())
+         {
+            ElementBinding element = (ElementBinding) term;
+            elementParticles.put(element.getQName(), particle);
+         }
+         else if(term.isWildcard())
+            elementParticles.put(WILDCARD, particle);
+         else
+         {
+            ModelGroupBinding modelGroup = (ModelGroupBinding) term;
+            flatten(modelGroup, elementParticles);
+         }
+      }
+   }
+
+   private XSObjectList toXSObjectList(final List list)
+   {
+      return new XSObjectList()
+      {
+         public int getLength()
+         {
+            return list.size();
+         }
+
+         public XSObject item(int arg0)
+         {
+            return (XSObject) list.get(arg0);
+         }
+      };
+   }
 }




More information about the jboss-cvs-commits mailing list