You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ja...@apache.org on 2006/04/09 23:14:01 UTC

svn commit: r392836 [2/6] - in /geronimo/sandbox/servlet-2.5: etc/ modules/j2ee-schema/ modules/j2ee-schema/src/catalog/ modules/j2ee-schema/src/conf/ modules/j2ee-schema/src/javaee_5schema/ modules/j2ee/src/java/org/apache/geronimo/j2ee/j2eeobjectname...

Added: geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/ejb-jar_3_0.xsd
URL: http://svn.apache.org/viewcvs/geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/ejb-jar_3_0.xsd?rev=392836&view=auto
==============================================================================
--- geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/ejb-jar_3_0.xsd (added)
+++ geronimo/sandbox/servlet-2.5/modules/j2ee-schema/src/javaee_5schema/ejb-jar_3_0.xsd Sun Apr  9 14:13:57 2006
@@ -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.50 02/07/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.
+
+      </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 around-invoke 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="1"/>
+    </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>
+

[... 60 lines stripped ...]