ejb-jar_2_0.dtd
: Elements - Entities - Source | Intro - Index
FRAMES / NO FRAMES
<!-- Copyright 2000-2001 Sun Microsystems, Inc. 901 San Antonio Road, Palo Alto, CA 94303, U.S.A. All rights reserved. This product or document is protected by copyright and distributed under licenses restricting its use, copying, distribution, and decompilation. No part of this product or documentation 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, JavaServer Pages, Java Naming and Directory Interface, JDBC, JDK, JavaMail and Enterprise JavaBeans, are trademarks or registered trademarks of Sun Microsystems, Inc in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc. PostScript is a registered trademark of Adobe Systems, Inc. Federal Acquisitions: Commercial Software - Government Users Subject to Standard License Terms and Conditions. DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. _________________________________________________________________________ Copyright 2000-2001 Sun Microsystems, Inc., 901 San Antonio Road, Palo Alto, CA 94303, Etats-Unis. Tous droits re'serve's. Ce produit ou document est prote'ge' par un copyright et distribue' avec des licences qui en restreignent l'utilisation, la copie, la distribution, et la de'compilation. Aucune partie de ce produit ou de sa documentation associe'e ne peut e^tre reproduite sous aucune forme, par quelque moyen que ce soit, sans l'autorisation pre'alable et e'crite de Sun et de ses bailleurs de licence, s'il y en a. Le logiciel de'tenu par des tiers, et qui comprend la technologie relative aux polices de caracte`res, est prote'ge' par un copyright et licencie' par des fournisseurs de Sun. Sun, Sun Microsystems, le logo Sun, Solaris, Java, JavaServer Pages, Java Naming and Directory Interface, JDBC, JDK, JavaMail, et Enterprise JavaBeans, sont des marques de fabrique ou des marques de'pose'es de Sun Microsystems, Inc. aux Etats-Unis et dans d'autres pays. Toutes les marques SPARC sont utilise'es sous licence et sont des marques de fabrique ou des marques de'pose'es de SPARC International, Inc. aux Etats-Unis et dans d'autres pays. Les produits portant les marques SPARC sont base's sur une architecture de'veloppe'e par Sun Microsystems, Inc. Postcript est une marque enregistre'e d'Adobe Systems Inc. LA DOCUMENTATION EST FOURNIE "EN L'ETAT" ET TOUTES AUTRES CONDITIONS, DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENT EXCLUES, DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS NOTAMMENT TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A L'APTITUDE A UNE UTILISATION PARTICULIERE OU A L'ABSENCE DE CONTREFACON. --> <!-- This is the XML DTD for the EJB 2.0 deployment descriptor. All EJB 2.0 deployment descriptors must include a DOCTYPE of the following form: <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd"> --> <!-- The following conventions apply to all J2EE deployment descriptor elements unless indicated otherwise. - In elements that contain PCDATA, leading and trailing whitespace in the data may be ignored. - In elements whose value is an "enumerated type", the value is case sensitive. - 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. --> <!-- The ejb-jar element is the root element of the EJB deployment descriptor. It contains - an optional description of the ejb-jar file - an optional display name - an optional small icon file name - an optional 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. --> <!ELEMENT ejb-jar (description?, display-name?, small-icon?, large-icon?, enterprise-beans, relationships?, assembly-descriptor?, ejb-client-jar?)> <!-- 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. Used in: entity --> <!ELEMENT abstract-schema-name (#PCDATA)> <!-- The acknowledge-mode element specifies whether JMS AUTO_ACKNOWLEDGE or DUPS_OK_ACKNOWLEDGE message acknowledgment semantics should be used for the onMessage message of a message-driven bean that uses bean managed transaction demarcation. The acknowledge-mode element must be one of the two following: <acknowledge-mode>Auto-acknowledge</acknowledge-mode> <acknowledge-mode>Dups-ok-acknowledge</acknowledgemode> Used in: message-driven --> <!ELEMENT acknowledge-mode (#PCDATA)> <!-- The assembly-descriptor element contains 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. Used in: ejb-jar --> <!ELEMENT assembly-descriptor (security-role*, method-permission*, container-transaction*, exclude-list?)> <!-- 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. Used in: ejb-relationship-role --> <!ELEMENT cascade-delete EMPTY> <!-- The cmp-field element describes a container-managed field. The field element includes an optional description of the field, and the name of the field. Used in: entity --> <!ELEMENT cmp-field (description?, field-name)> <!-- The cmp-version element specifies the version of an entity bean with container-managed persistence. The cmp-version element must be one of the two following: <cmp-version>1.x</cmp-version> <cmp-version>2.x</cmp-version> The default value of the cmp-version element is 2.x. Used in: entity --> <!ELEMENT cmp-version (#PCDATA)> <!-- The cmr-field element 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. Used in: ejb-relationship-role --> <!ELEMENT cmr-field (description?, cmr-field-name, cmr-field-type?)> <!-- 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". Used in: cmr-field --> <!ELEMENT cmr-field-name (#PCDATA)> <!-- The cmr-field-type element specifies the class of a collection-valued logical relationship field in the entity bean class. The value of the cmr-field-type element must be either: java.util.Collection or java.util.Set. Used in: cmr-field --> <!ELEMENT cmr-field-type (#PCDATA)> <!-- The container-transaction element specifies how the container must manage transaction scopes for the enterprise bean's method invocations. The element consists of an optional description, a list of method elements, and a transaction attribute. The transaction attribute is to be applied to all the specified methods. Used in: assembly-descriptor --> <!ELEMENT container-transaction (description?, method+, trans-attribute)> <!-- The description element is used to provide text describing the parent element. The description element should include any information that the enterprise bean ejb-jar file producer wants to provide to the consumer of the enterprise bean ejb-jar file (i.e., to the Deployer). Typically, the tools used by the enterprise bean ejb-jar file consumer will display the description when processing the parent element that contains the description. Used in: cmp-field, cmr-field, container-transaction, ejb-jar, ejb-local-ref, ejb-ref, ejb-relation, ejb-relationship-role, entity, env-entry, exclude-list, message-driven, method, method-permission, query, relationship-role-source, relationships, resource-env-ref, resource-ref, run-as, security-identity, security-role, security-role-ref, session --> <!ELEMENT description (#PCDATA)> <!-- The destination-type element specifies the type of the JMS destination. The type is specified by the Java interface expected to be implemented by the destination. The destination-type element must be one of the two following: <destination-type>javax.jms.Queue</destination-type> <destination-type>javax.jms.Topic</destination-type> Used in: message-driven-destination --> <!ELEMENT destination-type (#PCDATA)> <!-- The display-name element contains a short name that is intended to be displayed by tools. The display name need not be unique. Used in: ejb-jar, entity, message-driven, session Example: <display-name>Employee Self Service</display-name> --> <!ELEMENT display-name (#PCDATA)> <!-- The ejb-class element contains the fully-qualified name of the enterprise bean's class. Used in: entity, message-driven, session Example: <ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class> --> <!ELEMENT ejb-class (#PCDATA)> <!-- 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. Used in: ejb-jar Example: <ejb-client-jar>employee_service_client.jar</ejb-client-jar> --> <!ELEMENT ejb-client-jar (#PCDATA)> <!-- The ejb-link element is used in the ejb-ref or ejb-local-ref elements to specify that an EJB reference is linked to an enterprise bean. The value of the ejb-link element must be the ejb-name of an enterprise bean in the same ejb-jar file or in another ejb-jar file in the same J2EE application unit. Alternatively, the name in the ejb-link element may be composed of a path name specifying the ejb-jar containing the referenced enterprise bean with the ejb-name of the target bean appended and separated from the path name by "#". The path name is relative to the ejb-jar file containing the enterprise bean that is referencing the enterprise bean. This allows multiple enterprise beans with the same ejb-name to be uniquely identified. Used in: ejb-local-ref, ejb-ref Examples: <ejb-link>EmployeeRecord</ejb-link> <ejb-link>../products/product.jar#ProductEJB</ejb-link> --> <!ELEMENT ejb-link (#PCDATA)> <!-- The ejb-local-ref element is used for the declaration of a reference to an enterprise bean's local home. The declaration consists of: - an optional description - the EJB reference name used in the code of the enterprise bean that's referencing the enterprise bean - the expected type of the referenced enterprise bean - the expected local home and local interfaces of the referenced enterprise bean - optional ejb-link information, used to specify the referenced enterprise bean Used in: entity, message-driven, session --> <!ELEMENT ejb-local-ref (description?, ejb-ref-name, ejb-ref-type, local-home, local, ejb-link?)> <!-- The ejb-name element specifies an enterprise bean's name. 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 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 with cmp-version 2.x must conform to the lexical rules for an NMTOKEN. The name for an entity bean with cmp-version 2.x must not be a reserved literal in EJB QL. Used in: entity, message-driven, method, relationship-role-source, session Example: <ejb-name>EmployeeService</ejb-name> --> <!ELEMENT ejb-name (#PCDATA)> <!-- The ejb-ql element contains the EJB QL query string that defines a finder or select query. This element is defined within the scope of a query element whose contents specify the finder or the select method that uses the query. The content must be a valid EJB QL query string for the entity bean for which the query is specified. The ejb-ql element must be specified for all queries that are expressible in EJB QL. Used in: query Example: <query> <query-method> <method-name>ejbSelectPendingLineitems</method-name> <method-params/> </query-method> <ejb-ql>SELECT OBJECT(l) FROM LineItems l WHERE l.shipped <> TRUE </ejb-ql> </query> --> <!ELEMENT ejb-ql (#PCDATA)> <!-- The ejb-ref element is used for the declaration of a reference to an enterprise bean's home. The declaration consists of: - an optional description - the EJB reference name used in the code of the enterprise bean that's referencing the enterprise bean - the expected type of the referenced enterprise bean - the expected home and remote interfaces of the referenced enterprise bean - optional ejb-link information, used to specify the referenced enterprise bean Used in: entity, message-driven, session --> <!ELEMENT ejb-ref (description?, ejb-ref-name, ejb-ref-type, home, remote, ejb-link?)> <!-- The ejb-ref-name element contains the name of an EJB reference. The EJB reference is an entry in the enterprise bean's environment and is relative to the java:comp/env context. The name must be unique within the enterprise bean. It is recommended that name is prefixed with "ejb/". Used in: ejb-local-ref, ejb-ref Example: <ejb-ref-name>ejb/Payroll</ejb-ref-name> --> <!ELEMENT ejb-ref-name (#PCDATA)> <!-- The ejb-ref-type element contains the expected type of the referenced enterprise bean. The ejb-ref-type element must be one of the following: <ejb-ref-type>Entity</ejb-ref-type> <ejb-ref-type>Session</ejb-ref-type> Used in: ejb-local-ref, ejb-ref --> <!ELEMENT ejb-ref-type (#PCDATA)> <!-- The ejb-relation element describes a relationship between two entity beans with container-managed persistence. An ejb-relation element 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. Used in: relationships --> <!ELEMENT ejb-relation (description?, ejb-relation-name?, ejb-relationship-role, ejb-relationship-role)> <!-- The ejb-relation-name element provides a unique name for a relationship. Used in: ejb-relation --> <!ELEMENT ejb-relation-name (#PCDATA)> <!-- The ejb-relationship-role element describes a role within a relationship. There are two roles in each relationship. The ejb-relationship-role element 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. Used in: ejb-relation 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> --> <!ELEMENT ejb-relationship-role (description?, ejb-relationship-role-name?, multiplicity, cascade-delete?, relationship-role-source, cmr-field?)> <!-- 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. Used in: ejb-relationship-role --> <!ELEMENT ejb-relationship-role-name (#PCDATA)> <!-- The enterprise-beans element contains the declarations of one or more enterprise beans. --> <!ELEMENT enterprise-beans (session | entity | message-driven)+> <!-- The entity element declares an entity bean. The declaration consists of: - an optional description - an optional display name - an optional small icon file name - an optional 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 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 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. Used in: enterprise-beans --> <!ELEMENT entity (description?, display-name?, small-icon?, large-icon?, ejb-name, home?, remote?, local-home?, local?, ejb-class, persistence-type, prim-key-class, reentrant, cmp-version?, abstract-schema-name?, cmp-field*, primkey-field?, env-entry*, ejb-ref*, ejb-local-ref*, security-role-ref*, security-identity?, resource-ref*, resource-env-ref*, query*)> <!-- The env-entry element contains the declaration of an enterprise bean's environment entry. The declaration consists of an optional description, the name of the environment entry, and an optional value. If a value is not specified, one must be supplied during deployment. Used in: entity, message-driven, session --> <!ELEMENT env-entry (description?, env-entry-name, env-entry-type, env-entry-value?)> <!-- The env-entry-name element contains the name of an enterprise bean's environment entry. The name is a JNDI name relative to the java:comp/env context. The name must be unique within an enterprise bean. Used in: env-entry Example: <env-entry-name>minAmount</env-entry-name> --> <!ELEMENT env-entry-name (#PCDATA)> <!-- The env-entry-type element contains the fully-qualified Java type of the environment entry value that is expected by the enterprise bean's code. The following are the legal values of env-entry-type: java.lang.Boolean java.lang.Byte java.lang.Character java.lang.String java.lang.Short java.lang.Integer java.lang.Long java.lang.Float java.lang.Double Used in: env-entry Example: <env-entry-type>java.lang.Boolean</env-entry-type> --> <!ELEMENT env-entry-type (#PCDATA)> <!-- The env-entry-value element contains the value of an enterprise bean's environment entry. The value must be a String that is valid for the constructor of the specified type that takes a single String parameter, or for java.lang.Character, a single character. Used in: env-entry Example: <env-entry-value>100.00</env-entry-value> --> <!ELEMENT env-entry-value (#PCDATA)> <!-- The exclude list element 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. Used in: assembly-descriptor --> <!ELEMENT exclude-list (description?, method+)> <!-- 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. Used in: cmp-field Example: <field-name>firstName</field-Name> --> <!ELEMENT field-name (#PCDATA)> <!-- The home element contains the fully-qualified name of the enterprise bean's home interface. Used in: ejb-ref, entity, session Example: <home>com.aardvark.payroll.PayrollHome</home> --> <!ELEMENT home (#PCDATA)> <!-- The large-icon element contains the name of a file containing a large (32 x 32) icon image. The file name is a relative path within the enterprise bean's ejb-jar file. The image may be either in the JPEG or GIF format. The icon can be used by tools. Used in: ejb-jar, entity, message-driven, session Example: <large-icon>employee-service-icon32x32.jpg</large-icon> --> <!ELEMENT large-icon (#PCDATA)> <!-- The local element contains the fully-qualified name of the enterprise bean's local interface. Used in: ejb-local-ref, entity, session --> <!ELEMENT local (#PCDATA)> <!-- The local-home element contains the fully-qualified name of the enterprise bean's local home interface. Used in: ejb-local-ref, entity, session --> <!ELEMENT local-home (#PCDATA)> <!-- The message-driven element declares a message-driven bean. The declaration consists of: - an optional description - an optional display name - an optional small icon file name - an optional large icon file name - a name assigned to the enterprise bean in the deployment descriptor - the message-driven bean's implementation class - the message-driven bean's transaction management type - an optional declaration of the message-driven bean's message selector - an optional declaration of the acknowledgment mode for the message-driven bean if bean-managed transaction demarcation is used - an optional declaration of the intended destination type of the message-driven bean - 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 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. Used in: enterprise-beans --> <!ELEMENT message-driven (description?, display-name?, small-icon?, large-icon?, ejb-name, ejb-class, transaction-type, message-selector?, acknowledge-mode?, message-driven-destination?, env-entry*, ejb-ref*, ejb-local-ref*, security-identity?, resource-ref*, resource-env-ref*)> <!-- The message-driven-destination element provides advice to the Deployer as to whether a message-driven bean is intended for a Queue or a Topic. The declaration consists of: the type of the message-driven bean's intended destination and an optional declaration of whether a durable or non-durable subscription should be used if the destination-type is javax.jms.Topic. Used in: message-driven --> <!ELEMENT message-driven-destination (destination-type, subscription-durability?)> <!-- The message-selector element is used to specify the JMS message selector to be used in determining which messages a message-driven bean is to receive. Example: <message-selector>JMSType = `car' AND color = `blue' AND weight > 2500 </message-selector> Used in: message-driven --> <!ELEMENT message-selector (#PCDATA)> <!-- The method element is used to denote a method of an enterprise bean's home or component interface, or, in the case of a message-driven bean, the bean's onMessage method, or a set of 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 in both the home and component 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 the method element syntax: 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 and component 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. Used in: container-transaction, exclude-list, method-permission Examples: Style 1: The following method element refers to all the methods of the EmployeeService bean's home and component 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 and component 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 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. <method> <ejb-name>EmployeeService</ejb-name> <method-intf>Home</method-intf> <method-name>*</method-name> </method> --> <!ELEMENT method (description?, ejb-name, method-intf?, method-name, method-params?)> <!-- 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 component and home interfaces (e.g, in both an enterprise bean's remote and local interfaces; in both an enterprise bean's home and remote interfaces, etc.) The method-intf element must be one of the following: <method-intf>Home</method-intf> <method-intf>Remote</method-intf> <method-intf>LocalHome</method-intf> <method-intf>Local</method-intf> Used in: method --> <!ELEMENT method-intf (#PCDATA)> <!-- The method-name element 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 component and home interfaces. Used in: method, query-method --> <!ELEMENT method-name (#PCDATA)> <!-- The method-param element contains the fully-qualified Java type name of a method parameter. Used in: method-params --> <!ELEMENT method-param (#PCDATA)> <!-- The method-params element contains a list of the fully-qualified Java type names of the method parameters. Used in: method, query-method --> <!ELEMENT method-params (method-param*)> <!-- The method-permission element specifies that one or more security roles are allowed to invoke one or more enterprise bean methods. The method-permission element 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-permission element must be defined in the security-role elements of the deployment descriptor, and the methods must be methods defined in the enterprise bean's component and/or home interfaces. Used in: assembly-descriptor --> <!ELEMENT method-permission (description?, (role-name+|unchecked), method+)> <!-- The multiplicity element describes the multiplicity of the role that participates in a relation. The multiplicity element must be one of the two following: <multiplicity>One</multiplicity> <multiplicity>Many</multiplicity> Used in: ejb-relationship-role --> <!ELEMENT multiplicity (#PCDATA)> <!-- The persistence-type element specifies an entity bean's persistence management type. The persistence-type element must be one of the two following: <persistence-type>Bean</persistence-type> <persistence-type>Container</persistence-type> Used in: entity --> <!ELEMENT persistence-type (#PCDATA)> <!-- 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. Used in: entity Examples: <prim-key-class>java.lang.String</prim-key-class> <prim-key-class>com.wombat.empl.EmployeeID</prim-key-class> <prim-key-class>java.lang.Object</prim-key-class> --> <!ELEMENT prim-key-class (#PCDATA)> <!-- 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. Used in: entity Example: <primkey-field>EmployeeId</primkey-field> --> <!ELEMENT primkey-field (#PCDATA)> <!-- The query element is used to specify 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". Used in: entity --> <!ELEMENT query (description?, query-method, result-type-mapping?, ejb-ql)> <!-- The query-method element is used to specify 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. Used in: query 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 > 1000</ejb-ql> </query> --> <!ELEMENT query-method (method-name, method-params)> <!-- The reentrant element specifies whether an entity bean is reentrant or not. The reentrant element must be one of the two following: <reentrant>True</reentrant> <reentrant>False</reentrant> Used in: entity --> <!ELEMENT reentrant (#PCDATA)> <!-- The relationship-role-source element designates the source of a role that participates in a relationship. A relationship-role-source element uniquely identifies an entity bean. Used in: ejb-relationship-role --> <!ELEMENT relationship-role-source (description?, ejb-name)> <!-- The relationships element describes the relationships in which entity beans with container-managed persistence participate. The relationships element contains an optional description; and a list of ejb-relation elements, which specify the container managed relationships. Used in: ejb-jar --> <!ELEMENT relationships (description?, ejb-relation+)> <!-- The remote element contains the fully-qualified name of the enterprise bean's remote interface. Used in: ejb-ref, entity, session Example: <remote>com.wombat.empl.EmployeeService</remote> --> <!ELEMENT remote (#PCDATA)> <!-- The res-auth element specifies whether the enterprise bean code signs on programmatically to the resource manager, or whether the Container will sign on to the resource manager on behalf of the enterprise bean. In the latter case, the Container uses information that is supplied by the Deployer. The value of this element must be one of the two following: <res-auth>Application</res-auth> <res-auth>Container</res-auth> Used in: resource-ref --> <!ELEMENT res-auth (#PCDATA)> <!-- 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 enterprise bean. Used in: resource-ref --> <!ELEMENT res-ref-name (#PCDATA)> <!-- The res-sharing-scope element specifies whether connections obtained through the given resource manager connection factory reference can be shared. The value of this element, if specified, must be one of the two following: <res-sharing-scope>Shareable</res-sharing-scope> <res-sharing-scope>Unshareable</res-sharing-scope> The default value is Shareable. Used in: resource-ref --> <!ELEMENT res-sharing-scope (#PCDATA)> <!-- The res-type element specifies the type of the data source. The type is specified by the fully qualified Java language class or interface expected to be implemented by the data source. Used in: resource-ref --> <!ELEMENT res-type (#PCDATA)> <!-- The resource-env-ref element contains a declaration of an enterprise bean's reference to an administered object associated with a resource in the enterprise bean's environment. It consists of an optional description, the resource environment reference name, and an indication of the resource environment reference type expected by the enterprise bean code. Used in: entity, message-driven, session Example: <resource-env-ref> <resource-env-ref-name>jms/StockQueue</resource-env-ref-name> <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type> </resource-env-ref> --> <!ELEMENT resource-env-ref (description?, resource-env-ref-name, resource-env-ref-type)> <!-- The resource-env-ref-name element specifies the name of a resource environment reference; its value is the environment entry name used in the enterprise bean code. The name is a JNDI name relative to the java:comp/env context and must be unique within an enterprise bean. Used in: resource-env-ref --> <!ELEMENT resource-env-ref-name (#PCDATA)> <!-- The resource-env-ref-type element specifies the type of a resource environment reference. It is the fully qualified name of a Java language class or interface. Used in: resource-env-ref --> <!ELEMENT resource-env-ref-type (#PCDATA)> <!-- The resource-ref element contains a declaration of an enterprise bean's reference to an external resource. It consists of an optional description, the resource manager connection factory reference name, the indication of the resource manager connection factory type expected by the enterprise bean code, the type of authentication (Application or Container), and an optional specification of the shareability of connections obtained from the resource (Shareable or Unshareable). Used in: entity, message-driven, session Example: <resource-ref> <res-ref-name>jdbc/EmployeeAppDB</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref> --> <!ELEMENT resource-ref (description?, res-ref-name, res-type, res-auth, res-sharing-scope?)> <!-- The result-type-mapping element 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 result-type-mapping element must be one of the following: <result-type-mapping>Local</result-type-mapping> <result-type-mapping>Remote</result-type-mapping> Used in: query --> <!ELEMENT result-type-mapping (#PCDATA)> <!-- The role-link element is a reference to a defined security role. The role-link element must contain the name of one of the security roles defined in the security-role elements. Used in: security-role-ref --> <!ELEMENT role-link (#PCDATA)> <!-- The role-name element contains the name of a security role. The name must conform to the lexical rules for an NMTOKEN. Used in: method-permission, run-as, security-role, security-role-ref --> <!ELEMENT role-name (#PCDATA)> <!-- The run-as element specifies the run-as identity to be used for the execution of the enterprise bean. It contains an optional description, and the name of a security role. Used in: security-identity --> <!ELEMENT run-as (description?, role-name)> <!-- The security-identity element 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. Used in: entity, message-driven, session --> <!ELEMENT security-identity (description?, (use-caller-identity|run-as))> <!-- The security-role element contains the definition of a security role. The definition consists of an optional description of the security role, and the security role name. Used in: assembly-descriptor Example: <security-role> <description> This role includes all employees who are authorized to access the employee service application. </description> <role-name>employee</role-name> </security-role> --> <!ELEMENT security-role (description?, role-name)> <!-- The security-role-ref element contains the declaration of a security role reference in the enterprise bean's code. The declaration consists of an optional description, the security role name used in the code, and an optional link to a security role. If the security role is not specified, the Deployer must choose an appropriate security role. The value of the role-name element must be the String used as the parameter to the EJBContext.isCallerInRole(String roleName) method or the HttpServletRequest.isUserInRole(String role) method. Used in: entity, session --> <!ELEMENT security-role-ref (description?, role-name, role-link?)> <!-- The session element declares an session bean. The declaration consists of: - an optional description - an optional display name - an optional small icon file name - an optional 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 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 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. 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. Used in: enterprise-beans --> <!ELEMENT session (description?, display-name?, small-icon?, large-icon?, ejb-name, home?, remote?, local-home?, local?, ejb-class, session-type, transaction-type, env-entry*, ejb-ref*, ejb-local-ref*, security-role-ref*, security-identity?, resource-ref*, resource-env-ref*)> <!-- The session-type element describes whether the session bean is a stateful session or stateless session. The session-type element must be one of the two following: <session-type>Stateful</session-type> <session-type>Stateless</session-type> --> <!ELEMENT session-type (#PCDATA)> <!-- The small-icon element contains the name of a file containing a small (16 x 16) icon image. The file name is a relative path within the enterprise bean's ejb-jar file. The image may be either in the JPEG or GIF format. The icon can be used by tools. Used in: ejb-jar, entity, message-driven, session Example: <small-icon>employee-service-icon16x16.jpg</small-icon> --> <!ELEMENT small-icon (#PCDATA)> <!-- The subscription-durability element specifies whether a JMS topic subscription is intended to be durable or nondurable. The subscription-durability element must be one of the two following: <subscription-durability>Durable</subscription-durability> <subscription-durability>NonDurable</subscription-durability> Used in: message-driven-destination --> <!ELEMENT subscription-durability (#PCDATA)> <!-- The trans-attribute element specifies how the container must manage the transaction boundaries when delegating a method invocation to an enterprise bean's business method. The value of trans-attribute must be one of the following: <trans-attribute>NotSupported</trans-attribute> <trans-attribute>Supports</trans-attribute> <trans-attribute>Required</trans-attribute> <trans-attribute>RequiresNew</trans-attribute> <trans-attribute>Mandatory</trans-attribute> <trans-attribute>Never</trans-attribute> Used in: container-transaction --> <!ELEMENT trans-attribute (#PCDATA)> <!-- The transaction-type element specifies an enterprise bean's transaction management type. The transaction-type element must be one of the two following: <transaction-type>Bean</transaction-type> <transaction-type>Container</transaction-type> Used in: message-driven, session --> <!ELEMENT transaction-type (#PCDATA)> <!-- The unchecked element specifies that a method is not checked for authorization by the container prior to invocation of the method. Used in: method-permission --> <!ELEMENT unchecked EMPTY> <!-- 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. Used in: security-identity --> <!ELEMENT use-caller-identity EMPTY> <!-- The ID mechanism is to allow tools that produce additional deployment information (i.e., information beyond the standard deployment descriptor information) to store the non-standard information in a separate file, and easily refer from these tool-specific files to the information in the standard deployment descriptor. Tools are not allowed to add the non-standard information into the standard deployment descriptor. --> <!ATTLIST abstract-schema-name id ID #IMPLIED> <!ATTLIST acknowledge-mode id ID #IMPLIED> <!ATTLIST assembly-descriptor id ID #IMPLIED> <!ATTLIST cascade-delete id ID #IMPLIED> <!ATTLIST cmp-field id ID #IMPLIED> <!ATTLIST cmp-version id ID #IMPLIED> <!ATTLIST cmr-field id ID #IMPLIED> <!ATTLIST cmr-field-name id ID #IMPLIED> <!ATTLIST cmr-field-type id ID #IMPLIED> <!ATTLIST container-transaction id ID #IMPLIED> <!ATTLIST description id ID #IMPLIED> <!ATTLIST destination-type id ID #IMPLIED> <!ATTLIST display-name id ID #IMPLIED> <!ATTLIST ejb-class id ID #IMPLIED> <!ATTLIST ejb-client-jar id ID #IMPLIED> <!ATTLIST ejb-jar id ID #IMPLIED> <!ATTLIST ejb-link id ID #IMPLIED> <!ATTLIST ejb-local-ref id ID #IMPLIED> <!ATTLIST ejb-name id ID #IMPLIED> <!ATTLIST ejb-ql id ID #IMPLIED> <!ATTLIST ejb-ref id ID #IMPLIED> <!ATTLIST ejb-ref-name id ID #IMPLIED> <!ATTLIST ejb-ref-type id ID #IMPLIED> <!ATTLIST ejb-relation id ID #IMPLIED> <!ATTLIST ejb-relation-name id ID #IMPLIED> <!ATTLIST ejb-relationship-role id ID #IMPLIED> <!ATTLIST ejb-relationship-role-name id ID #IMPLIED> <!ATTLIST enterprise-beans id ID #IMPLIED> <!ATTLIST entity id ID #IMPLIED> <!ATTLIST env-entry id ID #IMPLIED> <!ATTLIST env-entry-name id ID #IMPLIED> <!ATTLIST env-entry-type id ID #IMPLIED> <!ATTLIST env-entry-value id ID #IMPLIED> <!ATTLIST exclude-list id ID #IMPLIED> <!ATTLIST field-name id ID #IMPLIED> <!ATTLIST home id ID #IMPLIED> <!ATTLIST large-icon id ID #IMPLIED> <!ATTLIST local id ID #IMPLIED> <!ATTLIST local-home id ID #IMPLIED> <!ATTLIST message-driven id ID #IMPLIED> <!ATTLIST message-driven-destination id ID #IMPLIED> <!ATTLIST message-selector id ID #IMPLIED> <!ATTLIST method id ID #IMPLIED> <!ATTLIST method-intf id ID #IMPLIED> <!ATTLIST method-name id ID #IMPLIED> <!ATTLIST method-param id ID #IMPLIED> <!ATTLIST method-params id ID #IMPLIED> <!ATTLIST method-permission id ID #IMPLIED> <!ATTLIST multiplicity id ID #IMPLIED> <!ATTLIST persistence-type id ID #IMPLIED> <!ATTLIST prim-key-class id ID #IMPLIED> <!ATTLIST primkey-field id ID #IMPLIED> <!ATTLIST query id ID #IMPLIED> <!ATTLIST query-method id ID #IMPLIED> <!ATTLIST reentrant id ID #IMPLIED> <!ATTLIST relationship-role-source id ID #IMPLIED> <!ATTLIST relationships id ID #IMPLIED> <!ATTLIST remote id ID #IMPLIED> <!ATTLIST res-auth id ID #IMPLIED> <!ATTLIST res-ref-name id ID #IMPLIED> <!ATTLIST res-sharing-scope id ID #IMPLIED> <!ATTLIST res-type id ID #IMPLIED> <!ATTLIST resource-env-ref id ID #IMPLIED> <!ATTLIST resource-env-ref-name id ID #IMPLIED> <!ATTLIST resource-env-ref-type id ID #IMPLIED> <!ATTLIST resource-ref id ID #IMPLIED> <!ATTLIST result-type-mapping id ID #IMPLIED> <!ATTLIST role-link id ID #IMPLIED> <!ATTLIST role-name id ID #IMPLIED> <!ATTLIST run-as id ID #IMPLIED> <!ATTLIST security-identity id ID #IMPLIED> <!ATTLIST security-role id ID #IMPLIED> <!ATTLIST security-role-ref id ID #IMPLIED> <!ATTLIST session id ID #IMPLIED> <!ATTLIST session-type id ID #IMPLIED> <!ATTLIST small-icon id ID #IMPLIED> <!ATTLIST subscription-durability id ID #IMPLIED> <!ATTLIST trans-attribute id ID #IMPLIED> <!ATTLIST transaction-type id ID #IMPLIED> <!ATTLIST unchecked id ID #IMPLIED> <!ATTLIST use-caller-identity id ID #IMPLIED>