HomeApache Geronimo v1.1 > Documentation > Apache Geronimo v1.1 - User's Guide > XML schemas > openejb-jar-2.1.xsd


This article is organized into the following sections : -

OpenEJB Schema Document

The following schema uses the OpenEJB namespace, and requires elements from the Geronimo Naming, Geronimo Security, and Geronimo System namespaces. Furthermore, it has a required attribute to identify its configuration name, and an optional attribute to select a parent configuration.The openejb-jar-2.1.xsd defines the schema for the Geronimo Deployment Plan for an EJB JAR.
The attributes here are:

xmlns

The main namespace for the deployment plan, which should always be http://www.openejb.org/xml/ns/openejb-jar-2.1

xmlns:naming

A secondary namespace, used to identify the common elements for resolving EJB references, resource references, and web services references. If any of those need to be resolved in the deployment plan, this attribute should be present, and should be set to http://geronimo.apache.org/xml/ns/naming-1.1

xmlns:security
A secondary namespace, used to identify the common elements for security configuration. If there are any security settings in the deployment plan, this attribute should be present, and should be set to http://geronimo.apache.org/xml/ns/security-1.1

xmlns:sys
A secondary namespace, used to identify the common elements for common libraries and module-scoped services. If there are any of those present in the deployment plan, this attribute should be present, and should be set to http://geronimo.apache.org/xml/ns/deployment-1.1

xmlns:pkgen
A secondary namespace, used to identify the common elements for configuring automatic primary key generation for CMP entity beans (such as, using a sequence or auto-increment column). If there are any primary key generators present in the deployment plan, this attribute should be present, and should be set to http://www.openejb.org/xml/ns/pkgen-2.0

configId
A unique name identifying this module. If deployed as a standalone EJB JAR, this name is used to identify the module to the deployment tool (to start, stop, undeploy, or redeploy the EJB JAR).

parentId
Identifies the parent configuration for this EJB JAR (the value specified here should match the configId for that module). If deployed as a standalone EJB JAR, this can be used to make the EJB JAR depend on another module such as another standalone EJB JAR or a J2EE Connector (or it should otherwise be omitted or set to the usual parent for J2EE modules, geronimo/j2ee-server/1.0/car). If deployed as part of an EAR this is usually not necessary, as EAR configuration will be the parent of this module.

openejb-jar-2.1.xsd
<xs:schema
    xmlns:openejb="http://www.openejb.org/xml/ns/openejb-jar-2.1"
    targetNamespace="http://www.openejb.org/xml/ns/openejb-jar-2.1"
    xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.1"
    xmlns:security="http://geronimo.apache.org/xml/ns/security-1.1"
    xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.1"
    xmlns:pkgen="http://www.openejb.org/xml/ns/pkgen-2.0"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    version="1.0">

    <xs:import namespace="http://geronimo.apache.org/xml/ns/naming-1.1" schemaLocation="geronimo-naming-1.1.xsd"/>
    <xs:import namespace="http://geronimo.apache.org/xml/ns/security-1.1" schemaLocation="geronimo-security-1.1.xsd"/>
    <xs:import namespace="http://geronimo.apache.org/xml/ns/deployment-1.1" schemaLocation="geronimo-module-1.1.xsd"/>
    <xs:import namespace="http://www.openejb.org/xml/ns/pkgen-2.0" schemaLocation="openejb-pkgen-2.0.xsd"/>

    <xs:element name="openejb-jar" type="openejb:openejb-jarType"/>

    <xs:complexType name="emptyType"/>

    <xs:complexType name="openejb-jarType">
        <xs:sequence>
            <xs:element ref="sys:environment" minOccurs="0"/>

            <!-- use a ref to put this element in the naming namespace rather than openejb namespace-->
            <xs:element ref="naming:cmp-connection-factory" minOccurs="0"/>
            <xs:element name="ejb-ql-compiler-factory" type="xs:string" minOccurs="0"/>
            <xs:element name="db-syntax-factory" type="xs:string" minOccurs="0"/>
            <xs:element name="enforce-foreign-key-constraints" type="openejb:emptyType" minOccurs="0"/>

            <xs:element name="enterprise-beans">
                <xs:complexType>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element name="session" type="openejb:session-beanType"/>
                        <xs:element name="entity" type="openejb:entity-beanType"/>
                        <xs:element name="message-driven" type="openejb:message-driven-beanType"/>
                    </xs:choice>
                </xs:complexType>
            </xs:element>

            <xs:element name="relationships" type="openejb:relationshipsType" minOccurs="0">
                <xs:unique name="relationship-name-uniqueness">
                    <xs:selector xpath="openejb:ejb-relation"/>
                    <xs:field xpath="openejb:ejb-relation-name"/>
                </xs:unique>
            </xs:element>

            <xs:element ref="naming:message-destination" minOccurs="0" maxOccurs="unbounded"/>

            <xs:element ref="security:security" minOccurs="0"/>
            <xs:element ref="sys:gbean" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <!-- session bean section-->
    <xs:complexType name="session-beanType">
        <xs:sequence>
            <xs:element name="ejb-name" type="xs:string"/>
            <xs:element name="jndi-name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="local-jndi-name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            <xs:group ref="openejb:tssGroup" minOccurs="0"/>

            <xs:group ref="naming:jndiEnvironmentRefsGroup"/>
            <xs:element name="web-service-address" type="xs:string" minOccurs="0"/>
            <xs:element name="web-service-virtual-host" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="web-service-security" type="openejb:web-service-securityType" minOccurs="0"/>
        </xs:sequence>
        <xs:attribute name="id" type="xs:ID"/>
    </xs:complexType>

    <xs:group name="tssGroup">
        <xs:sequence>
            <xs:choice>
                <xs:element name="tss-link" type="xs:string"/>
                <xs:element name="tss" type="naming:patternType"/>
            </xs:choice>
        </xs:sequence>
    </xs:group>

    <xs:complexType name="tssType">
        <xs:sequence>
            <!-- this is object name group from geronimo-naming.xsd -->
            <xs:element name="domain" type="xs:string" minOccurs="0"/>
            <xs:element name="server" type="xs:string" minOccurs="0"/>
            <xs:element name="application" type="xs:string" minOccurs="0"/>
            <xs:element name="module" type="xs:string" minOccurs="0"/>
            <!--            <xs:element name="type" type="xs:string" minOccurs="0"/>-->
            <xs:element name="name" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="web-service-securityType">
        <xs:sequence>
            <xs:element name="security-realm-name" type="xs:string"/>
            <xs:element name="realm-name" type="xs:string" minOccurs="0"/>
            <xs:element name="transport-guarantee" type="openejb:transport-guaranteeType"/>
            <xs:element name="auth-method" type="openejb:auth-methodType"/>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="transport-guaranteeType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="NONE"/>
            <xs:enumeration value="INTEGRAL"/>
            <xs:enumeration value="CONFIDENTIAL"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="auth-methodType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="BASIC"/>
            <xs:enumeration value="DIGEST"/>
            <xs:enumeration value="CLIENT-CERT"/>
            <xs:enumeration value="NONE"/>
        </xs:restriction>
    </xs:simpleType>

    <!--entity bean section -->
    <xs:complexType name="entity-beanType">
        <xs:sequence>
            <xs:element name="ejb-name" type="xs:string"/>
            <xs:element name="jndi-name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="local-jndi-name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            <xs:group ref="openejb:tssGroup" minOccurs="0"/>

            <xs:sequence minOccurs="0">
                <xs:element name="table-name" type="xs:string"/>
                <xs:element name="static-sql" type="openejb:emptyType" minOccurs="0"/>
                <xs:element name="cmp-field-mapping" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="cmp-field-name" type="xs:string"/>
                            <xs:element name="cmp-field-class" type="xs:string" minOccurs="0"/>
                            <xs:element name="table-column" type="xs:string"/>
                            <xs:element name="sql-type" type="xs:string" minOccurs="0"/>
                            <xs:element name="type-converter" type="xs:string" minOccurs="0"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="primkey-field" type="xs:string" minOccurs="0"/>
                <xs:element ref="pkgen:key-generator" minOccurs="0"/>
                <xs:element name="prefetch-group" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="group" minOccurs="0" maxOccurs="unbounded"
                                type="openejb:groupType"/>
                            <xs:element name="entity-group-mapping" minOccurs="0"
                                type="openejb:entity-group-mappingType"/>
                            <xs:element name="cmp-field-group-mapping" minOccurs="0" maxOccurs="unbounded"
                                type="openejb:cmp-field-group-mappingType"/>
                            <xs:element name="cmr-field-group-mapping" minOccurs="0" maxOccurs="unbounded"
                                type="openejb:cmr-field-group-mappingType"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>

            <xs:element name="cache" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="isolation-level">
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:enumeration value="read-uncommitted"/>
                                    <xs:enumeration value="read-committed"/>
                                    <xs:enumeration value="repeatable-read"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="size" type="xs:int"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>

            <xs:group ref="naming:jndiEnvironmentRefsGroup"/>

            <xs:element name="query" type="openejb:queryType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="id" type="xs:ID"/>
    </xs:complexType>

    <xs:complexType name="groupType">
        <xs:sequence>
            <xs:element name="group-name" type="xs:string"/>
            <xs:element name="cmp-field-name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="cmr-field" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="cmr-field-name" type="xs:string"/>
                        <xs:element name="group-name" type="xs:string" minOccurs="0"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="entity-group-mappingType">
        <xs:sequence>
            <xs:element name="group-name" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="cmp-field-group-mappingType">
        <xs:sequence>
            <xs:element name="group-name" type="xs:string"/>
            <xs:element name="cmp-field-name" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="cmr-field-group-mappingType">
        <xs:sequence>
            <xs:element name="group-name" type="xs:string"/>
            <xs:element name="cmr-field-name" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="queryType">
        <xs:sequence>
            <xs:element name="query-method">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="method-name" type="xs:string"/>
                        <xs:element name="method-params">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="method-param" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="result-type-mapping" minOccurs="0" type="xs:string"/>
            <xs:element name="ejb-ql" type="xs:string" minOccurs="0"/>
            <xs:element name="no-cache-flush" minOccurs="0"/>
            <xs:element name="group-name" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="relationshipsType">
        <xs:sequence>
            <xs:element name="ejb-relation" type="openejb:ejb-relationType" maxOccurs="unbounded">
                <xs:unique name="role-name-uniqueness">
                    <xs:selector xpath=".//openejb:ejb-relationship-role-name"/>
                    <xs:field xpath="."/>
                </xs:unique>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ejb-relationType">
        <xs:sequence>
            <xs:element name="ejb-relation-name" type="xs:string" minOccurs="0"/>
            <xs:element name="many-to-many-table-name" type="xs:string" minOccurs="0"/>
            <xs:element name="ejb-relationship-role" type="openejb:ejb-relationship-roleType" maxOccurs="2"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="ejb-relationship-roleType">
        <xs:sequence>
            <xs:element name="ejb-relationship-role-name" type="xs:string" minOccurs="0"/>
            <xs:element name="relationship-role-source">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="ejb-name" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="cmr-field" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="cmr-field-name" type="xs:string"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="foreign-key-column-on-source" minOccurs="0"/>
            <xs:element name="role-mapping">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="cmr-field-mapping" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="key-column" type="xs:string"/>
                                    <xs:element name="foreign-key-column" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>


    <!--message driven bean section-->
    <xs:complexType name="message-driven-beanType">
        <xs:sequence>
            <xs:element name="ejb-name" type="xs:string"/>
            <xs:element ref="naming:resource-adapter"/>
            <xs:element name="activation-config"
                type="openejb:activation-configType"
                minOccurs="0"/>

            <xs:group ref="naming:jndiEnvironmentRefsGroup"/>
        </xs:sequence>
        <xs:attribute name="id" type="xs:ID"/>
    </xs:complexType>

    <xs:complexType name="activation-configType">
        <xs:sequence>
            <xs:element name="description"
                type="xs:string"
                minOccurs="0"
                maxOccurs="unbounded"/>
            <xs:element name="activation-config-property"
                type="openejb:activation-config-propertyType"
                maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="activation-config-propertyType">
        <xs:sequence>
            <xs:element name="activation-config-property-name"
                type="xs:string">
            </xs:element>
            <xs:element name="activation-config-property-value"
                type="xs:string">
            </xs:element>
        </xs:sequence>
    </xs:complexType>

</xs:schema>

Schema Document Properties

Target Namespace http://www.openejb.org/xml/ns/openejb-jar-2.1
Version 1.1
Element and Attribute Namespaces Global element and attribute declarations belong to this schema's target
namespace.
By default, local element declarations belong to this schema's target
namespace.
By default, local attribute declarations have no namespace.
Schema Composition This schema imports schema(s) from the following namespace(s):
http://geronimo.apache.org/xml/ns/naming-1.1 (at geronimo-naming-1.1.xsd)
http://geronimo.apache.org/xml/ns/security-1(at geronimo-security-1.1.xsd)
http://geronimo.apache.org/xml/ns/deployment-1.1 (at geronimo-module-1.1.xsd)
http://www.openejb.org/xml/ns/pkgen-2.0 (at openejb-pkgen-2.0.xsd)

Declared Namespaces

Prefix Namespace
xml http://www.w3.org/XML/1998/namespace
openejb http://www.openejb.org/xml/ns/openejb-jar-2.1
naming http://geronimo.apache.org/xml/ns/naming-1. 1
security http://geronimo.apache.org/xml/ns/security-1.1
sys http://geronimo.apache.org/xml/ns/deployment-1.1
pkgen http://www.openejb.org/xml/ns/pkgen-2.0
xs http://www.w3.org/2001/XMLSchema
Schema Component Representation
<xs:schema>
targetNamespace="http://www.openejb.org/xml/ns/openejb-jar-2.1"
 elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    version="1.0">
<xs:import namespace="http://geronimo.apache.org/xml/ns/naming-1.1" schemaLocation="geronimo-naming-1.1.xsd"/>
    <xs:import namespace="http://geronimo.apache.org/xml/ns/security-1.1" schemaLocation="geronimo-security-1.1.xsd"/>
    <xs:import namespace="http://geronimo.apache.org/xml/ns/deployment-1.1" schemaLocation="geronimo-module-1.1.xsd"/>
    <xs:import namespace="http://www.openejb.org/xml/ns/pkgen-2.0" schemaLocation="openejb-pkgen-2.0.xsd"/>
....
</xs:schema>

Global Declarations

Element: openejb-jar

Element: openejb-jar
Name openejb-jar
Type openejb:openejb-jarType
Nillable no
Abstract no
XML Instance Representation: openejb-jar
<openejb:openejb-jar
  configId=" xs:string [1]" 
  parentId=" xs:string [0..1]"> 
 
<sys:import> ... </sys:import> [0..*] 
<sys:dependency> ... </sys:dependency> [0..*] 
<naming:cmp-connection-factory> ... </naming:cmp-connection-factory> [0..1] 
<openejb:ejb-ql-compiler-factory>  xs:string </openejb:ejb-ql-compiler-factory> [0..1] 
<openejb:db-syntax-factory>  xs:string </openejb:db-syntax-factory> [0..1] 
<openejb:enforce-foreign-key-constraints>  openejb:emptyType  </openejb:enforce-foreign-key-constraints> [0..1] 
<openejb:enterprise-beans> [1] 
 Start Choice [0..*]  
 
<openejb:session>  openejb:session-beanType  </openejb:session> [1] 
<openejb:entity>  openejb:entity-beanType  </openejb:entity> [1] 
<openejb:message-driven>  openejb:message-driven-beanType  </openejb:message-driven> [1] 
End Choice 
</openejb:enterprise-beans>
<openejb:relationships>  openejb:relationshipsType  
<!-- 
 Uniqueness Constraint -  relationship-name-uniqueness  
Selector - openejb:ejb-relation 
Field(s) - openejb:ejb-relation-name 
-->
</openejb:relationships> [0..1] 
<naming:message-destination> ... </naming:message-destination> [0..*] 
<security:security> ... </security:security> [0..1] 
<sys:gbean> ... </sys:gbean> [0..*] 
</openejb:openejb-jar>
Schema Component Representation: openejb-jar
<xs:element name=openejb-jar type=openejb:openejb-jarType/>

Global Definitions

Complex Type: activation-config-propertyType

Complex Type: activation-config-propertyType
Super-types: None
Sub-types: None
Name activation-config-propertyType
Abstract no
XML Instance Representation: activation-config-propertyType
<...> 
 
<openejb:activation-config-property-name>  xs:string </openejb:activation-config-property-name> [1] 
<openejb:activation-config-property-value>  xs:string </openejb:activation-config-property-value> [1] 
</...>
Schema Component Representation: activation-config-propertyType
<xs:complexType name="activation-config-propertyType">
<xs:sequence>
<xs:element name="activation-config-property-name" type="  xs:string "/>
<xs:element name="activation-config-property-value" type="  xs:string "/>
</xs:sequence>
</xs:complexType>

Complex Type: activation-configType

Complex Type: activation-configType
Super-types: None
Sub-types: None
Name activation-configType
Abstract no
XML Instance Representation: activation-configType
<...> 
 
<openejb:description>  xs:string </openejb:description> [0..*] 
<openejb:activation-config-property>  openejb:activation-config-propertyType  </openejb:activation-config-property> [1..*] 
</...>
Schema Component Representation: activation-configType
<xs:complexType name="activation-configType">
<xs:sequence>
<xs:element name="description" type="  xs:string " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="activation-config-property" type="  openejb:activation-config-propertyType  " maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>

Complex Type: cmp-field-group-mappingType

Complex Type: cmp-field-group-mappingType
Super-types: None
Sub-types: None
Name cmp-field-group-mappingType
Abstract no
XML Instance Representation: cmp-field-group-mappingType
<...> 
 
<openejb:group-name>  xs:string </openejb:group-name> [1] 
<openejb:cmp-field-name>  xs:string </openejb:cmp-field-name> [1] 
</...>
Schema Component Representation: cmp-field-group-mappingType
<xs:complexType name="cmp-field-group-mappingType">
<xs:sequence>
<xs:element name="group-name" type="  xs:string "/>
<xs:element name="cmp-field-name" type="  xs:string "/>
</xs:sequence>
</xs:complexType>

Complex Type: cmr-field-group-mappingType

Complex Type: cmr-field-group-mappingType
Super-types: None
Sub-types: None
Name cmr-field-group-mappingType
Abstract no
XML Instance Representation: cmr-field-group-mappingType
<...> 
 
<openejb:group-name>  xs:string </openejb:group-name> [1] 
<openejb:cmr-field-name>  xs:string </openejb:cmr-field-name> [1] 
</...>
Schema Component Representation: cmr-field-group-mappingType
<xs:complexType name="cmr-field-group-mappingType">
<xs:sequence>
<xs:element name="group-name" type="  xs:string "/>
<xs:element name="cmr-field-name" type="  xs:string "/>
</xs:sequence>
</xs:complexType>

Complex Type: ejb-relationship-roleType

Complex Type: ejb-relationship-roleType
Super-types: None
Sub-types: None
Name ejb-relationship-roleType
Abstract no
XML Instance Representation: ejb-relationship-roleType
<...> 
 
<openejb:ejb-relationship-role-name>  xs:string </openejb:ejb-relationship-role-name> [0..1] 
<openejb:relationship-role-source> [1] 
 
<openejb:ejb-name>  xs:string </openejb:ejb-name> [1] 
</openejb:relationship-role-source>
<openejb:cmr-field> [0..1] 
 
<openejb:cmr-field-name>  xs:string </openejb:cmr-field-name> [1] 
</openejb:cmr-field>
<openejb:foreign-key-column-on-source> ... </openejb:foreign-key-column-on-source> [0..1] 
<openejb:role-mapping> [1] 
 
<openejb:cmr-field-mapping> [1..*] 
 
<openejb:key-column>  xs:string </openejb:key-column> [1] 
<openejb:foreign-key-column>  xs:string </openejb:foreign-key-column> [1] 
</openejb:cmr-field-mapping>
</openejb:role-mapping>
</...>
Schema Component Representation: ejb-relationship-roleType
<xs:complexType name="ejb-relationship-roleType">
<xs:sequence>
<xs:element name="ejb-relationship-role-name" type="  xs:string " minOccurs="0"/>
<xs:element name="relationship-role-source">
<xs:complexType>
<xs:sequence>
<xs:element name="ejb-name" type="  xs:string "/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="cmr-field" minOccurs="0">
<xs:complexType>
<xs:sequence>
<xs:element name="cmr-field-name" type="  xs:string "/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="foreign-key-column-on-source" minOccurs="0"/>
<xs:element name="role-mapping">
<xs:complexType>
<xs:sequence>
<xs:element name="cmr-field-mapping" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="key-column" type="  xs:string "/>
<xs:element name="foreign-key-column" type="  xs:string "/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>

Complex Type: ejb-relationType

Complex Type: ejb-relationType
Super-types: None
Sub-types: None
Name ejb-relationType
Abstract no
XML Instance Representation: ejb-relationType
<...> 
 
<openejb:ejb-relation-name>  xs:string </openejb:ejb-relation-name> [0..1] 
<openejb:many-to-many-table-name>  xs:string </openejb:many-to-many-table-name> [0..1] 
<openejb:ejb-relationship-role>  openejb:ejb-relationship-roleType  </openejb:ejb-relationship-role> [1..2] 
</...>
Schema Component Representation: ejb-relationType
<xs:complexType name="ejb-relationType">
<xs:sequence>
<xs:element name="ejb-relation-name" type="  xs:string " minOccurs="0"/>
<xs:element name="many-to-many-table-name" type="  xs:string " minOccurs="0"/>
<xs:element name="ejb-relationship-role" type="  openejb:ejb-relationship-roleType  " maxOccurs="2"/>
</xs:sequence>
</xs:complexType>

Complex Type: emptyType

Complex Type: emptyType
Super-types: None
Sub-types: None
Name emptyType
Abstract no
XML Instance Representation: emptyType
<.../>
Schema Component Representation: emptyType
<xs:complexType name="emptyType"/>

Complex Type: entity-beanType

Complex Type: entity-beanType
Super-types: None
Sub-types: None
Name entity-beanType
Abstract no
XML Instance Representation: entity-beanType
<...
id=" xs:ID [0..1]">
<openejb:ejb-name> xs:string </openejb:ejb-name> [1]
<openejb:jndi-name> xs:string </openejb:jndi-name> [0..*]
<openejb:local-jndi-name> xs:string </openejb:local-jndi-name> [0..*]
Start Group: openejb:tssGroup [0..1]
Start Choice [1]
<openejb:tss-target-name> xs:string </openejb:tss-target-name> [1]
<openejb:tss-link> xs:string </openejb:tss-link> [1]
<openejb:tss> openejb:tssType </openejb:tss> [1]
End Choice
End Group: openejb:tssGroup
Start Sequence [0..1]
<openejb:table-name> xs:string </openejb:table-name> [1]
<openejb:cmp-field-mapping> [1..*]
<openejb:cmp-field-name> xs:string </openejb:cmp-field-name> [1]
<openejb:cmp-field-class> xs:string </openejb:cmp-field-class> [0..1]
<openejb:table-column> xs:string </openejb:table-column> [1]
<openejb:sql-type> xs:string </openejb:sql-type> [0..1]
<openejb:type-converter> xs:string </openejb:type-converter> [0..1]
</openejb:cmp-field-mapping>
<openejb:primkey-field> xs:string </openejb:primkey-field> [0..1]
<pkgen:key-generator> ... </pkgen:key-generator> [0..1]
<openejb:prefetch-group> [0..1]
<openejb:group> openejb:groupType </openejb:group> [0..*]
<openejb:entity-group-mapping> openejb:entity-group-mappingType </openejb:entity-group-mapping> [0..1]
<openejb:cmp-field-group-mapping> openejb:cmp-field-group-mappingType </openejb:cmp-field-group-mapping> [0..*]
<openejb:cmr-field-group-mapping> openejb:cmr-field-group-mappingType </openejb:cmr-field-group-mapping> [0..*]
</openejb:prefetch-group>
End Sequence
<openejb:query> openejb:queryType </openejb:query> [0..*]
</...>
Schema Component Representation: entity-beanType
<xs:complexType name="entity-beanType">
        <xs:sequence>
            <xs:element name="ejb-name" type="xs:string"/>
            <xs:element name="jndi-name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="local-jndi-name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            <xs:group ref="openejb:tssGroup" minOccurs="0"/>

            <xs:sequence minOccurs="0">
                <xs:element name="table-name" type="xs:string"/>
                <xs:element name="static-sql" type="openejb:emptyType" minOccurs="0"/>
                <xs:element name="cmp-field-mapping" maxOccurs="unbounded">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="cmp-field-name" type="xs:string"/>
                            <xs:element name="cmp-field-class" type="xs:string" minOccurs="0"/>
                            <xs:element name="table-column" type="xs:string"/>
                            <xs:element name="sql-type" type="xs:string" minOccurs="0"/>
                            <xs:element name="type-converter" type="xs:string" minOccurs="0"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
                <xs:element name="primkey-field" type="xs:string" minOccurs="0"/>
                <xs:element ref="pkgen:key-generator" minOccurs="0"/>
                <xs:element name="prefetch-group" minOccurs="0">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element name="group" minOccurs="0" maxOccurs="unbounded"
                                type="openejb:groupType"/>
                            <xs:element name="entity-group-mapping" minOccurs="0"
                                type="openejb:entity-group-mappingType"/>
                            <xs:element name="cmp-field-group-mapping" minOccurs="0" maxOccurs="unbounded"
                                type="openejb:cmp-field-group-mappingType"/>
                            <xs:element name="cmr-field-group-mapping" minOccurs="0" maxOccurs="unbounded"
                                type="openejb:cmr-field-group-mappingType"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
            </xs:sequence>

            <xs:element name="cache" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="isolation-level">
                            <xs:simpleType>
                                <xs:restriction base="xs:string">
                                    <xs:enumeration value="read-uncommitted"/>
                                    <xs:enumeration value="read-committed"/>
                                    <xs:enumeration value="repeatable-read"/>
                                </xs:restriction>
                            </xs:simpleType>
                        </xs:element>
                        <xs:element name="size" type="xs:int"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>

            <xs:group ref="naming:jndiEnvironmentRefsGroup"/>

            <xs:element name="query" type="openejb:queryType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="id" type="xs:ID"/>
    </xs:complexType>

Complex Type: entity-group-mappingType

Complex Type: entity-group-mappingType
Super-types: None
Sub-types: None
Name entity-group-mappingType
Abstract no
XML Instance Representation: entity-group-mappingType
<...>
<openejb:group-name> xs:string </openejb:group-name> [1]
</...>
Schema Component Representation: entity-group-mappingType
<xs:complexType name="entity-group-mappingType">
<xs:sequence>
<xs:element name="group-name" type=" xs:string "/>
</xs:sequence>
</xs:complexType>

Complex Type: groupType

Complex Type: groupType
Super-types: None
Sub-types: None
Name groupType
Abstract no
XML Instance Representation: groupType
<...>
<openejb:group-name> xs:string </openejb:group-name> [1]
<openejb:cmp-field-name> xs:string </openejb:cmp-field-name> [0..*]
<openejb:cmr-field> [0..*]
<openejb:cmr-field-name> xs:string </openejb:cmr-field-name> [1]
<openejb:group-name> xs:string </openejb:group-name> [0..1]
</openejb:cmr-field>
</...>
Schema Component Representation: groupType
<xs:complexType name="groupType">
<xs:sequence>
<xs:element name="group-name" type=" xs:string "/>
<xs:element name="cmp-field-name" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="cmr-field" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="cmr-field-name" type=" xs:string "/>
<xs:element name="group-name" type=" xs:string " minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>

Complex Type: message-driven-beanType

Complex Type: message-driven-beanType
Super-types: None
Sub-types: None
Name message-driven-beanType
Abstract no
XML Instance Representation: message-driven-beanType
<...
id=" xs:ID [0..1]">
<openejb:ejb-name> xs:string </openejb:ejb-name> [1]
<naming:resource-adapter> ... </naming:resource-adapter> [1]
<openejb:activation-config> openejb:activation-configType </openejb:activation-config> [0..1]
</...>
Schema Component Representation: message-driven-beanType
<xs:complexType name="message-driven-beanType">
<xs:sequence>
<xs:element name="ejb-name" type=" xs:string "/>
<xs:element ref=" naming:resource-adapter "/>
<xs:element name="activation-config" type=" openejb:activation-configType " minOccurs="0"/>
<xs:group ref=" naming:jndiEnvironmentRefsGroup "/>
</xs:sequence>
<xs:attribute name="id" type=" xs:ID "/>
</xs:complexType>

Complex Type: openejb-jarType

Complex Type: openejb-jarType
Super-types: None
Sub-types: None
Name openejb-jarType
Abstract no
XML Instance Representation: openejb-jarType
<...
<sys:environment>...</sys:environment>
<sys:import> ... </sys:import> [0..*]
<sys:dependency> ... </sys:dependency> [0..*]
<naming:cmp-connection-factory> ... </naming:cmp-connection-factory> [0..1]
<openejb:ejb-ql-compiler-factory> xs:string </openejb:ejb-ql-compiler-factory> [0..1]
<openejb:db-syntax-factory> xs:string </openejb:db-syntax-factory> [0..1]
<openejb:enforce-foreign-key-constraints> openejb:emptyType </openejb:enforce-foreign-key-constraints> [0..1]
<openejb:enterprise-beans> [1]
Start Choice [0..*]
<openejb:session> openejb:session-beanType </openejb:session> [1]
<openejb:entity> openejb:entity-beanType </openejb:entity> [1]
<openejb:message-driven> openejb:message-driven-beanType </openejb:message-driven> [1]
End Choice
</openejb:enterprise-beans>
<openejb:relationships> openejb:relationshipsType
<!--
Uniqueness Constraint - relationship-name-uniqueness
Selector - openejb:ejb-relation
Field(s) - openejb:ejb-relation-name
-->
</openejb:relationships> [0..1]
<naming:message-destination> ... </naming:message-destination> [0..*]
<security:security> ... </security:security> [0..1]
<sys:gbean> ... </sys:gbean> [0..*]
</...>
Schema Component Representation: openejb-jarType
<xs:complexType name="openejb-jarType">
<xs:sequence>
<xs:element ref=" sys:import " minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref=" sys:dependency " minOccurs="0" maxOccurs="unbounded"/>
<-- use a ref to put this element in the naming namespace rather than openejb namespace-->
<xs:element ref=" naming:cmp-connection-factory " minOccurs="0"/>
<xs:element name="ejb-ql-compiler-factory" type=" xs:string " minOccurs="0"/>
<xs:element name="db-syntax-factory" type=" xs:string " minOccurs="0"/>
<xs:element name="enforce-foreign-key-constraints" type=" openejb:emptyType " minOccurs="0"/>
<xs:element name="enterprise-beans">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="session" type=" openejb:session-beanType "/>
<xs:element name="entity" type=" openejb:entity-beanType "/>
<xs:element name="message-driven" type=" openejb:message-driven-beanType "/>
</xs:choice>
</xs:complexType>
</xs:element>
<xs:element name="relationships" type=" openejb:relationshipsType " minOccurs="0">
<xs:unique name="relationship-name-uniqueness">
<xs:selector xpath="openejb:ejb-relation"/>
<xs:field xpath="openejb:ejb-relation-name"/>
</xs:unique>
</xs:element>
<xs:element ref=" naming:message-destination " minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref=" security:security " minOccurs="0"/>
<xs:element ref=" sys:gbean " minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="configId" type=" xs:string " use="required"/>
<xs:attribute name="parentId" type=" xs:string " use="optional"/>
</xs:complexType>

Complex Type: queryType

Complex Type: queryType
Super-types: None
Sub-types: None
Name queryType
Abstract no
XML Instance Representation: queryType
<...>
<openejb:query-method> [1]
<openejb:method-name> xs:string </openejb:method-name> [1]
<openejb:method-params> [1]
<openejb:method-param> xs:string </openejb:method-param> [0..*]
</openejb:method-params>
</openejb:query-method>
<openejb:result-type-mapping> xs:string </openejb:result-type-mapping> [0..1]
<openejb:ejb-ql> xs:string </openejb:ejb-ql> [0..1]
<openejb:no-cache-flush> ... </openejb:no-cache-flush> [0..1]
<openejb:group-name> xs:string </openejb:group-name> [0..1]
</...>
Schema Component Representation: queryType
<xs:complexType name="queryType">
<xs:sequence>
<xs:element name="query-method">
<xs:complexType>
<xs:sequence>
<xs:element name="method-name" type=" xs:string "/>
<xs:element name="method-params">
<xs:complexType>
<xs:sequence>
<xs:element name="method-param" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="result-type-mapping" type=" xs:string " minOccurs="0"/>
<xs:element name="ejb-ql" type=" xs:string " minOccurs="0"/>
<xs:element name="no-cache-flush" minOccurs="0"/>
<xs:element name="group-name" type=" xs:string " minOccurs="0"/>
</xs:sequence>
</xs:complexType>

Element : relationshipsType

Name relationshipsType
Abstract no
XML Instance Representation: relationshipsType
<...>
<openejb:ejb-relation> openejb:ejb-relationType
<!--
Uniqueness Constraint - role-name-uniqueness
Selector - .//openejb:ejb-relationship-role-name
Field(s) - .
-->
</openejb:ejb-relation> [1..*]
</...>
Schema Component Representation: relationshipsType
<xs:complexType name="relationshipsType">
<xs:sequence>
<xs:element name="ejb-relation" type=" openejb:ejb-relationType " maxOccurs="unbounded">
<xs:unique name="role-name-uniqueness">
<xs:selector xpath=".//openejb:ejb-relationship-role-name"/>
<xs:field xpath="."/>
</xs:unique>
</xs:element>
</xs:sequence>
</xs:complexType>

Complex Type: session-beanType

Complex Type: session-beanType
Super-types: None
Sub-types: None
Name session-beanType
Abstract no
XML Instance Representation: session-beanType
<...
id=" xs:ID [0..1]">
<openejb:ejb-name> xs:string </openejb:ejb-name> [1]
<openejb:jndi-name> xs:string </openejb:jndi-name> [0..*]
<openejb:local-jndi-name> xs:string </openejb:local-jndi-name> [0..*]
Start Group: openejb:tssGroup [0..1]
Start Choice [1]
<openejb:tss-target-name> xs:string </openejb:tss-target-name> [1]
<openejb:tss-link> xs:string </openejb:tss-link> [1]
<openejb:tss> openejb:tssType </openejb:tss> [1]
End Choice
End Group: openejb:tssGroup
<openejb:web-service-address> xs:string </openejb:web-service-address> [0..1]
<openejb:web-service-virtual-host> xs:string </openejb:web-service-virtual-host> [0..*]
<openejb:web-service-security> openejb:web-service-securityType </openejb:web-service-security> [0..1]
</...>
Schema Component Representation: session-beanType
<xs:complexType name="session-beanType">
<xs:sequence>
<xs:element name="ejb-name" type=" xs:string "/>
<xs:element name="jndi-name" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="local-jndi-name" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
<xs:group ref=" openejb:tssGroup " minOccurs="0"/>
<xs:group ref=" naming:jndiEnvironmentRefsGroup "/>
<xs:element name="web-service-address" type=" xs:string " minOccurs="0"/>
<xs:element name="web-service-virtual-host" type=" xs:string " minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="web-service-security" type=" openejb:web-service-securityType " minOccurs="0"/>
</xs:sequence>
<xs:attribute name="id" type=" xs:ID "/>
</xs:complexType>

Complex Type: tssType

Complex Type: tssType
Super-types: None
Sub-types: None
Name tssType
Abstract no
XML Instance Representation: tssType
<...>
<openejb:domain> xs:string </openejb:domain> [0..1]
<openejb:server> xs:string </openejb:server> [0..1]
<openejb:application> xs:string </openejb:application> [0..1]
<openejb:module> xs:string </openejb:module> [0..1]
<openejb:name> xs:string </openejb:name> [1]
</...>
Schema Component Representation: tssType
<xs:complexType name="tssType">
        <xs:sequence>
            <!-- this is object name group from geronimo-naming.xsd -->
            <xs:element name="domain" type="xs:string" minOccurs="0"/>
            <xs:element name="server" type="xs:string" minOccurs="0"/>
            <xs:element name="application" type="xs:string" minOccurs="0"/>
            <xs:element name="module" type="xs:string" minOccurs="0"/>
            <!--            <xs:element name="type" type="xs:string" minOccurs="0"/>-->
            <xs:element name="name" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

Complex Type: web-service-securityType

Complex Type: web-service-securityType
Super-types: None
Sub-types: None
Name web-service-securityType
Abstract no
XML Instance Representation: web-service-securityType
<...>
<openejb:security-realm-name> xs:string </openejb:security-realm-name> [1]
<openejb:realm-name> xs:string </openejb:realm-name> [0..1]
<openejb:transport-guarantee> openejb:transport-guaranteeType </openejb:transport-guarantee> [1]
<openejb:auth-method> openejb:auth-methodType </openejb:auth-method> [1]
</...>
Schema Component Representation: web-service-securityType
<xs:complexType name="web-service-securityType">
<xs:sequence>
<xs:element name="security-realm-name" type=" xs:string "/>
<xs:element name="realm-name" type=" xs:string " minOccurs="0"/>
<xs:element name="transport-guarantee" type=" openejb:transport-guaranteeType "/>
<xs:element name="auth-method" type=" openejb:auth-methodType "/>
</xs:sequence>
</xs:complexType>

Model Group: tssGroup

Model Group: