<?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="2.1">
<xsd:annotation>
<xsd:documentation>
@(#)ejb-jar_2_1.xsds	1.10 07/24/02
</xsd:documentation>
</xsd:annotation>

<xsd:annotation>
<xsd:documentation>

Copyright 2002 Sun Microsystems, Inc., 901 San Antonio
Road, Palo Alto, California 94303, 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>

This is the XML Schema for the EJB 2.1 deployment
descriptor.  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_2_1.xsd"
     version="2.1">
    ...
    </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_2_1.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>

<include schemaLocation="j2ee_1_4.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:enterprise-beans/*/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="xsd:string">
        <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="xsd:string">
        <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: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:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0" maxOccurs="unbounded"/>
    </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 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="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>

</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:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
</xsd:complexType>

<!-- **************************************************** -->

<xsd:simpleType 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:restriction base="j2ee:string">
        <xsd:enumeration value="1.x"/>
        <xsd:enumeration value="2.x"/>
    </xsd:restriction>

</xsd:simpleType>

<!-- **************************************************** -->

<xsd:simpleType 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:restriction base="j2ee:string">
        <xsd:enumeration value="java.util.Collection"/>
        <xsd:enumeration value="java.util.Set"/>
    </xsd:restriction>

</xsd:simpleType>

<!-- **************************************************** -->

<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:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>

</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:complexType>

<!-- **************************************************** -->

<xsd:simpleType 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:restriction base="j2ee:fully-qualified-classType"/>

</xsd:simpleType>

<!-- **************************************************** -->

<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
    - mandatory structural information about all included
      enterprise beans
    - 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:element name="description"
                     type="j2ee:descriptionType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="display-name"
                     type="j2ee:display-nameType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="icon"
                     type="j2ee:iconType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="enterprise-beans"
                     type="j2ee:enterprise-beansType"/>
        <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:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0" maxOccurs="unbounded"/>

    </xsd:sequence>
    <xsd:attribute name="version"
                   type="j2ee:dewey-versionType"
                   fixed="2.1"
                   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:complexType>

<!-- **************************************************** -->

<xsd:simpleType 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:restriction base="xsd:NMTOKEN">
        <xsd:whiteSpace value="collapse"/>
    </xsd:restriction>

</xsd:simpleType>

<!-- **************************************************** -->

<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:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>

</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:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>

</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: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 entity bean's persistence management type
    - 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.
    - an optional set of deployment-extension
      declarations.

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:element name="description"
                     type="j2ee:descriptionType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="display-name"
                     type="j2ee:display-nameType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="icon"
                     type="j2ee:iconType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <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"/>
        <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:element name="env-entry"
                     type="j2ee:env-entryType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="ejb-ref"
                     type="j2ee:ejb-refType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="ejb-local-ref"
                     type="j2ee:ejb-local-refType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="service-ref"
                     type="j2ee:service-refType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <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="resource-ref"
                     type="j2ee:resource-refType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="resource-env-ref"
                     type="j2ee:resource-env-refType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="message-destination-ref"
                     type="j2ee:message-destination-refType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="query"
                     type="j2ee:queryType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>

</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:complexType>

<!-- **************************************************** -->

<xsd:simpleType 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.

</xsd:documentation>
</xsd:annotation>

    <xsd:restriction base="j2ee:string">
        <xsd:pattern value="[^\p{Z}]*"/>
    </xsd:restriction>
</xsd:simpleType>

<!-- **************************************************** -->

<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
    - the message-driven bean's implementation class
    - an optional declaration of the bean's messaging
      type
    - the message-driven bean's transaction management type
    - 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
    - an optional declaration of deployment extensions

</xsd:documentation>
</xsd:annotation>

    <xsd:sequence>
        <xsd:element name="description"
                     type="j2ee:descriptionType"
                     minOccurs="0"/>
        <xsd:element name="display-name"
                     type="j2ee:display-nameType"
                     minOccurs="0"/>
        <xsd:element name="icon"
                     type="j2ee:iconType"
                     minOccurs="0"/>
        <xsd:element name="ejb-name"
                     type="j2ee:ejb-nameType"/>
        <xsd:element name="ejb-class"
                     type="j2ee:ejb-classType"/>
        <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="transaction-type"
                     type="j2ee:transaction-typeType"/>
        <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:element name="env-entry"
                     type="j2ee:env-entryType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="ejb-ref"
                     type="j2ee:ejb-refType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="ejb-local-ref"
                     type="j2ee:ejb-local-refType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="service-ref"
                     type="j2ee:service-refType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="security-identity"
                     type="j2ee:security-identityType"
                     minOccurs="0"/>
        <xsd:element name="resource-ref"
                     type="j2ee:resource-refType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="resource-env-ref"
                     type="j2ee:resource-env-refType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="message-destination-ref"
                     type="j2ee:message-destination-refType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>

</xsd:complexType>

<!-- **************************************************** -->

<xsd:simpleType 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 method-intf element must be one of the following:

    Home
    Remote
    LocalHome
    Local
    ServiceEndpoint

</xsd:documentation>
</xsd:annotation>

  <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:simpleType>

<!-- **************************************************** -->

<xsd:simpleType 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:restriction base="j2ee:string"/>

</xsd:simpleType>

<!-- **************************************************** -->

<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: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 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:complexType>

<!-- **************************************************** -->

<xsd:complexType name="methodType">
<xsd:annotation>
<xsd:documentation>

The methodType is used to denote a method of an enterprise
bean's 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 home, component, and/or web service endpoint
interfaces; 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 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 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 home, component, and/or
web service endpoint interfaces with the same name and
signature.

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 th ree 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.

<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:complexType>

<!-- **************************************************** -->

<xsd:simpleType 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:restriction base="j2ee:string">
        <xsd:enumeration value="One"/>
        <xsd:enumeration value="Many"/>
    </xsd:restriction>

</xsd:simpleType>

<!-- **************************************************** -->

<xsd:simpleType 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:restriction base="j2ee:string">
        <xsd:enumeration value="Bean"/>
        <xsd:enumeration value="Container"/>
    </xsd:restriction>

</xsd:simpleType>

<!-- **************************************************** -->

<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:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>

</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.
    - an optional declaration of deployment extensions

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="xsd:string"/>
        <xsd:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>

</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: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:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>

</xsd:complexType>

<!-- **************************************************** -->

<xsd:simpleType 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:restriction base="j2ee:string">
        <xsd:enumeration value="Local"/>
        <xsd:enumeration value="Remote"/>
    </xsd:restriction>

</xsd:simpleType>

<!-- **************************************************** -->

<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:complexType>

<!-- **************************************************** -->

<xsd:complexType name="service-refType">
<xsd:annotation>
<xsd:documentation>

THIS IS A PLACEHOLDER TYPE which will
be REPLACED. It will be defined based on
definition to be supplied by JSR109.

</xsd:documentation>
</xsd:annotation>

    <xsd:simpleContent>
        <xsd:extension base="xsd:string">
        </xsd:extension>
    </xsd:simpleContent>
</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
    - 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
    - the session bean's transaction management type
    - 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 declaration deployment extensions

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:element name="description"
                     type="j2ee:descriptionType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="display-name"
                     type="j2ee:display-nameType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="icon"
                     type="j2ee:iconType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <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="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"/>
        <xsd:element name="session-type"
                     type="j2ee:session-typeType"/>
        <xsd:element name="transaction-type"
                     type="j2ee:transaction-typeType"/>
        <xsd:element name="env-entry"
                     type="j2ee:env-entryType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="ejb-ref"
                     type="j2ee:ejb-refType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="ejb-local-ref"
                     type="j2ee:ejb-local-refType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="service-ref"
                     type="j2ee:service-refType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <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="resource-ref"
                     type="j2ee:resource-refType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="resource-env-ref"
                     type="j2ee:resource-env-refType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="message-destination-ref"
                     type="j2ee:message-destination-refType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
        <xsd:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>

</xsd:complexType>

<!-- **************************************************** -->

<xsd:simpleType 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:restriction base="j2ee:string">
        <xsd:enumeration value="Stateful"/>
        <xsd:enumeration value="Stateless"/>
    </xsd:restriction>

</xsd:simpleType>

<!-- **************************************************** -->

<xsd:simpleType 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: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:simpleType>

<!-- **************************************************** -->

<xsd:simpleType 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:restriction base="j2ee:string">
        <xsd:enumeration value="Bean"/>
        <xsd:enumeration value="Container"/>
    </xsd:restriction>

</xsd:simpleType>

</xsd:schema>

