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

cvs commit: incubator-geronimo/modules/core/src/schema geronimo-ejb-jar.xsd

jboynes     2003/09/05 17:01:14

  Modified:    modules/core/src/schema geronimo-ejb-jar.xsd
  Log:
  Change to use extension mechanism defined in geronimo-j2ee.xsd
  
  Revision  Changes    Path
  1.4       +422 -129  incubator-geronimo/modules/core/src/schema/geronimo-ejb-jar.xsd
  
  Index: geronimo-ejb-jar.xsd
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/core/src/schema/geronimo-ejb-jar.xsd,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- geronimo-ejb-jar.xsd	5 Sep 2003 20:18:04 -0000	1.3
  +++ geronimo-ejb-jar.xsd	6 Sep 2003 00:01:14 -0000	1.4
  @@ -1,131 +1,424 @@
   <?xml version="1.0" encoding="UTF-8"?>
  -
  -<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
  -    targetNamespace="http://geronimo.apache.org/xml/schema/j2ee"
  -    xmlns:ger="http://geronimo.apache.org/xml/schema/j2ee"
  -    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  -    elementFormDefault="qualified"
  -    attributeFormDefault="unqualified">
  -    <!--
  -        The top-level element is ejb-jar.
  -        Elements and named types are ordered alphabetically.
  -    -->
  -
  -    <xsd:include schemaLocation="geronimo-j2ee.xsd"/>
  -
  -    <xsd:annotation>
  -        <xsd:documentation>
  -            This is the XML Schema for Apache Geronimo server-specific EJB DD.
  -        </xsd:documentation>
  -    </xsd:annotation>
  -
  -
  -    <xsd:complexType name="ejb">
  -        <xsd:annotation>
  -            <xsd:documentation>
  -                Base features common to all EJBs
  -            </xsd:documentation>
  -        </xsd:annotation>
  -        <xsd:sequence>
  -            <xsd:element ref="ger:ejb-name" minOccurs="1" maxOccurs="1"/>
  -            <xsd:element ref="ger:env-entry" minOccurs="0" maxOccurs="unbounded"/>
  -            <xsd:element ref="ger:ejb-ref" minOccurs="0" maxOccurs="unbounded"/>
  -            <xsd:element ref="ger:ejb-local-ref" minOccurs="0" maxOccurs="unbounded"/>
  -            <xsd:element ref="ger:message-destination-ref" minOccurs="0" maxOccurs="unbounded"/>
  -            <xsd:element ref="ger:resource-ref" minOccurs="0" maxOccurs="unbounded"/>
  -            <xsd:element ref="ger:resource-env-ref" minOccurs="0" maxOccurs="unbounded"/>
  -            <xsd:element ref="ger:service-ref" minOccurs="0" maxOccurs="unbounded"/>
  -        </xsd:sequence>
  -    </xsd:complexType>
  -
  -    <xsd:element name="ejb-jar">
  -        <xsd:annotation>
  -            <xsd:documentation>
  -                The root element for the EJB JAR.
  -            </xsd:documentation>
  -        </xsd:annotation>
  -        <xsd:complexType>
  -            <xsd:sequence>
  -                <xsd:element ref="ger:enterprise-beans" minOccurs="0" maxOccurs="1"/>
  -                <!-- also need top-level configuration, relationships, and assembly-descriptor -->
  -            </xsd:sequence>
  -        </xsd:complexType>
  -    </xsd:element>
  -
  -    <xsd:element name="ejb-name" type="xsd:string">
  -        <xsd:annotation>
  -            <xsd:documentation>
  -                The unique identifier for an EJB within this EJB JAR.  This
  -                must match the ejb-name for the same EJB in the standard
  -                ejb-jar.xml deployment descriptor.
  -            </xsd:documentation>
  -        </xsd:annotation>
  -    </xsd:element>
  -
  -    <xsd:element name="enterprise-beans">
  -        <xsd:annotation>
  -            <xsd:documentation>
  -                Holds all the EJBs
  -            </xsd:documentation>
  -        </xsd:annotation>
  -        <xsd:complexType>
  -            <xsd:sequence>
  -                <xsd:element ref="ger:session" minOccurs="0" maxOccurs="unbounded"/>
  -                <xsd:element ref="ger:entity" minOccurs="0" maxOccurs="unbounded"/>
  -                <xsd:element ref="ger:message-driven" minOccurs="0" maxOccurs="unbounded"/>
  -            </xsd:sequence>
  -        </xsd:complexType>
  -    </xsd:element>
  -
  -    <xsd:element name="entity">
  -        <xsd:annotation>
  -            <xsd:documentation>
  -                Configuration for a single entity bean
  -            </xsd:documentation>
  -        </xsd:annotation>
  -        <xsd:complexType>
  -            <xsd:complexContent>
  -                <xsd:extension base="ger:ejb">
  -                    <xsd:sequence>
  -                        <xsd:element ref="ger:jndi-name" minOccurs="0" maxOccurs="1"/>
  -                        <xsd:element ref="ger:security-role-ref" minOccurs="0" maxOccurs="unbounded"/>
  -                    </xsd:sequence>
  -                </xsd:extension>
  -            </xsd:complexContent>
  -        </xsd:complexType>
  -    </xsd:element>
  -
  -    <xsd:element name="message-driven">
  -        <xsd:annotation>
  -            <xsd:documentation>
  -                Configuration for a single message-driven bean
  -            </xsd:documentation>
  -        </xsd:annotation>
  -        <xsd:complexType>
  -            <xsd:complexContent>
  -                <xsd:extension base="ger:ejb">
  -                    <xsd:sequence>
  -                    </xsd:sequence>
  -                </xsd:extension>
  -            </xsd:complexContent>
  -        </xsd:complexType>
  -    </xsd:element>
  -
  -    <xsd:element name="session">
  -        <xsd:annotation>
  -            <xsd:documentation>
  -                Configuration for a single session bean
  -            </xsd:documentation>
  -        </xsd:annotation>
  -        <xsd:complexType>
  -            <xsd:complexContent>
  -                <xsd:extension base="ger:ejb">
  -                    <xsd:sequence>
  -                        <xsd:element ref="ger:jndi-name" minOccurs="0" maxOccurs="1"/>
  -                        <xsd:element ref="ger:security-role-ref" minOccurs="0" maxOccurs="unbounded"/>
  -                    </xsd:sequence>
  -                </xsd:extension>
  -            </xsd:complexContent>
  -        </xsd:complexType>
  -    </xsd:element>
  +<xsd:schema 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:include schemaLocation="geronimo-j2ee.xsd"/>
  +  <xsd:element name="ejb-jar" type="j2ee:ejb-jarType">
  +    <xsd:key name="ejb-name-key">
  +      <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: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:selector xpath="j2ee:assembly-descriptor/j2ee:security-role"/>
  +      <xsd:field xpath="j2ee:role-name"/>
  +    </xsd:key>
  +    <xsd:keyref name="role-name-references" refer="j2ee:role-name-key">
  +      <xsd: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:sequence>
  +      <xsd:element name="activation-config-property-name" type="j2ee:xsdStringType"/>
  +      <xsd:element name="activation-config-property-value" type="j2ee:xsdStringType"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="activation-configType">
  +    <xsd:sequence>
  +      <xsd:element name="description" type="j2ee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
  +      <xsd:element name="activation-config-property" type="j2ee:activation-config-propertyType" maxOccurs="unbounded"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="assembly-descriptorType">
  +    <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:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="cmp-fieldType">
  +    <xsd:sequence>
  +      <xsd:element name="description" type="j2ee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
  +      <xsd:element name="field-name" type="j2ee:java-identifierType"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="cmp-versionType">
  +    <xsd:simpleContent>
  +      <xsd:restriction base="j2ee:string">
  +        <xsd:enumeration value="1.x"/>
  +        <xsd:enumeration value="2.x"/>
  +      </xsd:restriction>
  +    </xsd:simpleContent>
  +  </xsd:complexType>
  +  <xsd:complexType name="cmr-field-typeType">
  +    <xsd:simpleContent>
  +      <xsd:restriction base="j2ee:string">
  +        <xsd:enumeration value="java.util.Collection"/>
  +        <xsd:enumeration value="java.util.Set"/>
  +      </xsd:restriction>
  +    </xsd:simpleContent>
  +  </xsd:complexType>
  +  <xsd:complexType name="cmr-fieldType">
  +    <xsd:sequence>
  +      <xsd:element name="description" type="j2ee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
  +      <xsd:element name="cmr-field-name" type="j2ee:string"/>
  +      <xsd:element name="cmr-field-type" type="j2ee:cmr-field-typeType" minOccurs="0"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="container-transactionType">
  +    <xsd:sequence>
  +      <xsd:element name="description" type="j2ee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
  +      <xsd:element name="method" type="j2ee:methodType" maxOccurs="unbounded"/>
  +      <xsd:element name="trans-attribute" type="j2ee:trans-attributeType"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="ejb-classType">
  +    <xsd:simpleContent>
  +      <xsd:restriction base="j2ee:fully-qualified-classType"/>
  +    </xsd:simpleContent>
  +  </xsd:complexType>
  +  <xsd:complexType name="ejb-jarType">
  +    <xsd:sequence>
  +      <xsd:group ref="j2ee:descriptionGroup"/>
  +      <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: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:element name="ejb-client-jar" type="j2ee:pathType" minOccurs="0"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="version" type="j2ee:dewey-versionType" use="required" fixed="2.1"/>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="ejb-nameType">
  +    <xsd:simpleContent>
  +      <xsd:restriction base="j2ee:xsdNMTOKENType"/>
  +    </xsd:simpleContent>
  +  </xsd:complexType>
  +  <xsd:complexType name="ejb-relationType">
  +    <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:element name="ejb-relationship-role" type="j2ee:ejb-relationship-roleType"/>
  +      <xsd:element name="ejb-relationship-role" type="j2ee:ejb-relationship-roleType"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="ejb-relationship-roleType">
  +    <xsd: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:element name="multiplicity" type="j2ee:multiplicityType"/>
  +      <xsd:element name="cascade-delete" type="j2ee:emptyType" minOccurs="0"/>
  +      <xsd:element name="relationship-role-source" type="j2ee:relationship-role-sourceType"/>
  +      <xsd:element name="cmr-field" type="j2ee:cmr-fieldType" minOccurs="0"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="enterprise-beansType">
  +    <xsd:choice maxOccurs="unbounded">
  +      <xsd:element name="session" type="j2ee:session-beanType">
  +        <xsd:unique name="session-ejb-local-ref-name-uniqueness">
  +          <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:selector xpath="j2ee:ejb-ref"/>
  +          <xsd:field xpath="j2ee:ejb-ref-name"/>
  +        </xsd:unique>
  +        <xsd:unique name="session-resource-env-ref-uniqueness">
  +          <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: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:selector xpath="j2ee:resource-ref"/>
  +          <xsd:field xpath="j2ee:res-ref-name"/>
  +        </xsd:unique>
  +        <xsd:unique name="session-env-entry-name-uniqueness">
  +          <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:selector xpath="j2ee:ejb-local-ref"/>
  +          <xsd:field xpath="j2ee:ejb-ref-name"/>
  +        </xsd:unique>
  +        <xsd:unique name="entity-ejb-ref-name-uniqueness">
  +          <xsd:selector xpath="j2ee:ejb-ref"/>
  +          <xsd:field xpath="j2ee:ejb-ref-name"/>
  +        </xsd:unique>
  +        <xsd:unique name="entity-resource-env-ref-uniqueness">
  +          <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: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:selector xpath="j2ee:resource-ref"/>
  +          <xsd:field xpath="j2ee:res-ref-name"/>
  +        </xsd:unique>
  +        <xsd:unique name="entity-env-entry-name-uniqueness">
  +          <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:selector xpath="j2ee:ejb-local-ref"/>
  +          <xsd:field xpath="j2ee:ejb-ref-name"/>
  +        </xsd:unique>
  +        <xsd:unique name="messaged-ejb-ref-name-uniqueness">
  +          <xsd:selector xpath="j2ee:ejb-ref"/>
  +          <xsd:field xpath="j2ee:ejb-ref-name"/>
  +        </xsd:unique>
  +        <xsd:unique name="messaged-resource-env-ref-uniqueness">
  +          <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: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:selector xpath="j2ee:resource-ref"/>
  +          <xsd:field xpath="j2ee:res-ref-name"/>
  +        </xsd:unique>
  +        <xsd:unique name="messaged-env-entry-name-uniqueness">
  +          <xsd:selector xpath="j2ee:env-entry"/>
  +          <xsd:field xpath="j2ee:env-entry-name"/>
  +        </xsd:unique>
  +      </xsd:element>
  +    </xsd:choice>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="entity-beanType">
  +    <xsd:sequence>
  +      <xsd:group ref="j2ee:descriptionGroup"/>
  +      <xsd:element name="ejb-name" type="j2ee:ejb-nameType"/>
  +      <xsd:element name="home" type="j2ee:homeType" minOccurs="0"/>
  +      <xsd:element name="remote" type="j2ee:remoteType" minOccurs="0"/>
  +      <xsd:element name="local-home" type="j2ee:local-homeType" minOccurs="0"/>
  +      <xsd:element name="local" type="j2ee:localType" minOccurs="0"/>
  +      <xsd:element name="ejb-class" type="j2ee:ejb-classType"/>
  +      <xsd:element name="persistence-type" type="j2ee:persistence-typeType"/>
  +      <xsd:element name="prim-key-class" type="j2ee:fully-qualified-classType"/>
  +      <xsd:element name="reentrant" type="j2ee:true-falseType"/>
  +      <xsd:element name="cmp-version" type="j2ee:cmp-versionType" minOccurs="0"/>
  +      <xsd:element name="abstract-schema-name" type="j2ee:java-identifierType" minOccurs="0"/>
  +      <xsd:element name="cmp-field" type="j2ee:cmp-fieldType" minOccurs="0" maxOccurs="unbounded"/>
  +      <xsd:element name="primkey-field" type="j2ee:string" minOccurs="0"/>
  +      <xsd:group ref="j2ee:jndiEnvironmentRefsGroup"/>
  +      <xsd:element name="security-role-ref" type="j2ee:security-role-refType" minOccurs="0" maxOccurs="unbounded"/>
  +      <xsd:element name="security-identity" type="j2ee:security-identityType" minOccurs="0"/>
  +      <xsd:element name="query" type="j2ee:queryType" minOccurs="0" maxOccurs="unbounded"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="exclude-listType">
  +    <xsd:sequence>
  +      <xsd:element name="description" type="j2ee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
  +      <xsd:element name="method" type="j2ee:methodType" maxOccurs="unbounded"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="java-typeType">
  +    <xsd:simpleContent>
  +      <xsd:restriction base="j2ee:string">
  +        <xsd:pattern value="[^\p{Z}]*"/>
  +      </xsd:restriction>
  +    </xsd:simpleContent>
  +  </xsd:complexType>
  +  <xsd:complexType name="message-driven-beanType">
  +    <xsd:sequence>
  +      <xsd:group ref="j2ee:descriptionGroup"/>
  +      <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: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:group ref="j2ee:jndiEnvironmentRefsGroup"/>
  +      <xsd:element name="security-identity" type="j2ee:security-identityType" minOccurs="0"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="method-intfType">
  +    <xsd:simpleContent>
  +      <xsd:restriction base="j2ee:string">
  +        <xsd:enumeration value="Home"/>
  +        <xsd:enumeration value="Remote"/>
  +        <xsd:enumeration value="LocalHome"/>
  +        <xsd:enumeration value="Local"/>
  +        <xsd:enumeration value="ServiceEndpoint"/>
  +      </xsd:restriction>
  +    </xsd:simpleContent>
  +  </xsd:complexType>
  +  <xsd:complexType name="method-nameType">
  +    <xsd:simpleContent>
  +      <xsd:restriction base="j2ee:string"/>
  +    </xsd:simpleContent>
  +  </xsd:complexType>
  +  <xsd:complexType name="method-paramsType">
  +    <xsd:sequence>
  +      <xsd:element name="method-param" type="j2ee:java-typeType" minOccurs="0" maxOccurs="unbounded"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="method-permissionType">
  +    <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:choice>
  +      <xsd:element name="method" type="j2ee:methodType" maxOccurs="unbounded"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="methodType">
  +    <xsd: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 name="method-name" type="j2ee:method-nameType"/>
  +      <xsd:element name="method-params" type="j2ee:method-paramsType" minOccurs="0"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="multiplicityType">
  +    <xsd:simpleContent>
  +      <xsd:restriction base="j2ee:string">
  +        <xsd:enumeration value="One"/>
  +        <xsd:enumeration value="Many"/>
  +      </xsd:restriction>
  +    </xsd:simpleContent>
  +  </xsd:complexType>
  +  <xsd:complexType name="persistence-typeType">
  +    <xsd:simpleContent>
  +      <xsd:restriction base="j2ee:string">
  +        <xsd:enumeration value="Bean"/>
  +        <xsd:enumeration value="Container"/>
  +      </xsd:restriction>
  +    </xsd:simpleContent>
  +  </xsd:complexType>
  +  <xsd:complexType name="query-methodType">
  +    <xsd:sequence>
  +      <xsd:element name="method-name" type="j2ee:method-nameType"/>
  +      <xsd:element name="method-params" type="j2ee:method-paramsType"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="queryType">
  +    <xsd:sequence>
  +      <xsd:element name="description" type="j2ee:descriptionType" minOccurs="0"/>
  +      <xsd:element name="query-method" type="j2ee:query-methodType"/>
  +      <xsd:element name="result-type-mapping" type="j2ee:result-type-mappingType" minOccurs="0"/>
  +      <xsd:element name="ejb-ql" type="j2ee:xsdStringType"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="relationship-role-sourceType">
  +    <xsd:sequence>
  +      <xsd:element name="description" type="j2ee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
  +      <xsd:element name="ejb-name" type="j2ee:ejb-nameType"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="relationshipsType">
  +    <xsd: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:selector xpath=".//j2ee:ejb-relationship-role-name"/>
  +          <xsd:field xpath="."/>
  +        </xsd:unique>
  +      </xsd:element>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="result-type-mappingType">
  +    <xsd:simpleContent>
  +      <xsd:restriction base="j2ee:string">
  +        <xsd:enumeration value="Local"/>
  +        <xsd:enumeration value="Remote"/>
  +      </xsd:restriction>
  +    </xsd:simpleContent>
  +  </xsd:complexType>
  +  <xsd:complexType name="security-identityType">
  +    <xsd:sequence>
  +      <xsd:element name="description" type="j2ee:descriptionType" minOccurs="0" maxOccurs="unbounded"/>
  +      <xsd:choice>
  +        <xsd:element name="use-caller-identity" type="j2ee:emptyType"/>
  +        <xsd:element name="run-as" type="j2ee:run-asType"/>
  +      </xsd:choice>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="session-beanType">
  +    <xsd:sequence>
  +      <xsd:group ref="j2ee:descriptionGroup"/>
  +      <xsd:element name="ejb-name" type="j2ee:ejb-nameType"/>
  +      <xsd:element name="home" type="j2ee:homeType" minOccurs="0"/>
  +      <xsd:element name="remote" type="j2ee:remoteType" minOccurs="0"/>
  +      <xsd:element name="local-home" type="j2ee:local-homeType" minOccurs="0"/>
  +      <xsd:element name="local" type="j2ee:localType" minOccurs="0"/>
  +      <xsd:element name="service-endpoint" type="j2ee:fully-qualified-classType" minOccurs="0"/>
  +      <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:group ref="j2ee:jndiEnvironmentRefsGroup"/>
  +      <xsd:element name="security-role-ref" type="j2ee:security-role-refType" minOccurs="0" maxOccurs="unbounded"/>
  +      <xsd:element name="security-identity" type="j2ee:security-identityType" minOccurs="0"/>
  +    </xsd:sequence>
  +    <xsd:attribute name="id" type="xsd:ID"/>
  +  </xsd:complexType>
  +  <xsd:complexType name="session-typeType">
  +    <xsd:simpleContent>
  +      <xsd:restriction base="j2ee:string">
  +        <xsd:enumeration value="Stateful"/>
  +        <xsd:enumeration value="Stateless"/>
  +      </xsd:restriction>
  +    </xsd:simpleContent>
  +  </xsd:complexType>
  +  <xsd:complexType name="trans-attributeType">
  +    <xsd:simpleContent>
  +      <xsd:restriction base="j2ee:string">
  +        <xsd:enumeration value="NotSupported"/>
  +        <xsd:enumeration value="Supports"/>
  +        <xsd:enumeration value="Required"/>
  +        <xsd:enumeration value="RequiresNew"/>
  +        <xsd:enumeration value="Mandatory"/>
  +        <xsd:enumeration value="Never"/>
  +      </xsd:restriction>
  +    </xsd:simpleContent>
  +  </xsd:complexType>
  +  <xsd:complexType name="transaction-typeType">
  +    <xsd:simpleContent>
  +      <xsd:restriction base="j2ee:string">
  +        <xsd:enumeration value="Bean"/>
  +        <xsd:enumeration value="Container"/>
  +      </xsd:restriction>
  +    </xsd:simpleContent>
  +  </xsd:complexType>
   </xsd:schema>