[jboss-cvs] JBossAS SVN: r70050 - in projects/ejb3/trunk/core/src/main/resources: schema and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Sun Feb 24 18:19:46 EST 2008


Author: bdecoste
Date: 2008-02-24 18:19:46 -0500 (Sun, 24 Feb 2008)
New Revision: 70050

Added:
   projects/ejb3/trunk/core/src/main/resources/schema/
   projects/ejb3/trunk/core/src/main/resources/schema/application-client_5.xsd
   projects/ejb3/trunk/core/src/main/resources/schema/application_5.xsd
   projects/ejb3/trunk/core/src/main/resources/schema/ejb-jar_3_0.xsd
   projects/ejb3/trunk/core/src/main/resources/schema/javaee_5.xsd
   projects/ejb3/trunk/core/src/main/resources/schema/javaee_web_services_1_2.xsd
   projects/ejb3/trunk/core/src/main/resources/schema/javaee_web_services_client_1_2.xsd
   projects/ejb3/trunk/core/src/main/resources/schema/jboss_5_0.dtd
   projects/ejb3/trunk/core/src/main/resources/schema/jboss_5_0.xsd
   projects/ejb3/trunk/core/src/main/resources/schema/sun-ejb-jar_3_0.xsd
Log:
ejb3 schema

Added: projects/ejb3/trunk/core/src/main/resources/schema/application-client_5.xsd
===================================================================
--- projects/ejb3/trunk/core/src/main/resources/schema/application-client_5.xsd	                        (rev 0)
+++ projects/ejb3/trunk/core/src/main/resources/schema/application-client_5.xsd	2008-02-24 23:19:46 UTC (rev 70050)
@@ -0,0 +1,303 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/javaee"
+	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="5">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)application-client_5.xsds	1.26 02/17/06
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2003-2006 Sun Microsystems, Inc.
+      4150 Network Circle
+      Santa Clara, California 95054
+      U.S.A
+      All rights reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the application client 5
+	deployment descriptor.  The deployment descriptor must
+	be named "META-INF/application-client.xml" in the
+	application client's jar file.  All application client
+	deployment descriptors must indicate the application
+	client schema by using the Java EE namespace:
+
+	http://java.sun.com/xml/ns/javaee
+
+	and indicate the version of the schema by
+	using the version element as shown below:
+
+	    <application-client xmlns="http://java.sun.com/xml/ns/javaee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+		http://java.sun.com/xml/ns/javaee/application-client_5.xsd"
+	      version="5">
+	      ...
+	    </application-client>
+
+	The instance documents may indicate the published version of
+	the schema using the xsi:schemaLocation attribute for Java EE
+	namespace with the following location:
+
+	http://java.sun.com/xml/ns/javaee/application-client_5.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - In elements that specify a pathname to a file within the
+	same JAR file, relative filenames (i.e., those not
+	starting with "/") are considered relative to the root of
+	the JAR file's namespace.  Absolute filenames (i.e., those
+	starting with "/") also specify names in the root of the
+	JAR file's namespace.  In general, relative names are
+	preferred.  The exception is .war files where absolute
+	names are preferred for consistency with the Servlet API.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_5.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="application-client" type="javaee:application-clientType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The application-client element is the root element of an
+	application client deployment descriptor.  The application
+	client deployment descriptor describes the EJB components
+	and external resources referenced by the application
+	client.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:unique name="env-entry-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The env-entry-name element contains the name of an
+	  application client's environment entry.  The name is a JNDI
+	  name relative to the java:comp/env context.  The name must
+	  be unique within an application client.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:env-entry"/>
+      <xsd:field    xpath="javaee:env-entry-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="ejb-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The ejb-ref-name element contains the name of an EJB
+	  reference. The EJB reference is an entry in the application
+	  client's environment and is relative to the
+	  java:comp/env context. The name must be unique within the
+	  application client.
+
+	  It is recommended that name is prefixed with "ejb/".
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:ejb-ref"/>
+      <xsd:field    xpath="javaee:ejb-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="res-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The res-ref-name element specifies the name of a
+	  resource manager connection factory reference.The name
+	  is a JNDI name relative to the java:comp/env context.
+	  The name must be unique within an application client.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:resource-ref"/>
+      <xsd:field    xpath="javaee:res-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="resource-env-ref-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The resource-env-ref-name element specifies the name of
+	  a resource environment reference; its value is the
+	  environment entry name used in the application client
+	  code. The name is a JNDI name relative to the
+	  java:comp/env context and must be unique within an
+	  application client.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:resource-env-ref"/>
+      <xsd:field    xpath="javaee:resource-env-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="message-destination-ref-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The message-destination-ref-name element specifies the
+	  name of a message destination reference; its value is
+	  the message destination reference name used in the
+	  application client code. The name is a JNDI name
+	  relative to the java:comp/env context and must be unique
+	  within an application client.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:message-destination-ref"/>
+      <xsd:field    xpath="javaee:message-destination-ref-name"/>
+    </xsd:unique>
+  </xsd:element>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="application-clientType">
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="env-entry"
+		   type="javaee:env-entryType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="ejb-ref"
+		   type="javaee:ejb-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:service-refGroup"/>
+      <xsd:element name="resource-ref"
+		   type="javaee:resource-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref"
+		   type="javaee:resource-env-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref"
+		   type="javaee:message-destination-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="persistence-unit-ref"
+		   type="javaee:persistence-unit-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="post-construct"
+		   type="javaee:lifecycle-callbackType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="pre-destroy"
+		   type="javaee:lifecycle-callbackType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="callback-handler"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The callback-handler element names a class provided by
+	    the application.  The class must have a no args
+	    constructor and must implement the
+	    javax.security.auth.callback.CallbackHandler
+	    interface.  The class will be instantiated by the
+	    application client container and used by the container
+	    to collect authentication information from the user.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="message-destination"
+		   type="javaee:message-destinationType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+
+    <xsd:attribute name="version"
+		   type="javaee:dewey-versionType"
+		   fixed="5"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The required value for the version is 5.
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+    </xsd:attribute>
+
+    <xsd:attribute name="metadata-complete" type="xsd:boolean">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The metadata-complete attribute defines whether this
+	  deployment descriptor and other related deployment
+	  descriptors for this module (e.g., web service
+	  descriptors) are complete, or whether the class
+	  files available to this module and packaged with
+	  this application should be examined for annotations
+	  that specify deployment information.
+
+	  If metadata-complete is set to "true", the deployment
+	  tool must ignore any annotations that specify deployment
+	  information, which might be present in the class files
+	  of the application.
+
+	  If metadata-complete is not specified or is set to
+	  "false", the deployment tool must examine the class
+	  files of the application for annotations, as
+	  specified by the specifications.
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+    </xsd:attribute>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+

Added: projects/ejb3/trunk/core/src/main/resources/schema/application_5.xsd
===================================================================
--- projects/ejb3/trunk/core/src/main/resources/schema/application_5.xsd	                        (rev 0)
+++ projects/ejb3/trunk/core/src/main/resources/schema/application_5.xsd	2008-02-24 23:19:46 UTC (rev 70050)
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/javaee"
+	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="5">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)application_5.xsds	1.17 08/05/05
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2003-2006 Sun Microsystems, Inc.
+      4150 Network Circle
+      Santa Clara, California 95054
+      U.S.A
+      All rights reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the application 5 deployment
+	descriptor.  The deployment descriptor must be named
+	"META-INF/application.xml" in the application's ear file.
+	All application deployment descriptors must indicate
+	the application schema by using the Java EE namespace:
+
+	http://java.sun.com/xml/ns/javaee
+
+	and indicate the version of the schema by
+	using the version element as shown below:
+
+	    <application xmlns="http://java.sun.com/xml/ns/javaee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+		http://java.sun.com/xml/ns/javaee/application_5.xsd"
+	      version="5">
+	      ...
+	    </application>
+
+	The instance documents may indicate the published version of
+	the schema using the xsi:schemaLocation attribute for Java EE
+	namespace with the following location:
+
+	http://java.sun.com/xml/ns/javaee/application_5.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - In elements that specify a pathname to a file within the
+	same JAR file, relative filenames (i.e., those not
+	starting with "/") are considered relative to the root of
+	the JAR file's namespace.  Absolute filenames (i.e., those
+	starting with "/") also specify names in the root of the
+	JAR file's namespace.  In general, relative names are
+	preferred.  The exception is .war files where absolute
+	names are preferred for consistency with the Servlet API.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_5.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="application" type="javaee:applicationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The application element is the root element of a Java EE
+	application deployment descriptor.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:unique name="context-root-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The context-root element content must be unique
+	  in the ear.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:module/javaee:web"/>
+      <xsd:field    xpath="javaee:context-root"/>
+    </xsd:unique>
+
+    <xsd:unique name="security-role-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The security-role-name element content
+	  must be unique in the ear.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:security-role"/>
+      <xsd:field    xpath="javaee:role-name"/>
+    </xsd:unique>
+
+  </xsd:element>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="applicationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The applicationType defines the structure of the
+	application.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="module"
+		   type="javaee:moduleType"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The application deployment descriptor must have one
+	    module element for each Java EE module in the
+	    application package. A module element is defined
+	    by moduleType definition.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="security-role"
+		   type="javaee:security-roleType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="library-directory"
+		   type="javaee:pathType"
+		   minOccurs="0"
+		   maxOccurs="1">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The library-directory element specifies the pathname
+	    of a directory within the application package, relative
+	    to the top level of the application package.  All files
+	    named "*.jar" in this directory must be made available
+	    in the class path of all components included in this
+	    application package.  If this element isn't specified,
+	    the directory named "lib" is searched.  An empty element
+	    may be used to disable searching.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+		   type="javaee:dewey-versionType"
+		   fixed="5"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The required value for the version is 5.
+
+	</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="moduleType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The moduleType defines a single Java EE module and contains a
+	connector, ejb, java, or web element, which indicates the
+	module type and contains a path to the module file, and an
+	optional alt-dd element, which specifies an optional URI to
+	the post-assembly version of the deployment descriptor.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:choice>
+	<xsd:element name="connector"
+		     type="javaee:pathType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The connector element specifies the URI of a
+	      resource adapter archive file, relative to the
+	      top level of the application package.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+	<xsd:element name="ejb"
+		     type="javaee:pathType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb element specifies the URI of an ejb-jar,
+	      relative to the top level of the application
+	      package.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+	<xsd:element name="java"
+		     type="javaee:pathType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The java element specifies the URI of a java
+	      application client module, relative to the top
+	      level of the application package.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+	<xsd:element name="web"
+		     type="javaee:webType"/>
+      </xsd:choice>
+      <xsd:element name="alt-dd"
+		   type="javaee:pathType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The alt-dd element specifies an optional URI to the
+	    post-assembly version of the deployment descriptor
+	    file for a particular Java EE module.  The URI must
+	    specify the full pathname of the deployment
+	    descriptor file relative to the application's root
+	    directory. If alt-dd is not specified, the deployer
+	    must read the deployment descriptor from the default
+	    location and file name required by the respective
+	    component specification.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="webType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The webType defines the web-uri and context-root of
+	a web application module.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="web-uri"
+		   type="javaee:pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The web-uri element specifies the URI of a web
+	    application file, relative to the top level of the
+	    application package.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="context-root"
+		   type="javaee:string">
+
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The context-root element specifies the context root
+	    of a web application.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+

Added: projects/ejb3/trunk/core/src/main/resources/schema/ejb-jar_3_0.xsd
===================================================================
--- projects/ejb3/trunk/core/src/main/resources/schema/ejb-jar_3_0.xsd	                        (rev 0)
+++ projects/ejb3/trunk/core/src/main/resources/schema/ejb-jar_3_0.xsd	2008-02-24 23:19:46 UTC (rev 70050)
@@ -0,0 +1,2705 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/javaee"
+	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="3.0">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)ejb-jar_3_0.xsds	1.51 02/23/06
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2003-2006 Sun Microsystems, Inc.
+      4150 Network Circle
+      Santa Clara, California 95054
+      U.S.A
+      All rights reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the EJB 3.0 deployment descriptor.
+	The deployment descriptor must be named "META-INF/ejb-jar.xml" in
+	the EJB's jar file.  All EJB deployment descriptors must indicate
+	the ejb-jar schema by using the Java EE namespace:
+
+	http://java.sun.com/xml/ns/javaee
+
+	and by indicating the version of the schema by
+	using the version element as shown below:
+
+	    <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+		  http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
+	      version="3.0">
+	      ...
+	    </ejb-jar>
+
+	The instance documents may indicate the published version of
+	the schema using the xsi:schemaLocation attribute for the
+	Java EE namespace with the following location:
+
+	http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - In elements that specify a pathname to a file within the
+	same JAR file, relative filenames (i.e., those not
+	starting with "/") are considered relative to the root of
+	the JAR file's namespace.  Absolute filenames (i.e., those
+	starting with "/") also specify names in the root of the
+	JAR file's namespace.  In general, relative names are
+	preferred.  The exception is .war files where absolute
+	names are preferred for consistency with the Servlet API.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_5.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="ejb-jar" type="javaee:ejb-jarType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This is the root of the ejb-jar deployment descriptor.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:key name="ejb-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The ejb-name element contains the name of an enterprise
+	  bean. The name must be unique within the ejb-jar file.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:enterprise-beans/*"/>
+      <xsd:field    xpath="javaee:ejb-name"/>
+    </xsd:key>
+
+    <xsd:keyref name="ejb-name-references"
+		refer="javaee:ejb-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The keyref indicates the references from
+	  relationship-role-source must be to a specific ejb-name
+	  defined within the scope of enterprise-beans element.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector
+xpath=".//javaee:ejb-relationship-role/javaee:relationship-role-source"/>
+      <xsd:field
+	   xpath="javaee:ejb-name"/>
+    </xsd:keyref>
+
+    <xsd:key name="role-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  A role-name-key is specified to allow the references
+	  from the security-role-refs.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:assembly-descriptor/javaee:security-role"/>
+      <xsd:field    xpath="javaee:role-name"/>
+    </xsd:key>
+
+    <xsd:keyref name="role-name-references"
+		refer="javaee:role-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The keyref indicates the references from
+	  security-role-ref to a specified role-name.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:enterprise-beans/*/javaee:security-role-ref"/>
+      <xsd:field    xpath="javaee:role-link"/>
+    </xsd:keyref>
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="activation-config-propertyType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The activation-config-propertyType contains a name/value
+	configuration property pair for a message-driven bean.
+
+	The properties that are recognized for a particular
+	message-driven bean are determined by the messaging type.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="activation-config-property-name"
+		   type="javaee:xsdStringType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The activation-config-property-name element contains
+	    the name for an activation configuration property of
+	    a message-driven bean.
+
+	    For JMS message-driven beans, the following property
+	    names are recognized: acknowledgeMode,
+	    messageSelector, destinationType, subscriptionDurability
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="activation-config-property-value"
+		   type="javaee:xsdStringType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The activation-config-property-value element
+	    contains the value for an activation configuration
+	    property of a message-driven bean.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="activation-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The activation-configType defines information about the
+	expected configuration properties of the message-driven bean
+	in its operational environment. This may include information
+	about message acknowledgement, message selector, expected
+	destination type, etc.
+
+	The configuration information is expressed in terms of
+	name/value configuration properties.
+
+	The properties that are recognized for a particular
+	message-driven bean are determined by the messaging type.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="activation-config-property"
+		   type="javaee:activation-config-propertyType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="application-exceptionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The application-exceptionType declares an application
+        exception. The declaration consists of:
+
+            - the exception class. When the container receives
+              an exception of this type, it is required to
+              forward this exception as an applcation exception
+              to the client regardless of whether it is a checked
+              or unchecked exception.
+            - an optional rollback element. If this element is
+              set to true, the container must rollback the current
+              transaction before forwarding the exception to the
+              client.  If not specified, it defaults to false.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="exception-class"
+		   type="javaee:fully-qualified-classType"/>
+      <xsd:element name="rollback"
+                   type="javaee:true-falseType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="around-invokeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The around-invoke type specifies a method on a
+        class to be called during the around invoke portion of an
+        ejb invocation.  Note that each class may have only one
+        around invoke method and that the method may not be
+        overloaded.
+
+        If the class element is missing then
+        the class defining the callback is assumed to be the
+        interceptor class or component class in scope at the
+        location in the descriptor in which the around invoke
+        definition appears.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="class"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0"/>
+      <xsd:element name="method-name"
+                   type="javaee:java-identifierType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="assembly-descriptorType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The assembly-descriptorType defines
+	application-assembly information.
+
+	The application-assembly information consists of the
+	following parts: the definition of security roles, the
+	definition of method permissions, the definition of
+	transaction attributes for enterprise beans with
+	container-managed transaction demarcation, the definition
+        of interceptor bindings, a list of
+	methods to be excluded from being invoked, and a list of
+        exception types that should be treated as application exceptions.
+
+	All the parts are optional in the sense that they are
+	omitted if the lists represented by them are empty.
+
+	Providing an assembly-descriptor in the deployment
+	descriptor is optional for the ejb-jar file producer.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="security-role"
+		   type="javaee:security-roleType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="method-permission"
+		   type="javaee:method-permissionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="container-transaction"
+		   type="javaee:container-transactionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="interceptor-binding"
+                   type="javaee:interceptor-bindingType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="message-destination"
+		   type="javaee:message-destinationType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="exclude-list"
+		   type="javaee:exclude-listType"
+		   minOccurs="0"/>
+      <xsd:element name="application-exception"
+                   type="javaee:application-exceptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmp-fieldType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmp-fieldType describes a container-managed field. The
+	cmp-fieldType contains an optional description of the field,
+	and the name of the field.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="field-name"
+		   type="javaee:java-identifierType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The field-name element specifies the name of a
+	    container managed field.
+
+	    The name of the cmp-field of an entity bean with
+	    cmp-version 2.x must begin with a lowercase
+	    letter. This field is accessed by methods whose
+	    names consists of the name of the field specified by
+	    field-name in which the first letter is uppercased,
+	    prefixed by "get" or "set".
+
+	    The name of the cmp-field of an entity bean with
+	    cmp-version 1.x must denote a public field of the
+	    enterprise bean class or one of its superclasses.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmp-versionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmp-versionType specifies the version of an entity bean
+	with container-managed persistence. It is used by
+	cmp-version elements.
+
+	The value must be one of the two following:
+
+	    1.x
+	    2.x
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="1.x"/>
+	<xsd:enumeration value="2.x"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmr-field-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmr-field-type element specifies the class of a
+	collection-valued logical relationship field in the entity
+	bean class. The value of an element using cmr-field-typeType
+	must be either: java.util.Collection or java.util.Set.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="java.util.Collection"/>
+	<xsd:enumeration value="java.util.Set"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmr-fieldType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmr-fieldType describes the bean provider's view of
+	a relationship. It consists of an optional description, and
+	the name and the class type of a field in the source of a
+	role of a relationship. The cmr-field-name element
+	corresponds to the name used for the get and set accessor
+	methods for the relationship. The cmr-field-type element is
+	used only for collection-valued cmr-fields. It specifies the
+	type of the collection that is used.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="cmr-field-name"
+		   type="javaee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The cmr-field-name element specifies the name of a
+	    logical relationship field in the entity bean
+	    class. The name of the cmr-field must begin with a
+	    lowercase letter. This field is accessed by methods
+	    whose names consist of the name of the field
+	    specified by cmr-field-name in which the first
+	    letter is uppercased, prefixed by "get" or "set".
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmr-field-type"
+		   type="javaee:cmr-field-typeType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="container-transactionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The container-transactionType specifies how the container
+	must manage transaction scopes for the enterprise bean's
+	method invocations. It defines an optional description, a
+	list of method elements, and a transaction attribute. The
+	transaction attribute is to be applied to all the specified
+	methods.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="method"
+		   type="javaee:methodType"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="trans-attribute"
+		   type="javaee:trans-attributeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-classType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The ejb-classType contains the fully-qualified name of the
+	  enterprise bean's class. It is used by ejb-class elements.
+
+	  Example:
+
+	      <ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-jarType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The ejb-jarType defines the root element of the EJB
+	deployment descriptor. It contains
+
+	    - an optional description of the ejb-jar file
+	    - an optional display name
+	    - an optional icon that contains a small and a large
+	      icon file name
+	    - structural information about all included
+	      enterprise beans that is not specified through
+              annotations
+            - structural information about interceptor classes
+	    - a descriptor for container managed relationships,
+	      if any.
+	    - an optional application-assembly descriptor
+	    - an optional name of an ejb-client-jar file for the
+	      ejb-jar.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="enterprise-beans"
+		   type="javaee:enterprise-beansType"
+                   minOccurs="0"/>
+      <xsd:element name="interceptors"
+		   type="javaee:interceptorsType"
+                   minOccurs="0"/>
+      <xsd:element name="relationships"
+		   type="javaee:relationshipsType"
+		   minOccurs="0">
+	<xsd:unique name="relationship-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-relation-name contains the name of a
+	      relation. The name must be unique within
+	      relationships.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:ejb-relation"/>
+	  <xsd:field    xpath="javaee:ejb-relation-name"/>
+	</xsd:unique>
+      </xsd:element>
+      <xsd:element name="assembly-descriptor"
+		   type="javaee:assembly-descriptorType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Providing an assembly-descriptor in the deployment
+	    descriptor is optional for the ejb-jar file
+	    producer.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-client-jar"
+		   type="javaee:pathType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+	    <![CDATA[
+
+	      The optional ejb-client-jar element specifies a JAR
+	      file that contains the class files necessary for a
+	      client program to access the
+	      enterprise beans in the ejb-jar file.
+
+	      Example:
+
+		  <ejb-client-jar>employee_service_client.jar
+		  </ejb-client-jar>
+
+	      ]]>
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+		   type="javaee:dewey-versionType"
+		   fixed="3.0"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The version specifies the version of the
+	  EJB specification that the instance document must
+	  comply with. This information enables deployment tools
+	  to validate a particular EJB Deployment
+	  Descriptor with respect to a specific version of the EJB
+	  schema.
+
+	</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="metadata-complete" type="xsd:boolean">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The metadata-complete attribute defines whether this
+	  deployment descriptor and other related deployment
+	  descriptors for this module (e.g., web service
+	  descriptors) are complete, or whether the class
+	  files available to this module and packaged with
+	  this application should be examined for annotations
+	  that specify deployment information.
+
+	  If metadata-complete is set to "true", the deployment
+	  tool must ignore any annotations that specify deployment
+	  information, which might be present in the class files
+	  of the application.
+
+	  If metadata-complete is not specified or is set to
+	  "false", the deployment tool must examine the class
+	  files of the application for annotations, as
+	  specified by the specifications.
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+    </xsd:attribute>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The ejb-nameType specifies an enterprise bean's name. It is
+	  used by ejb-name elements. This name is assigned by the
+	  ejb-jar file producer to name the enterprise bean in the
+	  ejb-jar file's deployment descriptor. The name must be
+	  unique among the names of the enterprise beans in the same
+	  ejb-jar file.
+
+	  There is no architected relationship between the used
+	  ejb-name in the deployment descriptor and the JNDI name that
+	  the Deployer will assign to the enterprise bean's home.
+
+	  The name for an entity bean must conform to the lexical
+	  rules for an NMTOKEN.
+
+	  Example:
+
+	  <ejb-name>EmployeeService</ejb-name>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdNMTOKENType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-relationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The ejb-relationType describes a relationship between two
+	entity beans with container-managed persistence.  It is used
+	by ejb-relation elements. It contains a description; an
+	optional ejb-relation-name element; and exactly two
+	relationship role declarations, defined by the
+	ejb-relationship-role elements. The name of the
+	relationship, if specified, is unique within the ejb-jar
+	file.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relation-name"
+		   type="javaee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The ejb-relation-name element provides a unique name
+	    within the ejb-jar file for a relationship.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-relationship-role"
+		   type="javaee:ejb-relationship-roleType"/>
+      <xsd:element name="ejb-relationship-role"
+		   type="javaee:ejb-relationship-roleType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-relationship-roleType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The ejb-relationship-roleType describes a role within a
+	  relationship. There are two roles in each relationship.
+
+	  The ejb-relationship-roleType contains an optional
+	  description; an optional name for the relationship role; a
+	  specification of the multiplicity of the role; an optional
+	  specification of cascade-delete functionality for the role;
+	  the role source; and a declaration of the cmr-field, if any,
+	  by means of which the other side of the relationship is
+	  accessed from the perspective of the role source.
+
+	  The multiplicity and role-source element are mandatory.
+
+	  The relationship-role-source element designates an entity
+	  bean by means of an ejb-name element. For bidirectional
+	  relationships, both roles of a relationship must declare a
+	  relationship-role-source element that specifies a cmr-field
+	  in terms of which the relationship is accessed. The lack of
+	  a cmr-field element in an ejb-relationship-role specifies
+	  that the relationship is unidirectional in navigability and
+	  the entity bean that participates in the relationship is
+	  "not aware" of the relationship.
+
+	  Example:
+
+	  <ejb-relation>
+	      <ejb-relation-name>Product-LineItem</ejb-relation-name>
+	      <ejb-relationship-role>
+		  <ejb-relationship-role-name>product-has-lineitems
+		  </ejb-relationship-role-name>
+		  <multiplicity>One</multiplicity>
+		  <relationship-role-source>
+		  <ejb-name>ProductEJB</ejb-name>
+		  </relationship-role-source>
+	       </ejb-relationship-role>
+	  </ejb-relation>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relationship-role-name"
+		   type="javaee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The ejb-relationship-role-name element defines a
+	    name for a role that is unique within an
+	    ejb-relation. Different relationships can use the
+	    same name for a role.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="multiplicity"
+		   type="javaee:multiplicityType"/>
+      <xsd:element name="cascade-delete"
+		   type="javaee:emptyType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The cascade-delete element specifies that, within a
+	    particular relationship, the lifetime of one or more
+	    entity beans is dependent upon the lifetime of
+	    another entity bean. The cascade-delete element can
+	    only be specified for an ejb-relationship-role
+	    element contained in an ejb-relation element in
+	    which the other ejb-relationship-role
+	    element specifies a multiplicity of One.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="relationship-role-source"
+		   type="javaee:relationship-role-sourceType"/>
+      <xsd:element name="cmr-field"
+		   type="javaee:cmr-fieldType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="enterprise-beansType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The enterprise-beansType declares one or more enterprise
+	beans. Each bean can be a session, entity or message-driven
+	bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:choice maxOccurs="unbounded">
+      <xsd:element name="session"
+		   type="javaee:session-beanType">
+	<xsd:unique name="session-ejb-local-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of
+	      an EJB reference. The EJB reference is an entry in
+	      the component's environment and is relative to the
+	      java:comp/env context.  The name must be unique within
+	      the component.
+
+	      It is recommended that name be prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:ejb-local-ref"/>
+	  <xsd:field    xpath="javaee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-ejb-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of an EJB
+	      reference. The EJB reference is an entry in the
+	      component's environment and is relative to the
+	      java:comp/env context. The name must be unique
+	      within the component.
+
+	      It is recommended that name is prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:ejb-ref"/>
+	  <xsd:field    xpath="javaee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-resource-env-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The resource-env-ref-name element specifies the name
+	      of a resource environment reference; its value is
+	      the environment entry name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:resource-env-ref"/>
+	  <xsd:field    xpath="javaee:resource-env-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-message-destination-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The message-destination-ref-name element specifies the name
+	      of a message destination reference; its value is
+	      the message destination reference name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:message-destination-ref"/>
+	  <xsd:field    xpath="javaee:message-destination-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-res-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The res-ref-name element specifies the name of a
+	      resource manager connection factory reference.  The name
+	      is a JNDI name relative to the java:comp/env context.
+	      The name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:resource-ref"/>
+	  <xsd:field    xpath="javaee:res-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-env-entry-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The env-entry-name element contains the name of a
+	      component's environment entry.  The name is a JNDI
+	      name relative to the java:comp/env context.  The
+	      name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:env-entry"/>
+	  <xsd:field    xpath="javaee:env-entry-name"/>
+	</xsd:unique>
+      </xsd:element>
+
+      <xsd:element name="entity"
+		   type="javaee:entity-beanType">
+	<xsd:unique name="entity-ejb-local-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of
+	      an EJB reference. The EJB reference is an entry in
+	      the component's environment and is relative to the
+	      java:comp/env context.  The name must be unique within
+	      the component.
+
+	      It is recommended that name be prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:ejb-local-ref"/>
+	  <xsd:field    xpath="javaee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-ejb-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of an EJB
+	      reference. The EJB reference is an entry in the
+	      component's environment and is relative to the
+	      java:comp/env context. The name must be unique
+	      within the component.
+
+	      It is recommended that name is prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:ejb-ref"/>
+	  <xsd:field    xpath="javaee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-resource-env-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The resource-env-ref-name element specifies the name
+	      of a resource environment reference; its value is
+	      the environment entry name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:resource-env-ref"/>
+	  <xsd:field    xpath="javaee:resource-env-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-message-destination-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The message-destination-ref-name element specifies the name
+	      of a message destination reference; its value is
+	      the message destination reference name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:message-destination-ref"/>
+	  <xsd:field    xpath="javaee:message-destination-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-res-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The res-ref-name element specifies the name of a
+	      resource manager connection factory reference.  The name
+	      is a JNDI name relative to the java:comp/env context.
+	      The name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:resource-ref"/>
+	  <xsd:field    xpath="javaee:res-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-env-entry-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The env-entry-name element contains the name of a
+	      component's environment entry.  The name is a JNDI
+	      name relative to the java:comp/env context.  The
+	      name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:env-entry"/>
+	  <xsd:field    xpath="javaee:env-entry-name"/>
+	</xsd:unique>
+      </xsd:element>
+
+      <xsd:element name="message-driven"
+		   type="javaee:message-driven-beanType">
+	<xsd:unique name="messaged-ejb-local-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of
+	      an EJB reference. The EJB reference is an entry in
+	      the component's environment and is relative to the
+	      java:comp/env context.  The name must be unique within
+	      the component.
+
+	      It is recommended that name be prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:ejb-local-ref"/>
+	  <xsd:field    xpath="javaee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-ejb-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of an EJB
+	      reference. The EJB reference is an entry in the
+	      component's environment and is relative to the
+	      java:comp/env context. The name must be unique
+	      within the component.
+
+	      It is recommended that name is prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:ejb-ref"/>
+	  <xsd:field    xpath="javaee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-resource-env-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The resource-env-ref-name element specifies the name
+	      of a resource environment reference; its value is
+	      the environment entry name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:resource-env-ref"/>
+	  <xsd:field    xpath="javaee:resource-env-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-message-destination-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The message-destination-ref-name element specifies the name
+	      of a message destination reference; its value is
+	      the message destination reference name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:message-destination-ref"/>
+	  <xsd:field    xpath="javaee:message-destination-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-res-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The res-ref-name element specifies the name of a
+	      resource manager connection factory reference.  The name
+	      is a JNDI name relative to the java:comp/env context.
+	      The name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:resource-ref"/>
+	  <xsd:field    xpath="javaee:res-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-env-entry-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The env-entry-name element contains the name of a
+	      component's environment entry.  The name is a JNDI
+	      name relative to the java:comp/env context.  The
+	      name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:env-entry"/>
+	  <xsd:field    xpath="javaee:env-entry-name"/>
+	</xsd:unique>
+      </xsd:element>
+
+    </xsd:choice>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="entity-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The entity-beanType declares an entity bean. The declaration
+	consists of:
+
+	    - an optional description
+	    - an optional display name
+	    - an optional icon element that contains a small and a large
+	      icon file name
+	    - a unique name assigned to the enterprise bean
+	      in the deployment descriptor
+            - an optional mapped-name element that can be used to provide
+              vendor-specific deployment information such as the physical
+              jndi-name of the entity bean's remote home interface. This
+              element is not required to be supported by all implementations.
+              Any use of this element is non-portable.
+	    - the names of the entity bean's remote home
+	      and remote interfaces, if any
+	    - the names of the entity bean's local home and local
+	      interfaces, if any
+	    - the entity bean's implementation class
+	    - the optional entity bean's persistence management type. If
+              this element is not specified it is defaulted to Container.
+	    - the entity bean's primary key class name
+	    - an indication of the entity bean's reentrancy
+	    - an optional specification of the
+	      entity bean's cmp-version
+	    - an optional specification of the entity bean's
+	      abstract schema name
+	    - an optional list of container-managed fields
+	    - an optional specification of the primary key
+	      field
+	    - an optional declaration of the bean's environment
+	      entries
+	    - an optional declaration of the bean's EJB
+	      references
+	    - an optional declaration of the bean's local
+	      EJB references
+	    - an optional declaration of the bean's web
+	      service references
+	    - an optional declaration of the security role
+	      references
+	    - an optional declaration of the security identity
+	      to be used for the execution of the bean's methods
+	    - an optional declaration of the bean's
+	      resource manager connection factory references
+	    - an optional declaration of the bean's
+	      resource environment references
+	    - an optional declaration of the bean's message
+	      destination references
+	    - an optional set of query declarations
+	      for finder and select methods for an entity
+	      bean with cmp-version 2.x.
+
+	The optional abstract-schema-name element must be specified
+	for an entity bean with container-managed persistence and
+	cmp-version 2.x.
+
+	The optional primkey-field may be present in the descriptor
+	if the entity's persistence-type is Container.
+
+	The optional cmp-version element may be present in the
+	descriptor if the entity's persistence-type is Container. If
+	the persistence-type is Container and the cmp-version
+	element is not specified, its value defaults to 2.x.
+
+	The optional home and remote elements must be specified if
+	the entity bean cmp-version is 1.x.
+
+	The optional home and remote elements must be specified if
+	the entity bean has a remote home and remote interface.
+
+	The optional local-home and local elements must be specified
+	if the entity bean has a local home and local interface.
+
+	Either both the local-home and the local elements or both
+	the home and the remote elements must be specified.
+
+	The optional query elements must be present if the
+	persistence-type is Container and the cmp-version is 2.x and
+	query methods other than findByPrimaryKey have been defined
+	for the entity bean.
+
+	The other elements that are optional are "optional" in the
+	sense that they are omitted if the lists represented by them
+	are empty.
+
+	At least one cmp-field element must be present in the
+	descriptor if the entity's persistence-type is Container and
+	the cmp-version is 1.x, and none must not be present if the
+	entity's persistence-type is Bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+		   type="javaee:ejb-nameType"/>
+      <xsd:element name="mapped-name"
+		   type="javaee:xsdStringType"
+		   minOccurs="0"/>
+      <xsd:element name="home"
+		   type="javaee:homeType"
+		   minOccurs="0"/>
+      <xsd:element name="remote"
+		   type="javaee:remoteType"
+		   minOccurs="0"/>
+      <xsd:element name="local-home"
+		   type="javaee:local-homeType"
+		   minOccurs="0"/>
+      <xsd:element name="local"
+		   type="javaee:localType"
+		   minOccurs="0"/>
+      <xsd:element name="ejb-class"
+		   type="javaee:ejb-classType"/>
+      <xsd:element name="persistence-type"
+		   type="javaee:persistence-typeType"/>
+      <xsd:element name="prim-key-class"
+		   type="javaee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The prim-key-class element contains the
+	    fully-qualified name of an
+	    entity bean's primary key class.
+
+	    If the definition of the primary key class is
+	    deferred to deployment time, the prim-key-class
+	    element should specify java.lang.Object.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="reentrant"
+		   type="javaee:true-falseType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The reentrant element specifies whether an entity
+	    bean is reentrant or not.
+
+	    The reentrant element must be one of the two
+	    following: true or false
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmp-version"
+		   type="javaee:cmp-versionType"
+		   minOccurs="0"/>
+      <xsd:element name="abstract-schema-name"
+		   type="javaee:java-identifierType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The abstract-schema-name element specifies the name
+	    of the abstract schema type of an entity bean with
+	    cmp-version 2.x. It is used in EJB QL queries.
+
+	    For example, the abstract-schema-name for an entity
+	    bean whose local interface is
+	    com.acme.commerce.Order might be Order.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmp-field"
+		   type="javaee:cmp-fieldType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="primkey-field"
+		   type="javaee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The primkey-field element is used to specify the
+	    name of the primary key field for an entity with
+	    container-managed persistence.
+
+	    The primkey-field must be one of the fields declared
+	    in the cmp-field element, and the type of the field
+	    must be the same as the primary key type.
+
+	    The primkey-field element is not used if the primary
+	    key maps to multiple container-managed fields
+	    (i.e. the key is a compound key). In this case, the
+	    fields of the primary key class must be public, and
+	    their names must correspond to the field names of
+	    the entity bean class that comprise the key.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="security-role-ref"
+		   type="javaee:security-role-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="security-identity"
+		   type="javaee:security-identityType"
+		   minOccurs="0"/>
+      <xsd:element name="query"
+		   type="javaee:queryType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="exclude-listType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The exclude-listType specifies one or more methods which
+	the Assembler marks to be uncallable.
+
+	If the method permission relation contains methods that are
+	in the exclude list, the Deployer should consider those
+	methods to be uncallable.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="method"
+		   type="javaee:methodType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="init-methodType">
+    <xsd:sequence>
+      <xsd:element name="create-method"
+		   type="javaee:named-methodType"/>
+      <xsd:element name="bean-method"
+		   type="javaee:named-methodType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="interceptor-bindingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The interceptor-bindingType element describes the binding of
+        interceptor classes to beans within the ejb-jar.
+        It consists of :
+
+          - An optional description.
+          - The name of an ejb within the ejb-jar or the wildcard value "*",
+            which is used to define interceptors that are bound to all
+            beans in the ejb-jar.
+          - A list of interceptor classes that are bound to the contents of
+            the ejb-name element or a specification of the total ordering
+            over the interceptors defined for the given level and above.
+          - An optional exclude-default-interceptors element.  If set to true,
+            specifies that default interceptors are not to be applied to
+            a bean-class and/or business method.
+          - An optional exclude-class-interceptors element.  If set to true,
+            specifies that class interceptors are not to be applied to
+            a business method.
+          - An optional set of method elements for describing the name/params
+            of a method-level interceptor.
+
+         Interceptors bound to all classes using the wildcard syntax
+         "*" are default interceptors for the components in the ejb-jar.
+         In addition, interceptors may be bound at the level of the bean
+         class (class-level interceptors) or business methods (method-level
+         interceptors ).
+
+         The binding of interceptors to classes is additive.  If interceptors
+         are bound at the class-level and/or default-level as well as the
+         method-level, both class-level and/or default-level as well as
+         method-level will apply.
+
+         There are four possible styles of the interceptor element syntax :
+
+         1.
+         <interceptor-binding>
+           <ejb-name>*</ejb-name>
+           <interceptor-class>INTERCEPTOR</interceptor-class>
+         </interceptor-binding>
+
+         Specifying the ejb-name as the wildcard value "*" designates
+         default interceptors (interceptors that apply to all session and
+         message-driven beans contained in the ejb-jar).
+
+         2.
+         <interceptor-binding>
+           <ejb-name>EJBNAME</ejb-name>
+           <interceptor-class>INTERCEPTOR</interceptor-class>
+         </interceptor-binding>
+
+         This style is used to refer to interceptors associated with the
+         specified enterprise bean(class-level interceptors).
+
+         3.
+         <interceptor-binding>
+           <ejb-name>EJBNAME</ejb-name>
+           <interceptor-class>INTERCEPTOR</interceptor-class>
+           <method>
+             <method-name>METHOD</method-name>
+           </method>
+         </interceptor-binding>
+
+         This style is used to associate a method-level interceptor with
+         the specified enterprise bean.  If there are multiple methods
+         with the same overloaded name, the element of this style refers
+         to all the methods with the overloaded name.  Method-level
+         interceptors can only be associated with business methods of the
+         bean class.   Note that the wildcard value "*" cannot be used
+         to specify method-level interceptors.
+
+         4.
+         <interceptor-binding>
+           <ejb-name>EJBNAME</ejb-name>
+           <interceptor-class>INTERCEPTOR</interceptor-class>
+           <method>
+             <method-name>METHOD</method-name>
+             <method-params>
+               <method-param>PARAM-1</method-param>
+               <method-param>PARAM-2</method-param>
+               ...
+               <method-param>PARAM-N</method-param>
+             </method-params>
+           </method>
+         </interceptor-binding>
+
+         This style is used to associate a method-level interceptor with
+         the specified method of the specified enterprise bean.  This
+         style is used to refer to a single method within a set of methods
+         with an overloaded name.  The values PARAM-1 through PARAM-N
+         are the fully-qualified Java types of the method's input parameters
+         (if the method has no input arguments, the method-params element
+         contains no method-param elements). Arrays are specified by the
+         array element's type, followed by one or more pair of square
+         brackets (e.g. int[][]).
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-name"
+		   type="javaee:string"/>
+      <xsd:choice>
+        <xsd:element name="interceptor-class"
+                     type="javaee:fully-qualified-classType"
+		     minOccurs="0"
+                     maxOccurs="unbounded"/>
+        <xsd:element name="interceptor-order"
+		     type="javaee:interceptor-orderType"
+		     minOccurs="1"/>
+      </xsd:choice>
+      <xsd:element name="exclude-default-interceptors"
+		   type="javaee:true-falseType"
+		   minOccurs="0"/>
+      <xsd:element name="exclude-class-interceptors"
+		   type="javaee:true-falseType"
+		   minOccurs="0"/>
+      <xsd:element name="method"
+		   type="javaee:named-methodType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="interceptor-orderType">
+    <xsd:annotation>
+      <xsd:documentation>
+        The interceptor-orderType element describes a total ordering
+        of interceptor classes.
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+
+      <xsd:element name="interceptor-class"
+                   type="javaee:fully-qualified-classType"
+		   minOccurs="1"
+                   maxOccurs="unbounded"/>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="interceptorType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The interceptorType element declares information about a single
+        interceptor class.  It consists of :
+
+            - An optional description.
+            - The fully-qualified name of the interceptor class.
+            - An optional list of around invoke methods declared on the
+              interceptor class and/or its super-classes.
+            - An optional list environment dependencies for the interceptor
+              class and/or its super-classes.
+            - An optional list of post-activate methods declared on the
+              interceptor class and/or its super-classes.
+            - An optional list of pre-passivate methods declared on the
+              interceptor class and/or its super-classes.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="interceptor-class"
+		   type="javaee:fully-qualified-classType"/>
+      <xsd:element name="around-invoke"
+                   type="javaee:around-invokeType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="post-activate"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="pre-passivate"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="interceptorsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The interceptorsType element declares one or more interceptor
+        classes used by components within this ejb-jar.  The declaration
+        consists of :
+
+            - An optional description.
+            - One or more interceptor elements.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="interceptor"
+		   type="javaee:interceptorType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-driven-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The message-driven element declares a message-driven
+	bean. The declaration consists of:
+
+	    - an optional description
+	    - an optional display name
+	    - an optional icon element that contains a small and a large
+	      icon file name.
+	    - a name assigned to the enterprise bean in
+	      the deployment descriptor
+            - an optional mapped-name element that can be used to provide
+              vendor-specific deployment information such as the physical
+              jndi-name of destination from which this message-driven bean
+              should consume.  This element is not required to be supported
+              by all implementations.  Any use of this element is non-portable.
+	    - the message-driven bean's implementation class
+	    - an optional declaration of the bean's messaging
+	      type
+            - an optional declaration of the bean's timeout method.
+	    - the optional message-driven bean's transaction management
+              type. If it is not defined, it is defaulted to Container.
+	    - an optional declaration of the bean's
+	      message-destination-type
+	    - an optional declaration of the bean's
+	      message-destination-link
+	    - an optional declaration of the message-driven bean's
+	      activation configuration properties
+            - an optional list of the message-driven bean class and/or
+              superclass around-invoke methods.
+	    - an optional declaration of the bean's environment
+	      entries
+	    - an optional declaration of the bean's EJB references
+	    - an optional declaration of the bean's local EJB
+	      references
+	    - an optional declaration of the bean's web service
+	      references
+	    - an optional declaration of the security
+	      identity to be used for the execution of the bean's
+	      methods
+	    - an optional declaration of the bean's
+	      resource manager connection factory
+	      references
+	    - an optional declaration of the bean's resource
+	      environment references.
+	    - an optional declaration of the bean's message
+	      destination references
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+		   type="javaee:ejb-nameType"/>
+      <xsd:element name="mapped-name"
+		   type="javaee:xsdStringType"
+		   minOccurs="0"/>
+      <xsd:element name="ejb-class"
+		   type="javaee:ejb-classType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+             The ejb-class element specifies the fully qualified name
+             of the bean class for this ejb.  It is required unless
+             there is a component-defining annotation for the same
+             ejb-name.
+
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="messaging-type"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The messaging-type element specifies the message
+	    listener interface of the message-driven bean.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="timeout-method"
+                   type="javaee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="transaction-type"
+		   type="javaee:transaction-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="message-destination-type"
+		   type="javaee:message-destination-typeType"
+		   minOccurs="0"/>
+      <xsd:element name="message-destination-link"
+		   type="javaee:message-destination-linkType"
+		   minOccurs="0"/>
+      <xsd:element name="activation-config"
+		   type="javaee:activation-configType"
+		   minOccurs="0"/>
+      <xsd:element name="around-invoke"
+                   type="javaee:around-invokeType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="security-identity"
+		   type="javaee:security-identityType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-intfType">
+
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The method-intf element allows a method element to
+	differentiate between the methods with the same name and
+	signature that are multiply defined across the home and
+	component interfaces (e.g, in both an enterprise bean's
+	remote and local interfaces or in both an enterprise bean's
+	home and remote interfaces, etc.); the component and web
+	service endpoint interfaces, and so on. The Local applies to
+        both local component interface and local business interface.
+        Similarly, Remote applies to both remote component interface
+        and the remote business interface.
+
+	The method-intf element must be one of the following:
+
+	    Home
+	    Remote
+	    LocalHome
+	    Local
+	    ServiceEndpoint
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Home"/>
+	<xsd:enumeration value="Remote"/>
+	<xsd:enumeration value="LocalHome"/>
+	<xsd:enumeration value="Local"/>
+	<xsd:enumeration value="ServiceEndpoint"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The method-nameType contains a name of an enterprise
+	bean method or the asterisk (*) character. The asterisk is
+	used when the element denotes all the methods of an
+	enterprise bean's client view interfaces.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-paramsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The method-paramsType defines a list of the
+	fully-qualified Java type names of the method parameters.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="method-param"
+		   type="javaee:java-typeType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The method-param element contains a primitive
+	    or a fully-qualified Java type name of a method
+	    parameter.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-permissionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The method-permissionType specifies that one or more
+	security roles are allowed to invoke one or more enterprise
+	bean methods. The method-permissionType consists of an
+	optional description, a list of security role names or an
+	indicator to state that the method is unchecked for
+	authorization, and a list of method elements.
+
+	The security roles used in the method-permissionType
+	must be defined in the security-role elements of the
+	deployment descriptor, and the methods must be methods
+	defined in the enterprise bean's business, home, component
+        and/or web service endpoint interfaces.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:choice>
+	<xsd:element name="role-name"
+		     type="javaee:role-nameType"
+		     maxOccurs="unbounded"/>
+	<xsd:element name="unchecked"
+		     type="javaee:emptyType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The unchecked element specifies that a method is
+	      not checked for authorization by the container
+	      prior to invocation of the method.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+      </xsd:choice>
+      <xsd:element name="method"
+		   type="javaee:methodType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The methodType is used to denote a method of an enterprise
+	  bean's business, home, component, and/or web service endpoint
+	  interface, or, in the case of a message-driven bean, the
+	  bean's message listener method, or a set of such
+	  methods. The ejb-name element must be the name of one of the
+	  enterprise beans declared in the deployment descriptor; the
+	  optional method-intf element allows to distinguish between a
+	  method with the same signature that is multiply defined
+	  across the business, home, component, and/or web service
+          endpoint nterfaces; the method-name element specifies the
+          method name; and the optional method-params elements identify
+          a single method among multiple methods with an overloaded
+	  method name.
+
+	  There are three possible styles of using methodType element
+	  within a method element:
+
+	  1.
+	  <method>
+	      <ejb-name>EJBNAME</ejb-name>
+	      <method-name>*</method-name>
+	  </method>
+
+	     This style is used to refer to all the methods of the
+	     specified enterprise bean's business, home, component,
+             and/or web service endpoint interfaces.
+
+	  2.
+	  <method>
+	      <ejb-name>EJBNAME</ejb-name>
+	      <method-name>METHOD</method-name>
+	  </method>
+
+	     This style is used to refer to the specified method of
+	     the specified enterprise bean. If there are multiple
+	     methods with the same overloaded name, the element of
+	     this style refers to all the methods with the overloaded
+	     name.
+
+	  3.
+	  <method>
+	      <ejb-name>EJBNAME</ejb-name>
+	      <method-name>METHOD</method-name>
+	      <method-params>
+		  <method-param>PARAM-1</method-param>
+		  <method-param>PARAM-2</method-param>
+		  ...
+		  <method-param>PARAM-n</method-param>
+	      </method-params>
+	  </method>
+
+	     This style is used to refer to a single method within a
+	     set of methods with an overloaded name. PARAM-1 through
+	     PARAM-n are the fully-qualified Java types of the
+	     method's input parameters (if the method has no input
+	     arguments, the method-params element contains no
+	     method-param elements). Arrays are specified by the
+	     array element's type, followed by one or more pair of
+	     square brackets (e.g. int[][]). If there are multiple
+	     methods with the same overloaded name, this style refers
+	     to all of the overloaded methods.
+
+	  Examples:
+
+	  Style 1: The following method element refers to all the
+	  methods of the EmployeeService bean's business, home,
+          component, and/or web service endpoint interfaces:
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-name>*</method-name>
+	  </method>
+
+	  Style 2: The following method element refers to all the
+	  create methods of the EmployeeService bean's home
+	  interface(s).
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-name>create</method-name>
+	  </method>
+
+	  Style 3: The following method element refers to the
+	  create(String firstName, String LastName) method of the
+	  EmployeeService bean's home interface(s).
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-name>create</method-name>
+	      <method-params>
+		  <method-param>java.lang.String</method-param>
+		  <method-param>java.lang.String</method-param>
+	      </method-params>
+	  </method>
+
+	  The following example illustrates a Style 3 element with
+	  more complex parameter types. The method
+	  foobar(char s, int i, int[] iar, mypackage.MyClass mycl,
+	  mypackage.MyClass[][] myclaar) would be specified as:
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-name>foobar</method-name>
+	      <method-params>
+		  <method-param>char</method-param>
+		  <method-param>int</method-param>
+		  <method-param>int[]</method-param>
+		  <method-param>mypackage.MyClass</method-param>
+		  <method-param>mypackage.MyClass[][]</method-param>
+	      </method-params>
+	  </method>
+
+	  The optional method-intf element can be used when it becomes
+	  necessary to differentiate between a method that is multiply
+	  defined across the enterprise bean's business, home, component,
+          and/or web service endpoint interfaces with the same name and
+	  signature. However, if the same method is a method of both the
+          local business interface, and the local component interface,
+          the same attribute applies to the method for both interfaces.
+          Likewise, if the same method is a method of both the remote
+          business interface and the remote component interface, the same
+          attribute applies to the method for both interfaces.
+
+	  For example, the method element
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-intf>Remote</method-intf>
+	      <method-name>create</method-name>
+	      <method-params>
+		  <method-param>java.lang.String</method-param>
+		  <method-param>java.lang.String</method-param>
+	      </method-params>
+	  </method>
+
+	  can be used to differentiate the create(String, String)
+	  method defined in the remote interface from the
+	  create(String, String) method defined in the remote home
+	  interface, which would be defined as
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-intf>Home</method-intf>
+	      <method-name>create</method-name>
+	      <method-params>
+		  <method-param>java.lang.String</method-param>
+		  <method-param>java.lang.String</method-param>
+	      </method-params>
+	  </method>
+
+	  and the create method that is defined in the local home
+	  interface which would be defined as
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-intf>LocalHome</method-intf>
+	      <method-name>create</method-name>
+	      <method-params>
+		  <method-param>java.lang.String</method-param>
+		  <method-param>java.lang.String</method-param>
+	      </method-params>
+	  </method>
+
+	  The method-intf element can be used with all three Styles
+	  of the method element usage. For example, the following
+	  method element example could be used to refer to all the
+	  methods of the EmployeeService bean's remote home interface
+          and the remote business interface.
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-intf>Home</method-intf>
+	      <method-name>*</method-name>
+	  </method>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="ejb-name"
+		   type="javaee:ejb-nameType"/>
+      <xsd:element name="method-intf"
+		   type="javaee:method-intfType"
+		   minOccurs="0">
+      </xsd:element>
+      <xsd:element name="method-name"
+		   type="javaee:method-nameType"/>
+      <xsd:element name="method-params"
+		   type="javaee:method-paramsType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="multiplicityType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The multiplicityType describes the multiplicity of the
+	role that participates in a relation.
+
+	The value must be one of the two following:
+
+	    One
+	    Many
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="One"/>
+	<xsd:enumeration value="Many"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="named-methodType">
+    <xsd:sequence>
+      <xsd:element name="method-name"
+		   type="javaee:string"/>
+      <xsd:element name="method-params"
+		   type="javaee:method-paramsType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="persistence-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The persistence-typeType specifies an entity bean's persistence
+	management type.
+
+	The persistence-type element must be one of the two following:
+
+	    Bean
+	    Container
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Bean"/>
+	<xsd:enumeration value="Container"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="query-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The query-method specifies the method for a finder or select
+	  query.
+
+	  The method-name element specifies the name of a finder or select
+	  method in the entity bean's implementation class.
+
+	  Each method-param must be defined for a query-method using the
+	  method-params element.
+
+	  It is used by the query-method element.
+
+	  Example:
+
+	  <query>
+	      <description>Method finds large orders</description>
+	      <query-method>
+		  <method-name>findLargeOrders</method-name>
+		  <method-params></method-params>
+	      </query-method>
+	      <ejb-ql>
+		SELECT OBJECT(o) FROM Order o
+		  WHERE o.amount &gt; 1000
+	      </ejb-ql>
+	  </query>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="method-name"
+		   type="javaee:method-nameType"/>
+      <xsd:element name="method-params"
+		   type="javaee:method-paramsType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="queryType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The queryType defines a finder or select
+	query. It contains
+	    - an optional description of the query
+	    - the specification of the finder or select
+	      method it is used by
+		- an optional specification of the result type
+		  mapping, if the query is for a select method
+		  and entity objects are returned.
+		- the EJB QL query string that defines the query.
+
+	Queries that are expressible in EJB QL must use the ejb-ql
+	element to specify the query. If a query is not expressible
+	in EJB QL, the description element should be used to
+	describe the semantics of the query and the ejb-ql element
+	should be empty.
+
+	The result-type-mapping is an optional element. It can only
+	be present if the query-method specifies a select method
+	that returns entity objects.  The default value for the
+	result-type-mapping element is "Local".
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType" minOccurs="0"/>
+      <xsd:element name="query-method"
+		   type="javaee:query-methodType"/>
+      <xsd:element name="result-type-mapping"
+		   type="javaee:result-type-mappingType"
+		   minOccurs="0"/>
+      <xsd:element name="ejb-ql"
+		   type="javaee:xsdStringType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="relationship-role-sourceType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The relationship-role-sourceType designates the source of a
+	role that participates in a relationship. A
+	relationship-role-sourceType is used by
+	relationship-role-source elements to uniquely identify an
+	entity bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-name"
+		   type="javaee:ejb-nameType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="relationshipsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The relationshipsType describes the relationships in
+	which entity beans with container-managed persistence
+	participate. The relationshipsType contains an optional
+	description; and a list of ejb-relation elements, which
+	specify the container managed relationships.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relation"
+		   type="javaee:ejb-relationType"
+		   maxOccurs="unbounded">
+
+	<xsd:unique name="role-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-relationship-role-name contains the name of a
+	      relationship role. The name must be unique within
+	      a relationship, but can be reused in different
+	      relationships.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector
+	       xpath=".//javaee:ejb-relationship-role-name"/>
+	  <xsd:field
+	       xpath="."/>
+	</xsd:unique>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="remove-methodType">
+    <xsd:sequence>
+      <xsd:element name="bean-method"
+		   type="javaee:named-methodType"/>
+      <xsd:element name="retain-if-exception"
+		   type="javaee:true-falseType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="result-type-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The result-type-mappingType is used in the query element to
+	specify whether an abstract schema type returned by a query
+	for a select method is to be mapped to an EJBLocalObject or
+	EJBObject type.
+
+	The value must be one of the following:
+
+	    Local
+	    Remote
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Local"/>
+	<xsd:enumeration value="Remote"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="security-identityType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The security-identityType specifies whether the caller's
+	security identity is to be used for the execution of the
+	methods of the enterprise bean or whether a specific run-as
+	identity is to be used. It contains an optional description
+	and a specification of the security identity to be used.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:choice>
+	<xsd:element name="use-caller-identity"
+		     type="javaee:emptyType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The use-caller-identity element specifies that
+	      the caller's security identity be used as the
+	      security identity for the execution of the
+	      enterprise bean's methods.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+	<xsd:element name="run-as"
+		     type="javaee:run-asType"/>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="session-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The session-beanType declares an session bean. The
+	declaration consists of:
+
+	    - an optional description
+	    - an optional display name
+	    - an optional icon element that contains a small and a large
+	      icon file name
+	    - a name assigned to the enterprise bean
+	      in the deployment description
+            - an optional mapped-name element that can be used to provide
+              vendor-specific deployment information such as the physical
+              jndi-name of the session bean's remote home/business interface.
+              This element is not required to be supported by all
+              implementations. Any use of this element is non-portable.
+            - the names of all the remote or local business interfaces,
+              if any
+	    - the names of the session bean's remote home and
+	      remote interfaces, if any
+	    - the names of the session bean's local home and
+	      local interfaces, if any
+	    - the name of the session bean's web service endpoint
+	      interface, if any
+	    - the session bean's implementation class
+	    - the session bean's state management type
+            - an optional declaration of the session bean's timeout method.
+	    - the optional session bean's transaction management type.
+              If it is not present, it is defaulted to Container.
+            - an optional list of the session bean class and/or
+              superclass around-invoke methods.
+	    - an optional declaration of the bean's
+	      environment entries
+	    - an optional declaration of the bean's EJB references
+	    - an optional declaration of the bean's local
+	      EJB references
+	    - an optional declaration of the bean's web
+	      service references
+	    - an optional declaration of the security role
+	      references
+	    - an optional declaration of the security identity
+	      to be used for the execution of the bean's methods
+	    - an optional declaration of the bean's resource
+	      manager connection factory references
+	    - an optional declaration of the bean's resource
+	      environment references.
+	    - an optional declaration of the bean's message
+	      destination references
+
+	The elements that are optional are "optional" in the sense
+	that they are omitted when if lists represented by them are
+	empty.
+
+	Either both the local-home and the local elements or both
+	the home and the remote elements must be specified for the
+	session bean.
+
+	The service-endpoint element may only be specified if the
+	bean is a stateless session bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+		   type="javaee:ejb-nameType"/>
+      <xsd:element name="mapped-name"
+		   type="javaee:xsdStringType"
+		   minOccurs="0"/>
+      <xsd:element name="home"
+		   type="javaee:homeType"
+		   minOccurs="0"/>
+      <xsd:element name="remote"
+		   type="javaee:remoteType"
+		   minOccurs="0"/>
+      <xsd:element name="local-home"
+		   type="javaee:local-homeType"
+		   minOccurs="0"/>
+      <xsd:element name="local"
+		   type="javaee:localType"
+		   minOccurs="0"/>
+      <xsd:element name="business-local"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="business-remote"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="service-endpoint"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The service-endpoint element contains the
+	    fully-qualified name of the enterprise bean's web
+	    service endpoint interface. The service-endpoint
+	    element may only be specified for a stateless
+	    session bean. The specified interface must be a
+	    valid JAX-RPC service endpoint interface.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-class"
+		   type="javaee:ejb-classType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+             The ejb-class element specifies the fully qualified name
+             of the bean class for this ejb.  It is required unless
+             there is a component-defining annotation for the same
+             ejb-name.
+
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="session-type"
+		   type="javaee:session-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="timeout-method"
+                   type="javaee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="init-method"
+                   type="javaee:init-methodType"
+                   minOccurs="0"
+                   maxOccurs="unbounded">
+        <xsd:annotation>
+	  <xsd:documentation>
+
+	    The init-method element specifies the mappings for
+	    EJB 2.x style create methods for an EJB 3.0 bean.
+	    This element can only be specified for stateful
+            session beans.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="remove-method"
+                   type="javaee:remove-methodType"
+                   minOccurs="0"
+                   maxOccurs="unbounded">
+        <xsd:annotation>
+	  <xsd:documentation>
+
+	    The remove-method element specifies the mappings for
+	    EJB 2.x style remove methods for an EJB 3.0 bean.
+	    This element can only be specified for stateful
+            session beans.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="transaction-type"
+		   type="javaee:transaction-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="around-invoke"
+                   type="javaee:around-invokeType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="post-activate"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="pre-passivate"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="security-role-ref"
+		   type="javaee:security-role-refType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+      </xsd:element>
+      <xsd:element name="security-identity"
+		   type="javaee:security-identityType"
+		   minOccurs="0">
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="session-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The session-typeType describes whether the session bean is a
+	stateful session or stateless session. It is used by
+	session-type elements.
+
+	The value must be one of the two following:
+
+	    Stateful
+	    Stateless
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Stateful"/>
+	<xsd:enumeration value="Stateless"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="trans-attributeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The trans-attributeType specifies how the container must
+	manage the transaction boundaries when delegating a method
+	invocation to an enterprise bean's business method.
+
+	The value must be one of the following:
+
+	    NotSupported
+	    Supports
+	    Required
+	    RequiresNew
+	    Mandatory
+	    Never
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="NotSupported"/>
+	<xsd:enumeration value="Supports"/>
+	<xsd:enumeration value="Required"/>
+	<xsd:enumeration value="RequiresNew"/>
+	<xsd:enumeration value="Mandatory"/>
+	<xsd:enumeration value="Never"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="transaction-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The transaction-typeType specifies an enterprise bean's
+	transaction management type.
+
+	The transaction-type must be one of the two following:
+
+	    Bean
+	    Container
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Bean"/>
+	<xsd:enumeration value="Container"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+</xsd:schema>
+

Added: projects/ejb3/trunk/core/src/main/resources/schema/javaee_5.xsd
===================================================================
--- projects/ejb3/trunk/core/src/main/resources/schema/javaee_5.xsd	                        (rev 0)
+++ projects/ejb3/trunk/core/src/main/resources/schema/javaee_5.xsd	2008-02-24 23:19:46 UTC (rev 70050)
@@ -0,0 +1,2095 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema
+     targetNamespace="http://java.sun.com/xml/ns/javaee"
+     xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+     xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+     elementFormDefault="qualified"
+     attributeFormDefault="unqualified"
+     version="5">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)javaee_5.xsds	1.65 06/02/17
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2003-2006 Sun Microsystems, Inc.
+      4150 Network Circle
+      Santa Clara, California 95054
+      U.S.A
+      All rights reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+<xsd:annotation>
+<xsd:documentation>
+
+The following definitions that appear in the common
+shareable schema(s) of J2EE deployment descriptors should be
+interpreted with respect to the context they are included:
+
+Deployment Component may indicate one of the following:
+    j2ee application;
+    application client;
+    web application;
+    enterprise bean;
+    resource adapter;
+
+Deployment File may indicate one of the following:
+    ear file;
+    war file;
+    jar file;
+    rar file;
+
+</xsd:documentation>
+</xsd:annotation>
+
+  <xsd:import namespace="http://www.w3.org/XML/1998/namespace"
+	      schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+  <xsd:include schemaLocation="javaee_web_services_client_1_2.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:group name="descriptionGroup">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This group keeps the usage of the contained description related
+	elements consistent across Java EE deployment descriptors.
+
+	All elements may occur multiple times with different languages,
+	to support localization of the content.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="display-name"
+		   type="javaee:display-nameType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="icon"
+		   type="javaee:iconType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:group>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="descriptionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The description type is used by a description element to
+	provide text describing the parent element.  The elements
+	that use this type should include any information that the
+	Deployment Component's Deployment File file producer wants
+	to provide to the consumer of the Deployment Component's
+	Deployment File (i.e., to the Deployer). Typically, the
+	tools used by such a Deployment File consumer will display
+	the description when processing the parent element that
+	contains the description.
+
+	The lang attribute defines the language that the
+	description is provided in. The default value is "en" (English).
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="javaee:xsdStringType">
+	<xsd:attribute ref="xml:lang"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="dewey-versionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type defines a dewey decimal that is used
+	to describe versions of documents.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:restriction base="xsd:token">
+      <xsd:pattern value="\.?[0-9]+(\.[0-9]+)*"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="display-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The display-name type contains a short name that is intended
+	  to be displayed by tools. It is used by display-name
+	  elements.  The display name need not be unique.
+
+	  Example:
+
+	  ...
+	     <display-name xml:lang="en">
+	       Employee Self Service
+	     </display-name>
+
+	  The value of the xml:lang attribute is "en" (English) by default.
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="javaee:string">
+	<xsd:attribute ref="xml:lang"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-linkType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The ejb-linkType is used by ejb-link
+	  elements in the ejb-ref or ejb-local-ref elements to specify
+	  that an EJB reference is linked to enterprise bean.
+
+	  The value of the ejb-link element must be the ejb-name of an
+	  enterprise bean in the same ejb-jar file or in another ejb-jar
+	  file in the same Java EE application unit.
+
+	  Alternatively, the name in the ejb-link element may be
+	  composed of a path name specifying the ejb-jar containing the
+	  referenced enterprise bean with the ejb-name of the target
+	  bean appended and separated from the path name by "#".  The
+	  path name is relative to the Deployment File containing
+	  Deployment Component that is referencing the enterprise
+	  bean.  This allows multiple enterprise beans with the same
+	  ejb-name to be uniquely identified.
+
+	  Examples:
+
+	      <ejb-link>EmployeeRecord</ejb-link>
+
+	      <ejb-link>../products/product.jar#ProductEJB</ejb-link>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-local-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The ejb-local-refType is used by ejb-local-ref elements for
+	the declaration of a reference to an enterprise bean's local
+	home or to the local business interface of a 3.0 bean.
+        The declaration consists of:
+
+	    - an optional description
+	    - the EJB reference name used in the code of the Deployment
+	      Component that's referencing the enterprise bean.
+	    - the optional expected type of the referenced enterprise bean
+	    - the optional expected local interface of the referenced
+              enterprise bean or the local business interface of the
+              referenced enterprise bean.
+	    - the optional expected local home interface of the referenced
+              enterprise bean. Not applicable if this ejb-local-ref refers
+              to the local business interface of a 3.0 bean.
+	    - optional ejb-link information, used to specify the
+	      referenced enterprise bean
+            - optional elements to define injection of the named enterprise
+              bean into a component field or property.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-ref-name"
+		   type="javaee:ejb-ref-nameType"/>
+      <xsd:element name="ejb-ref-type"
+		   type="javaee:ejb-ref-typeType"
+                   minOccurs="0"/>
+      <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:group ref="javaee:resourceGroup"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-ref-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The ejb-ref-name element contains the name of an EJB
+	  reference. The EJB reference is an entry in the
+	  Deployment Component's environment and is relative to the
+	  java:comp/env context.  The name must be unique within the
+	  Deployment Component.
+
+	  It is recommended that name is prefixed with "ejb/".
+
+	  Example:
+
+	  <ejb-ref-name>ejb/Payroll</ejb-ref-name>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:jndi-nameType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-ref-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The ejb-ref-typeType contains the expected type of the
+	referenced enterprise bean.
+
+	The ejb-ref-type designates a value
+	that must be one of the following:
+
+	    Entity
+	    Session
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Entity"/>
+	<xsd:enumeration value="Session"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The ejb-refType is used by ejb-ref elements for the
+	declaration of a reference to an enterprise bean's home or
+        to the remote business interface of a 3.0 bean.
+	The declaration consists of:
+
+	    - an optional description
+	    - the EJB reference name used in the code of
+	      the Deployment Component that's referencing the enterprise
+	      bean.
+	    - the optional expected type of the referenced enterprise bean
+            - the optional remote interface of the referenced enterprise bean
+              or the remote business interface of the referenced enterprise
+              bean
+	    - the optional expected home interface of the referenced
+              enterprise bean.  Not applicable if this ejb-ref
+              refers to the remote business interface of a 3.0 bean.
+	    - optional ejb-link information, used to specify the
+	      referenced enterprise bean
+            - optional elements to define injection of the named enterprise
+              bean into a component field or property
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-ref-name"
+		   type="javaee:ejb-ref-nameType"/>
+      <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="javaee:resourceGroup"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="emptyType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type is used to designate an empty
+	element when used.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="env-entry-type-valuesType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  This type contains the fully-qualified Java type of the
+	  environment entry value that is expected by the
+	  application's code.
+
+	  The following are the legal values of env-entry-type-valuesType:
+
+	      java.lang.Boolean
+	      java.lang.Byte
+	      java.lang.Character
+	      java.lang.String
+	      java.lang.Short
+	      java.lang.Integer
+	      java.lang.Long
+	      java.lang.Float
+	      java.lang.Double
+
+	  Example:
+
+	  <env-entry-type>java.lang.Boolean</env-entry-type>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="java.lang.Boolean"/>
+	<xsd:enumeration value="java.lang.Byte"/>
+	<xsd:enumeration value="java.lang.Character"/>
+	<xsd:enumeration value="java.lang.String"/>
+	<xsd:enumeration value="java.lang.Short"/>
+	<xsd:enumeration value="java.lang.Integer"/>
+	<xsd:enumeration value="java.lang.Long"/>
+	<xsd:enumeration value="java.lang.Float"/>
+	<xsd:enumeration value="java.lang.Double"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="env-entryType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The env-entryType is used to declare an application's
+	environment entry. The declaration consists of an optional
+	description, the name of the environment entry, a type
+	(optional if the value is injected, otherwise required), and
+	an optional value.
+
+	It also includes optional elements to define injection of
+	the named resource into fields or JavaBeans properties.
+
+	If a value is not specified and injection is requested,
+	no injection will occur and no entry of the specified name
+	will be created.  This allows an initial value to be
+	specified in the source code without being incorrectly
+	changed when no override has been specified.
+
+	If a value is not specified and no injection is requested,
+	a value must be supplied during deployment.
+
+	This type is used by env-entry elements.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="env-entry-name"
+		   type="javaee:jndi-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+	    <![CDATA[
+
+	      The env-entry-name element contains the name of a
+	      Deployment Component's environment entry.  The name
+	      is a JNDI name relative to the java:comp/env
+	      context.  The name must be unique within a
+	      Deployment Component. The uniqueness
+	      constraints must be defined within the declared
+	      context.
+
+	      Example:
+
+	      <env-entry-name>minAmount</env-entry-name>
+
+	      ]]>
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="env-entry-type"
+		   type="javaee:env-entry-type-valuesType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+	    <![CDATA[
+
+	      The env-entry-type element contains the Java language
+	      type of the environment entry.  If an injection target
+	      is specified for the environment entry, the type may
+	      be omitted, or must match the type of the injection
+	      target.  If no injection target is specified, the type
+	      is required.
+
+	      Example:
+
+	      <env-entry-type>java.lang.Integer</env-entry-type>
+
+	      ]]>
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="env-entry-value"
+		   type="javaee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+	    <![CDATA[
+
+	      The env-entry-value designates the value of a
+	      Deployment Component's environment entry. The value
+	      must be a String that is valid for the
+	      constructor of the specified type that takes a
+	      single String parameter, or for java.lang.Character,
+	      a single character.
+
+	      Example:
+
+	      <env-entry-value>100.00</env-entry-value>
+
+	      ]]>
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:group ref="javaee:resourceGroup"/>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="fully-qualified-classType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The elements that use this type designate the name of a
+	Java class or interface.  The name is in the form of a
+	"binary name", as defined in the JLS.  This is the form
+	of name used in Class.forName().  Tools that need the
+	canonical name (the name used in source code) will need
+	to convert this binary name to the canonical name.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="generic-booleanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type defines four different values which can designate
+	boolean values. This includes values yes and no which are
+	not designated by xsd:boolean
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="true"/>
+	<xsd:enumeration value="false"/>
+	<xsd:enumeration value="yes"/>
+	<xsd:enumeration value="no"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="homeType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The homeType defines the fully-qualified name of
+	  an enterprise bean's home interface.
+
+	  Example:
+
+	      <home>com.aardvark.payroll.PayrollHome</home>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="iconType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The icon type contains small-icon and large-icon elements
+	that specify the file names for small and large GIF, JPEG,
+	or PNG icon images used to represent the parent element in a
+	GUI tool.
+
+	The xml:lang attribute defines the language that the
+	icon file names are provided in. Its value is "en" (English)
+	by default.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="small-icon" type="javaee:pathType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+	    <![CDATA[
+
+	      The small-icon element contains the name of a file
+	      containing a small (16 x 16) icon image. The file
+	      name is a relative path within the Deployment
+	      Component's Deployment File.
+
+	      The image may be in the GIF, JPEG, or PNG format.
+	      The icon can be used by tools.
+
+	      Example:
+
+	      <small-icon>employee-service-icon16x16.jpg</small-icon>
+
+	      ]]>
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="large-icon" type="javaee:pathType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+	    <![CDATA[
+
+	      The large-icon element contains the name of a file
+	      containing a large
+	      (32 x 32) icon image. The file name is a relative
+	      path within the Deployment Component's Deployment
+	      File.
+
+	      The image may be in the GIF, JPEG, or PNG format.
+	      The icon can be used by tools.
+
+	      Example:
+
+	      <large-icon>employee-service-icon32x32.jpg</large-icon>
+
+	      ]]>
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+    </xsd:sequence>
+
+    <xsd:attribute ref="xml:lang"/>
+    <xsd:attribute name="id" type="xsd:ID"/>
+
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="injection-targetType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	An injection target specifies a class and a name within
+	that class into which a resource should be injected.
+
+	The injection target class specifies the fully qualified
+	class name that is the target of the injection.  The
+	Java EE specifications describe which classes can be an
+	injection target.
+
+	The injection target name specifies the target within
+	the specified class.  The target is first looked for as a
+	JavaBeans property name.  If not found, the target is
+	looked for as a field name.
+
+	The specified resource will be injected into the target
+	during initialization of the class by either calling the
+	set method for the target property or by setting a value
+	into the named field.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="injection-target-class"
+		   type="javaee:fully-qualified-classType"/>
+      <xsd:element name="injection-target-name"
+		   type="javaee:java-identifierType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="java-identifierType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The java-identifierType defines a Java identifier.
+	The users of this type should further verify that
+	the content does not contain Java reserved keywords.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:pattern value="($|_|\p{L})(\p{L}|\p{Nd}|_|$)*"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="java-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This is a generic type that designates a Java primitive
+	type or a fully qualified name of a Java interface/type,
+	or an array of such types.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:pattern value="[^\p{Z}]*"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="jndi-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The jndi-nameType type designates a JNDI name in the
+	Deployment Component's environment and is relative to the
+	java:comp/env context.  A JNDI name must be unique within the
+	Deployment Component.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:group name="jndiEnvironmentRefsGroup">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This group keeps the usage of the contained JNDI environment
+	reference elements consistent across Java EE deployment descriptors.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="env-entry"
+		   type="javaee:env-entryType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="ejb-ref"
+		   type="javaee:ejb-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="ejb-local-ref"
+		   type="javaee:ejb-local-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:service-refGroup"/>
+      <xsd:element name="resource-ref"
+		   type="javaee:resource-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref"
+		   type="javaee:resource-env-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref"
+		   type="javaee:message-destination-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="persistence-context-ref"
+		   type="javaee:persistence-context-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="persistence-unit-ref"
+		   type="javaee:persistence-unit-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="post-construct"
+		   type="javaee:lifecycle-callbackType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="pre-destroy"
+		   type="javaee:lifecycle-callbackType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:group>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="lifecycle-callbackType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The lifecycle-callback type specifies a method on a
+	class to be called when a lifecycle event occurs.
+	Note that each class may have only one lifecycle callback
+        method for any given event and that the method may not
+	be overloaded.
+
+        If the lifefycle-callback-class element is missing then
+        the class defining the callback is assumed to be the
+        component class in scope at the place in the descriptor
+        in which the callback definition appears.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="lifecycle-callback-class"
+		   type="javaee:fully-qualified-classType"
+                   minOccurs="0"/>
+      <xsd:element name="lifecycle-callback-method"
+		   type="javaee:java-identifierType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="listenerType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The listenerType indicates the deployment properties for a web
+	application listener bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="listener-class"
+		   type="javaee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The listener-class element declares a class in the
+	    application must be registered as a web
+	    application listener bean. The value is the fully
+	    qualified classname of the listener class.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="local-homeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The local-homeType defines the fully-qualified
+	name of an enterprise bean's local home interface.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="localType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The localType defines the fully-qualified name of an
+	enterprise bean's local interface.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-destination-linkType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The message-destination-linkType is used to link a message
+	destination reference or message-driven bean to a message
+	destination.
+
+	The Assembler sets the value to reflect the flow of messages
+	between producers and consumers in the application.
+
+	The value must be the message-destination-name of a message
+	destination in the same Deployment File or in another
+	Deployment File in the same Java EE application unit.
+
+	Alternatively, the value may be composed of a path name
+	specifying a Deployment File containing the referenced
+	message destination with the message-destination-name of the
+	destination appended and separated from the path name by
+	"#". The path name is relative to the Deployment File
+	containing Deployment Component that is referencing the
+	message destination.  This allows multiple message
+	destinations with the same name to be uniquely identified.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-destination-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The message-destination-ref element contains a declaration
+	  of Deployment Component's reference to a message destination
+	  associated with a resource in Deployment Component's
+	  environment. It consists of:
+
+		  - an optional description
+		  - the message destination reference name
+		  - an optional message destination type
+		  - an optional specification as to whether
+		    the destination is used for
+		    consuming or producing messages, or both.
+		    if not specified, "both" is assumed.
+		  - an optional link to the message destination
+		  - optional injection targets
+
+	  The message destination type must be supplied unless an
+	  injection target is specified, in which case the type
+	  of the target is used.  If both are specified, the type
+	  must be assignment compatible with the type of the injection
+	  target.
+
+	  Examples:
+
+	  <message-destination-ref>
+		  <message-destination-ref-name>jms/StockQueue
+		  </message-destination-ref-name>
+		  <message-destination-type>javax.jms.Queue
+		  </message-destination-type>
+		  <message-destination-usage>Consumes
+		  </message-destination-usage>
+		  <message-destination-link>CorporateStocks
+		  </message-destination-link>
+	  </message-destination-ref>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref-name"
+		   type="javaee:jndi-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The message-destination-ref-name element specifies
+	    the name of a message destination reference; its
+	    value is the environment entry name used in
+	    Deployment Component code.  The name is a JNDI name
+	    relative to the java:comp/env context and must be
+	    unique within an ejb-jar (for enterprise beans) or a
+	    Deployment File (for others).
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="message-destination-type"
+		   type="javaee:message-destination-typeType"
+		   minOccurs="0"/>
+      <xsd:element name="message-destination-usage"
+		   type="javaee:message-destination-usageType"
+		   minOccurs="0"/>
+      <xsd:element name="message-destination-link"
+		   type="javaee:message-destination-linkType"
+		   minOccurs="0"/>
+
+      <xsd:group ref="javaee:resourceGroup"/>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-destination-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The message-destination-typeType specifies the type of
+	  the destination. The type is specified by the Java interface
+	  expected to be implemented by the destination.
+
+	  Example:
+
+	    <message-destination-type>javax.jms.Queue
+	    </message-destination-type>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-destination-usageType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The message-destination-usageType specifies the use of the
+	message destination indicated by the reference.  The value
+	indicates whether messages are consumed from the message
+	destination, produced for the destination, or both.  The
+	Assembler makes use of this information in linking producers
+	of a destination with its consumers.
+
+	The value of the message-destination-usage element must be
+	one of the following:
+	    Consumes
+	    Produces
+	    ConsumesProduces
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Consumes"/>
+	<xsd:enumeration value="Produces"/>
+	<xsd:enumeration value="ConsumesProduces"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-destinationType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The message-destinationType specifies a message
+	  destination. The logical destination described by this
+	  element is mapped to a physical destination by the Deployer.
+
+	  The message destination element contains:
+
+		  - an optional description
+		  - an optional display-name
+		  - an optional icon
+		  - a message destination name which must be unique
+		    among message destination names within the same
+		    Deployment File.
+		  - an optional mapped name
+
+	  Example:
+
+	  <message-destination>
+		  <message-destination-name>CorporateStocks
+		  </message-destination-name>
+	  </message-destination>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="message-destination-name"
+		   type="javaee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The message-destination-name element specifies a
+	    name for a message destination.  This name must be
+	    unique among the names of message destinations
+	    within the Deployment File.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="mapped-name"
+		   type="javaee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+	    <![CDATA[
+
+	      A product specific name that this message destination
+	      should be mapped to.  Each message-destination-ref
+	      element that references this message destination will
+	      define a name in the namespace of the referencing
+	      component.  (It's a name in the JNDI java:comp/env
+	      namespace.)  Many application servers provide a way to
+	      map these local names to names of resources known to the
+	      application server.  This mapped name is often a global
+	      JNDI name, but may be a name of any form.  Each of the
+	      local names should be mapped to this same global name.
+
+	      Application servers are not required to support any
+	      particular form or type of mapped name, nor the ability
+	      to use mapped names.  The mapped name is
+	      product-dependent and often installation-dependent.  No
+	      use of a mapped name is portable.
+
+	      ]]>
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="param-valueType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type is a general type that can be used to declare
+	parameter/value lists.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="param-name"
+		   type="javaee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The param-name element contains the name of a
+	    parameter.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="param-value"
+		   type="javaee:xsdStringType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The param-value element contains the value of a
+	    parameter.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="pathType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The elements that use this type designate either a relative
+	path or an absolute path starting with a "/".
+
+	In elements that specify a pathname to a file within the
+	same Deployment File, relative filenames (i.e., those not
+	starting with "/") are considered relative to the root of
+	the Deployment File's namespace.  Absolute filenames (i.e.,
+	those starting with "/") also specify names in the root of
+	the Deployment File's namespace.  In general, relative names
+	are preferred.  The exception is .war files where absolute
+	names are preferred for consistency with the Servlet API.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="persistence-context-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The persistence-context-ref element contains a declaration
+	  of Deployment Component's reference to a persistence context
+	  associated within a Deployment Component's
+	  environment. It consists of:
+
+		  - an optional description
+		  - the persistence context reference name
+		  - an optional persistence unit name.  If not specified,
+                    the default persistence unit is assumed.
+		  - an optional specification as to whether
+		    the persistence context type is Transaction or
+		    Extended.  If not specified, Transaction is assumed.
+                  - an optional list of persistence properties
+		  - optional injection targets
+
+	  Examples:
+
+            <persistence-context-ref>
+              <persistence-context-ref-name>myPersistenceContext
+              </persistence-context-ref-name>
+            </persistence-context-ref>
+
+            <persistence-context-ref>
+              <persistence-context-ref-name>myPersistenceContext
+                </persistence-context-ref-name>
+              <persistence-unit-name>PersistenceUnit1
+                </persistence-unit-name>
+              <persistence-context-type>Extended</persistence-context-type>
+            </persistence-context-ref>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="persistence-context-ref-name"
+		   type="javaee:jndi-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The persistence-context-ref-name element specifies
+	    the name of a persistence context reference; its
+	    value is the environment entry name used in
+	    Deployment Component code.  The name is a JNDI name
+	    relative to the java:comp/env context.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="persistence-unit-name"
+		   type="javaee:string"
+		   minOccurs="0">
+        <xsd:annotation>
+	  <xsd:documentation>
+
+            The Application Assembler(or BeanProvider) may use the
+            following syntax to avoid the need to rename persistence
+            units to have unique names within a Java EE application.
+
+            The Application Assembler specifies the pathname of the
+            root of the persistence.xml file for the referenced
+            persistence unit and appends the name of the persistence
+            unit separated from the pathname by #. The pathname is
+            relative to the referencing application component jar file.
+            In this manner, multiple persistence units with the same
+            persistence unit name may be uniquely identified when the
+            Application Assembler cannot change persistence unit names.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="persistence-context-type"
+		   type="javaee:persistence-context-typeType"
+		   minOccurs="0"/>
+
+      <xsd:element name="persistence-property"
+		   type="javaee:propertyType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+        <xsd:annotation>
+	  <xsd:documentation>
+
+            Used to specify properties for the container or persistence
+            provider.  Vendor-specific properties may be included in
+            the set of properties.  Properties that are not recognized
+            by a vendor must be ignored.  Entries that make use of the
+            namespace javax.persistence and its subnamespaces must not
+            be used for vendor-specific properties.  The namespace
+            javax.persistence is reserved for use by the specification.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:group ref="javaee:resourceGroup"/>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="persistence-context-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The persistence-context-typeType specifies the transactional
+	nature of a persistence context reference.
+
+	The value of the persistence-context-type element must be
+	one of the following:
+	    Transaction
+            Extended
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Transaction"/>
+	<xsd:enumeration value="Extended"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="persistence-unit-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The persistence-unit-ref element contains a declaration
+	  of Deployment Component's reference to a persistence unit
+	  associated within a Deployment Component's
+	  environment. It consists of:
+
+		  - an optional description
+		  - the persistence unit reference name
+		  - an optional persistence unit name.  If not specified,
+                    the default persistence unit is assumed.
+		  - optional injection targets
+
+	  Examples:
+
+            <persistence-unit-ref>
+              <persistence-unit-ref-name>myPersistenceUnit
+              </persistence-unit-ref-name>
+            </persistence-unit-ref>
+
+            <persistence-unit-ref>
+              <persistence-unit-ref-name>myPersistenceUnit
+                </persistence-unit-ref-name>
+              <persistence-unit-name>PersistenceUnit1
+                </persistence-unit-name>
+            </persistence-unit-ref>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="persistence-unit-ref-name"
+		   type="javaee:jndi-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The persistence-unit-ref-name element specifies
+	    the name of a persistence unit reference; its
+	    value is the environment entry name used in
+	    Deployment Component code.  The name is a JNDI name
+	    relative to the java:comp/env context.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="persistence-unit-name"
+		   type="javaee:string"
+		   minOccurs="0">
+        <xsd:annotation>
+	  <xsd:documentation>
+
+            The Application Assembler(or BeanProvider) may use the
+            following syntax to avoid the need to rename persistence
+            units to have unique names within a Java EE application.
+
+            The Application Assembler specifies the pathname of the
+            root of the persistence.xml file for the referenced
+            persistence unit and appends the name of the persistence
+            unit separated from the pathname by #. The pathname is
+            relative to the referencing application component jar file.
+            In this manner, multiple persistence units with the same
+            persistence unit name may be uniquely identified when the
+            Application Assembler cannot change persistence unit names.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:group ref="javaee:resourceGroup"/>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="propertyType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	Specifies a name/value pair.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="name"
+		   type="javaee:xsdStringType">
+      </xsd:element>
+      <xsd:element name="value"
+		   type="javaee:xsdStringType">
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="remoteType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The remote element contains the fully-qualified name
+	  of the enterprise bean's remote interface.
+
+	  Example:
+
+	      <remote>com.wombat.empl.EmployeeService</remote>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="res-authType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The res-authType specifies whether the Deployment Component
+	code signs on programmatically to the resource manager, or
+	whether the Container will sign on to the resource manager
+	on behalf of the Deployment Component. In the latter case,
+	the Container uses information that is supplied by the
+	Deployer.
+
+	The value must be one of the two following:
+
+	    Application
+	    Container
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Application"/>
+	<xsd:enumeration value="Container"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="res-sharing-scopeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The res-sharing-scope type specifies whether connections
+	obtained through the given resource manager connection
+	factory reference can be shared. The value, if specified,
+	must be one of the two following:
+
+	    Shareable
+	    Unshareable
+
+	The default value is Shareable.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Shareable"/>
+	<xsd:enumeration value="Unshareable"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="resource-env-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The resource-env-refType is used to define
+	  resource-env-type elements.  It contains a declaration of a
+	  Deployment Component's reference to an administered object
+	  associated with a resource in the Deployment Component's
+	  environment.  It consists of an optional description, the
+	  resource environment reference name, and an optional
+	  indication of the resource environment reference type
+	  expected by the Deployment Component code.
+
+	  It also includes optional elements to define injection of
+	  the named resource into fields or JavaBeans properties.
+
+	  The resource environment type must be supplied unless an
+	  injection target is specified, in which case the type
+	  of the target is used.  If both are specified, the type
+	  must be assignment compatible with the type of the injection
+	  target.
+
+	  Example:
+
+	  <resource-env-ref>
+	      <resource-env-ref-name>jms/StockQueue
+	      </resource-env-ref-name>
+	      <resource-env-ref-type>javax.jms.Queue
+	      </resource-env-ref-type>
+	  </resource-env-ref>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref-name"
+		   type="javaee:jndi-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The resource-env-ref-name element specifies the name
+	    of a resource environment reference; its value is
+	    the environment entry name used in
+	    the Deployment Component code.  The name is a JNDI
+	    name relative to the java:comp/env context and must
+	    be unique within a Deployment Component.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="resource-env-ref-type"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The resource-env-ref-type element specifies the type
+	    of a resource environment reference.  It is the
+	    fully qualified name of a Java language class or
+	    interface.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:group ref="javaee:resourceGroup"/>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="resource-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The resource-refType contains a declaration of a
+	  Deployment Component's reference to an external resource. It
+	  consists of an optional description, the resource manager
+	  connection factory reference name, an optional indication of
+	  the resource manager connection factory type expected by the
+	  Deployment Component code, an optional type of authentication
+	  (Application or Container), and an optional specification of
+	  the shareability of connections obtained from the resource
+	  (Shareable or Unshareable).
+
+	  It also includes optional elements to define injection of
+	  the named resource into fields or JavaBeans properties.
+
+	  The connection factory type must be supplied unless an
+	  injection target is specified, in which case the type
+	  of the target is used.  If both are specified, the type
+	  must be assignment compatible with the type of the injection
+	  target.
+
+	  Example:
+
+	  <resource-ref>
+	      <res-ref-name>jdbc/EmployeeAppDB</res-ref-name>
+	      <res-type>javax.sql.DataSource</res-type>
+	      <res-auth>Container</res-auth>
+	      <res-sharing-scope>Shareable</res-sharing-scope>
+	  </resource-ref>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="res-ref-name"
+		   type="javaee:jndi-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The res-ref-name element specifies the name of a
+	    resource manager connection factory reference.
+	    The name is a JNDI name relative to the
+	    java:comp/env context.
+	    The name must be unique within a Deployment File.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="res-type"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The res-type element specifies the type of the data
+	    source. The type is specified by the fully qualified
+	    Java language class or interface
+	    expected to be implemented by the data source.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="res-auth"
+		   type="javaee:res-authType"
+		   minOccurs="0"/>
+
+      <xsd:element name="res-sharing-scope"
+		   type="javaee:res-sharing-scopeType"
+		   minOccurs="0"/>
+
+      <xsd:group ref="javaee:resourceGroup"/>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:group name="resourceGroup">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This group collects elements that are common to all the
+	JNDI resource elements.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="mapped-name"
+		   type="javaee:xsdStringType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+	    <![CDATA[
+
+	      A product specific name that this resource should be
+	      mapped to.  The name of this resource, as defined by the
+	      resource's name element or defaulted, is a name that is
+	      local to the application component using the resource.
+	      (It's a name in the JNDI java:comp/env namespace.)  Many
+	      application servers provide a way to map these local
+	      names to names of resources known to the application
+	      server.  This mapped name is often a global JNDI name,
+	      but may be a name of any form.
+
+	      Application servers are not required to support any
+	      particular form or type of mapped name, nor the ability
+	      to use mapped names.  The mapped name is
+	      product-dependent and often installation-dependent.  No
+	      use of a mapped name is portable.
+
+	      ]]>
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="injection-target"
+		   type="javaee:injection-targetType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+  </xsd:group>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="role-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The role-nameType designates the name of a security role.
+
+	The name must conform to the lexical rules for a token.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="run-asType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The run-asType specifies the run-as identity to be
+	used for the execution of a component. It contains an
+	optional description, and the name of a security role.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <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"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="security-role-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The security-role-refType contains the declaration of a
+	security role reference in a component's or a
+	Deployment Component's code. The declaration consists of an
+	optional description, the security role name used in the
+	code, and an optional link to a security role. If the
+	security role is not specified, the Deployer must choose an
+	appropriate security role.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="role-name"
+		   type="javaee:role-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The value of the role-name element must be the String used
+	    as the parameter to the
+	    EJBContext.isCallerInRole(String roleName) method or the
+	    HttpServletRequest.isUserInRole(String role) method.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="role-link"
+		   type="javaee:role-nameType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The role-link element is a reference to a defined
+	    security role. The role-link element must contain
+	    the name of one of the security roles defined in the
+	    security-role elements.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="security-roleType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The security-roleType contains the definition of a security
+	  role. The definition consists of an optional description of
+	  the security role, and the security role name.
+
+	  Example:
+
+	      <security-role>
+	      <description>
+		  This role includes all employees who are authorized
+		  to access the employee service application.
+	      </description>
+	      <role-name>employee</role-name>
+	      </security-role>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <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"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="string">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This is a special string datatype that is defined by Java EE as
+	a base type for defining collapsed strings. When schemas
+	require trailing/leading space elimination as well as
+	collapsing the existing whitespace, this base type may be
+	used.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:token">
+	<xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="true-falseType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This simple type designates a boolean with only two
+	permissible values
+
+	- true
+	- false
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdBooleanType">
+	<xsd:pattern value="(true|false)"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="url-patternType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The url-patternType contains the url pattern of the mapping.
+	It must follow the rules specified in Section 11.2 of the
+	Servlet API Specification. This pattern is assumed to be in
+	URL-decoded form and must not contain CR(#xD) or LF(#xA).
+	If it contains those characters, the container must inform
+	the developer with a descriptive error message.
+	The container must preserve all characters including whitespaces.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdAnyURIType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type adds an "id" attribute to xsd:anyURI.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:anyURI">
+	<xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdBooleanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type adds an "id" attribute to xsd:boolean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:boolean">
+	<xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdIntegerType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type adds an "id" attribute to xsd:integer.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:integer">
+	<xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdNMTOKENType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type adds an "id" attribute to xsd:NMTOKEN.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:NMTOKEN">
+	<xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdNonNegativeIntegerType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type adds an "id" attribute to xsd:nonNegativeInteger.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:nonNegativeInteger">
+	<xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdPositiveIntegerType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type adds an "id" attribute to xsd:positiveInteger.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:positiveInteger">
+	<xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdQNameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type adds an "id" attribute to xsd:QName.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:QName">
+	<xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="xsdStringType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This type adds an "id" attribute to xsd:string.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string">
+	<xsd:attribute name="id" type="xsd:ID"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+</xsd:schema>
+

Added: projects/ejb3/trunk/core/src/main/resources/schema/javaee_web_services_1_2.xsd
===================================================================
--- projects/ejb3/trunk/core/src/main/resources/schema/javaee_web_services_1_2.xsd	                        (rev 0)
+++ projects/ejb3/trunk/core/src/main/resources/schema/javaee_web_services_1_2.xsd	2008-02-24 23:19:46 UTC (rev 70050)
@@ -0,0 +1,747 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/javaee"
+	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="1.2">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)javaee_web_services_1_2.xsds	1.18 02/13/06
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2003-2006 Sun Microsystems, Inc.
+      4150 Network Circle
+      Santa Clara, California 95054
+      U.S.A
+      All rights reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      (C) Copyright International Business Machines Corporation 2002
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	The webservices element is the root element for the web services
+	deployment descriptor.  It specifies the set of web service
+	descriptions that are to be deployed into the Java EE Application
+	Server and the dependencies they have on container resources and
+	services.  The deployment descriptor must be named
+	"META-INF/webservices.xml" in the web services' jar file.
+
+	Used in: webservices.xml
+
+	All webservices deployment descriptors must indicate the
+	webservices schema by using the Java EE namespace:
+
+	http://java.sun.com/xml/ns/javaee
+
+	and by indicating the version of the schema by using the version
+	element as shown below:
+
+	    <webservices xmlns="http://java.sun.com/xml/ns/javaee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+		http://java.sun.com/xml/ns/javaee/javaee_web_services_1_2.xsd"
+	      version="1.2">
+	      ...
+	    </webservices>
+
+	The instance documents may indicate the published version of the
+	schema using the xsi:schemaLocation attribute for the Java EE
+	namespace with the following location:
+
+	http://java.sun.com/xml/ns/javaee/javaee_web_services_1_2.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - In elements that specify a pathname to a file within the
+	same JAR file, relative filenames (i.e., those not
+	starting with "/") are considered relative to the root of
+	the JAR file's namespace.  Absolute filenames (i.e., those
+	starting with "/") also specify names in the root of the
+	JAR file's namespace.  In general, relative names are
+	preferred.  The exception is .war files where absolute
+	names are preferred for consistency with the Servlet API.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_5.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="webservices" type="javaee:webservicesType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The webservices element is the root element for the web services
+	deployment descriptor.  It specifies the set of web service
+	descriptions that are to be deployed into the Java EE Application Server
+	and the dependencies they have on container resources and services.
+
+	Used in: webservices.xml
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:key name="webservice-description-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The webservice-description-name identifies the collection of
+	  port-components associated with a WSDL file and JAX-RPC mapping. The
+	  name must be unique within the deployment descriptor.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:webservice-description"/>
+      <xsd:field xpath="javaee:webservice-description-name"/>
+    </xsd:key>
+  </xsd:element>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="handler-chainType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+      The handler-chain element defines the handlerchain.
+      Handlerchain can be defined such that the handlers in the
+      handlerchain operate,all ports of a service, on a specific
+      port or on a list of protocol-bindings. The choice of elements
+      service-name-pattern, port-name-pattern and protocol-bindings
+      are used to specify whether the handlers in handler-chain are
+      for a service, port or protocol binding. If none of these
+      choices are specified with the handler-chain element then the
+      handlers specified in the handler-chain will be applied on
+      everything.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+
+      <xsd:choice minOccurs="0" maxOccurs="1">
+         <xsd:element name="service-name-pattern"
+		      type="javaee:qname-pattern" />
+         <xsd:element name="port-name-pattern"
+		      type="javaee:qname-pattern" />
+         <xsd:element name="protocol-bindings"
+		      type="javaee:protocol-bindingListType"/>
+      </xsd:choice>
+
+      <xsd:element name="handler"
+                   type="javaee:port-component_handlerType"
+		   minOccurs="1" maxOccurs="unbounded"/>
+    </xsd:sequence>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="handler-chainsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+      The handler-chains element defines the handlerchains associated
+      with this service or service endpoint.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="handler-chain"
+                   type="javaee:handler-chainType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="port-componentType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The port-component element associates a WSDL port with a web service
+	interface and implementation.  It defines the name of the port as a
+	component, optional description, optional display name, optional iconic
+	representations, WSDL port QName, Service Endpoint Interface, Service
+	Implementation Bean.
+
+	This element also associates a WSDL service with a JAX-WS Provider
+	implementation.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="display-name"
+		   type="javaee:display-nameType"
+		   minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="icon"
+		   type="javaee:iconType"
+		   minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="port-component-name"
+		   type="javaee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+	    <![CDATA[
+
+	      The port-component-name element specifies a port component's
+	      name.  This name is assigned by the module producer to name
+	      the service implementation bean in the module's deployment
+	      descriptor. The name must be unique among the port component
+	      names defined in the same module.
+
+	      Used in: port-component
+
+	      Example:
+		      <port-component-name>EmployeeService
+		      </port-component-name>
+
+	      ]]>
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="wsdl-service"
+		   type="javaee:xsdQNameType"
+		   minOccurs="0" maxOccurs="1">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the name space and local name part of the WSDL
+	    service QName. This is required to be specified for
+	    port components that are JAX-WS Provider implementations.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="wsdl-port"
+		   type="javaee:xsdQNameType"
+		   minOccurs="0" maxOccurs="1">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the name space and local name part of the WSDL
+	    port QName. This is not required to be specified for port
+	    components that are JAX-WS Provider implementations
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="enable-mtom"
+                   type="javaee:true-falseType"
+		   minOccurs="0" maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            Used to enable or disable SOAP MTOM/XOP mechanism for an
+            endpoint implementation.
+
+	    Not to be specified for JAX-RPC runtime
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="protocol-binding"
+                   type="javaee:protocol-bindingType"
+		   minOccurs="0" maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            Used to specify the protocol binding used by the port-component.
+	    If this element is not specified, then the default binding is
+            used (SOAP 1.1 over HTTP)
+
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="service-endpoint-interface"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0" maxOccurs="1">
+	<xsd:annotation>
+	  <xsd:documentation>
+	    <![CDATA[
+
+	      The service-endpoint-interface element contains the
+	      fully-qualified name of the port component's Service Endpoint
+	      Interface.
+
+	      Used in: port-component
+
+	      Example:
+		      <remote>com.wombat.empl.EmployeeService</remote>
+
+	      This may not be specified in case there is no Service
+	      Enpoint Interface as is the case with directly using an
+	      implementation class with the @WebService annotation.
+
+	      When the port component is a Provider implementation
+	      this is not specified.
+
+	      ]]>
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="service-impl-bean"
+		   type="javaee:service-impl-beanType"/>
+
+      <xsd:choice>
+	<xsd:element name="handler"
+		     type="javaee:port-component_handlerType"
+		     minOccurs="0" maxOccurs="unbounded">
+	  <xsd:annotation>
+	    <xsd:documentation>
+		 To be used with JAX-RPC based runtime only.
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+	<xsd:element name="handler-chains"
+		     type="javaee:handler-chainsType"
+		     minOccurs="0" maxOccurs="1">
+	  <xsd:annotation>
+	    <xsd:documentation>
+		 To be used with JAX-WS based runtime only.
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+      </xsd:choice>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="port-component_handlerType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	Declares the handler for a port-component. Handlers can access the
+	init-param name/value pairs using the HandlerInfo interface.
+
+	Used in: port-component
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="handler-name"
+		   type="javaee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the name of the handler. The name must be unique within the
+	    module.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="handler-class"
+		   type="javaee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines a fully qualified class name for the handler implementation.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="init-param"
+		   type="javaee:param-valueType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+
+      <xsd:element name="soap-header"
+		   type="javaee:xsdQNameType"
+		   minOccurs="0" maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the QName of a SOAP header that will be processed by the
+	    handler.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="soap-role"
+		   type="javaee:string"
+		   minOccurs="0" maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The soap-role element contains a SOAP actor definition that the
+	    Handler will play as a role.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="protocol-URIAliasType">
+     <xsd:annotation>
+        <xsd:documentation>
+	   Defines the type that is used for specifying tokens that
+	   start with ## which are used to alias existing standard
+	   protocol bindings and support aliases for new standard
+	   binding URIs that are introduced in future specifications.
+
+	   The following tokens alias the standard protocol binding
+	   URIs:
+
+	   ##SOAP11_HTTP = "http://schemas.xmlsoap.org/wsdl/soap/http"
+	   ##SOAP11_HTTP_MTOM =
+                 "http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true"
+           ##SOAP12_HTTP = "http://www.w3.org/2003/05/soap/bindings/HTTP/"
+           ##SOAP12_HTTP_MTOM =
+		 "http://www.w3.org/2003/05/soap/bindings/HTTP/?mtom=true"
+           ##XML_HTTP = "http://www.w3.org/2004/08/wsdl/http"
+
+        </xsd:documentation>
+     </xsd:annotation>
+     <xsd:restriction base="xsd:token">
+        <xsd:pattern value="##.+"/>
+     </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="protocol-bindingListType">
+     <xsd:annotation>
+        <xsd:documentation>
+	   Defines the type used for specifying a list of
+	   protocol-bindingType(s). For e.g.
+
+	    ##SOAP11_HTTP ##SOAP12_HTTP ##XML_HTTP
+
+        </xsd:documentation>
+     </xsd:annotation>
+     <xsd:list itemType="javaee:protocol-bindingType"/>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="protocol-bindingType">
+     <xsd:annotation>
+        <xsd:documentation>
+	   Defines the type used for specifying the URI for the
+	   protocol binding used by the port-component.  For
+	   portability one could use one of the following tokens that
+	   alias the standard binding types:
+
+	    ##SOAP11_HTTP
+	    ##SOAP11_HTTP_MTOM
+	    ##SOAP12_HTTP
+	    ##SOAP12_HTTP_MTOM
+	    ##XML_HTTP
+
+	   Other specifications could define tokens that start with ##
+	   to alias new standard binding URIs that are introduced.
+
+        </xsd:documentation>
+     </xsd:annotation>
+     <xsd:union memberTypes="xsd:anyURI javaee:protocol-URIAliasType"/>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="qname-pattern">
+     <xsd:annotation>
+        <xsd:documentation>
+	     This is used to specify the QName pattern in the
+	     attribute service-name-pattern and port-name-pattern in
+	     the handler-chain element
+
+	     For example, the various forms acceptable here for
+	     service-name-pattern attribute in handler-chain element
+	     are :
+
+	     Exact Name: service-name-pattern="ns1:EchoService"
+
+		 In this case, handlers specified in this
+		 handler-chain element will apply to all ports with
+		 this exact service name. The namespace prefix must
+		 have been declared in a namespace declaration
+		 attribute in either the start-tag of the element
+		 where the prefix is used or in an an ancestor
+		 element (i.e. an element in whose content the
+		 prefixed markup occurs)
+
+	     Pattern : service-name-pattern="ns1:EchoService*"
+
+		 In this case, handlers specified in this
+		 handler-chain element will apply to all ports whose
+		 Service names are like EchoService1, EchoServiceFoo
+		 etc. The namespace prefix must have been declared in
+		 a namespace declaration attribute in either the
+		 start-tag of the element where the prefix is used or
+		 in an an ancestor element (i.e. an element in whose
+		 content the prefixed markup occurs)
+
+	     Wild Card : service-name-pattern="*"
+
+		In this case, handlers specified in this handler-chain
+		element will apply to ports of all service names.
+
+	    The same can be applied to port-name attribute in
+	    handler-chain element.
+
+        </xsd:documentation>
+     </xsd:annotation>
+
+     <xsd:restriction base="xsd:token">
+        <xsd:pattern value="\*|([\i-[:]][\c-[:]]*:)?[\i-[:]][\c-[:]]*\*?"/>
+     </xsd:restriction>
+
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="service-impl-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The service-impl-bean element defines the web service implementation.
+	A service implementation can be an EJB bean class or JAX-RPC web
+	component.  Existing EJB implementations are exposed as a web service
+	using an ejb-link.
+
+	Used in: port-component
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:choice>
+      <xsd:element name="ejb-link"
+		   type="javaee:ejb-linkType"/>
+      <xsd:element name="servlet-link"
+		   type="javaee:servlet-linkType"/>
+    </xsd:choice>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="servlet-linkType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The servlet-link element is used in the service-impl-bean element
+	  to specify that a Service Implementation Bean is defined as a
+	  JAX-RPC Service Endpoint.
+
+	  The value of the servlet-link element must be the servlet-name of
+	  a JAX-RPC Service Endpoint in the same WAR file.
+
+	  Used in: service-impl-bean
+
+	  Example:
+		  <servlet-link>StockQuoteService</servlet-link>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="webservice-descriptionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The webservice-description element defines a WSDL document file
+	and the set of Port components associated with the WSDL ports
+	defined in the WSDL document.  There may be multiple
+	webservice-descriptions defined within a module.
+
+	All WSDL file ports must have a corresponding port-component element
+	defined.
+
+	Used in: webservices
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="display-name"
+		   type="javaee:display-nameType"
+		   minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="icon"
+		   type="javaee:iconType"
+		   minOccurs="0" maxOccurs="1"/>
+      <xsd:element name="webservice-description-name"
+		   type="javaee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The webservice-description-name identifies the collection of
+	    port-components associated with a WSDL file and JAX-RPC
+	    mapping. The name must be unique within the deployment descriptor.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="wsdl-file"
+		   type="javaee:pathType"
+		   minOccurs="0" maxOccurs="1">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The wsdl-file element contains the name of a WSDL file in the
+	    module.  The file name is a relative path within the module.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="jaxrpc-mapping-file"
+		   type="javaee:pathType"
+		   minOccurs="0" maxOccurs="1">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The jaxrpc-mapping-file element contains the name of a file that
+	    describes the JAX-RPC mapping between the Java interaces used by
+	    the application and the WSDL description in the wsdl-file.  The
+	    file name is a relative path within the module.
+
+	    This is not required when JAX-WS based runtime is used.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="port-component"
+		   type="javaee:port-componentType"
+		   minOccurs="1" maxOccurs="unbounded">
+	<xsd:key name="port-component_handler-name-key">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      Defines the name of the handler. The name must be unique
+	      within the module.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:handler"/>
+	  <xsd:field xpath="javaee:handler-name"/>
+	</xsd:key>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="webservicesType">
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="webservice-description"
+		   type="javaee:webservice-descriptionType"
+		   minOccurs="1" maxOccurs="unbounded">
+	<xsd:key name="port-component-name-key">
+	  <xsd:annotation>
+	    <xsd:documentation>
+	      <![CDATA[
+
+		The port-component-name element specifies a port
+		component's name.  This name is assigned by the module
+		producer to name the service implementation bean in the
+		module's deployment descriptor. The name must be unique
+		among the port component names defined in the same module.
+
+		Used in: port-component
+
+		Example:
+			<port-component-name>EmployeeService
+			</port-component-name>
+
+		]]>
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:port-component"/>
+	  <xsd:field xpath="javaee:port-component-name"/>
+	</xsd:key>
+      </xsd:element>
+    </xsd:sequence>
+
+    <xsd:attribute name="version"
+		   type="javaee:dewey-versionType"
+		   fixed="1.2"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The required value for the version is 1.2.
+
+	</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+

Added: projects/ejb3/trunk/core/src/main/resources/schema/javaee_web_services_client_1_2.xsd
===================================================================
--- projects/ejb3/trunk/core/src/main/resources/schema/javaee_web_services_client_1_2.xsd	                        (rev 0)
+++ projects/ejb3/trunk/core/src/main/resources/schema/javaee_web_services_client_1_2.xsd	2008-02-24 23:19:46 UTC (rev 70050)
@@ -0,0 +1,578 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/javaee"
+	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="1.2">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)javaee_web_services_client_1_2.xsds	1.19 02/13/06
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      Copyright 2003-2006 Sun Microsystems, Inc.
+      4150 Network Circle
+      Santa Clara, California 95054
+      U.S.A
+      All rights reserved.
+
+      Sun Microsystems, Inc. has intellectual property rights
+      relating to technology described in this document. In
+      particular, and without limitation, these intellectual
+      property rights may include one or more of the U.S. patents
+      listed at http://www.sun.com/patents and one or more
+      additional patents or pending patent applications in the
+      U.S. and other countries.
+
+      This document and the technology which it describes are
+      distributed under licenses restricting their use, copying,
+      distribution, and decompilation. No part of this document
+      may be reproduced in any form by any means without prior
+      written authorization of Sun and its licensors, if any.
+
+      Third-party software, including font technology, is
+      copyrighted and licensed from Sun suppliers.
+
+      Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
+      JavaServer Pages, Enterprise JavaBeans and the Java Coffee
+      Cup logo are trademarks or registered trademarks of Sun
+      Microsystems, Inc. in the U.S. and other countries.
+
+      Federal Acquisitions: Commercial Software - Government Users
+      Subject to Standard License Terms and Conditions.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      (C) Copyright International Business Machines Corporation 2002
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="port-component-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The port-component-ref element declares a client dependency
+	on the container for resolving a Service Endpoint Interface
+	to a WSDL port. It optionally associates the Service Endpoint
+	Interface with a particular port-component. This is only used
+	by the container for a Service.getPort(Class) method call.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="service-endpoint-interface"
+		   type="javaee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The service-endpoint-interface element defines a fully qualified
+	    Java class that represents the Service Endpoint Interface of a
+	    WSDL port.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="enable-mtom"
+                   type="javaee:true-falseType"
+		   minOccurs="0" maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            Used to enable or disable SOAP MTOM/XOP mechanism on the client
+	    side for a port-component.
+
+	    Not to be specified for JAX-RPC runtime
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="port-component-link"
+		   type="javaee:string"
+		   minOccurs="0" maxOccurs="1">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The port-component-link element links a port-component-ref
+	    to a specific port-component required to be made available
+	    by a service reference.
+
+	    The value of a port-component-link must be the
+	    port-component-name of a port-component in the same module
+	    or another module in the same application unit. The syntax
+	    for specification follows the syntax defined for ejb-link
+	    in the EJB 2.0 specification.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:group name="service-refGroup">
+    <xsd:sequence>
+      <xsd:element name="service-ref"
+		   type="javaee:service-refType"
+		   minOccurs="0" maxOccurs="unbounded">
+	<xsd:key name="service-ref_handler-name-key">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      Defines the name of the handler. The name must be unique
+	      within the module.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:handler"/>
+	  <xsd:field xpath="javaee:handler-name"/>
+	</xsd:key>
+      </xsd:element>
+    </xsd:sequence>
+  </xsd:group>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="service-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The service-ref element declares a reference to a Web
+	service. It contains optional description, display name and
+	icons, a declaration of the required Service interface,
+	an optional WSDL document location, an optional set
+	of JAX-RPC mappings, an optional QName for the service element,
+	an optional set of Service Endpoint Interfaces to be resolved
+	by the container to a WSDL port, and an optional set of handlers.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="service-ref-name"
+		   type="javaee:jndi-nameType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The service-ref-name element declares logical name that the
+	    components in the module use to look up the Web service. It
+	    is recommended that all service reference names start with
+	    "service/".
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="service-interface"
+		   type="javaee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The service-interface element declares the fully qualified class
+	    name of the JAX-RPC Service interface the client depends on.
+	    In most cases the value will be javax.xml.rpc.Service.  A JAX-RPC
+	    generated Service Interface class may also be specified.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="service-ref-type"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0" maxOccurs="1">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The service-ref-type element declares the type of the service-ref
+	    element that is injected or returned when a JNDI lookup is done.
+	    This must be either a fully qualified name of Service class or
+	    the fully qualified name of service endpoint interface class.
+	    This is only used with JAX-WS runtime where the corresponding
+	    @WebServiceRef annotation can be used to denote both a Service
+	    or a Port.
+
+	    If this is not specified, then the type of service-ref element
+	    that is injected or returned when a JNDI lookup is done is
+	    always a Service interface/class.
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="wsdl-file"
+		   type="javaee:xsdAnyURIType"
+		   minOccurs="0" maxOccurs="1">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The wsdl-file element contains the URI location of a WSDL
+	    file. The location is relative to the root of the module.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="jaxrpc-mapping-file"
+		   type="javaee:pathType"
+		   minOccurs="0" maxOccurs="1">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The jaxrpc-mapping-file element contains the name of a file that
+	    describes the JAX-RPC mapping between the Java interaces used by
+	    the application and the WSDL description in the wsdl-file.  The
+	    file name is a relative path within the module file.
+
+	    This is not required when JAX-WS based runtime is used.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="service-qname"
+		   type="javaee:xsdQNameType"
+		   minOccurs="0" maxOccurs="1">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The service-qname element declares the specific WSDL service
+	    element that is being refered to.  It is not specified if no
+	    wsdl-file is declared.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="port-component-ref"
+		   type="javaee:port-component-refType"
+		   minOccurs="0" maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The port-component-ref element declares a client dependency
+	    on the container for resolving a Service Endpoint Interface
+	    to a WSDL port. It optionally associates the Service Endpoint
+	    Interface with a particular port-component. This is only used
+	    by the container for a Service.getPort(Class) method call.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:choice>
+	  <xsd:element name="handler"
+		       type="javaee:service-ref_handlerType"
+		       minOccurs="0" maxOccurs="unbounded">
+	    <xsd:annotation>
+	      <xsd:documentation>
+
+		Declares the handler for a port-component. Handlers can
+		access the init-param name/value pairs using the
+		HandlerInfo interface. If port-name is not specified, the
+		handler is assumed to be associated with all ports of the
+		service.
+
+		To be used with JAX-RPC based runtime only.
+
+	      </xsd:documentation>
+	    </xsd:annotation>
+	  </xsd:element>
+	  <xsd:element name="handler-chains"
+		       type="javaee:service-ref_handler-chainsType"
+		       minOccurs="0" maxOccurs="1">
+	    <xsd:annotation>
+	      <xsd:documentation>
+		 To be used with JAX-WS based runtime only.
+	      </xsd:documentation>
+	    </xsd:annotation>
+	  </xsd:element>
+      </xsd:choice>
+
+      <xsd:group ref="javaee:resourceGroup"/>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="service-ref_handler-chainType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+      The handler-chain element defines the handlerchain.
+      Handlerchain can be defined such that the handlers in the
+      handlerchain operate,all ports of a service, on a specific
+      port or on a list of protocol-bindings. The choice of elements
+      service-name-pattern, port-name-pattern and protocol-bindings
+      are used to specify whether the handlers in handler-chain are
+      for a service, port or protocol binding. If none of these
+      choices are specified with the handler-chain element then the
+      handlers specified in the handler-chain will be applied on
+      everything.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+
+      <xsd:choice minOccurs="0" maxOccurs="1">
+         <xsd:element name="service-name-pattern"
+		      type="javaee:service-ref_qname-pattern" />
+         <xsd:element name="port-name-pattern"
+	              type="javaee:service-ref_qname-pattern" />
+         <xsd:element name="protocol-bindings"
+	              type="javaee:service-ref_protocol-bindingListType"/>
+      </xsd:choice>
+
+      <xsd:element name="handler"
+                   type="javaee:service-ref_handlerType"
+		   minOccurs="1" maxOccurs="unbounded"/>
+    </xsd:sequence>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="service-ref_handler-chainsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+      The handler-chains element defines the handlerchains associated with this
+      service or service endpoint.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="handler-chain"
+                   type="javaee:service-ref_handler-chainType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="service-ref_handlerType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	Declares the handler for a port-component. Handlers can access the
+	init-param name/value pairs using the HandlerInfo interface. If
+	port-name is not specified, the handler is assumed to be associated
+	with all ports of the service.
+
+	Used in: service-ref
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="handler-name"
+		   type="javaee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the name of the handler. The name must be unique
+	    within the module.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="handler-class"
+		   type="javaee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines a fully qualified class name for the handler
+	    implementation.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="init-param"
+		   type="javaee:param-valueType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+
+      <xsd:element name="soap-header"
+		   type="javaee:xsdQNameType"
+		   minOccurs="0" maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Defines the QName of a SOAP header that will be processed
+	    by the handler.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="soap-role"
+		   type="javaee:string"
+		   minOccurs="0" maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The soap-role element contains a SOAP actor definition that
+	    the Handler will play as a role.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="port-name"
+		   type="javaee:string"
+		   minOccurs="0" maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The port-name element defines the WSDL port-name that a
+	    handler should be associated with.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="service-ref_protocol-URIAliasType">
+     <xsd:annotation>
+        <xsd:documentation>
+	   Defines the type that is used for specifying tokens that
+	   start with ## which are used to alias existing standard
+	   protocol bindings and support aliases for new standard
+	   binding URIs that are introduced in future specifications.
+
+	   The following tokens alias the standard protocol binding
+	   URIs:
+
+	   ##SOAP11_HTTP = "http://schemas.xmlsoap.org/wsdl/soap/http"
+	   ##SOAP11_HTTP_MTOM =
+                 "http://schemas.xmlsoap.org/wsdl/soap/http?mtom=true"
+           ##SOAP12_HTTP = "http://www.w3.org/2003/05/soap/bindings/HTTP/"
+           ##SOAP12_HTTP_MTOM =
+                 "http://www.w3.org/2003/05/soap/bindings/HTTP/?mtom=true"
+           ##XML_HTTP = "http://www.w3.org/2004/08/wsdl/http"
+
+        </xsd:documentation>
+     </xsd:annotation>
+     <xsd:restriction base="xsd:token">
+        <xsd:pattern value="##.+"/>
+     </xsd:restriction>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="service-ref_protocol-bindingListType">
+     <xsd:annotation>
+        <xsd:documentation>
+	   Defines the type used for specifying a list of
+	   protocol-bindingType(s). For e.g.
+
+	    ##SOAP11_HTTP ##SOAP12_HTTP ##XML_HTTP
+
+        </xsd:documentation>
+     </xsd:annotation>
+     <xsd:list itemType="javaee:service-ref_protocol-bindingType"/>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="service-ref_protocol-bindingType">
+     <xsd:annotation>
+        <xsd:documentation>
+	   Defines the type used for specifying the URI for the
+	   protocol binding used by the port-component.  For
+	   portability one could use one of the following tokens that
+	   alias the standard binding types:
+
+	    ##SOAP11_HTTP
+	    ##SOAP11_HTTP_MTOM
+            ##SOAP12_HTTP
+            ##SOAP12_HTTP_MTOM
+            ##XML_HTTP
+
+	   Other specifications could define tokens that start with ##
+	   to alias new standard binding URIs that are introduced.
+
+        </xsd:documentation>
+     </xsd:annotation>
+     <xsd:union memberTypes="xsd:anyURI javaee:service-ref_protocol-URIAliasType"/>
+  </xsd:simpleType>
+
+<!-- **************************************************** -->
+
+  <xsd:simpleType name="service-ref_qname-pattern">
+     <xsd:annotation>
+        <xsd:documentation>
+	     This is used to specify the QName pattern in the
+	     attribute service-name-pattern and port-name-pattern in
+	     the handler-chain element
+
+	     For example, the various forms acceptable here for
+	     service-name-pattern attribute in handler-chain element
+	     are :
+
+	     Exact Name: service-name-pattern="ns1:EchoService"
+
+		 In this case, handlers specified in this
+		 handler-chain element will apply to all ports with
+		 this exact service name. The namespace prefix must
+		 have been declared in a namespace declaration
+		 attribute in either the start-tag of the element
+		 where the prefix is used or in an an ancestor
+		 element (i.e. an element in whose content the
+		 prefixed markup occurs)
+
+	     Pattern : service-name-pattern="ns1:EchoService*"
+
+		 In this case, handlers specified in this
+		 handler-chain element will apply to all ports whose
+		 Service names are like EchoService1, EchoServiceFoo
+		 etc. The namespace prefix must have been declared in
+		 a namespace declaration attribute in either the
+		 start-tag of the element where the prefix is used or
+		 in an an ancestor element (i.e. an element in whose
+		 content the prefixed markup occurs)
+
+	     Wild Card : service-name-pattern="*"
+
+		In this case, handlers specified in this handler-chain
+		element will apply to ports of all service names.
+
+	    The same can be applied to port-name attribute in
+	    handler-chain element.
+
+        </xsd:documentation>
+     </xsd:annotation>
+
+     <xsd:restriction base="xsd:token">
+        <xsd:pattern value="\*|([\i-[:]][\c-[:]]*:)?[\i-[:]][\c-[:]]*\*?"/>
+     </xsd:restriction>
+
+  </xsd:simpleType>
+
+</xsd:schema>
+

Added: projects/ejb3/trunk/core/src/main/resources/schema/jboss_5_0.dtd
===================================================================
--- projects/ejb3/trunk/core/src/main/resources/schema/jboss_5_0.dtd	                        (rev 0)
+++ projects/ejb3/trunk/core/src/main/resources/schema/jboss_5_0.dtd	2008-02-24 23:19:46 UTC (rev 70050)
@@ -0,0 +1,1655 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+
+<!--
+This is the XML DTD for the JBoss 4.0 EJB deployment descriptor.
+The DOCTYPE is:
+
+$Id: jboss_5_0.dtd 60233 2007-02-03 10:13:23Z wolfc $
+
+  <!DOCTYPE jboss PUBLIC
+      "-//JBoss//DTD JBOSS 4.0//EN"
+      "http://www.jboss.org/j2ee/dtd/jboss_4_0.dtd">
+
+Overview of the architecture of jboss.xml
+
+<jboss>
+
+  <enforce-ejb-restrictions />
+  <security-domain />
+  <unauthenticated-principal />
+
+  <enterprise-beans>
+
+    <entity>
+      <ejb-name />
+      <jndi-name />
+      <interceptor-stack />
+	<client-bind-url />
+      <binding-factory />
+      <local-jndi-name />
+      <call-by-value>
+      <read-only>
+      <call-by-value>
+      <aop-domain-name>
+      <security-proxy>
+      <ejb-ref>
+      <ejb-local-ref>
+      <service-ref>
+      <security-identity>
+        <run-as-principal>
+      </security-identity>
+      <resource-ref>
+        <res-ref-name />
+        <resource-name />
+      </resource-ref>
+      <resource-env-ref>
+      <clustered />
+    </entity>
+
+    <session>
+      <ejb-name />
+      <jndi-name />
+      <interceptor-stack />
+	<client-bind-url />
+      <binding-factory />
+      <local-jndi-name />
+      <call-by-value>
+      <aop-domain-name>
+      <security-proxy>
+      <ejb-ref>
+      <ejb-local-ref>
+      <service-ref>
+      <security-identity>
+        <run-as-principal>
+      </security-identity>
+      <resource-ref>
+        <res-ref-name />
+        <resource-name />
+      </resource-ref>
+      <resource-env-ref>
+      <clustered/>
+      <port-component>
+        <port-component-name>
+        <port-component-uri>
+        <auth-method>
+        <transport-guarantee>
+      </port-component>
+    </session>
+
+    <message-driven>
+      <ejb-name>
+      <destination-jndi-name>
+      <mdb-user>
+      <mdb-passwd>
+      <mdb-client-id>
+      <mdb-subscription-id>
+      <resource-adapter-name>
+      <aop-domain-name>
+      <security-proxy>
+      <ejb-ref>
+      <service-ref>
+      <security-identity>
+        <run-as-principal>
+      </security-identity>
+      <resource-ref>
+      <resource-env-ref>
+    </message-driven>
+
+    <webservice-description>
+      <webservice-description-name>
+      <wsdl-publish-location>
+    </webservice-description>
+
+  </enterprise-beans>
+
+  <assembly-descriptor>
+    <security-role>
+      <role-name>
+      <principal-name>
+    </security-role>
+  </assembly-descriptor>
+
+  <resource-managers>
+
+    <resource-manager>
+      <res-name />
+      <res-jndi-name />
+    </resource-manager>
+
+    <resource-manager>
+      <res-name />
+      <res-url />
+    </resource-manager>
+
+  </resource-managers>
+
+  <container-configurations>
+
+    <container-configuration>
+      <container-name />
+      <container-interceptors />
+      <client-interceptors />
+      <instance-pool />
+      <instance-cache />
+      <persistence-manager />
+      <web-class-loader />
+      <locking-policy />
+      <container-cache-conf />
+      <container-pool-conf />
+      <commit-option />
+      <optiond-refresh-rate />
+      <security-domain/>
+    </container-configuration>
+
+  </container-configurations>
+
+</jboss>
+-->
+
+<!--
+  The jboss element is the root element of the jboss.xml file. It
+  contains all the information used by jboss but not described in the
+  ejb-jar.xml file. All of it is optional.
+
+  1- the application assembler can define custom container configurations
+     for the beans. Standard configurations are provided in standardjboss.xml
+  2- the deployer can override the jndi names under which the beans are deployed
+  3- the deployer can specify runtime jndi names for resource managers.
+
+-->
+<!ELEMENT jboss (loader-repository?, jmx-name?, enforce-ejb-restrictions?,
+ security-domain?, missing-method-permissions-excluded-mode?,
+ unauthenticated-principal?, exception-on-rollback? , enterprise-beans?, assembly-descriptor?,
+ resource-managers?, invoker-proxy-bindings?, container-configurations?)>
+
+<!-- The loader-repository specifies the name of the UnifiedLoaderRepository
+   MBean to use for the ear to provide ear level scoping of classes deployed
+   in the ear. It is a unique JMX ObjectName string. It may also specify
+   an arbitrary configuration by including a loader-repository-config element.
+
+Examples:
+   <loader-repository>jboss.test:loader=cts-cmp2v1-sar.ear</loader-repository>
+
+   <loader-repository loaderRepositoryClass='dot.com.LoaderRepository'>
+      <value>dot.com:loader=unique-archive-name</value>
+      <loader-repository-config configParserClass='dot.com.LoaderParser'>
+         <value>java2ParentDelegaton=true</value>
+      </loader-repository-config>
+   </loader-repository>
+-->
+<!ELEMENT loader-repository (value | loader-repository-config)*>
+<!-- The loaderRepositoryClass attribute gives the classname of the
+org.jboss.mx.loading.LoaderRepository implementation.
+-->
+<!ATTLIST loader-repository loaderRepositoryClass CDATA #IMPLIED>
+
+<!-- The loader-repository-config element specifies any arbitrary configuration
+fragment for use in configuring the loader-repository instance. The actual
+content of this element is specific to the loaderRepositoryClass and the
+code parsing the element.
+-->
+<!ELEMENT loader-repository-config (value)>
+<!-- The configParserClass attribute gives the classname of the
+org.jboss.mx.loading.LoaderRepositoryFactory.LoaderRepositoryConfigParser
+implementation to use to parse the loader-repository-config content.
+-->
+<!ATTLIST loader-repository-config configParserClass CDATA #IMPLIED>
+
+<!ELEMENT value (#PCDATA)>
+
+<!-- The jmx-name element allows one to specify the JMX ObjectName to use
+for the MBean associated with the ejb-jar module. This must be a unique
+name and valid JMX ObjectName string.
+
+   Used in: jboss
+-->
+<!ELEMENT jmx-name (#PCDATA)>
+
+<!--
+  The enforce-ejb-restrictions element tells the container to enforce ejb1.1 restrictions
+  It must be one of the following :
+    <enforce-ejb-restrictions>true</enforce-ejb-restrictions>
+    <enforce-ejb-restrictions>false</enforce-ejb-restrictions>
+
+  Used in: jboss
+-->
+<!ELEMENT enforce-ejb-restrictions (#PCDATA)>
+
+<!--
+  The security-domain element specifies the JNDI name of the security
+  manager that implements the EJBSecurityManager and RealmMapping for
+  the domain. When specified at the jboss level it specifies the security
+  domain for all j2ee components in the deployment unit.
+  One can override the global security-domain at the container
+  level using the security-domain element at the container-configuration
+  level.
+
+  Used in: jboss, container-configuration
+-->
+<!ELEMENT security-domain (#PCDATA)>
+
+<!-- The missing-method-permissions-excluded-mode determines the treatment
+of missing method-permission mappings in the ejb-jar descriptor. The ejb 2.1
+spec states: "It is possible that some methods are not assigned to any security
+roles nor contained in the exclude-list element. In this case, it is the
+responsibility of the Deployer to assign method permissions for all of the
+unspecified methods, either by assigning them to security roles, or by marking
+them as unchecked." The missing-method-permissions-excluded-mode is a boolean
+that allows the deployer to globally indicate that all methods without a
+method-permission element should be treated as excluded(= true and the default),
+or that methods without a method-permission element should be treated as
+unchecked(= false)
+
+<missing-method-permissions-excluded-mode>true</missing-method-permissions-excluded-mode>
+<missing-method-permissions-excluded-mode>false</missing-method-permissions-excluded-mode>
+
+-->
+<!ELEMENT missing-method-permissions-excluded-mode (#PCDATA)>
+
+<!--
+  The unauthenticated-principal element specifies the name of the principal
+  that will be returned by the EJBContext.getCallerPrincipal() method if there
+  is no authenticated user. This Principal has no roles or privaledges to call
+  any other beans.
+-->
+<!ELEMENT unauthenticated-principal (#PCDATA)>
+
+<!-- The invoker-proxy-bindings defines the invokers available for use with
+the ejb container configurations.
+-->
+<!ELEMENT invoker-proxy-bindings (invoker-proxy-binding*)>
+<!-- The invoker-proxy-binding defines an invoker service and proxy factory
+-->
+<!ELEMENT invoker-proxy-binding (name, invoker-mbean, proxy-factory, proxy-factory-config)>
+<!-- The name gives a unique name for the invoker-proxy-binding
+-->
+<!ELEMENT name (#PCDATA)>
+<!-- The invoker-mbean gives the JMX ObjectName of the invoker MBean service
+-->
+<!ELEMENT invoker-mbean (#PCDATA)>
+<!-- The org.jboss.ejb.EJBProxyFactory implementation class
+-->
+<!ELEMENT proxy-factory (#PCDATA)>
+<!-- The proxy-factory-config defines the client-interceptors stack
+and other configuration options to use for the various EJB proxies.
+-->
+<!ELEMENT proxy-factory-config (client-interceptors?, endpoint-interceptors? , web-class-loader? ,
+activation-config?, JMSProviderAdapterJNDI? , ServerSessionPoolFactoryJNDI? , 
+CreateJBossMQDestination? , MinimumSize? , MaximumSize? ,
+KeepAliveMillis? , MaxMessages? , MDBConfig? , poa? , register-ejbs-in-jnp-context? , 
+jnp-context? , interface-repository-supported?)>
+
+<!--
+  The jndi name of the jms provider adapter in the java:/ namespace.
+  This is mandatory for an MDB and must implement
+  org.jboss.jms.jndi.JMSProviderAdapter
+
+  Used in: proxy-factory-config for JMSContainerInvoker
+-->
+<!ELEMENT JMSProviderAdapterJNDI (#PCDATA)>
+<!--
+  The jndi name of the session pool in the java:/ namespace.
+  This is mandatory for an MDB and must implement
+  org.jboss.jms.asf.ServerSessionPoolFactory
+
+  Used in: proxy-factory-config for JMSContainerInvoker
+-->
+<!ELEMENT ServerSessionPoolFactoryJNDI (#PCDATA)>
+<!--
+  Whether to create destinations in JBossMQ if the
+  destination cannot be found.
+
+  Used in: proxy-factory-config for JMSContainerInvoker
+-->
+<!ELEMENT CreateJBossMQDestination (#PCDATA)>
+<!--
+  The maximum number of messages parameter for the mdb's
+  connection consumer.
+
+  Used in: proxy-factory-config for JMSContainerInvoker
+-->
+<!ELEMENT MaxMessages (#PCDATA)>
+<!--
+  Configuration for the MDB
+
+  Used in: proxy-factory-config for JMSContainerInvoker
+-->
+<!ELEMENT MDBConfig (ReconnectIntervalSec , DeliveryActive? , DLQConfig?)>
+<!--
+  The time to wait (in seconds) before trying to recover
+  the connection to the JMS server.
+
+  Used in: MDBConfig
+-->
+<!ELEMENT ReconnectIntervalSec (#PCDATA)>
+<!--
+  Whether delivery of messages is active at startup,
+  valid values are "True" or "False".
+
+  Used in: MDBConfig
+-->
+<!ELEMENT DeliveryActive (#PCDATA)>
+<!--
+  Configuration for an MDB's dead letter queue, used
+  when messages are redelivered too many times.
+
+  Used in: MDBConfig
+-->
+<!ELEMENT DLQConfig (DestinationQueue , MaxTimesRedelivered , TimeToLive, DLQUser?,  DLQPassword?)>
+<!--
+  The jndi name of the queue to use as the dead letter queue.
+
+  Used in: DLQConfig
+-->
+<!ELEMENT DestinationQueue (#PCDATA)>
+<!--
+  The maximum number of times a message is redelivered before it
+  is placed in the dead letter queue.
+
+  Used in: DLQConfig
+-->
+<!ELEMENT MaxTimesRedelivered (#PCDATA)>
+<!--
+  The time-to-live of the message in the dead letter queue.
+  See javax.jms.Message
+
+  Used in: DLQConfig
+-->
+<!ELEMENT TimeToLive (#PCDATA)>
+
+<!--
+  The user for the dlq connection
+
+  Used in: DLQConfig
+-->
+<!ELEMENT DLQUser (#PCDATA)>
+
+<!--
+  The password for the dlq connection
+
+  Used in: DLQConfig
+-->
+<!ELEMENT DLQPassword (#PCDATA)>
+<!--
+  The portable object adapter usage, one of
+  <poa>per-servent</poa>
+  <poa>shared</poa>
+
+  Used in: proxy-factory-config for IORFactory
+-->
+<!ELEMENT poa (#PCDATA)>
+<!--
+  Whether to register ejbs in jnp (jndi)
+
+  Used in: proxy-factory-config for IORFactory
+-->
+<!ELEMENT register-ejbs-in-jnp-context (#PCDATA)>
+<!--
+  The jndi context in which to register ejbs
+
+  Used in: proxy-factory-config for IORFactory
+-->
+<!ELEMENT jnp-context (#PCDATA)>
+<!--
+  Whether a deployed ejb has its own CORBA interface repository or not
+
+  Used in: proxy-factory-config for IORFactory
+-->
+<!ELEMENT interface-repository-supported (#PCDATA)>
+
+<!--
+  The enterprise-beans element contains additional information about
+  the beans. These informations, such as jndi names, resource managers and
+  container configurations, are specific to jboss and not described in
+  ejb-jar.xml.
+
+  jboss will provide a standard behaviour if no enterprise-beans element
+  is found, see container-configurations, jndi-name and resource-managers
+  for defaults.
+
+  Used in: jboss
+-->
+<!ELEMENT enterprise-beans ((session | entity | message-driven)*, webservice-description*)>
+
+<!--
+  The entity element holds information specific to jboss and not declared
+  in ejb-jar.xml about an entity bean, such as jndi name, container
+  configuration, and resource managers. (see tags for details)
+  The bean should already be declared in ejb-jar.xml, with the same
+  ejb-name.
+
+  Used in: enterprise-beans
+-->
+<!ELEMENT entity (ejb-name , jndi-name? , interceptor-stack?, client-bind-url?, binding-factory?, local-jndi-name? , call-by-value?, read-only? , exception-on-rollback?,
+ aop-domain-name? , invoker-bindings?, security-proxy? , ejb-ref* , ejb-local-ref* , service-ref*, security-identity? ,
+ resource-ref* , resource-env-ref*, message-destination-ref* , method-attributes? , clustered? ,
+ cache-invalidation? , cache-invalidation-config?, depends*, ior-security-config?)>
+
+<!--
+  The session element holds information specific to jboss and not declared
+  in ejb-jar.xml about a session bean, such as jndi name, container
+  configuration, and resource managers. (see tags for details)
+  The bean should already be declared in ejb-jar.xml, with the same
+  ejb-name.
+
+  Used in: enterprise-beans
+-->
+<!ELEMENT session (ejb-name , jndi-name? , interceptor-stack?, client-bind-url?, binding-factory?, local-jndi-name?, call-by-value?, exception-on-rollback?, aop-domain-name?, 
+ invoker-bindings?, security-proxy? , ejb-ref* ,  ejb-local-ref* , service-ref*, security-identity? ,
+ resource-ref* , resource-env-ref*, message-destination-ref* , clustered? , method-attributes?, depends*,
+ ior-security-config?, port-component*)>
+
+<!--
+  The message-driven element holds information specific to jboss and not declared
+  in ejb-jar.xml about a message-driven bean, such as container
+  configuration and resources.
+  The bean should already be declared in ejb-jar.xml, with the same
+  ejb-name.
+
+  Used in: enterprise-beans
+-->
+<!ELEMENT message-driven (ejb-name , activation-config?, destination-jndi-name? ,
+ mdb-user?,  mdb-passwd? , mdb-client-id? , mdb-subscription-id? , resource-adapter-name? ,
+ exception-on-rollback? , aop-domain-name? , invoker-bindings?,
+ security-proxy? , ejb-ref* ,  ejb-local-ref*, service-ref*, security-identity?, resource-ref*,
+ resource-env-ref*, message-destination-ref*, depends*, ior-security-config?)>
+
+<!--
+  The ejb-name element gives the name of the bean, it must correspond to
+  an ejb-name element in ejb-jar.xml
+
+  Used in: entity, session, and message-driven
+-->
+<!ELEMENT ejb-name (#PCDATA)>
+
+<!--
+  The jndi-name element gives the actual jndi name under which
+  the bean will be deployed when used in the entity, session and
+  message-driven elements. If it is not provided jboss will assume
+  "jndi-name" = "ejb-name"
+
+  When used in the ejb-ref,  ejb-local-ref, resource-ref, resource-env-ref, 
+  message-destination-ref, message-destination elements this specifies the jndi name to 
+  which the reference should link.
+
+  Used in: entity, session and message-driven
+    ejb-ref, resource-ref, resource-env-ref
+-->
+<!ELEMENT jndi-name (#PCDATA)>
+
+<!ELEMENT interceptor-stack (#PCDATA)>
+
+<!ELEMENT client-bind-url (#PCDATA)>
+
+<!ELEMENT binding-factory (#PCDATA)>
+
+<!--
+  The JNDI name under with the local home interface should be bound
+
+  Used in: entity and session
+-->
+<!ELEMENT local-jndi-name (#PCDATA)>
+
+<!--
+  Determine if the bean should use by value call semantics
+
+  Used in: entity and session
+-->
+<!ELEMENT call-by-value (#PCDATA)>
+
+<!--
+  The read-only element flags an entity bean as read only.
+  The bean will never be ejbStored. Defaults to false.
+  It must be one of the following :
+    <read-only>true</read-only>
+    <read-only>false</read-only>
+
+  Used in: entity
+-->
+<!ELEMENT read-only (#PCDATA)>
+
+<!--
+  Whether to throw an exception if the CMT controlled
+  transaction is no longer active (e.g. marked rollback)
+  but the application has not itself thrown an exception.
+  If the bean specifies false, it uses the
+  jboss/exception-on-rollback config.
+  Defaults to false.
+  It must be one of the following :
+    <exception-on-rollback>true</exception-on-rollback>
+    <exception-on-rollback>false</exception-on-rollback>
+
+  Used in: jboss, session, entity and message-driven
+-->
+<!ELEMENT exception-on-rollback (#PCDATA)>
+
+<!--
+  The aop-domain-name element gives the name of the container
+  configuration for this bean. It must match one of the container-name
+  tags in the container-configurations section, or one of the standard
+  configurations. If no element is provided, jboss will automatically use the
+  right standard configuration, see container-configurations.
+
+  Note: unlike earlier releases, this element may not be specified as an
+   empty element to achieve the same effect as not specifying the element.
+
+  Used in: entity, session, and message-driven
+-->
+<!ELEMENT aop-domain-name (#PCDATA)>
+
+<!-- The depends element gives a JMX ObjectName of a service on which the
+container or ejb depends.
+-->
+<!ELEMENT depends (#PCDATA)>
+
+<!-- The queue/topic jndi name from which we receive messages -->
+<!ELEMENT destination-jndi-name (#PCDATA)>
+
+<!-- The optional user for the jms connection that delivers messages -->
+<!ELEMENT mdb-user (#PCDATA)>
+
+<!-- The optional password for the jms connection that delivers messages -->
+<!ELEMENT mdb-passwd (#PCDATA)>
+
+<!-- The optional client-id for the jms connection that delivers messages -->
+<!ELEMENT mdb-client-id (#PCDATA)>
+
+<!-- The subscription name for topic delivery -->
+<!ELEMENT mdb-subscription-id (#PCDATA)>
+
+<!-- The name of the rar used in JCA 1.5 message inflow
+e.g.
+   <resource-adapter-name>jms-ra.rar</resource-adapter-name>
+or for embedded rars
+   <resource-adapter-name>myapp.ear#myconnector.rar</resource-adapter-name>
+-->
+<!ELEMENT resource-adapter-name (#PCDATA)>
+
+<!-- The security-proxy gives the class name of the security proxy implementation.
+  This may be an instance of org.jboss.security.SecurityProxy, or an
+  just an object that implements methods in the home or remote interface
+  of an EJB without implementating any common interface.
+
+      Used in: entity, session, and message-driven
+-->
+<!ELEMENT security-proxy (#PCDATA)>
+
+<!--
+  The ejb-ref element is used to give the jndi-name of an external
+  ejb reference. In the case of an external ejb reference, you don't
+  provide a ejb-link element in ejb-jar.xml, but you provide a jndi-name
+  in jboss.xml
+
+  Used in: entity, session, and message-driven
+-->
+<!ELEMENT ejb-ref (ejb-ref-name , jndi-name)>
+
+<!--
+  The ejb-ref-name element is the name of the ejb reference as given in
+  ejb-jar.xml.
+
+  Used in: ejb-ref
+-->
+<!ELEMENT ejb-ref-name (#PCDATA)>
+
+
+<!--
+  The ejb-local-ref element is used to give the jndi-name of an external
+  ejb reference. This is an alternative to using ejb-link in ejb-jar.xml
+
+  Used in: entity, session, and message-driven
+-->
+<!ELEMENT ejb-local-ref (ejb-ref-name , local-jndi-name)>
+
+<!-- The service-ref element provides jboss specific deployment values to
+the web service reference in ejb-jar.xml.
+Example:
+    <service-ref>
+        <service-ref-name>OrganizationService</service-ref-name>
+        <wsdl-override>file:/wsdlRepository/organization-service.wsdl</wsdl-override>
+    </service-ref>
+
+    <service-ref>
+        <service-ref-name>OrganizationService</service-ref-name>
+        <port-component-ref>
+          <service-endpoint-interface>com.dot.SEI</service-endpoint-interface>
+          <call-property>
+            <prop-name>X</prop-name>
+            <prop-value>Y</prop-value>
+          </call-property>
+        </port-component-ref>
+    </service-ref>
+-->
+<!ELEMENT service-ref (service-ref-name, port-component-ref*, wsdl-override?, call-property*)>
+
+<!-- The service-ref-name element gives the ENC relative name used
+in the ejb-jar.xml service-ref-name element.
+
+Used in: service-ref
+-->
+<!ELEMENT service-ref-name (#PCDATA)>
+
+<!-- The port-component-ref element provides additional information about
+the standard j2ee service-reference/port-component-ref. Currently this includes
+properties that should be associated with the call/stub for the port.
+
+Used in: service-ref
+-->
+<!ELEMENT port-component-ref (service-endpoint-interface?, call-property*)>
+
+<!-- Fully qualified name of service endpoint interface
+-->
+<!ELEMENT service-endpoint-interface ( #PCDATA )>
+
+<!-- Arbitrary jaxrpc property values that should be set on a Call object
+before it's returned to the web service client. The valid properties can be any
+properties supported by the jaxrpc Call implementation.
+-->
+<!ELEMENT call-property ( prop-name, prop-value )>
+
+<!-- The string value of a property name
+-->
+<!ELEMENT prop-name (#PCDATA)>
+
+<!-- The string value of a property value
+-->
+<!ELEMENT prop-value (#PCDATA)>
+
+<!--
+  The security-identity element specifies whether a specific run-as identity is to be
+  used. If there is a run-as role defined for an enterprise bean, there can also be a
+  run-as-principal define here. If you don't define a run-as principal the callee will
+  see ctx.getCallerPrincipal() == 'anonymous'
+
+  Used in: entity, message-driven, session
+-->
+<!ELEMENT security-identity (run-as-principal)>
+
+<!--
+  The run-as-principal element is the name of the principal that is used
+  when the enterprise bean calls out with a run-as role.
+
+  Used in: security-identity
+-->
+<!ELEMENT run-as-principal (#PCDATA)>
+
+<!--
+  The resource-env-ref element gives a mapping between the "code name"
+  of a env resource (res-ref-name, provided by the Bean Developer) and
+  its deployed JNDI name.
+
+  Used in: session, entity, message-driven
+-->
+<!ELEMENT resource-env-ref (resource-env-ref-name , jndi-name)>
+
+<!--
+  The resource-env-ref-name element gives the "code name" of a resource. It is
+  provided by the Bean Developer.
+
+  Used in: resource-env-ref
+-->
+<!ELEMENT resource-env-ref-name (#PCDATA)>
+
+<!--
+  The method-attributes element can be used to specify which methods are read only
+  or idempotent.  This is used to reduce the need for locks and replication.
+-->
+<!ELEMENT method-attributes (method*)>
+
+<!--
+  The method element is used to specify attributes for one method or all those
+  matching a pattern startingstring*.
+-->
+<!ELEMENT method (method-name, read-only?, idempotent?, transaction-timeout?)>
+
+<!--
+  The method-name element specifies a complete method name or a pattern consisting of an
+  initial match followed by '*'
+-->
+<!ELEMENT method-name (#PCDATA)>
+
+<!--
+  The idempotent element is used in method-attributes to indicate that a method
+  is completely stateless. Really the same as read-only and should be dropped.
+-->
+<!ELEMENT idempotent (#PCDATA)>
+
+<!--
+  The transaction timeout in seconds (overriding the default timeout).
+  This will only work for Required (where the method starts the transaction) and RequiresNew.
+  The special value of 0 (zero) uses the default timeout configured on jboss:service=TransactionManager
+  NOTE: any subsequent use of RequiresNew that is not explicitly overridden will use this value.
+-->
+<!ELEMENT transaction-timeout (#PCDATA)>
+
+<!--
+  The clustered element allows to specify cluster specific settings.
+  WARNING: session-state-manager-jndi-name is only for SFSB.
+
+  Used in: session, entity, container-configuration
+-->
+<!ELEMENT clustered (partition-name? , load-balance-policy? ,
+  session-state-manager-jndi-name?)>
+
+<!--
+  The partition-name element indicates the name of the HAPartition to be used
+  by the container to exchange clustering information. This is a name and *not*
+  a JNDI name. Given name will be prefixed by "/HASessionState/" by the container to get
+  the actual JNDI name of the HAPartition. If not, jboss will assume partition-name = "DefaultPartition".
+
+  Used in: entity and session (in clustered element)
+-->
+<!ELEMENT partition-name (#PCDATA)>
+
+<!--
+  The load-balance-policy element indicates the java class name to be used
+  to load balance calls in the bean proxy.
+  If not, jboss will assume :
+    - for EB and SFSB : load-balance-policy = "org.jboss.ha.framework.interfaces.RoundRobin"
+    - for SLSB        : load-balance-policy = "org.jboss.ha.framework.interfaces.RoundRobin"
+
+  Used in: entity and session (in clustered element)
+-->
+<!ELEMENT load-balance-policy (#PCDATA)>
+
+<!--
+  The cache-invalidation element indicates if this bean cache should listen to cache
+  invalidation events and clear its cache accordingly as well as send cache invalidation
+  messages.
+  It is provided by the deployer. If not, jboss will assume cache-invalidation = True
+  NOTE: This value will *only* be applied if the correct cache plugin and interceptor(s)
+        are defined in the container configuration.
+  Possible values: "False", "True" (default)
+
+  Used in: entity (only commit-option A and D will invalidate their cache)
+-->
+<!ELEMENT cache-invalidation (#PCDATA)>
+
+<!--
+  The cache-invalidation-config element allows to specify cache invalidation specific settings.
+
+  Used in: entity
+-->
+<!ELEMENT cache-invalidation-config (invalidation-group-name? , invalidation-manager-name?)>
+
+<!--
+  The invalidation-group-name element indicates the name of a group in which all
+  invalidation messages are exchanged i.e. all beans sharing a given invalidation-group-name
+  should share the same PK semantic.
+  By default, invalidation-group-name equals to the EJB name. Thus, when using cache invalidation
+  accross a cluster, it is not necessary to specify a name as all beans will have the same name
+  accross the cluster. Nevertheless, if you deploy, on the same node, the same EJB, once with
+  commit-option C (RW access) and once in commit-option A (RO) and want the RW EJB to invalidate
+  entries of RO EJB, each one will obviously have its own EJB name. Consequently, you can assign
+  a common invalidation-group-name to both EJBs so that they share their cache invalidation messages.
+
+  Used in: entity (in cache-invalidation-config element)
+-->
+<!ELEMENT invalidation-group-name (#PCDATA)>
+
+<!--
+  The invalidation-manager-name references the InvalidationManager MBean to be used.
+  By Default, the default InvalidationManager is used.
+
+  Used in: entity (in cache-invalidation-config element)
+-->
+<!ELEMENT invalidation-manager-name (#PCDATA)>
+
+<!--
+  The session-state-manager-jndi-name element indicates the name of the HASessionState to be used
+  by the container as a backend for state session management in the cluster.
+  This *is* a JNDI name (not like the partition-name element).
+  If not, jboss will assume partition-name = "/HASessionState/Default".
+
+  Used in: session (in clustered element)
+-->
+<!ELEMENT session-state-manager-jndi-name (#PCDATA)>
+
+<!--
+  The resource-ref element gives a mapping between the "code name"
+  of a resource (res-ref-name, provided by the Bean Developer) and
+  its "xml name" (resource-name, provided by the Application Assembler).
+  If no resource-ref is provided, jboss will assume that
+  "xml-name" = "code name"
+
+  See resource-managers.
+
+  Used in: entity, session, and message-driven
+-->
+<!ELEMENT resource-ref (res-ref-name , (resource-name | jndi-name | res-url))>
+
+<!--
+  The res-ref-name element gives the "code name" of a resource. It is
+  provided by the Bean Developer. See resource-managers for the actual
+  configuration of the resource.
+
+  Used in: resource-ref
+-->
+<!ELEMENT res-ref-name (#PCDATA)>
+
+<!--
+  The resource-name element gives the "xml name" of the resource. It is
+  provided by the Application Assembler. See resource-managers for the
+  actual configuration of the resource.
+
+  Used in: resource-ref
+-->
+<!ELEMENT resource-name (#PCDATA)>
+
+<!--
+  The resource-managers element is used to declare resource managers.
+
+  A resource has 3 names:
+  - the "code name" is the name used in the code of the bean, supplied by
+    the Bean Developer in the resource-ref section of the ejb-jar.xml file
+
+  - the "xml name" is an intermediary name used by the Application Assembler
+    to identify resources in the XML file.
+
+  - the "runtime jndi name" is the actual jndi-name or url of the deployed
+    resource, it is supplied by the Deployer.
+
+  The mapping between the "code name" and the "xml name" is given
+  in the resource-ref section for the bean. If not, jboss will assume that
+  "xml name" = "code name".
+
+  The mapping between the "xml name" and the "runtime jndi name" is given in
+  a resource-manager section. If not, and if the datasource is of type
+  javax.sql.DataSource, jboss will look for a javax.sql.DataSource in the jndi
+  tree.
+
+  Used in: jboss
+-->
+<!ELEMENT resource-managers (resource-manager*)>
+
+<!--
+  The resource-manager element is used to provide a mapping between the
+  "xml name" of a resource (res-name) and its "runtime jndi name"
+  (res-jndi-name or res-url according to the type of the resource).
+  If it is not provided, and if the type of the resource is
+  javax.sql.DataSource, jboss will look for a javax.sql.DataSource in the
+  jndi tree.
+
+  See resource-managers.
+
+  Used in: resource-managers
+-->
+<!ELEMENT resource-manager (res-name , (res-jndi-name | res-url))>
+
+<!--
+  The res-name element gives the "xml name" of a resource, it is provided
+  by the Application Assembler. See resource-managers.
+
+  Used in: resource-manager
+-->
+<!ELEMENT res-name (#PCDATA)>
+
+<!--
+  The res-jndi-name element is the "deployed jndi name" of a resource, it
+  is provided by the Deployer. See resource-managers.
+
+  Used in: resource-manager
+-->
+<!ELEMENT res-jndi-name (#PCDATA)>
+
+<!-- The res-url element value is a URL string for a resource-ref of
+res-type = java.net.URL. Using a res-url creates a binding of the URL
+instance under the java:comp/env. If you want to link to another binding
+of a URL, you can use the jndi-name to do so.
+
+// Binds the URL(http://x.y.z) under java:comp/env/jdbc/XYZHome
+<resource-ref>
+    <res-ref-name>jdbc/XYZHome</res-ref-name>
+    <res-url>http://x.y.z</res-url>
+</resource-ref>
+// Binds a link to urls/XYZHomePage under java:comp/env/jdbc/XYZHome
+<resource-ref>
+    <res-ref-name>jdbc/XYZHome</res-ref-name>
+    <res-url>urls/XYZHomePage</res-url>
+</resource-ref>
+
+   Used in: resource-ref, resource-manager
+-->
+<!ELEMENT res-url (#PCDATA)>
+
+<!--
+  The message-destination-ref element is used to configure the
+  jndi-name for a message-destination-ref in ejb-jar.xml
+
+  Used in: entity, session, and message-driven
+-->
+<!ELEMENT message-destination-ref (message-destination-ref-name, jndi-name)>
+
+<!--
+  The message-destination-ref-name element identifies the
+  message-destination-ref. It must match the name in ejb-jar.xml
+
+  Used in: message-destination-ref
+-->
+<!ELEMENT message-destination-ref-name (#PCDATA)>
+
+<!--
+  The assembly-descriptor element contains application-assembly information.
+
+  The definition of security roles allows you to map assembly roles to one or more
+  principals. For example, you may define a run-as principal in the security-identity
+  element and include that principal in one or more security-role(s) in the
+  assembly descriptor. When called with a run-as role, the callee will see all
+  those roles in ctx.isCallerInRole(...)
+
+  Used in: jboss
+-->
+<!ELEMENT assembly-descriptor (security-role*, message-destination*)>
+
+<!--
+  The security-role element contains the definition of a security role.
+  The definition consists of an the security role name and principal name element(s).
+
+Used in: assembly-descriptor
+
+Example:
+		<security-role>
+      <role-name>Manager</role-name>
+      <principal-name>j2ee</principal-name>
+      <principal-name>javajoe</principal-name>
+		</security-role>
+-->
+<!ELEMENT security-role (role-name, principal-name+)>
+
+<!--
+  The role-name element is the name of the role.
+
+  Used in: security-role
+-->
+<!ELEMENT role-name (#PCDATA)>
+
+<!--
+  The principal-name element is the name of the principal that is mapped
+  to the assembly role-name.
+
+  Used in: security-role
+-->
+<!ELEMENT principal-name (#PCDATA)>
+
+<!--
+  The message-destination element is used to configure the
+  jndi-name for a message-destination in ejb-jar.xml
+
+  Used in: assembly-descriptor
+-->
+<!ELEMENT message-destination (message-destination-name, jndi-name)>
+
+<!--
+  The message-destination-name element identifies the
+  message-destination. It must match the name in ejb-jar.xml
+
+  Used in: message-destination
+-->
+<!ELEMENT message-destination-name (#PCDATA)>
+
+<!--
+  The container-configurations element declares the different possible
+  container configurations that the beans can use. standardjboss.xml
+  provides 15 standard configurations with the following container-names:
+    - Standard CMP 2.x EntityBean
+    - Standard CMP EntityBean
+    - Clustered CMP 2.x EntityBean
+    - Clustered CMP EntityBean
+    - IIOP CMP 2.x EntityBean
+    - IIOP CMP EntityBean
+    - Standard Stateless SessionBean
+    - Clustered Stateless SessionBean
+    - IIOP Stateless SessionBean
+    - Standard Stateful SessionBean
+    - Clustered Stateful SessionBean
+    - IIOP Stateful SessionBean
+    - Standard BMP EntityBean
+    - Clustered BMP EntityBean
+    - IIOP BMP EntityBean
+    - Standard message Driven Bean
+
+  The standard configurations will automatically be used if no custom
+  configuration is specified.
+
+  The application assembler can define advanced custom configurations here.
+
+  Used in: jboss
+-->
+<!ELEMENT container-configurations (container-configuration*)>
+
+<!--
+  The container-configuration element describes a configuration for the
+  container.
+  The different plugins to use are declared here, as well as their
+  configurations. The configuration-class attribute is no longer used.
+
+  Used in: container-configurations
+-->
+<!ELEMENT container-configuration (container-name , call-logging?,
+ invoker-proxy-binding-name?, sync-on-commit-only?,
+ insert-after-ejb-post-create?, call-ejb-store-on-clean?, container-interceptors? ,
+ instance-pool? , instance-cache? ,  persistence-manager? , web-class-loader? ,
+ locking-policy? ,  container-cache-conf? , container-pool-conf? ,
+ commit-option? , optiond-refresh-rate? , security-domain?, clustered?,
+ depends*)>
+
+<!-- The extends attribute gives the container-name value of the configuration the container-configuration
+is extending. This allows one to specify an extension configuration without having to reiterate all of
+the other duplicate configuration info.
+
+        <container-configuration extends="Standard Stateful SessionBean">
+            <container-name>Secure Stateless SessionBean</container-name>
+            <security-domain>java:/jaas/other</security-domain>
+        </container-configuration>
+-->
+<!ATTLIST container-configuration extends CDATA  #IMPLIED>
+
+<!--
+  The container-name element gives the name of the configuration being
+  defined. Beans may refer to this name in their aop-domain-name tag.
+
+  Used in: container-configuration
+-->
+<!ELEMENT container-name (#PCDATA)>
+
+<!--
+  The call-logging element tells if the container must log every method
+  invocation for this bean or not. Its value must be true or false.
+
+  Used in: container-configuration
+-->
+<!ELEMENT call-logging (#PCDATA)>
+
+<!--
+  The invoker-bindings element gives the invokers configuration for an
+  ejb container.
+
+  Used in: entity, session, message-driven
+-->
+<!ELEMENT invoker-bindings (invoker+)>
+<!--
+ -->
+<!ELEMENT invoker (invoker-proxy-binding-name, jndi-name?, ejb-ref*)>
+
+<!-- The invoker-proxy-binding-name elements maps to the name element of
+an invoker-proxy-binding definition.
+
+  Used in: container-configuration, invoker
+-->
+<!ELEMENT invoker-proxy-binding-name (#PCDATA)>
+
+<!-- The sync-on-commit-only element determines the behavior of ejbStore
+calls on finds, selects and removes. If set to true, ejbStore will only be
+called on transaction commit.
+-->
+<!ELEMENT sync-on-commit-only (#PCDATA)>
+
+<!-- The insert-after-ejb-post-create element defines when the INSERT
+ statement will be executed for created entity instance.
+ Possible values are:
+ false - the default value, INSERT will be executed after ejbCreate but before
+         ejbPostCreate;
+ true - INSERT will be executed after ejbPostCreate.
+-->
+<!ELEMENT insert-after-ejb-post-create (#PCDATA)>
+
+<!-- The call-ejb-store-for-clean says whether ejbStore should be called on clean instances
+ at synchronization time. By the spec it should be true. But users wanted it to be false.
+ False is the default, meaning ejbStore is called only on dirty instances.
+-->
+<!ELEMENT call-ejb-store-on-clean (#PCDATA)>
+
+<!--
+  The container-interceptors element gives the chain of Interceptors
+  (instances of org.jboss.ejb.Interceptor) that are associated with the container.
+  The declared order of the interceptor elements corresponds to the order of the
+  interceptor chain.
+
+  Used in: container-configuration
+-->
+<!ELEMENT container-interceptors (interceptor+)>
+
+<!--
+The client-interceptors defines the home and bean client side interceptor chain
+
+  Used in: proxy-factory-config
+-->
+<!ELEMENT client-interceptors (home , bean, list-entity?)>
+
+<!-- Define whether the ejb proxy should expose an org.jboss.proxy.IClientContainer
+   interface to provide access to the invocation context and interceptors.
+-->
+<!ATTLIST client-interceptors exposeContainer (true | false )  "false">
+
+<!--
+The endpoint-interceptors element gives the chain of interceptors
+(instances of org.jboss.proxy.Interceptor) that are associated with the
+message endpoint.
+
+  Used in: proxy-factory-config for message inflow
+-->
+<!ELEMENT endpoint-interceptors (interceptor+)>
+
+<!--
+The home element gives the chain of interceptors
+(instances of org.jboss.proxy.Interceptor) that are associated with the home
+proxy and operate in the client VM. The declared order of the interceptor
+elements corresponds to the order of the interceptor chain.
+
+  Used in: client-interceptors
+-->
+<!ELEMENT home (interceptor+)>
+
+<!--
+The bean element gives the chain of interceptors
+(instances of org.jboss.proxy.Interceptor) that are associated with the remote
+proxy and operate in the client VM. The declared order of the interceptor
+elements corresponds to the order of the interceptor chain.
+
+  Used in: client-interceptors
+-->
+<!ELEMENT bean (interceptor+)>
+
+<!--
+The list-entity element gives the chain of interceptors
+(instances of org.jboss.proxy.Interceptor) that are associated with the remote
+proxy and operate in the client VM. The declared order of the interceptor
+elements corresponds to the order of the interceptor chain.
+
+  Used in: client-interceptors
+-->
+<!ELEMENT list-entity (interceptor+)>
+
+<!--
+  The interceptor element specifies an instance of org.jboss.ejb.Interceptor
+  that is to be added to the container interceptor stack.
+
+  Used in: home, bean, list-entity, endpoint-interceptors
+-->
+<!ELEMENT interceptor (#PCDATA)>
+
+<!--
+  The transaction attribute is used to indicate what type of container its
+  interceptor applies to. It is an enumerated value that can take on one of: Bean,
+  Container or Both. A value of Bean indicates that the interceptor should only be
+  added to a container for bean-managed transaction.
+  A value of Container indicates that the interceptor should only be added to a
+  container for container-managed transactions.
+  A value of Both indicates that the interceptor should be added to all
+  containers. This is the default value if the transaction attribute is not
+  explictlygiven.
+-->
+<!ATTLIST interceptor transaction     (Bean | Container | Both )  "Both">
+
+<!--
+  The metricsEnabled attributes is used to indicate if the interceptor
+  should only be included when the org.jboss.ejb.ContainerFactory metricsEnabled
+  flag is set to true. The allowed values are true and false with false being the
+  default if metricsEnabled is not explicitly given.
+-->
+<!ATTLIST interceptor metricsEnabled  (true | false )  "false">
+
+<!--
+  The call-by-value attribute is used to indicate that the interceptor
+  should only be included when the value of the attribute corresponds
+  to the value of org.jboss.metadata.BeanMetaData callByValue.
+  For example, if a bean defines the element <call-by-value>true</call-by-value>
+  then a marshalling invoker interceptor will be used instead of the
+  non marshalling optimized invoker interceptor.
+-->
+<!ATTLIST interceptor call-by-value  (true | false )  #IMPLIED>
+
+<!--
+  The instance-pool element gives the class name of the instance pool
+  jboss must use for in this configuration. This class must implement
+  the org.jboss.ejb.InstancePool interface. The defaults are:
+  - org.jboss.ejb.plugins.EntityInstancePool for entity beans
+  - org.jboss.ejb.plugins.StatelessSessionInstancePool for stateless
+  session beans.
+  - no pool is used for stateful session beans
+
+  Used in: container-configuration
+-->
+<!ELEMENT instance-pool (#PCDATA)>
+
+<!--
+  The instance-cache element gives the class name of the instance cache
+  jboss must use for in this configuration. This class must implement
+  the org.jboss.ejb.InstanceCache interface. The defaults are:
+  - org.jboss.ejb.plugins.NoPassivationEntityInstanceCache for entity beans
+  - org.jboss.ejb.plugins.NoPassivationStatefulSessionInstanceCache for
+  stateful session beans.
+  - no cache is used for stateless session beans
+
+  Used in: container-configuration
+-->
+<!ELEMENT instance-cache (#PCDATA)>
+
+<!--
+  The persistence-manager element gives the class name of the persistence
+  manager / persistence store jboss must use for in this configuration.
+  This class must implement:
+  - org.jboss.ejb.EntityPersistenceStore for CMP Entity Beans (default is
+  org.jboss.ejb.plugins.jaws.JAWSPersistenceManager)
+  - org.jboss.ejb.EntityPersistenceManager for BMP entity beans (default
+  is org.jboss.ejb.plugins.BMPPersistenceManager)
+  - org.jboss.ejb.StatefulSessionPersistenceManager for stateless session
+  beans.
+  - no persistence-manager is used for stateless session beans
+
+  Used in: container-configuration
+-->
+<!ELEMENT persistence-manager (#PCDATA)>
+
+<!--
+  The locking-policy element gives the class name of the EJB lock
+  implementation JBoss must use for in this configuration. This class must
+  implement  the org.jboss.ejb.BeanLock interface. The default is
+  org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock.
+
+  Used in: container-configuration
+-->
+<!ELEMENT locking-policy (#PCDATA)>
+
+<!--
+  The web-class-loader element gives the class name of the web classloader
+  jboss must use for in this configuration. This class must be a subclass
+  of org.jboss.web.WebClassLoader. The default is org.jboss.web.WebClassLoader.
+
+  Used in: container-configuration
+  Used in: proxy-factory-config
+-->
+<!ELEMENT web-class-loader (#PCDATA)>
+
+<!--
+  The container-cache-conf element holds dynamic configuration data
+  for the instance cache.
+  jboss does not read directly the subtree for this element: instead,
+  it is passed to the instance cache instance (if it implements
+  org.jboss.metadata.XmlLoadable) for it to load its parameters.
+
+  Used in: container-configuration
+-->
+<!ELEMENT container-cache-conf (cache-policy? , cache-policy-conf?, cache-policy-conf-other?)>
+
+<!--
+  The implementation class for the cache policy, which controls
+  when instances will be passivated, etc.
+
+  Used in: container-cache-conf
+-->
+<!ELEMENT cache-policy (#PCDATA)>
+
+<!--
+  The configuration settings for the selected cache policy.  This
+  is currently only valid for the LRU cache.
+  When the cache is the LRU one for the stateful container, the elements
+  remover-period and max-bean-life specifies the period of the remover
+  task that removes stateful beans (that normally have been passivated)
+  that have age greater than the specified max-bean-life element.
+
+  Used in: container-cache-conf (when cache-policy is the LRU cache)
+-->
+<!ELEMENT cache-policy-conf (min-capacity , max-capacity , remover-period? ,
+ max-bean-life? , overager-period? , max-bean-age? , resizer-period? ,
+ max-cache-miss-period? , min-cache-miss-period? , cache-load-factor?)>
+
+<!--
+  The minimum capacity of this cache
+-->
+<!ELEMENT min-capacity (#PCDATA)>
+
+<!--
+  The maximum capacity of this cache
+-->
+<!ELEMENT max-capacity (#PCDATA)>
+
+<!--
+  The period of the overager's runs
+-->
+<!ELEMENT overager-period (#PCDATA)>
+
+<!--
+  The period of the remover's runs
+-->
+<!ELEMENT remover-period (#PCDATA)>
+
+<!--
+  The max-bean-life specifies the period of the remover
+  task that removes stateful beans (that normally have been passivated)
+  that have age greater than the specified max-bean-life element.
+-->
+<!ELEMENT max-bean-life (#PCDATA)>
+
+<!--
+  The period of the resizer's runs
+-->
+<!ELEMENT resizer-period (#PCDATA)>
+
+<!--
+  The age after which a bean is automatically passivated
+-->
+<!ELEMENT max-bean-age (#PCDATA)>
+
+<!--
+  Shrink cache capacity if there is a cache miss every or more
+  this member's value
+-->
+<!ELEMENT max-cache-miss-period (#PCDATA)>
+
+<!--
+  Enlarge cache capacity if there is a cache miss every or less
+  this member's value
+-->
+<!ELEMENT min-cache-miss-period (#PCDATA)>
+
+<!--
+  The resizer will always try to keep the cache capacity so that
+  the cache is this member's value loaded of cached objects
+-->
+<!ELEMENT cache-load-factor (#PCDATA)>
+
+<!--
+  Arbitrary XML configuration
+-->
+<!ELEMENT cache-policy-conf-other ANY>
+
+<!--
+  The container-pool-conf element holds configuration data for the
+  instance pool.
+  jboss does not read directly the subtree for this element: instead,
+  it is passed to the instance pool instance (if it implements
+  org.jboss.metadata.XmlLoadable) for it to load its parameters.
+
+  The default instance pools, EntityInstancePool and
+  StatelessSessionInstancePool, both accept the following configuration.
+
+  Used in: container-configuration
+-->
+<!ELEMENT container-pool-conf (MinimumSize?, MaximumSize?,
+   strictMaximumSize?, strictTimeout?)>
+
+<!-- The theoretical minimum size of the pool. Currently unused by JBoss
+EJB pools.
+
+Used in: invoker-proxy-conf for JMSContainerInvoker
+-->
+<!ELEMENT MinimumSize (#PCDATA)>
+
+<!--
+  The capacity of the Pool. For pools where reclaim is possible, the pool will
+  also be repopulated when the instance is free to be reused.
+  This is not an hard limit, if instances are needed when the pool is at
+  its MaximumSize, new instances will be created following the demand unless
+  a strictMaximumSize of true is specified.
+
+  Used in: container-pool-conf and invoker-proxy-conf for JMSContainerInvoker
+-->
+<!ELEMENT MaximumSize (#PCDATA)>
+
+<!-- A boolean flag indicating if attempts to access the pool will block when
+MaximumSize instances are active. The default is false.
+
+  Used in: container-pool-conf
+-->
+<!ELEMENT strictMaximumSize (#PCDATA)>
+
+<!-- The time in milliseconds to wait for the strictMaximumSize semaphore. The
+default is Long.MAX_VALUE or essentially enternity.
+
+  Used in: container-pool-conf
+-->
+<!ELEMENT strictTimeout (#PCDATA)>
+
+<!--
+  The number of millis to keep an unused object in the pool. Currently unused by
+  JBoss EJB Pools.
+
+  Used in: invoker-proxy-conf for JMSContainerInvoker
+-->
+<!ELEMENT KeepAliveMillis (#PCDATA)>
+
+<!--
+  This option is only used for entity container configurations.
+
+  The commit-option element tells the container which option to use for transactions.
+  Its value must be A, B C, or D.
+
+  - option A: the entiry instance has exclusive access to the database. The instance
+  stays ready after a transaction.
+  - option B: the entity instance does not have exclusive access to the database.
+  The state is loaded before the next transaction.
+  - option C: same as B, except the container does not keep the instance after commit:
+  a passivate is immediately performed after the commit.
+
+  - option D: a lazy update. default is every 30 secs.
+               can be updated with <optiond-refresh-rate>
+
+  See ejb1.1 specification for details (p118).
+
+  Used in: container-configuration
+-->
+<!ELEMENT commit-option (#PCDATA)>
+
+<!--
+  This element is used to specify the refresh rate of commit option d
+-->
+<!ELEMENT optiond-refresh-rate (#PCDATA)>
+
+<!--
+ior-security-config element describes the security configuration information for the IOR.
+-->  
+<!ELEMENT ior-security-config ( transport-config? , as-context?, sas-context?  )> 
+
+<!--
+transport-config is the root element for security between the end points
+-->
+<!ELEMENT transport-config ( integrity, confidentiality,
+ establish-trust-in-target, establish-trust-in-client, detect-misordering?,
+ detect-replay?)> 
+
+<!--
+integrity element indicates if the server (target) supports integrity protected messages. 
+The valid values are NONE, SUPPORTED or REQUIRED
+-->  
+<!ELEMENT integrity ( #PCDATA)>
+
+<!--
+confidentiality element indicates if the server (target) supports privacy protected 
+messages. The values are NONE, SUPPORTED or REQUIRED
+-->  
+<!ELEMENT confidentiality ( #PCDATA)>
+
+<!--
+establish-trust-in-target element indicates if the target is capable of authenticating to a client. 
+The values are NONE or SUPPORTED.
+-->  
+<!ELEMENT establish-trust-in-target ( #PCDATA)>
+
+<!--
+establish-trust-in-client element indicates if the target is capable of authenticating a client. The
+values are NONE, SUPPORTED or REQUIRED.
+-->  
+<!ELEMENT establish-trust-in-client ( #PCDATA)>
+
+<!--
+The optional detect-misordering indicates if the server (target) supports
+detection of message sequence errors. The values are NONE, SUPPORTED or REQUIRED.
+-->  
+<!ELEMENT detect-misordering ( #PCDATA)>
+
+<!--
+The optional detect-replay indicates if the server (target) supports detection
+of message replay attempts. The values are NONE, SUPPORTED or REQUIRED.
+-->  
+<!ELEMENT detect-replay ( #PCDATA)>
+
+<!--
+as-context (CSIv2 authentication service) is the element describing the authentication 
+mechanism that will be used to authenticate the client. If specified it will be the 
+username-password mechanism.
+-->  
+<!ELEMENT as-context ( auth-method, realm, required )> 
+
+<!--
+required element specifies if the authentication method specified is required
+to be used for client authentication. If so the EstablishTrustInClient bit
+will be set in the target_requires field of the AS_Context. The element value
+is either true or false. 
+-->  
+<!ELEMENT required ( #PCDATA )> 
+
+<!--
+auth-method element describes the authentication method. The only supported value
+for as-context is USERNAME_PASSWORD
+
+For port-component, the auth-method element is used to configure the
+authentication mechanism for the web service. As a prerequisite to gaining
+access to any web service which are protected by an authorization
+constraint, a user must have authenticated using the configured
+mechanism. Legal values for this element are "BASIC", or "CLIENT-CERT".
+
+Used in: as-context, port-component
+
+-->  
+<!ELEMENT auth-method ( #PCDATA )> 
+
+<!--
+realm element describes the realm in which the user is authenticated. Must be 
+a valid realm that is registered in server configuration.
+-->  
+<!ELEMENT realm ( #PCDATA )> 
+
+<!--
+sas-context (related to CSIv2 security attribute service) element describes 
+the sas-context fields.
+-->  
+<!ELEMENT sas-context ( caller-propagation )> 
+
+<!--
+caller-propagation element indicates if the target will accept propagated caller identities
+The values are NONE or SUPPORTED.
+-->  
+<!ELEMENT caller-propagation ( #PCDATA) >
+
+<!-- The port-component element specifies a mapping from a webservice
+port-component whose service-impl-bean/ejb-link value maps to an ejb.
+
+Used in: session
+-->
+<!ELEMENT port-component (port-component-name, port-component-uri?, auth-method?,
+ transport-guarantee?) >
+
+<!-- Maps to the port-component-name in the webservices.xml descriptor.
+
+Used in: port-component
+-->
+<!ELEMENT port-component-name (#PCDATA) >
+
+<!-- Absolute path starting with web context root to form fully qualified
+endpoint address for a web service endpoint. The port component uri, if present
+must contain at least two token seperated by '/'. The first token is the web context root,
+which must be identical among all port component uris in a given deployment.
+
+If this element is not present, the web context root will be derived from the
+deployment canonical name.
+
+Used in: port-component
+-->
+<!ELEMENT port-component-uri (#PCDATA) >
+
+<!--
+The transport-guarantee element specifies that the communication
+between client and server should be NONE, INTEGRAL, or
+CONFIDENTIAL. NONE means that the application does not require any
+transport guarantees. A value of INTEGRAL means that the application
+requires that the data sent between the client and server be sent in
+such a way that it can't be changed in transit. CONFIDENTIAL means
+that the application requires that the data be transmitted in a
+fashion that prevents other entities from observing the contents of
+the transmission. In most cases, the presence of the INTEGRAL or
+CONFIDENTIAL flag will indicate that the use of SSL is required.
+
+Used in: port-component
+-->
+<!ELEMENT transport-guarantee (#PCDATA)>
+
+<!--
+Runtime information about a web service.
+
+wsdl-publish-location is optionally used to specify
+where the final wsdl and any dependent files should be stored.  This location
+resides on the file system from which deployment is initiated.
+-->
+<!ELEMENT webservice-description ( webservice-description-name, wsdl-publish-location? )>
+
+<!--
+Unique name of a webservice within a module
+-->
+<!ELEMENT webservice-description-name ( #PCDATA )>
+
+<!--
+This is a valid URL pointing to a final WSDL document. It is optional.
+If specified, the WSDL document at this URL will be used during
+deployment instead of the WSDL document associated with the
+service-ref in the standard deployment descriptor.
+
+Examples :
+
+  // available via HTTP
+  <wsdl-override>http://localhost:8000/myservice/myport?WSDL</wsdl-override>
+
+  // in a file
+  <wsdl-override>file:/home/user1/myfinalwsdl.wsdl</wsdl-override>
+
+-->
+<!ELEMENT wsdl-override ( #PCDATA )>
+
+<!--
+file: URL of a directory to which a web-service-description's wsdl should be
+published during deployment.  Any required files will be published to this
+directory, preserving their location relative to the module-specific
+wsdl directory(META-INF/wsdl or WEB-INF/wsdl).
+
+Example :
+
+  For an ejb.jar whose webservices.xml wsdl-file element contains
+    META-INF/wsdl/a/Foo.wsdl
+
+  <wsdl-publish-location>file:/home/user1/publish
+  </wsdl-publish-location>
+
+  The final wsdl will be stored in /home/user1/publish/a/Foo.wsdl
+
+-->
+<!ELEMENT wsdl-publish-location ( #PCDATA )>
+
+<!--
+Activation config
+
+used in message-driven and proxy-factory-config
+-->
+<!ELEMENT activation-config ( activation-config-property* )>
+
+<!--
+Activation config properties 
+
+used in activation-config
+-->
+<!ELEMENT activation-config-property ( activation-config-property-name, 
+                                       activation-config-property-value )>
+
+<!--
+Activation config property name
+
+used in activation-config-property
+-->
+<!ELEMENT activation-config-property-name ( #PCDATA )>
+
+<!--
+Activation config property value
+
+used in activation-config-property
+-->
+<!ELEMENT activation-config-property-value ( #PCDATA )>
+                                       

Added: projects/ejb3/trunk/core/src/main/resources/schema/jboss_5_0.xsd
===================================================================
--- projects/ejb3/trunk/core/src/main/resources/schema/jboss_5_0.xsd	                        (rev 0)
+++ projects/ejb3/trunk/core/src/main/resources/schema/jboss_5_0.xsd	2008-02-24 23:19:46 UTC (rev 70050)
@@ -0,0 +1,1649 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+  targetNamespace="http://java.sun.com/xml/ns/javaee"
+  xmlns:javaee="http://java.sun.com/xml/ns/javaee" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  elementFormDefault="qualified" attributeFormDefault="unqualified" version="5.0">
+  <xsd:annotation>
+    <xsd:documentation> @(#)jboss_5_0.xsds 1.00 1/26/06 </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation> JBoss, Home of Professional Open Source Copyright 2005, JBoss Inc., and
+      individual contributors as indicated by the @authors tag. See the copyright.txt in the
+      distribution for a full listing of individual contributors. This is free software; you can
+      redistribute it and/or modify it under the terms of the GNU Lesser General Public License as
+      published by the Free Software Foundation; either version 2.1 of the License, or (at your
+      option) any later version. This software is distributed in the hope that it will be useful,
+      but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+      A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should
+      have received a copy of the GNU Lesser General Public License along with this software; if
+      not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+      02110-1301 USA, or see the FSF site: http://www.fsf.org. </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the JBoss 5.0 deployment descriptor.
+	The deployment descriptor must be named "META-INF/jboss.xml" in
+	the EJB's jar file.  All EJB deployment descriptors must indicate
+	the JBoss schema by using the Java EE namespace:
+
+	http://www.jboss.org/j2ee/schema
+
+	and by indicating the version of the schema by
+	using the version element as shown below:
+
+	    <jboss xmlns="http://java.sun.com/xml/ns/javaee"
+             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+             xsi:schemaLocation="http://www.jboss.org/j2ee/schema
+                            http://www.jboss.org/j2ee/schema/jboss_5_0.xsd"
+             version="5.0">
+	       ...
+		 </jboss>
+
+	The instance documents may indicate the published version of
+	the schema using the xsi:schemaLocation attribute for the
+	Java EE namespace with the following location:
+
+	http://www.jboss.org/j2ee/schema/jboss_5_0.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation> The following conventions apply to all Java EE deployment descriptor
+      elements unless indicated otherwise. - In elements that specify a pathname to a file within
+      the same JAR file, relative filenames (i.e., those not starting with "/") are considered
+      relative to the root of the JAR file's namespace. Absolute filenames (i.e., those starting
+      with "/") also specify names in the root of the JAR file's namespace. In general, relative
+      names are preferred. The exception is .war files where absolute names are preferred for
+      consistency with the Servlet API. </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="http://java.sun.com/xml/ns/javaee/javaee_5.xsd"/>
+
+
+  <!-- **************************************************** -->
+
+  <xsd:element name="jboss" type="javaee:jbossType">
+    <xsd:annotation>
+      <xsd:documentation> This is the root of the ejb-jar deployment descriptor.
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:key name="ejb-name-key">
+      <xsd:annotation>
+        <xsd:documentation> The ejb-name element contains the name of an enterprise bean. The name
+          must be unique within the jboss file. </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:enterprise-beans/*"/>
+      <xsd:field xpath="javaee:ejb-name"/>
+    </xsd:key>
+  </xsd:element>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="jbossType">
+    <xsd:annotation>
+      <xsd:documentation> The jboss element is the root element of the jboss.xml file. It contains
+        all the information used by jboss but not described in the ejb-jar.xml file. All of it is
+        optional. 1- the application assembler can define custom container configurations for the
+        beans. Standard configurations are provided in standardjboss.xml 2- the deployer can
+        override the jndi names under which the beans are deployed 3- the deployer can specify
+        runtime jndi names for resource managers. </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="loader-repository" type="javaee:loader-repositoryType" minOccurs="0"/>
+      <xsd:element name="jmx-name" type="javaee:jmx-nameType" minOccurs="0"/>
+      <xsd:element name="security-domain" type="javaee:security-domainType" minOccurs="0"/>
+      <xsd:element name="unauthenticated-principal" type="javaee:unauthenticated-principalType"
+        minOccurs="0"/>
+      <xsd:element name="enterprise-beans" type="javaee:enterprise-beansType" minOccurs="0"/>
+      <xsd:element name="assembly-descriptor" type="javaee:assembly-descriptorType" minOccurs="0"/>
+      <xsd:element name="resource-managers" type="javaee:resource-managersType" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="version" type="javaee:dewey-versionType" fixed="3.0" use="required">
+      <xsd:annotation>
+        <xsd:documentation> The version specifies the version of the EJB specification that the
+          instance document must comply with. This information enables deployment tools to validate
+          a particular EJB Deployment Descriptor with respect to a specific version of the EJB
+          schema. </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="assembly-descriptorType">
+    <xsd:annotation>
+      <xsd:documentation> The assembly-descriptor element contains application-assembly information.
+        The definition of security roles allows you to map assembly roles to one or more principals.
+        For example, you may define a run-as principal in the security-identity element and include
+        that principal in one or more security-role(s) in the assembly descriptor. When called with
+        a run-as role, the callee will see all those roles in ctx.isCallerInRole(...) Used in: jboss
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="security-role" type="javaee:security-roleType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="message-destination" type="javaee:jboss-message-destinationType"
+        minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-classType">
+    <xsd:annotation>
+      <xsd:documentation>
+        <![CDATA[
+
+	  The ejb-classType contains the fully-qualified name of the
+	  enterprise bean's class. It is used by ejb-class elements.
+
+	  Example:
+
+	      <ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="jmx-nameType">
+    <xsd:annotation>
+      <xsd:documentation> The jmx-name element allows one to specify the JMX ObjectName to use for
+        the MBean associated with the ejb-jar module. This must be a unique name and valid JMX
+        ObjectName string. </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
+        manager that implements the EJBSecurityManager and RealmMapping for the domain. When
+        specified at the jboss level it specifies the security domain for all j2ee components in the
+        deployment unit. One can override the global security-domain at the container level using
+        the security-domain element at the container-configuration level. </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="unauthenticated-principalType">
+    <xsd:annotation>
+      <xsd:documentation> The unauthenticated-principal element specifies the name of the principal
+        that will be returned by the EJBContext.getCallerPrincipal() method if there is no
+        authenticated user. This Principal has no roles or privaledges to call any other beans.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-nameType">
+    <xsd:annotation>
+      <xsd:documentation> The ejb-name element gives the name of the bean, it must correspond to an
+        ejb-name element in ejb-jar.xml Used in: entity, session, and message-driven
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdNMTOKENType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="enterprise-beansType">
+    <xsd:annotation>
+      <xsd:documentation> The enterprise-beans element contains additional information about the
+        beans. These informations, such as jndi names, resource managers and container
+        configurations, are specific to jboss and not described in ejb-jar.xml. jboss will provide a
+        standard behaviour if no enterprise-beans element is found, see container-configurations,
+        jndi-name and resource-managers for defaults. Used in: jboss </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:choice maxOccurs="unbounded">
+      <xsd:element name="session" type="javaee:session-beanType">
+        <xsd:unique name="session-ejb-local-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation> The ejb-ref-name element contains the name of an EJB reference. The
+              EJB reference is an entry in the component's environment and is relative to the
+              java:comp/env context. The name must be unique within the component. It is recommended
+              that name be prefixed with "ejb/". </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:ejb-local-ref"/>
+          <xsd:field xpath="javaee:ejb-ref-name"/>
+        </xsd:unique>
+
+        <xsd:unique name="session-ejb-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation> The ejb-ref-name element contains the name of an EJB reference. The
+              EJB reference is an entry in the component's environment and is relative to the
+              java:comp/env context. The name must be unique within the component. It is recommended
+              that name is prefixed with "ejb/". </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:ejb-ref"/>
+          <xsd:field xpath="javaee:ejb-ref-name"/>
+        </xsd:unique>
+
+        <xsd:unique name="session-resource-env-ref-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation> The resource-env-ref-name element specifies the name of a resource
+              environment reference; its value is the environment entry name used in the component
+              code. The name is a JNDI name relative to the java:comp/env context and must be unique
+              within an component. </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:resource-env-ref"/>
+          <xsd:field xpath="javaee:resource-env-ref-name"/>
+        </xsd:unique>
+
+        <xsd:unique name="session-message-destination-ref-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation> The message-destination-ref-name element specifies the name of a
+              message destination reference; its value is the message destination reference name
+              used in the component code. The name is a JNDI name relative to the java:comp/env
+              context and must be unique within an component. </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:message-destination-ref"/>
+          <xsd:field xpath="javaee:message-destination-ref-name"/>
+        </xsd:unique>
+
+        <xsd:unique name="session-res-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation> The res-ref-name element specifies the name of a resource manager
+              connection factory reference. The name is a JNDI name relative to the java:comp/env
+              context. The name must be unique within an component. </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:resource-ref"/>
+          <xsd:field xpath="javaee:res-ref-name"/>
+        </xsd:unique>
+
+        <xsd:unique name="session-env-entry-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation> The env-entry-name element contains the name of a component's
+              environment entry. The name is a JNDI name relative to the java:comp/env context. The
+              name must be unique within an component. </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:env-entry"/>
+          <xsd:field xpath="javaee:env-entry-name"/>
+        </xsd:unique>
+      </xsd:element>
+
+      <xsd:element name="message-driven" type="javaee:message-driven-beanType">
+        <xsd:unique name="messaged-ejb-local-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation> The ejb-ref-name element contains the name of an EJB reference. The
+              EJB reference is an entry in the component's environment and is relative to the
+              java:comp/env context. The name must be unique within the component. It is recommended
+              that name be prefixed with "ejb/". </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:ejb-local-ref"/>
+          <xsd:field xpath="javaee:ejb-ref-name"/>
+        </xsd:unique>
+
+        <xsd:unique name="messaged-ejb-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation> The ejb-ref-name element contains the name of an EJB reference. The
+              EJB reference is an entry in the component's environment and is relative to the
+              java:comp/env context. The name must be unique within the component. It is recommended
+              that name is prefixed with "ejb/". </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:ejb-ref"/>
+          <xsd:field xpath="javaee:ejb-ref-name"/>
+        </xsd:unique>
+
+        <xsd:unique name="messaged-resource-env-ref-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation> The resource-env-ref-name element specifies the name of a resource
+              environment reference; its value is the environment entry name used in the component
+              code. The name is a JNDI name relative to the java:comp/env context and must be unique
+              within an component. </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:resource-env-ref"/>
+          <xsd:field xpath="javaee:resource-env-ref-name"/>
+        </xsd:unique>
+
+        <xsd:unique name="messaged-message-destination-ref-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation> The message-destination-ref-name element specifies the name of a
+              message destination reference; its value is the message destination reference name
+              used in the component code. The name is a JNDI name relative to the java:comp/env
+              context and must be unique within an component. </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:message-destination-ref"/>
+          <xsd:field xpath="javaee:message-destination-ref-name"/>
+        </xsd:unique>
+
+        <xsd:unique name="messaged-res-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation> The res-ref-name element specifies the name of a resource manager
+              connection factory reference. The name is a JNDI name relative to the java:comp/env
+              context. The name must be unique within an component. </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:resource-ref"/>
+          <xsd:field xpath="javaee:res-ref-name"/>
+        </xsd:unique>
+
+        <xsd:unique name="messaged-env-entry-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation> The env-entry-name element contains the name of a component's
+              environment entry. The name is a JNDI name relative to the java:comp/env context. The
+              name must be unique within an component. </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:env-entry"/>
+          <xsd:field xpath="javaee:env-entry-name"/>
+        </xsd:unique>
+      </xsd:element>
+      <xsd:element name="service" type="javaee:service-beanType"> </xsd:element>
+      <xsd:element name="consumer" type="javaee:consumer-beanType"> </xsd:element>
+    </xsd:choice>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="message-driven-beanType">
+    <xsd:annotation>
+      <xsd:documentation> The message-driven element holds information specific to jboss and not
+        declared in ejb-jar.xml about a message-driven bean, such as container configuration and
+        resources. The bean should already be declared in ejb-jar.xml, with the same ejb-name.
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="ejb-name" type="javaee:ejb-nameType"/>
+      <xsd:element name="destination-jndi-name" type="javaee:destination-jndi-nameType"
+        minOccurs="0"/>
+      <xsd:element name="local-jndi-name" type="javaee:local-jndi-nameType" minOccurs="0"/>
+      <xsd:element name="mdb-user" type="javaee:mdb-userType" minOccurs="0"/>
+      <xsd:element name="mdb-passwd" type="javaee:mdb-passwdType" minOccurs="0"/>
+      <xsd:element name="mdb-client-id" type="javaee:mdb-client-idType" minOccurs="0"/>
+      <xsd:element name="mdb-subscription-id" type="javaee:mdb-subscription-idType" minOccurs="0"/>
+      <xsd:element name="resource-adapter-name" type="javaee:resource-adapter-nameType"
+        minOccurs="0"/>
+      <xsd:element name="ejb-ref" type="javaee:jboss-ejb-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="ejb-local-ref" type="javaee:jboss-ejb-local-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="service-ref" type="javaee:service-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="security-identity" type="javaee:security-identityType" minOccurs="0"/>
+      <xsd:element name="resource-ref" type="javaee:jboss-resource-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref" type="javaee:jboss-resource-env-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref" type="javaee:jboss-message-destination-refType"
+        minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="depends" type="javaee:dependsType" minOccurs="0"/>
+      <xsd:element name="annotation" type="javaee:annotationType" minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="ignore-dependency" type="javaee:ignore-dependencyType" minOccurs="0"/>
+      <xsd:element name="aop-domain-name" type="javaee:aop-domain-nameType" minOccurs="0"/>
+      <xsd:element name="pool-config" type="javaee:pool-configType" minOccurs="0"/>
+      <xsd:element name="jndi-ref" type="javaee:jndi-refType" minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="default-activation-config" type="javaee:default-activation-configType" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="annotationType">
+    <xsd:annotation>
+      <xsd:documentation>
+        
+        The annotationType is used to add annotations to a bean class, 
+        method, or field. 
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    
+    <xsd:sequence>
+      <xsd:element name="description"
+        type="javaee:descriptionType"
+        minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="annotation-class"
+        type="javaee:annotation-classType"/>
+      <xsd:element name="annotation-implementation-class"
+        type="javaee:annotation-classType"/>
+      <xsd:element name="injection-target" type="javaee:injection-targetType" minOccurs="0"/>
+      <xsd:element name="property" type="javaee:annotation-propertyType" minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="annotation-propertyType">
+    <xsd:annotation>
+      <xsd:documentation>
+        
+        Used to set property values for annotations
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    
+    <xsd:sequence>
+      <xsd:element name="description"
+        type="javaee:descriptionType"
+        minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="property-name"
+        type="javaee:string"/>
+      <xsd:element name="property-value"
+        type="javaee:string"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="annotation-classType">
+    <xsd:annotation>
+      <xsd:documentation>
+        The class name of the annotation to be added to the bean.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="default-activation-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+        
+        The activation-configType defines information about the
+        default configuration properties of the message-driven bean
+        in its operational environment. This may include information
+        about message acknowledgement, message selector, expected
+        destination type, etc.
+        
+        The configuration information is expressed in terms of
+        name/value configuration properties.
+        
+        The properties that are recognized for a particular
+        message-driven bean are determined by the messaging type.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    
+    <xsd:sequence>
+      <xsd:element name="description"
+        type="javaee:descriptionType"
+        minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="default-activation-config-property"
+        type="javaee:default-activation-config-propertyType"
+        maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="default-activation-config-propertyType">
+    <xsd:annotation>
+      <xsd:documentation>
+        
+        The activation-config-propertyType contains a name/value
+        configuration property pair for a message-driven bean.
+        
+        The properties that are recognized for a particular
+        message-driven bean are determined by the messaging type.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    
+    <xsd:sequence>
+      <xsd:element name="activation-config-property-name"
+        type="javaee:xsdStringType">
+        <xsd:annotation>
+          <xsd:documentation>
+            
+            The activation-config-property-name element contains
+            the name for an activation configuration property of
+            a message-driven bean.
+            
+            For JMS message-driven beans, the following property
+            names are recognized: acknowledgeMode,
+            messageSelector, destinationType, subscriptionDurability
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="activation-config-property-value"
+        type="javaee:xsdStringType">
+        <xsd:annotation>
+          <xsd:documentation>
+            
+            The activation-config-property-value element
+            contains the value for an activation configuration
+            property of a message-driven bean.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="destination-jndi-nameType">
+    <xsd:annotation>
+      <xsd:documentation> The queue/topic jndi name from which we receive messages
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="mdb-userType">
+    <xsd:annotation>
+      <xsd:documentation> The optional user for the jms connection that delivers messages
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="mdb-passwdType">
+    <xsd:annotation>
+      <xsd:documentation> The optional password for the jms connection that delivers messages
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="mdb-client-idType">
+    <xsd:annotation>
+      <xsd:documentation> The optional client-id for the jms connection that delivers messages
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="mdb-subscription-idType">
+    <xsd:annotation>
+      <xsd:documentation> The subscription name for topic delivery </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="resource-adapter-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+        <![CDATA[
+      The name of the rar used in JCA 1.5 message inflow
+e.g.
+   <resource-adapter-name>jms-ra.rar</resource-adapter-name>
+or for embedded rars
+   <resource-adapter-name>myapp.ear#myconnector.rar</resource-adapter-name>
+   ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="jboss-methodType">
+    <xsd:annotation>
+      <xsd:documentation> The method element is used to specify attributes for one method or all
+        those matching a pattern startingstring*. </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="method-name" type="javaee:method-nameType"/>
+      <xsd:element name="transaction-timeout" type="javaee:transaction-timeoutType" minOccurs="0"/>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="method-nameType">
+    <xsd:annotation>
+      <xsd:documentation> The method-name element specifies a complete method name or a pattern
+        consisting of an initial match followed by '*' </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="transaction-timeoutType">
+    <xsd:annotation>
+      <xsd:documentation> The transaction timeout in seconds (overriding the default timeout). This
+        will only work for Required (where the method starts the transaction) and RequiresNew. The
+        special value of 0 (zero) uses the default timeout configured on
+        jboss:service=TransactionManager NOTE: any subsequent use of RequiresNew that is not
+        explicitly overridden will use this value. </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="security-identityType">
+    <xsd:annotation>
+      <xsd:documentation> The security-identity element specifies whether a specific run-as identity
+        is to be used. If there is a run-as role defined for an enterprise bean, there can also be a
+        run-as-principal define here. If you don't define a run-as principal the callee will see
+        ctx.getCallerPrincipal() == 'anonymous' Used in: entity, message-driven, session
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="run-as-principal" type="javaee:role-nameType" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="consumer-beanType">
+    <xsd:annotation>
+      <xsd:documentation> The consumer element holds all of the information specific about a
+        consumer bean which is a JBoss proprietary extension to EJB3 for sending JMS messages via
+        standard Java interfaces. Used in: enterprise-beans </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="ejb-name" type="javaee:ejb-nameType"/>
+      <xsd:element name="ejb-class" type="javaee:ejb-classType"/>
+      <xsd:element name="message-destination" type="javaee:consumer-message-destinationType"/>
+      <xsd:element name="message-destination-type" type="javaee:message-destination-typeType"/>
+      <xsd:element name="producer" type="javaee:producerType" maxOccurs="unbounded"/>
+      <xsd:element name="local-producer" type="javaee:producerType" maxOccurs="unbounded"/>
+      <xsd:element name="current-message" type="javaee:current-messageType"/>
+      <xsd:element name="message-properties" type="javaee:message-propertiesType"
+        maxOccurs="unbounded"/>
+      <xsd:element name="remote-binding" type="javaee:remote-bindingType" minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
+      <xsd:element name="local-jndi-name" type="javaee:local-jndi-nameType" minOccurs="0"/>
+      <xsd:element name="ejb-ref" type="javaee:jboss-ejb-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="ejb-local-ref" type="javaee:jboss-ejb-local-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="security-identity" type="javaee:security-identityType" minOccurs="0"/>
+      <xsd:element name="resource-ref" type="javaee:jboss-resource-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref" type="javaee:jboss-resource-env-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref" type="javaee:jboss-message-destination-refType"
+        minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="security-domain" type="javaee:security-domainType" minOccurs="0"/>
+      <xsd:element name="method-attributes" type="javaee:method-attributesType" minOccurs="0"/>
+      <xsd:element name="depends" type="javaee:dependsType" minOccurs="0"/>
+      <xsd:element name="annotation" type="javaee:annotationType" minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="ignore-dependency" type="javaee:ignore-dependencyType" minOccurs="0"/>
+      <xsd:element name="aop-domain-name" type="javaee:aop-domain-nameType" minOccurs="0"/>
+      <xsd:element name="pool-config" type="javaee:pool-configType" minOccurs="0"/>
+      <xsd:element name="jndi-ref" type="javaee:jndi-refType" minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="consumer-message-destinationType">
+    <xsd:annotation>
+      <xsd:documentation> The jndi binding of the message destination </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <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
+        services. Service beans are the EJB3 analogy for JMX MBeans. </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="ejb-name" type="javaee:ejb-nameType"/>
+      <xsd:element name="ejb-class" type="javaee:ejb-classType"/>
+      <xsd:element name="object-name" type="javaee:jmx-nameType" minOccurs="0"/>
+      <xsd:element name="local" type="javaee:localType" minOccurs="0"/>
+      <xsd:element name="remote" type="javaee:remoteType" minOccurs="0"/>
+      <xsd:element name="management" type="javaee:managementType" minOccurs="0"/>
+      <xsd:element name="xmbean" type="javaee:xmbeanType" minOccurs="0"/>
+      <xsd:element name="remote-binding" type="javaee:remote-bindingType" minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
+      <xsd:element name="local-jndi-name" type="javaee:local-jndi-nameType" minOccurs="0"/>
+      <xsd:element name="ejb-ref" type="javaee:jboss-ejb-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="ejb-local-ref" type="javaee:jboss-ejb-local-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="security-identity" type="javaee:security-identityType" minOccurs="0"/>
+      <xsd:element name="resource-ref" type="javaee:jboss-resource-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref" type="javaee:jboss-resource-env-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref" type="javaee:jboss-message-destination-refType"
+        minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="security-domain" type="javaee:xsdStringType" minOccurs="0"/>
+      <xsd:element name="method-attributes" type="javaee:method-attributesType" minOccurs="0"/>
+      <xsd:element name="depends" type="javaee:xsdStringType" minOccurs="0"/>
+      <xsd:element name="annotation" type="javaee:annotationType" minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="ignore-dependency" type="javaee:ignore-dependencyType" minOccurs="0"/>
+      <xsd:element name="aop-domain-name" type="javaee:aop-domain-nameType" minOccurs="0"/>
+      <xsd:element name="jndi-ref" type="javaee:jndi-refType" minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="managementType">
+    <xsd:annotation>
+      <xsd:documentation> The fully qualified class name for the JMX Management interface
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="xmbeanType">
+    <xsd:annotation>
+      <xsd:documentation> The resource URL for the xmbean metadata
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="producerType">
+    <xsd:annotation>
+      <xsd:documentation> The producer element holds all of the information specific about a
+        producer interface for a consumer bean Used in: consumer </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="class" type="javaee:xsdStringType"/>
+      <xsd:element name="connection-factory" type="javaee:xsdStringType" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="current-messageType">
+    <xsd:annotation>
+      <xsd:documentation> Element for defining the method used as the injection point for the
+        current JMS message in a consumer bean Used in: consumer </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="method" type="javaee:jboss-methodType" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="message-propertiesType">
+    <xsd:annotation>
+      <xsd:documentation> Element for defining JMS message properties (e.g. persistence, priority)
+        for a consumer bean Used in: consumer </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="class" type="javaee:xsdStringType" minOccurs="0"/>
+      <xsd:element name="method" type="javaee:jboss-methodType"/>
+      <xsd:element name="delivery" type="javaee:xsdStringType" minOccurs="0"/>
+      <xsd:element name="priority" type="javaee:xsdIntegerType" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="session-beanType">
+    <xsd:annotation>
+      <xsd:documentation> The session element holds information specific to jboss and not declared
+        in ejb-jar.xml about a session bean, such as jndi name, container configuration, and
+        resource managers. (see tags for details) The bean should already be declared in
+        ejb-jar.xml, with the same ejb-name. Used in: enterprise-beans </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="ejb-name" type="javaee:ejb-nameType"/>
+      <xsd:element name="remote-binding" type="javaee:remote-bindingType" 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="local-jndi-name" type="javaee:local-jndi-nameType" minOccurs="0"/>
+      <xsd:element name="local-home-jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
+      <xsd:element name="ejb-ref" type="javaee:jboss-ejb-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="ejb-local-ref" type="javaee:jboss-ejb-local-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="service-ref" type="javaee:jboss-service-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="security-identity" type="javaee:security-identityType" minOccurs="0"/>
+      <xsd:element name="resource-ref" type="javaee:jboss-resource-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref" type="javaee:jboss-resource-env-refType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref" type="javaee:jboss-message-destination-refType"
+        minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="clustered" type="javaee:clusteredType" minOccurs="0"/>
+      <xsd:element name="cluster-config" type="javaee:cluster-configType" minOccurs="0"/>
+      <xsd:element name="security-domain" type="javaee:security-domainType" minOccurs="0"/>
+      <xsd:element name="method-attributes" type="javaee:method-attributesType" minOccurs="0"/>
+      <xsd:element name="depends" type="javaee:dependsType" minOccurs="0"/>
+      <xsd:element name="annotation" type="javaee:annotationType" minOccurs="0"/>
+      <xsd:element name="ignore-dependency" type="javaee:ignore-dependencyType" minOccurs="0"/>
+      <xsd:element name="aop-domain-name" type="javaee:aop-domain-nameType" minOccurs="0"/>    
+      <xsd:element name="cache-config" type="javaee:cache-configType" minOccurs="0"/>
+      <xsd:element name="pool-config" type="javaee:pool-configType" minOccurs="0"/>
+      <xsd:element name="concurrent" type="javaee:concurrentType" minOccurs="0"/>
+      <xsd:element name="jndi-ref" type="javaee:jndi-refType" minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="jndi-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+        <![CDATA[
+          Used to inject generic types based on JNDI name
+	    ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    
+    <xsd:sequence>
+      <xsd:element name="description"
+        type="javaee:descriptionType"
+        minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="jndi-ref-name"
+        type="javaee:jndi-nameType">
+        <xsd:annotation>
+          <xsd:documentation>
+            
+            The jndi-ref-name element specifies the name of the
+            reference. The name is a JNDI name relative to the
+            java:comp/env context.
+            The name must be unique within a Deployment File.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      
+      <xsd:group ref="javaee:resourceGroup"/>
+      
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </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,
+        block/serialize access. </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:true-falseType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="pool-configType">
+    <xsd:annotation>
+      <xsd:documentation>Element for specifying the class used to provide the caching mechanism for a bean,
+        and the cache parameters
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="pool-class" type="javaee:pool-classType" minOccurs="0"/>
+      <xsd:element name="pool-max-size" type="javaee:pool-max-sizeType" minOccurs="0"/>
+      <xsd:element name="pool-timeout" type="javaee:pool-timeoutType" minOccurs="0"/>
+    </xsd:sequence>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="pool-classType">
+    <xsd:annotation>
+      <xsd:documentation>The class of the pool</xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="pool-max-sizeType">
+    <xsd:annotation>
+      <xsd:documentation>Maximum size of the pool</xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdIntegerType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="pool-timeoutType">
+    <xsd:annotation>
+      <xsd:documentation>Seconds before an pool thread times out</xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdIntegerType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="cache-configType">
+    <xsd:annotation>
+      <xsd:documentation>Element for specifying the class used to provide the caching mechanism for a bean,
+        and the cache parameters
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="cache-class" type="javaee:cache-classType" minOccurs="0"/>
+      <xsd:element name="cache-max-size" type="javaee:cache-max-sizeType" minOccurs="0"/>
+      <xsd:element name="idle-timeout-seconds" type="javaee:idle-timeout-secondsType" minOccurs="0"/>
+      <xsd:element name="remove-timeout-seconds" type="javaee:remove-timeout-secondsType" minOccurs="0"/>
+      <xsd:element name="cache-name" type="javaee:cache-nameType" minOccurs="0"/>
+      <xsd:element name="persistence-manager" type="javaee:persistence-managerType" minOccurs="0"/>
+    </xsd:sequence>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="persistence-managerType">
+    <xsd:annotation>
+      <xsd:documentation>The class of the persistence manager for the simple cache</xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="cache-classType">
+    <xsd:annotation>
+      <xsd:documentation>The class of the cache</xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="cache-max-sizeType">
+    <xsd:annotation>
+      <xsd:documentation>Maximum cache entries before entry(s) are evicted</xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdIntegerType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="idle-timeout-secondsType">
+    <xsd:annotation>
+      <xsd:documentation>Seconds before an idle entry is evicted</xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdIntegerType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="remove-timeout-secondsType">
+    <xsd:annotation>
+      <xsd:documentation>Seconds before an idle entry is removed</xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdIntegerType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="cache-nameType">
+    <xsd:annotation>
+      <xsd:documentation>The JMX MBean name of the tree cache</xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="dependsType">
+    <xsd:annotation>
+      <xsd:documentation> The depends element gives a JMX ObjectName of a service on which the
+        container or ejb depends. (default) </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="proxy-factoryType">
+    <xsd:annotation>
+      <xsd:documentation> The fully qualified name of the proxy factory class</xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="interceptor-stackType">
+    <xsd:annotation>
+      <xsd:documentation>Name of the AOP client interceptor stack</xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  <xsd:complexType name="ignore-dependencyType">
+    <xsd:annotation>
+      <xsd:documentation> The ignore-dependency element removes an injection dependency</xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="injection-target" type="javaee:injection-targetType"/> 
+    </xsd:sequence> 
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="aop-domain-nameType">
+    <xsd:annotation>
+      <xsd:documentation>Element for specifying the aspect domain for a bean. The aspect domain contains the interceptor stack and bindings (default) </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="clusteredType">
+    <xsd:annotation>
+      <xsd:documentation> The clustered element indicates if this bean will run in a cluster of
+        JBoss instances. It is provided by the deployer. If not, jboss will assume clustered = False
+        Possible values: "True", "False" (default) </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:true-falseType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="local-jndi-nameType">
+    <xsd:annotation>
+      <xsd:documentation> The JNDI name under with the local interface should be bound. If it is not
+        provided jboss will assume "jndi-name" = "beanClass/local" </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="remote-bindingType">
+    <xsd:annotation>
+      <xsd:documentation>Element for specifying the remote jndi binding for a bean as well
+        as the client interceptor stack
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
+      <xsd:element name="client-bind-url" type="javaee:client-bind-urlType" minOccurs="0"/>
+      <xsd:element name="interceptor-stack" type="javaee:interceptor-stackType" minOccurs="0"/>
+      <xsd:element name="proxy-factory" type="javaee:proxy-factoryType" minOccurs="0"/>
+    </xsd:sequence>
+  </xsd:complexType>
+  
+  <!-- **************************************************** -->
+  
+  <xsd:complexType name="client-bind-urlType">
+    <xsd:annotation>
+      <xsd:documentation>The JBoss Remoting URL that clients will try and bind to.
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="jboss-ejb-refType">
+    <xsd:annotation>
+      <xsd:documentation> The ejb-ref element is used to give the jndi-name of an external ejb
+        reference. In the case of an external ejb reference, you don't provide a ejb-link element in
+        ejb-jar.xml, but you provide a jndi-name in jboss.xml Used in: entity, session,
+        message-driven, consumer, and service </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <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="javaee:resourceGroup"/>
+      <xsd:element name="jndi-name" type="javaee:jndi-nameType" minOccurs="0"/>
+      <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-ejb-local-refType">
+    <xsd:annotation>
+      <xsd:documentation> The ejb-local-ref element is used to give the jndi-name of an external ejb
+        reference. In the case of an external ejb reference, you don't provide a ejb-link element in
+        ejb-jar.xml, but you provide a jndi-name in jboss.xml </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <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="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:group ref="javaee:resourceGroup"/>
+      <xsd:element name="local-jndi-name" type="javaee:local-jndi-nameType" minOccurs="0"/>
+      <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: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:element name="message-destination-name" type="javaee:xsdStringType"/>
+      <xsd:element name="jndi-name" type="javaee:xsdStringType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="jboss-message-destination-refType">
+    <xsd:annotation>
+      <xsd:documentation> The message-destination-ref element is used to configure the jndi-name for
+        a message-destination-ref in ejb-jar.xml </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="message-destination-ref-name" type="javaee:jndi-nameType">
+        <xsd:annotation>
+          <xsd:documentation> The message-destination-ref-name element specifies the name of a
+            message destination reference; its value is the environment entry name used in
+            Deployment Component code. The name is a JNDI name relative to the java:comp/env context
+            and must be unique within an ejb-jar (for enterprise beans) or a Deployment File (for
+            others). </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="message-destination-type" type="javaee:message-destination-typeType"
+        minOccurs="0"/>
+      <xsd:element name="message-destination-usage" type="javaee:message-destination-usageType"
+        minOccurs="0"/>
+      <xsd:element name="message-destination-link" type="javaee:message-destination-linkType"
+        minOccurs="0"/>
+
+      <xsd:group ref="javaee:resourceGroup"/>
+
+      <xsd:element name="jndi-name" type="javaee:xsdStringType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="message-destination-ref-nameType">
+    <xsd:annotation>
+      <xsd:documentation> The message-destination-ref-name element identifies the
+        message-destination-ref. It must match the name in ejb-jar.xml </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="jboss-resource-env-refType">
+    <xsd:annotation>
+      <xsd:documentation> The resource-env-ref element gives a mapping between the "code name" of a
+        env resource (res-ref-name, provided by the Bean Developer) and its deployed JNDI name.
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description" type="javaee:descriptionType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref-name" type="javaee:jndi-nameType" minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation> The resource-env-ref-name element specifies the name of a resource
+            environment reference; its value is the environment entry name used in the Deployment
+            Component code. The name is a JNDI name relative to the java:comp/env context and must
+            be unique within a Deployment Component. </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="resource-env-ref-type" type="javaee:fully-qualified-classType"
+        minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation> The resource-env-ref-type element specifies the type of a resource
+            environment reference. It is the fully qualified name of a Java language class or
+            interface. </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="jndi-name" type="javaee:jndi-nameType"/>
+
+      <xsd:group ref="javaee:resourceGroup"/>
+    </xsd:sequence>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="resource-env-ref-nameType">
+    <xsd:annotation>
+      <xsd:documentation> The resource-env-ref-name element gives the "code name" of a resource. It
+        is provided by the Bean Developer. </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+  <xsd:complexType name="jboss-resource-refType">
+    <xsd:annotation>
+      <xsd:documentation> The resource-ref element gives a mapping between the "code name" of a
+        resource (res-ref-name, provided by the Bean Developer) and its "xml name" (resource-name,
+        provided by the Application Assembler). If no resource-ref is provided, jboss will assume
+        that "xml-name" = "code name" See resource-managers. </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description" type="javaee:descriptionType" minOccurs="0"
+        maxOccurs="unbounded"/>
+      <xsd:element name="res-ref-name" type="javaee:jndi-nameType" minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation> The res-ref-name element specifies the name of a resource manager
+            connection factory reference. The name is a JNDI name relative to the java:comp/env
+            context. The name must be unique within a Deployment File. </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="res-type" type="javaee:fully-qualified-classType" minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation> The res-type element specifies the type of the data source. The type
+            is specified by the fully qualified Java language class or interface expected to be
+            implemented by the data source. </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+
+      <xsd:element name="res-auth" type="javaee:res-authType" minOccurs="0"/>
+
+      <xsd:element name="res-sharing-scope" type="javaee:res-sharing-scopeType" minOccurs="0"/>
+
+      <xsd:choice>
+        <xsd:element name="resource-name" type="javaee:xsdStringType"/>
+        <xsd:element name="jndi-name" type="javaee:xsdStringType"/>
+        <xsd:element name="mapped-name" type="javaee:xsdStringType"/>
+      </xsd:choice>
+
+      <xsd:group ref="javaee:resourceGroup"/>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="res-ref-nameType">
+    <xsd:annotation>
+      <xsd:documentation> The res-ref-name element gives the "code name" of a resource. It is
+        provided by the Bean Developer. See resource-managers for the actual configuration of the
+        resource. </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="resource-nameType">
+    <xsd:annotation>
+      <xsd:documentation> The resource-managers element is used to declare resource managers. A
+        resource has 3 names: - the "code name" is the name used in the code of the bean, supplied
+        by the Bean Developer in the resource-ref section of the ejb-jar.xml file - the "xml name"
+        is an intermediary name used by the Application Assembler to identify resources in the XML
+        file. - the "runtime jndi name" is the actual jndi-name or url of the deployed resource, it
+        is supplied by the Deployer. The mapping between the "code name" and the "xml name" is given
+        in the resource-ref section for the bean. If not, jboss will assume that "xml name" = "code
+        name". The mapping between the "xml name" and the "runtime jndi name" is given in a
+        resource-manager section. If not, and if the datasource is of type javax.sql.DataSource,
+        jboss will look for a javax.sql.DataSource in the jndi tree. </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="jboss-service-refType">
+    <xsd:annotation>
+      <xsd:documentation>
+        <![CDATA[
+      The service-ref element provides jboss specific deployment values to
+the web service reference in ejb-jar.xml.
+Example:
+    <service-ref>
+        <service-ref-name>OrganizationService</service-ref-name>
+        <wsdl-override>file:/wsdlRepository/organization-service.wsdl</wsdl-override>
+    </service-ref>
+
+    <service-ref>
+        <service-ref-name>OrganizationService</service-ref-name>
+        <config-name>Secure Client Config</config-name>
+        <config-file>META-INF/jbossws-client-config.xml</config-file>
+        <port-component-ref>
+          <service-endpoint-interface>com.dot.SEI</service-endpoint-interface>
+          <call-property>
+            <prop-name>X</prop-name>
+            <prop-value>Y</prop-value>
+          </call-property>
+        </port-component-ref>
+    </service-ref> 
+    ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <!--xsd:sequence>
+      <xsd:element name="description" type="javaee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="service-ref-name" type="javaee:service-ref-nameType"/>
+      <xsd:element name="config-name" type="javaee:config-nameType" minOccurs="0">
+      <xsd:element name="config-file" type="javaee:config-fileType" minOccurs="0"/>
+      <xsd:element name="res-sharing-scope" type="javaee:res-sharing-scopeType" minOccurs="0"/>
+      <xsd:choice>
+        <xsd:element name="resource-name" type="javaee:xsdStringType"/>
+        <xsd:element name="jndi-name" type="javaee:xsdStringType"/>
+        <xsd:element name="mapped-name" type="javaee:xsdStringType"/>
+      </xsd:choice>
+
+      <xsd:group ref="javaee:resourceGroup"/>
+    </xsd:sequence-->
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="service-ref-nameType">
+    <xsd:annotation>
+      <xsd:documentation> The service-ref-name element gives the ENC relative name used in the
+        ejb-jar.xml service-ref-name element. </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="resource-managersType">
+    <xsd:annotation>
+      <xsd:documentation> The resource-managers element is used to declare resource managers. A
+        resource has 3 names: - the "code name" is the name used in the code of the bean, supplied
+        by the Bean Developer in the resource-ref section of the ejb-jar.xml file - the "xml name"
+        is an intermediary name used by the Application Assembler to identify resources in the XML
+        file. - the "runtime jndi name" is the actual jndi-name or url of the deployed resource, it
+        is supplied by the Deployer. The mapping between the "code name" and the "xml name" is given
+        in the resource-ref section for the bean. If not, jboss will assume that "xml name" = "code
+        name". The mapping between the "xml name" and the "runtime jndi name" is given in a
+        resource-manager section. If not, and if the datasource is of type javax.sql.DataSource,
+        jboss will look for a javax.sql.DataSource in the jndi tree. Used in: jboss
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="resource-manager" type="javaee:resource-managerType" minOccurs="0"
+        maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="resource-managerType">
+    <xsd:annotation>
+      <xsd:documentation> The resource-manager element is used to provide a mapping between the "xml
+        name" of a resource (res-name) and its "runtime jndi name" (res-jndi-name or res-url
+        according to the type of the resource). If it is not provided, and if the type of the
+        resource is javax.sql.DataSource, jboss will look for a javax.sql.DataSource in the jndi
+        tree. See resource-managers. Used in: resource-managers </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="res-name" type="javaee:xsdStringType"/>
+      <xsd:choice>
+        <xsd:element name="res-jndi-name" type="javaee:xsdStringType"/>
+        <xsd:element name="res-url" type="javaee:xsdStringType"/>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+    <xsd:attribute name="res-class" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="cluster-configType">
+    <xsd:annotation>
+      <xsd:documentation> The cluster-config element allows to specify cluster specific settings.
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="partition-name" type="javaee:partition-nameType" minOccurs="0"/>
+      <xsd:element name="load-balance-policy" type="javaee:load-balance-policyType" minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="partition-nameType">
+    <xsd:annotation>
+      <xsd:documentation> The partition-name element indicates the name of the HAPartition to be
+        used by the container to exchange clustering information. This is a name and *not* a JNDI
+        name. Given name will be prefixed by "/HASessionState/" by the container to get the actual
+        JNDI name of the HAPartition. If not, jboss will assume partition-name = "DefaultPartition".
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="load-balance-policyType">
+    <xsd:annotation>
+      <xsd:documentation> The home-load-balance-policy element indicates the java class name to be
+        used to load balance calls in the home proxy. If not, jboss will assume
+        home-load-balance-policy = "org.jboss.ha.framework.interfaces.RoundRobin".
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="loader-repositoryType" mixed="true">
+    <xsd:annotation>
+      <xsd:documentation>
+        <![CDATA[
+      The loader-repository specifies the name of the UnifiedLoaderRepository
+   MBean to use for the ear to provide ear level scoping of classes deployed
+   in the ear. It is a unique JMX ObjectName string. It may also specify
+   an arbitrary configuration by including a loader-repository-config element.
+
+Examples:
+   <loader-repository>jboss.test:loader=cts-cmp2v1-sar.ear</loader-repository>
+
+   <loader-repository loaderRepositoryClass='dot.com.LoaderRepository'>
+      dot.com:loader=unique-archive-name
+      <loader-repository-config configParserClass='dot.com.LoaderParser'>
+         java2ParentDelegaton=true
+      </loader-repository-config>
+   </loader-repository>
+        </loader-repository>
+        ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="loader-repository-config" type="javaee:loader-repository-configType"
+        minOccurs="0" maxOccurs="unbounded"/>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+    <xsd:attribute name="loaderRepositoryClass" type="xsd:string"/>
+  </xsd:complexType>
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="loader-repository-configType" mixed="true">
+    <xsd:annotation>
+      <xsd:documentation> The loader-repository-config element specifies any arbitrary configuration
+        fragment for use in configuring the loader-repository instance. The actual content of this
+        element is specific to the loaderRepositoryClass and the code parsing the element.
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+    <xsd:attribute name="configParserClass" type="xsd:string"/>
+  </xsd:complexType>
+
+
+  <!-- **************************************************** -->
+
+  <xsd:complexType name="method-attributesType">
+    <xsd:annotation>
+      <xsd:documentation> The method-attributes element can be used to specify which methods are
+        read only or idempotent. This is used to reduce the need for locks and replication.
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="method" type="javaee:jboss-methodType" minOccurs="0" maxOccurs="unbounded"
+      />
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>

Added: projects/ejb3/trunk/core/src/main/resources/schema/sun-ejb-jar_3_0.xsd
===================================================================
--- projects/ejb3/trunk/core/src/main/resources/schema/sun-ejb-jar_3_0.xsd	                        (rev 0)
+++ projects/ejb3/trunk/core/src/main/resources/schema/sun-ejb-jar_3_0.xsd	2008-02-24 23:19:46 UTC (rev 70050)
@@ -0,0 +1,2403 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="3.0">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)ejb-jar_3_0.xsds	1.44 06/07/05
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+	This is the XML Schema for the EJB 3.0 deployment descriptor.
+	The deployment descriptor must be named "META-INF/ejb-jar.xml" in
+	the EJB's jar file.  All EJB deployment descriptors must indicate
+	the ejb-jar schema by using the J2EE namespace:
+
+	http://java.sun.com/xml/ns/j2ee
+
+	and by indicating the version of the schema by
+	using the version element as shown below:
+
+	    <ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+		  http://java.sun.com/xml/ns/j2ee/ejb-jar_3_0.xsd"
+	      version="3.0">
+	      ...
+	    </ejb-jar>
+
+	The instance documents may indicate the published version of
+	the schema using the xsi:schemaLocation attribute for the
+	J2EE namespace with the following location:
+
+	http://java.sun.com/xml/ns/j2ee/ejb-jar_3_0.xsd
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all J2EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - In elements that specify a pathname to a file within the
+	same JAR file, relative filenames (i.e., those not
+	starting with "/") are considered relative to the root of
+	the JAR file's namespace.  Absolute filenames (i.e., those
+	starting with "/") also specify names in the root of the
+	JAR file's namespace.  In general, relative names are
+	preferred.  The exception is .war files where absolute
+	names are preferred for consistency with the Servlet API.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="j2ee_5_0.xsd"/>
+
+
+<!-- **************************************************** -->
+
+
+  <xsd:element name="ejb-jar" type="j2ee:ejb-jarType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This is the root of the ejb-jar deployment descriptor.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:key name="ejb-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The ejb-name element contains the name of an enterprise
+	  bean. The name must be unique within the ejb-jar file.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:enterprise-beans/*"/>
+      <xsd:field    xpath="j2ee:ejb-name"/>
+    </xsd:key>
+
+    <xsd:keyref name="ejb-name-references"
+		refer="j2ee:ejb-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The keyref indicates the references from
+	  relationship-role-source must be to a specific ejb-name
+	  defined within the scope of enterprise-beans element.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector
+	   xpath=".//j2ee:ejb-relationship-role/j2ee:relationship-role-source"/>
+      <xsd:field
+	   xpath="j2ee:ejb-name"/>
+    </xsd:keyref>
+
+    <xsd:key name="role-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  A role-name-key is specified to allow the references
+	  from the security-role-refs.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:assembly-descriptor/j2ee:security-role"/>
+      <xsd:field    xpath="j2ee:role-name"/>
+    </xsd:key>
+
+    <xsd:keyref name="role-name-references"
+		refer="j2ee:role-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The keyref indicates the references from
+	  security-role-ref to a specified role-name.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:enterprise-beans/*/j2ee:security-role-ref"/>
+      <xsd:field    xpath="j2ee:role-link"/>
+    </xsd:keyref>
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="activation-config-propertyType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The activation-config-propertyType contains a name/value
+	configuration property pair for a message-driven bean.
+
+	The properties that are recognized for a particular
+	message-driven bean are determined by the messaging type.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="activation-config-property-name"
+		   type="j2ee:xsdStringType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The activation-config-property-name element contains
+	    the name for an activation configuration property of
+	    a message-driven bean.
+
+	    For JMS message-driven beans, the following property
+	    names are recognized: acknowledgeMode,
+	    messageSelector, destinationType, subscriptionDurability
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="activation-config-property-value"
+		   type="j2ee:xsdStringType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The activation-config-property-value element
+	    contains the value for an activation configuration
+	    property of a message-driven bean.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="activation-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The activation-configType defines information about the
+	expected configuration properties of the message-driven bean
+	in its operational environment. This may include information
+	about message acknowledgement, message selector, expected
+	destination type, etc.
+
+	The configuration information is expressed in terms of
+	name/value configuration properties.
+
+	The properties that are recognized for a particular
+	message-driven bean are determined by the messaging type.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="activation-config-property"
+		   type="j2ee:activation-config-propertyType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="application-exceptionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The application-exceptionType declares an application
+        exception. The declaration consists of:
+
+            - the exception class. When the container receives
+              an exception of this type, it is required to
+              forward this exception as an applcation exception
+              to the client regardless of whether it is a checked
+              or unchecked exception.
+            - an optional rollback element. If this element is
+              present, the container must rollback the current
+              transaction before forwarding the exception to the
+              client.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="exception-class"
+		   type="j2ee:fully-qualified-classType"/>
+      <xsd:element name="rollback"
+                   type="j2ee:emptyType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="assembly-descriptorType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The assembly-descriptorType defines
+	application-assembly information.
+
+	The application-assembly information consists of the
+	following parts: the definition of security roles, the
+	definition of method permissions, the definition of
+	transaction attributes for enterprise beans with
+	container-managed transaction demarcation and a list of
+	methods to be excluded from being invoked.
+
+	All the parts are optional in the sense that they are
+	omitted if the lists represented by them are empty.
+
+	Providing an assembly-descriptor in the deployment
+	descriptor is optional for the ejb-jar file producer.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="security-role"
+		   type="j2ee:security-roleType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="method-permission"
+		   type="j2ee:method-permissionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="container-transaction"
+		   type="j2ee:container-transactionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="message-destination"
+		   type="j2ee:message-destinationType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="exclude-list"
+		   type="j2ee:exclude-listType"
+		   minOccurs="0"/>
+      <xsd:element name="application-exception"
+                   type="j2ee:application-exceptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="callback-listenerType">
+    <xsd:sequence>
+      <xsd:element name="callback-listener-class"
+		   type="j2ee:fully-qualified-classType"/>
+      <xsd:element name="post-construct-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="pre-destroy-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="post-activate-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="pre-passivate-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmp-fieldType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmp-fieldType describes a container-managed field. The
+	cmp-fieldType contains an optional description of the field,
+	and the name of the field.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="field-name"
+		   type="j2ee:java-identifierType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The field-name element specifies the name of a
+	    container managed field.
+
+	    The name of the cmp-field of an entity bean with
+	    cmp-version 2.x must begin with a lowercase
+	    letter. This field is accessed by methods whose
+	    names consists of the name of the field specified by
+	    field-name in which the first letter is uppercased,
+	    prefixed by "get" or "set".
+
+	    The name of the cmp-field of an entity bean with
+	    cmp-version 1.x must denote a public field of the
+	    enterprise bean class or one of its superclasses.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmp-versionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmp-versionType specifies the version of an entity bean
+	with container-managed persistence. It is used by
+	cmp-version elements.
+
+	The value must be one of the two following:
+
+	    1.x
+	    2.x
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="1.x"/>
+	<xsd:enumeration value="2.x"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmr-field-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmr-field-type element specifies the class of a
+	collection-valued logical relationship field in the entity
+	bean class. The value of an element using cmr-field-typeType
+	must be either: java.util.Collection or java.util.Set.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="java.util.Collection"/>
+	<xsd:enumeration value="java.util.Set"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmr-fieldType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmr-fieldType describes the bean provider's view of
+	a relationship. It consists of an optional description, and
+	the name and the class type of a field in the source of a
+	role of a relationship. The cmr-field-name element
+	corresponds to the name used for the get and set accessor
+	methods for the relationship. The cmr-field-type element is
+	used only for collection-valued cmr-fields. It specifies the
+	type of the collection that is used.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="cmr-field-name"
+		   type="j2ee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The cmr-field-name element specifies the name of a
+	    logical relationship field in the entity bean
+	    class. The name of the cmr-field must begin with a
+	    lowercase letter. This field is accessed by methods
+	    whose names consist of the name of the field
+	    specified by cmr-field-name in which the first
+	    letter is uppercased, prefixed by "get" or "set".
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmr-field-type"
+		   type="j2ee:cmr-field-typeType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="container-transactionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The container-transactionType specifies how the container
+	must manage transaction scopes for the enterprise bean's
+	method invocations. It defines an optional description, a
+	list of method elements, and a transaction attribute. The
+	transaction attribute is to be applied to all the specified
+	methods.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="method"
+		   type="j2ee:methodType"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="trans-attribute"
+		   type="j2ee:trans-attributeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-classType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	  The ejb-classType contains the fully-qualified name of the
+	  enterprise bean's class. It is used by ejb-class elements.
+
+	  Example:
+
+	      <ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class>
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-jarType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The ejb-jarType defines the root element of the EJB
+	deployment descriptor. It contains
+
+	    - an optional description of the ejb-jar file
+	    - an optional display name
+	    - an optional icon that contains a small and a large
+	      icon file name
+	    - structural information about all included
+	      enterprise beans that is not specified through annotations
+	    - a descriptor for container managed relationships,
+	      if any.
+	    - an optional application-assembly descriptor
+	    - an optional name of an ejb-client-jar file for the
+	      ejb-jar.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="enterprise-beans"
+		   type="j2ee:enterprise-beansType"
+                   minOccurs="0"/>
+      <xsd:element name="relationships"
+		   type="j2ee:relationshipsType"
+		   minOccurs="0">
+	<xsd:unique name="relationship-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-relation-name contains the name of a
+	      relation. The name must be unique within
+	      relationships.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:ejb-relation"/>
+	  <xsd:field    xpath="j2ee:ejb-relation-name"/>
+	</xsd:unique>
+      </xsd:element>
+      <xsd:element name="assembly-descriptor"
+		   type="j2ee:assembly-descriptorType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Providing an assembly-descriptor in the deployment
+	    descriptor is optional for the ejb-jar file
+	    producer.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-client-jar"
+		   type="j2ee:pathType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	      The optional ejb-client-jar element specifies a JAR
+	      file that contains the class files necessary for a
+	      client program to access the
+	      enterprise beans in the ejb-jar file.
+
+	      Example:
+
+		  <ejb-client-jar>employee_service_client.jar
+		  </ejb-client-jar>
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+		   type="j2ee:dewey-versionType"
+		   fixed="3.0"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The version specifies the version of the
+	  EJB specification that the instance document must
+	  comply with. This information enables deployment tools
+	  to validate a particular EJB Deployment
+	  Descriptor with respect to a specific version of the EJB
+	  schema.
+
+	</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="full" type="xsd:boolean">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The full attribute defines whether this deployment
+	  descriptor is complete, or whether the class files
+	  of the jar file should be examined for annotations
+	  that specify deployment information.
+
+	  If full is set to "true", the deployment tool
+	  must ignore any EJB annotations present in the
+	  class files of the application.
+
+	  If full is not specified or is set to "false", the
+	  deployment tool must examine the class files of the
+	  application for annotations, as specified by the EJB
+	  specifications.
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+    </xsd:attribute>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	  The ejb-nameType specifies an enterprise bean's name. It is
+	  used by ejb-name elements. This name is assigned by the
+	  ejb-jar file producer to name the enterprise bean in the
+	  ejb-jar file's deployment descriptor. The name must be
+	  unique among the names of the enterprise beans in the same
+	  ejb-jar file.
+
+	  There is no architected relationship between the used
+	  ejb-name in the deployment descriptor and the JNDI name that
+	  the Deployer will assign to the enterprise bean's home.
+
+	  The name for an entity bean must conform to the lexical
+	  rules for an NMTOKEN.
+
+	  Example:
+
+	  <ejb-name>EmployeeService</ejb-name>
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:xsdNMTOKENType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-relationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The ejb-relationType describes a relationship between two
+	entity beans with container-managed persistence.  It is used
+	by ejb-relation elements. It contains a description; an
+	optional ejb-relation-name element; and exactly two
+	relationship role declarations, defined by the
+	ejb-relationship-role elements. The name of the
+	relationship, if specified, is unique within the ejb-jar
+	file.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relation-name"
+		   type="j2ee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The ejb-relation-name element provides a unique name
+	    within the ejb-jar file for a relationship.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-relationship-role"
+		   type="j2ee:ejb-relationship-roleType"/>
+      <xsd:element name="ejb-relationship-role"
+		   type="j2ee:ejb-relationship-roleType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-relationship-roleType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	  The ejb-relationship-roleType describes a role within a
+	  relationship. There are two roles in each relationship.
+
+	  The ejb-relationship-roleType contains an optional
+	  description; an optional name for the relationship role; a
+	  specification of the multiplicity of the role; an optional
+	  specification of cascade-delete functionality for the role;
+	  the role source; and a declaration of the cmr-field, if any,
+	  by means of which the other side of the relationship is
+	  accessed from the perspective of the role source.
+
+	  The multiplicity and role-source element are mandatory.
+
+	  The relationship-role-source element designates an entity
+	  bean by means of an ejb-name element. For bidirectional
+	  relationships, both roles of a relationship must declare a
+	  relationship-role-source element that specifies a cmr-field
+	  in terms of which the relationship is accessed. The lack of
+	  a cmr-field element in an ejb-relationship-role specifies
+	  that the relationship is unidirectional in navigability and
+	  the entity bean that participates in the relationship is
+	  "not aware" of the relationship.
+
+	  Example:
+
+	  <ejb-relation>
+	      <ejb-relation-name>Product-LineItem</ejb-relation-name>
+	      <ejb-relationship-role>
+		  <ejb-relationship-role-name>product-has-lineitems
+		  </ejb-relationship-role-name>
+		  <multiplicity>One</multiplicity>
+		  <relationship-role-source>
+		  <ejb-name>ProductEJB</ejb-name>
+		  </relationship-role-source>
+	       </ejb-relationship-role>
+	  </ejb-relation>
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relationship-role-name"
+		   type="j2ee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The ejb-relationship-role-name element defines a
+	    name for a role that is unique within an
+	    ejb-relation. Different relationships can use the
+	    same name for a role.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="multiplicity"
+		   type="j2ee:multiplicityType"/>
+      <xsd:element name="cascade-delete"
+		   type="j2ee:emptyType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The cascade-delete element specifies that, within a
+	    particular relationship, the lifetime of one or more
+	    entity beans is dependent upon the lifetime of
+	    another entity bean. The cascade-delete element can
+	    only be specified for an ejb-relationship-role
+	    element contained in an ejb-relation element in
+	    which the other ejb-relationship-role
+	    element specifies a multiplicity of One.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="relationship-role-source"
+		   type="j2ee:relationship-role-sourceType"/>
+      <xsd:element name="cmr-field"
+		   type="j2ee:cmr-fieldType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="enterprise-beansType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The enterprise-beansType declares one or more enterprise
+	beans. Each bean can be a session, entity or message-driven
+	bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:choice maxOccurs="unbounded">
+      <xsd:element name="session"
+		   type="j2ee:session-beanType">
+	<xsd:unique name="session-ejb-local-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of
+	      an EJB reference. The EJB reference is an entry in
+	      the component's environment and is relative to the
+	      java:comp/env context.  The name must be unique within
+	      the component.
+
+	      It is recommended that name be prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:ejb-local-ref"/>
+	  <xsd:field    xpath="j2ee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-ejb-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of an EJB
+	      reference. The EJB reference is an entry in the
+	      component's environment and is relative to the
+	      java:comp/env context. The name must be unique
+	      within the component.
+
+	      It is recommended that name is prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:ejb-ref"/>
+	  <xsd:field    xpath="j2ee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-resource-env-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The resource-env-ref-name element specifies the name
+	      of a resource environment reference; its value is
+	      the environment entry name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:resource-env-ref"/>
+	  <xsd:field    xpath="j2ee:resource-env-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-message-destination-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The message-destination-ref-name element specifies the name
+	      of a message destination reference; its value is
+	      the message destination reference name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:message-destination-ref"/>
+	  <xsd:field    xpath="j2ee:message-destination-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-res-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The res-ref-name element specifies the name of a
+	      resource manager connection factory reference.  The name
+	      is a JNDI name relative to the java:comp/env context.
+	      The name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:resource-ref"/>
+	  <xsd:field    xpath="j2ee:res-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-env-entry-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The env-entry-name element contains the name of a
+	      component's environment entry.  The name is a JNDI
+	      name relative to the java:comp/env context.  The
+	      name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:env-entry"/>
+	  <xsd:field    xpath="j2ee:env-entry-name"/>
+	</xsd:unique>
+      </xsd:element>
+
+      <xsd:element name="entity"
+		   type="j2ee:entity-beanType">
+	<xsd:unique name="entity-ejb-local-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of
+	      an EJB reference. The EJB reference is an entry in
+	      the component's environment and is relative to the
+	      java:comp/env context.  The name must be unique within
+	      the component.
+
+	      It is recommended that name be prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:ejb-local-ref"/>
+	  <xsd:field    xpath="j2ee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-ejb-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of an EJB
+	      reference. The EJB reference is an entry in the
+	      component's environment and is relative to the
+	      java:comp/env context. The name must be unique
+	      within the component.
+
+	      It is recommended that name is prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:ejb-ref"/>
+	  <xsd:field    xpath="j2ee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-resource-env-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The resource-env-ref-name element specifies the name
+	      of a resource environment reference; its value is
+	      the environment entry name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:resource-env-ref"/>
+	  <xsd:field    xpath="j2ee:resource-env-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-message-destination-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The message-destination-ref-name element specifies the name
+	      of a message destination reference; its value is
+	      the message destination reference name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:message-destination-ref"/>
+	  <xsd:field    xpath="j2ee:message-destination-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-res-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The res-ref-name element specifies the name of a
+	      resource manager connection factory reference.  The name
+	      is a JNDI name relative to the java:comp/env context.
+	      The name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:resource-ref"/>
+	  <xsd:field    xpath="j2ee:res-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-env-entry-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The env-entry-name element contains the name of a
+	      component's environment entry.  The name is a JNDI
+	      name relative to the java:comp/env context.  The
+	      name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:env-entry"/>
+	  <xsd:field    xpath="j2ee:env-entry-name"/>
+	</xsd:unique>
+      </xsd:element>
+
+      <xsd:element name="message-driven"
+		   type="j2ee:message-driven-beanType">
+	<xsd:unique name="messaged-ejb-local-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of
+	      an EJB reference. The EJB reference is an entry in
+	      the component's environment and is relative to the
+	      java:comp/env context.  The name must be unique within
+	      the component.
+
+	      It is recommended that name be prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:ejb-local-ref"/>
+	  <xsd:field    xpath="j2ee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-ejb-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of an EJB
+	      reference. The EJB reference is an entry in the
+	      component's environment and is relative to the
+	      java:comp/env context. The name must be unique
+	      within the component.
+
+	      It is recommended that name is prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:ejb-ref"/>
+	  <xsd:field    xpath="j2ee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-resource-env-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The resource-env-ref-name element specifies the name
+	      of a resource environment reference; its value is
+	      the environment entry name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:resource-env-ref"/>
+	  <xsd:field    xpath="j2ee:resource-env-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-message-destination-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The message-destination-ref-name element specifies the name
+	      of a message destination reference; its value is
+	      the message destination reference name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:message-destination-ref"/>
+	  <xsd:field    xpath="j2ee:message-destination-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-res-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The res-ref-name element specifies the name of a
+	      resource manager connection factory reference.  The name
+	      is a JNDI name relative to the java:comp/env context.
+	      The name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:resource-ref"/>
+	  <xsd:field    xpath="j2ee:res-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-env-entry-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The env-entry-name element contains the name of a
+	      component's environment entry.  The name is a JNDI
+	      name relative to the java:comp/env context.  The
+	      name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:env-entry"/>
+	  <xsd:field    xpath="j2ee:env-entry-name"/>
+	</xsd:unique>
+      </xsd:element>
+
+    </xsd:choice>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="entity-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The entity-beanType declares an entity bean. The declaration
+	consists of:
+
+	    - an optional description
+	    - an optional display name
+	    - an optional icon element that contains a small and a large
+	      icon file name
+	    - a unique name assigned to the enterprise bean
+	      in the deployment descriptor
+	    - the names of the entity bean's remote home
+	      and remote interfaces, if any
+	    - the names of the entity bean's local home and local
+	      interfaces, if any
+	    - the entity bean's implementation class
+	    - the optional entity bean's persistence management type. If
+              this element is not specified it is defaulted to Container.
+	    - the entity bean's primary key class name
+	    - an indication of the entity bean's reentrancy
+	    - an optional specification of the
+	      entity bean's cmp-version
+	    - an optional specification of the entity bean's
+	      abstract schema name
+	    - an optional list of container-managed fields
+	    - an optional specification of the primary key
+	      field
+	    - an optional declaration of the bean's environment
+	      entries
+	    - an optional declaration of the bean's EJB
+	      references
+	    - an optional declaration of the bean's local
+	      EJB references
+	    - an optional declaration of the bean's web
+	      service references
+	    - an optional declaration of the security role
+	      references
+	    - an optional declaration of the security identity
+	      to be used for the execution of the bean's methods
+	    - an optional declaration of the bean's
+	      resource manager connection factory references
+	    - an optional declaration of the bean's
+	      resource environment references
+	    - an optional declaration of the bean's message
+	      destination references
+	    - an optional set of query declarations
+	      for finder and select methods for an entity
+	      bean with cmp-version 2.x.
+
+	The optional abstract-schema-name element must be specified
+	for an entity bean with container-managed persistence and
+	cmp-version 2.x.
+
+	The optional primkey-field may be present in the descriptor
+	if the entity's persistence-type is Container.
+
+	The optional cmp-version element may be present in the
+	descriptor if the entity's persistence-type is Container. If
+	the persistence-type is Container and the cmp-version
+	element is not specified, its value defaults to 2.x.
+
+	The optional home and remote elements must be specified if
+	the entity bean cmp-version is 1.x.
+
+	The optional home and remote elements must be specified if
+	the entity bean has a remote home and remote interface.
+
+	The optional local-home and local elements must be specified
+	if the entity bean has a local home and local interface.
+
+	Either both the local-home and the local elements or both
+	the home and the remote elements must be specified.
+
+	The optional query elements must be present if the
+	persistence-type is Container and the cmp-version is 2.x and
+	query methods other than findByPrimaryKey have been defined
+	for the entity bean.
+
+	The other elements that are optional are "optional" in the
+	sense that they are omitted if the lists represented by them
+	are empty.
+
+	At least one cmp-field element must be present in the
+	descriptor if the entity's persistence-type is Container and
+	the cmp-version is 1.x, and none must not be present if the
+	entity's persistence-type is Bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+		   type="j2ee:ejb-nameType"/>
+      <xsd:element name="home"
+		   type="j2ee:homeType"
+		   minOccurs="0"/>
+      <xsd:element name="remote"
+		   type="j2ee:remoteType"
+		   minOccurs="0"/>
+      <xsd:element name="local-home"
+		   type="j2ee:local-homeType"
+		   minOccurs="0"/>
+      <xsd:element name="local"
+		   type="j2ee:localType"
+		   minOccurs="0"/>
+      <xsd:element name="ejb-class"
+		   type="j2ee:ejb-classType"/>
+      <xsd:element name="persistence-type"
+		   type="j2ee:persistence-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="prim-key-class"
+		   type="j2ee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The prim-key-class element contains the
+	    fully-qualified name of an
+	    entity bean's primary key class.
+
+	    If the definition of the primary key class is
+	    deferred to deployment time, the prim-key-class
+	    element should specify java.lang.Object.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="reentrant"
+		   type="j2ee:true-falseType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The reentrant element specifies whether an entity
+	    bean is reentrant or not.
+
+	    The reentrant element must be one of the two
+	    following: true or false
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmp-version"
+		   type="j2ee:cmp-versionType"
+		   minOccurs="0"/>
+      <xsd:element name="abstract-schema-name"
+		   type="j2ee:java-identifierType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The abstract-schema-name element specifies the name
+	    of the abstract schema type of an entity bean with
+	    cmp-version 2.x. It is used in EJB QL queries.
+
+	    For example, the abstract-schema-name for an entity
+	    bean whose local interface is
+	    com.acme.commerce.Order might be Order.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmp-field"
+		   type="j2ee:cmp-fieldType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="primkey-field"
+		   type="j2ee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The primkey-field element is used to specify the
+	    name of the primary key field for an entity with
+	    container-managed persistence.
+
+	    The primkey-field must be one of the fields declared
+	    in the cmp-field element, and the type of the field
+	    must be the same as the primary key type.
+
+	    The primkey-field element is not used if the primary
+	    key maps to multiple container-managed fields
+	    (i.e. the key is a compound key). In this case, the
+	    fields of the primary key class must be public, and
+	    their names must correspond to the field names of
+	    the entity bean class that comprise the key.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:group ref="j2ee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="security-role-ref"
+		   type="j2ee:security-role-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="security-identity"
+		   type="j2ee:security-identityType"
+		   minOccurs="0"/>
+      <xsd:element name="query"
+		   type="j2ee:queryType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="exclude-listType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The exclude-listType specifies one or more methods which
+	the Assembler marks to be uncallable.
+
+	If the method permission relation contains methods that are
+	in the exclude list, the Deployer should consider those
+	methods to be uncallable.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="method"
+		   type="j2ee:methodType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="init-methodType">
+    <xsd:sequence>
+      <xsd:element name="create-method"
+		   type="j2ee:named-methodType"/>
+      <xsd:element name="bean-method"
+		   type="j2ee:named-methodType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="interceptorType">
+    <xsd:sequence>
+      <xsd:element name="interceptor-class"
+		   type="j2ee:fully-qualified-classType"/>
+      <xsd:element name="around-invoke-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-driven-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The message-driven element declares a message-driven
+	bean. The declaration consists of:
+
+	    - an optional description
+	    - an optional display name
+	    - an optional icon element that contains a small and a large
+	      icon file name.
+	    - an optional declaration of the enterprise bean's name
+	    - an optional declaration of the message-driven bean's 
+	      implementation class
+	    - an optional declaration of the bean's messaging
+	      type
+	    - the optional message-driven bean's transaction management
+              type. If it is not defined, it is defaulted to Container.
+	    - an optional declaration of the bean's
+	      message-destination-type
+	    - an optional declaration of the bean's
+	      message-destination-link
+	    - an optional declaration of the message-driven bean's
+	      activation configuration properties
+	    - an optional declaration of the bean's environment
+	      entries
+	    - an optional declaration of the bean's EJB references
+	    - an optional declaration of the bean's local EJB
+	      references
+	    - an optional declaration of the bean's web service
+	      references
+	    - an optional declaration of the security
+	      identity to be used for the execution of the bean's
+	      methods
+	    - an optional declaration of the bean's
+	      resource manager connection factory
+	      references
+	    - an optional declaration of the bean's resource
+	      environment references.
+	    - an optional declaration of the bean's message
+	      destination references
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+		   type="j2ee:ejb-nameType"
+		   minOccurs="0"/>
+      <xsd:element name="ejb-class"
+		   type="j2ee:ejb-classType"
+		   minOccurs="0"/>
+      <xsd:element name="messaging-type"
+		   type="j2ee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The messaging-type element specifies the message
+	    listener interface of the message-driven bean. If
+	    the messaging-type element is not specified, it is
+	    assumed to be javax.jms.MessageListener.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="interceptor"
+                   type="j2ee:interceptorType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="around-invoke-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="callback-listener"
+                   type="j2ee:callback-listenerType"
+                   minOccurs="0"/>
+      <xsd:element name="post-construct-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="pre-destroy-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="post-activate-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="pre-passivate-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="timeout-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="transaction-type"
+		   type="j2ee:transaction-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="message-destination-type"
+		   type="j2ee:message-destination-typeType"
+		   minOccurs="0"/>
+      <xsd:element name="message-destination-link"
+		   type="j2ee:message-destination-linkType"
+		   minOccurs="0"/>
+      <xsd:element name="activation-config"
+		   type="j2ee:activation-configType"
+		   minOccurs="0"/>
+      <xsd:group ref="j2ee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="security-identity"
+		   type="j2ee:security-identityType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-intfType">
+
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The method-intf element allows a method element to
+	differentiate between the methods with the same name and
+	signature that are multiply defined across the home and
+	component interfaces (e.g, in both an enterprise bean's
+	remote and local interfaces or in both an enterprise bean's
+	home and remote interfaces, etc.); the component and web
+	service endpoint interfaces, and so on. The Local applies to
+        both local component interface and local business interface.
+        Similarly, Remote applies to both remote component interface
+        and the remote business interface.
+
+	The method-intf element must be one of the following:
+
+	    Home
+	    Remote
+	    LocalHome
+	    Local
+	    ServiceEndpoint
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="Home"/>
+	<xsd:enumeration value="Remote"/>
+	<xsd:enumeration value="LocalHome"/>
+	<xsd:enumeration value="Local"/>
+	<xsd:enumeration value="ServiceEndpoint"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The method-nameType contains a name of an enterprise
+	bean method or the asterisk (*) character. The asterisk is
+	used when the element denotes all the methods of an
+	enterprise bean's client view interfaces.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-paramsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The method-paramsType defines a list of the
+	fully-qualified Java type names of the method parameters.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="method-param"
+		   type="j2ee:java-typeType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The method-param element contains a primitive
+	    or a fully-qualified Java type name of a method
+	    parameter.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-permissionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The method-permissionType specifies that one or more
+	security roles are allowed to invoke one or more enterprise
+	bean methods. The method-permissionType consists of an
+	optional description, a list of security role names or an
+	indicator to state that the method is unchecked for
+	authorization, and a list of method elements.
+
+	The security roles used in the method-permissionType
+	must be defined in the security-role elements of the
+	deployment descriptor, and the methods must be methods
+	defined in the enterprise bean's business, home, component
+        and/or web service endpoint interfaces.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:choice>
+	<xsd:element name="role-name"
+		     type="j2ee:role-nameType"
+		     maxOccurs="unbounded"/>
+	<xsd:element name="unchecked"
+		     type="j2ee:emptyType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The unchecked element specifies that a method is
+	      not checked for authorization by the container
+	      prior to invocation of the method.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+      </xsd:choice>
+      <xsd:element name="method"
+		   type="j2ee:methodType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	  The methodType is used to denote a method of an enterprise
+	  bean's business, home, component, and/or web service endpoint
+	  interface, or, in the case of a message-driven bean, the
+	  bean's message listener method, or a set of such
+	  methods. The ejb-name element must be the name of one of the
+	  enterprise beans declared in the deployment descriptor; the
+	  optional method-intf element allows to distinguish between a
+	  method with the same signature that is multiply defined
+	  across the business, home, component, and/or web service
+          endpoint nterfaces; the method-name element specifies the
+          method name; and the optional method-params elements identify
+          a single method among multiple methods with an overloaded
+	  method name.
+
+	  There are three possible styles of using methodType element
+	  within a method element:
+
+	  1.
+	  <method>
+	      <ejb-name>EJBNAME</ejb-name>
+	      <method-name>*</method-name>
+	  </method>
+
+	     This style is used to refer to all the methods of the
+	     specified enterprise bean's business, home, component,
+             and/or web service endpoint interfaces.
+
+	  2.
+	  <method>
+	      <ejb-name>EJBNAME</ejb-name>
+	      <method-name>METHOD</method-name>
+	  </method>
+
+	     This style is used to refer to the specified method of
+	     the specified enterprise bean. If there are multiple
+	     methods with the same overloaded name, the element of
+	     this style refers to all the methods with the overloaded
+	     name.
+
+	  3.
+	  <method>
+	      <ejb-name>EJBNAME</ejb-name>
+	      <method-name>METHOD</method-name>
+	      <method-params>
+		  <method-param>PARAM-1</method-param>
+		  <method-param>PARAM-2</method-param>
+		  ...
+		  <method-param>PARAM-n</method-param>
+	      </method-params>
+	  </method>
+
+	     This style is used to refer to a single method within a
+	     set of methods with an overloaded name. PARAM-1 through
+	     PARAM-n are the fully-qualified Java types of the
+	     method's input parameters (if the method has no input
+	     arguments, the method-params element contains no
+	     method-param elements). Arrays are specified by the
+	     array element's type, followed by one or more pair of
+	     square brackets (e.g. int[][]). If there are multiple
+	     methods with the same overloaded name, this style refers
+	     to all of the overloaded methods.
+
+	  Examples:
+
+	  Style 1: The following method element refers to all the
+	  methods of the EmployeeService bean's business, home,
+          component, and/or web service endpoint interfaces:
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-name>*</method-name>
+	  </method>
+
+	  Style 2: The following method element refers to all the
+	  create methods of the EmployeeService bean's home
+	  interface(s).
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-name>create</method-name>
+	  </method>
+
+	  Style 3: The following method element refers to the
+	  create(String firstName, String LastName) method of the
+	  EmployeeService bean's home interface(s).
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-name>create</method-name>
+	      <method-params>
+		  <method-param>java.lang.String</method-param>
+		  <method-param>java.lang.String</method-param>
+	      </method-params>
+	  </method>
+
+	  The following example illustrates a Style 3 element with
+	  more complex parameter types. The method
+	  foobar(char s, int i, int[] iar, mypackage.MyClass mycl,
+	  mypackage.MyClass[][] myclaar) would be specified as:
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-name>foobar</method-name>
+	      <method-params>
+		  <method-param>char</method-param>
+		  <method-param>int</method-param>
+		  <method-param>int[]</method-param>
+		  <method-param>mypackage.MyClass</method-param>
+		  <method-param>mypackage.MyClass[][]</method-param>
+	      </method-params>
+	  </method>
+
+	  The optional method-intf element can be used when it becomes
+	  necessary to differentiate between a method that is multiply
+	  defined across the enterprise bean's business, home, component,
+          and/or web service endpoint interfaces with the same name and
+	  signature. However, if the same method is a method of both the
+          local business interface, and the local component interface,
+          the same attribute applies to the method for both interfaces.
+          Likewise, if the same method is a method of both the remote
+          business interface and the remote component interface, the same
+          attribute applies to the method for both interfaces.
+
+	  For example, the method element
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-intf>Remote</method-intf>
+	      <method-name>create</method-name>
+	      <method-params>
+		  <method-param>java.lang.String</method-param>
+		  <method-param>java.lang.String</method-param>
+	      </method-params>
+	  </method>
+
+	  can be used to differentiate the create(String, String)
+	  method defined in the remote interface from the
+	  create(String, String) method defined in the remote home
+	  interface, which would be defined as
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-intf>Home</method-intf>
+	      <method-name>create</method-name>
+	      <method-params>
+		  <method-param>java.lang.String</method-param>
+		  <method-param>java.lang.String</method-param>
+	      </method-params>
+	  </method>
+
+	  and the create method that is defined in the local home
+	  interface which would be defined as
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-intf>LocalHome</method-intf>
+	      <method-name>create</method-name>
+	      <method-params>
+		  <method-param>java.lang.String</method-param>
+		  <method-param>java.lang.String</method-param>
+	      </method-params>
+	  </method>
+
+	  The method-intf element can be used with all three Styles
+	  of the method element usage. For example, the following
+	  method element example could be used to refer to all the
+	  methods of the EmployeeService bean's remote home interface
+          and the remote business interface.
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-intf>Home</method-intf>
+	      <method-name>*</method-name>
+	  </method>
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="ejb-name"
+		   type="j2ee:ejb-nameType"/>
+      <xsd:element name="method-intf"
+		   type="j2ee:method-intfType"
+		   minOccurs="0">
+      </xsd:element>
+      <xsd:element name="method-name"
+		   type="j2ee:method-nameType"/>
+      <xsd:element name="method-params"
+		   type="j2ee:method-paramsType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="multiplicityType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The multiplicityType describes the multiplicity of the
+	role that participates in a relation.
+
+	The value must be one of the two following:
+
+	    One
+	    Many
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="One"/>
+	<xsd:enumeration value="Many"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="named-methodType">
+    <xsd:sequence>
+      <xsd:element name="method-name"
+		   type="j2ee:string"/>
+      <xsd:element name="method-params"
+		   type="j2ee:method-paramsType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="persistence-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The persistence-typeType specifies an entity bean's persistence
+	management type.
+
+	The persistence-type element must be one of the two following:
+
+	    Bean
+	    Container
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="Bean"/>
+	<xsd:enumeration value="Container"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="query-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	  The query-method specifies the method for a finder or select
+	  query.
+
+	  The method-name element specifies the name of a finder or select
+	  method in the entity bean's implementation class.
+
+	  Each method-param must be defined for a query-method using the
+	  method-params element.
+
+	  It is used by the query-method element.
+
+	  Example:
+
+	  <query>
+	      <description>Method finds large orders</description>
+	      <query-method>
+		  <method-name>findLargeOrders</method-name>
+		  <method-params></method-params>
+	      </query-method>
+	      <ejb-ql>
+		SELECT OBJECT(o) FROM Order o
+		  WHERE o.amount &gt; 1000
+	      </ejb-ql>
+	  </query>
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="method-name"
+		   type="j2ee:method-nameType"/>
+      <xsd:element name="method-params"
+		   type="j2ee:method-paramsType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="queryType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The queryType defines a finder or select
+	query. It contains
+	    - an optional description of the query
+	    - the specification of the finder or select
+	      method it is used by
+		- an optional specification of the result type
+		  mapping, if the query is for a select method
+		  and entity objects are returned.
+		- the EJB QL query string that defines the query.
+
+	Queries that are expressible in EJB QL must use the ejb-ql
+	element to specify the query. If a query is not expressible
+	in EJB QL, the description element should be used to
+	describe the semantics of the query and the ejb-ql element
+	should be empty.
+
+	The result-type-mapping is an optional element. It can only
+	be present if the query-method specifies a select method
+	that returns entity objects.  The default value for the
+	result-type-mapping element is "Local".
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType" minOccurs="0"/>
+      <xsd:element name="query-method"
+		   type="j2ee:query-methodType"/>
+      <xsd:element name="result-type-mapping"
+		   type="j2ee:result-type-mappingType"
+		   minOccurs="0"/>
+      <xsd:element name="ejb-ql"
+		   type="j2ee:xsdStringType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="relationship-role-sourceType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The relationship-role-sourceType designates the source of a
+	role that participates in a relationship. A
+	relationship-role-sourceType is used by
+	relationship-role-source elements to uniquely identify an
+	entity bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-name"
+		   type="j2ee:ejb-nameType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="relationshipsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The relationshipsType describes the relationships in
+	which entity beans with container-managed persistence
+	participate. The relationshipsType contains an optional
+	description; and a list of ejb-relation elements, which
+	specify the container managed relationships.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relation"
+		   type="j2ee:ejb-relationType"
+		   maxOccurs="unbounded">
+
+	<xsd:unique name="role-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-relationship-role-name contains the name of a
+	      relationship role. The name must be unique within
+	      a relationship, but can be reused in different
+	      relationships.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector
+	       xpath=".//j2ee:ejb-relationship-role-name"/>
+	  <xsd:field
+	       xpath="."/>
+	</xsd:unique>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="remove-methodType">
+    <xsd:sequence>
+      <xsd:element name="bean-method"
+		   type="j2ee:named-methodType"/>
+      <xsd:element name="retain-if-exception"
+		   type="j2ee:emptyType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="result-type-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The result-type-mappingType is used in the query element to
+	specify whether an abstract schema type returned by a query
+	for a select method is to be mapped to an EJBLocalObject or
+	EJBObject type.
+
+	The value must be one of the following:
+
+	    Local
+	    Remote
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="Local"/>
+	<xsd:enumeration value="Remote"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="security-identityType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The security-identityType specifies whether the caller's
+	security identity is to be used for the execution of the
+	methods of the enterprise bean or whether a specific run-as
+	identity is to be used. It contains an optional description
+	and a specification of the security identity to be used.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:choice>
+	<xsd:element name="use-caller-identity"
+		     type="j2ee:emptyType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The use-caller-identity element specifies that
+	      the caller's security identity be used as the
+	      security identity for the execution of the
+	      enterprise bean's methods.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+	<xsd:element name="run-as"
+		     type="j2ee:run-asType"/>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="session-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The session-beanType declares an session bean. The
+	declaration consists of:
+
+	    - an optional description
+	    - an optional display name
+	    - an optional icon element that contains a small and a large
+	      icon file name
+	    - an optional declaration of the enterprise bean's name
+            - the names of all the remote or local business interfaces,
+              if any
+	    - the names of the session bean's remote home and
+	      remote interfaces, if any
+	    - the names of the session bean's local home and
+	      local interfaces, if any
+	    - the name of the session bean's web service endpoint
+	      interface, if any
+	    - an optional declaration of the message-driven bean's 
+	      implementation class
+	    - the session bean's state management type
+	    - the optional session bean's transaction management type.
+              If it is not present, it is defaulted to Container.
+	    - an optional declaration of the bean's
+	      environment entries
+	    - an optional declaration of the bean's EJB references
+	    - an optional declaration of the bean's local
+	      EJB references
+	    - an optional declaration of the bean's web
+	      service references
+	    - an optional declaration of the security role
+	      references
+	    - an optional declaration of the security identity
+	      to be used for the execution of the bean's methods
+	    - an optional declaration of the bean's resource
+	      manager connection factory references
+	    - an optional declaration of the bean's resource
+	      environment references.
+	    - an optional declaration of the bean's message
+	      destination references
+
+	The elements that are optional are "optional" in the sense
+	that they are omitted when if lists represented by them are
+	empty.
+
+	Either both the local-home and the local elements or both
+	the home and the remote elements must be specified for the
+	session bean.
+
+	The service-endpoint element may only be specified if the
+	bean is a stateless session bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+		   type="j2ee:ejb-nameType"
+		   minOccurs="0"/>
+      <xsd:element name="home"
+		   type="j2ee:homeType"
+		   minOccurs="0"/>
+      <xsd:element name="remote"
+		   type="j2ee:remoteType"
+		   minOccurs="0"/>
+      <xsd:element name="local-home"
+		   type="j2ee:local-homeType"
+		   minOccurs="0"/>
+      <xsd:element name="local"
+		   type="j2ee:localType"
+		   minOccurs="0"/>
+      <xsd:element name="business-local"
+		   type="j2ee:fully-qualified-classType"
+		   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="business-remote"
+		   type="j2ee:fully-qualified-classType"
+		   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="service-endpoint"
+		   type="j2ee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The service-endpoint element contains the
+	    fully-qualified name of the enterprise bean's web
+	    service endpoint interface. The service-endpoint
+	    element may only be specified for a stateless
+	    session bean. The specified interface must be a
+	    valid JAX-RPC service endpoint interface.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-class"
+		   type="j2ee:ejb-classType"
+		   minOccurs="0"/>
+      <xsd:element name="session-type"
+		   type="j2ee:session-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="interceptor"
+                   type="j2ee:interceptorType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="around-invoke-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="callback-listener"
+                   type="j2ee:callback-listenerType"
+                   minOccurs="0"/>
+      <xsd:element name="post-construct-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="pre-destroy-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="post-activate-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="pre-passivate-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="timeout-method"
+                   type="j2ee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="init-method"
+                   type="j2ee:init-methodType"
+                   minOccurs="0"
+                   maxOccurs="unbounded">
+        <xsd:annotation>
+	  <xsd:documentation>
+
+	    The init-method element specifies the mappings for
+	    EJB 2.x style create methods for an EJB 3.0 bean.
+	    This element can only be specified for stateful
+            session beans.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="remove-method"
+                   type="j2ee:remove-methodType"
+                   minOccurs="0"
+                   maxOccurs="unbounded">
+        <xsd:annotation>
+	  <xsd:documentation>
+
+	    The remove-method element specifies the mappings for
+	    EJB 2.x style remove methods for an EJB 3.0 bean.
+	    This element can only be specified for stateful
+            session beans.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="transaction-type"
+		   type="j2ee:transaction-typeType"
+                   minOccurs="0"/>
+      <xsd:group ref="j2ee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="security-role-ref"
+		   type="j2ee:security-role-refType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+      </xsd:element>
+      <xsd:element name="security-identity"
+		   type="j2ee:security-identityType"
+		   minOccurs="0">
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="session-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The session-typeType describes whether the session bean is a
+	stateful session or stateless session. It is used by
+	session-type elements.
+
+	The value must be one of the two following:
+
+	    Stateful
+	    Stateless
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="Stateful"/>
+	<xsd:enumeration value="Stateless"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="trans-attributeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The trans-attributeType specifies how the container must
+	manage the transaction boundaries when delegating a method
+	invocation to an enterprise bean's business method.
+
+	The value must be one of the following:
+
+	    NotSupported
+	    Supports
+	    Required
+	    RequiresNew
+	    Mandatory
+	    Never
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="NotSupported"/>
+	<xsd:enumeration value="Supports"/>
+	<xsd:enumeration value="Required"/>
+	<xsd:enumeration value="RequiresNew"/>
+	<xsd:enumeration value="Mandatory"/>
+	<xsd:enumeration value="Never"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="transaction-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The transaction-typeType specifies an enterprise bean's
+	transaction management type.
+
+	The transaction-type must be one of the two following:
+
+	    Bean
+	    Container
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="Bean"/>
+	<xsd:enumeration value="Container"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+</xsd:schema>
+
+




More information about the jboss-cvs-commits mailing list