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.
<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"/>
<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>
<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>
<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="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>
<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>
<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
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 |
<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 |
<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>
<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 |
<...>
<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]
</...>
<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 |
<...>
<openejb:description> xs:string </openejb:description> [0..*]
<openejb:activation-config-property> openejb:activation-config-propertyType </openejb:activation-config-property> [1..*]
</...>
<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 |
<...>
<openejb:group-name> xs:string </openejb:group-name> [1]
<openejb:cmp-field-name> xs:string </openejb:cmp-field-name> [1]
</...>
<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 |
<...>
<openejb:group-name> xs:string </openejb:group-name> [1]
<openejb:cmr-field-name> xs:string </openejb:cmr-field-name> [1]
</...>
<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 |
<...>
<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>
</...>
<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 |
<...>
<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]
</...>
<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 |
<xs:complexType name="emptyType"/>
Complex Type: entity-beanType
Complex Type: |
entity-beanType |
Super-types: |
None |
Sub-types: |
None |
Name |
entity-beanType |
Abstract |
no |
<...
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..*]
</...>
<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 |
<...>
<openejb:group-name> xs:string </openejb:group-name> [1]
</...>
<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 |
<...>
<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>
</...>
<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 |
<...
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]
</...>
<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 |
<...
<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..*]
</...>
<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 |
<...>
<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]
</...>
<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 |
<...>
<openejb:ejb-relation> openejb:ejb-relationType
<!--
Uniqueness Constraint - role-name-uniqueness
Selector - .//openejb:ejb-relationship-role-name
Field(s) - .
-->
</openejb:ejb-relation> [1..*]
</...>
<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 |
<...
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]
</...>
<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 |
<...>
<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]
</...>
<xs:complexType name="tssType">
<xs:sequence>
<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="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 |
<...>
<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]
</...>
<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: |
tssGroup |
Name |
tssGroup |
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
<xs:group name="tssGroup">
<xs:sequence>
<xs:choice>
<xs:element name="tss-target-name" type=" xs:string "/>
<xs:element name="tss-link" type=" xs:string "/>
<xs:element name="tss" type=" openejb:tssType "/>
</xs:choice>
</xs:sequence>
</xs:group>
Simple Type: auth-methodType
Simple Type: |
auth-methodType |
Super-types: |
xs:string < auth-methodType (by restriction) |
Sub-types: |
None |
Name |
auth-methodType |
Content |
- Base XSD Type: string
- value comes from list:
- BASIC
- DIGEST
- CLIENT-CERT
- NONE
|
<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>
Simple Type: transport-guranteeType
Simple Type: |
transport-guaranteeType |
Super-types: |
xs:string < transport-guaranteeType (by restriction) |
Sub-types: |
None |
Name |
transport-guranteeType |
Content |
- Base XSD Type: string
- value comes from list:
- NONE
- INTEGRAL
- CONFIDENTIAL
|
<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>
Legend
Complex Type: |
AusAddress |
Schema Component Type |
Schema Component Name |
Super-types: |
Address < AusAddress (by extension) |
Sub-types: |
|
QLDAddress (by restriction)
If this schema component is a type definition, its type hierarchy is shown in a gray-bordered box.
Name |
AusAddress |
Abstract |
no |
| The table above displays the properties of this schema component. |
<... country="Australia" >
<unitNo> string </unitNo> [0..1]
<houseNo> string </houseNo> [1]
<street> string </street> [1]
Start Choice [1]
<city> string </city> [1]
<town> string </town> [1]
End Choice
<state> AusStates </state> [1]
<postcode> string <<pattern = [1-9][0-9]{3}>> </postcode> [1] ?
</...>
The XML Instance Representation table above shows the schema component's content as an XML instance.
- The minimum and maximum occurrence of elements and attributes are provided in square brackets, e.g. 0..1.
- Model group information are shown in gray, e.g. Start Choice ... End Choice.
- For type derivations, the elements and attributes that have been added to or changed from the base type's content are shown in bold.
- If an element/attribute has a fixed value, the fixed value is shown in green, e.g. country="Australia".
- Otherwise, the type of the element/attribute is displayed.
o If the element/attribute's type is in the schema, a link is provided to it.
o For local simple type definitions, the constraints are displayed in angle brackets,
e.g. <pattern = [1-9][0-9]{3}/>
- If a local element/attribute has documentation, it will be displayed in a window that pops up when the question mark inside the attribute or next to the element is clicked, e.g. <postcode>.
<complexType name="AusAddress">
<complexContent>
<extension base=" Address ">
<sequence>
<element name="state" type=" AusStates "/>
<element name="postcode">
<simpleType>
<restriction base=" string ">
<pattern value="[1-9][0-9]{3}"/>
</restriction>
</simpleType>
</element>
</sequence>
<attribute name="country" type=" string " fixed="Australia"/>
</extension>
</complexContent>
</complexType>
The Schema Component Representation table above displays the underlying XML representation of the schema component. (Annotations are not shown.)
Glossary
Abstract (Applies to complex type definitions and element declarations). An abstract element or complex type cannot used to validate an element instance. If there is a reference to an abstract element, only element declarations that can substitute the abstract element can be used to validate the instance. For references to abstract type definitions, only derived types can be used.
All Model Group Child elements can be provided in any order in instances. See: http://www.w3.org/TR/xmlschema-1/#element-all.
Choice Model Group Only one from the list of child elements and model groups can be provided in instances. See: http://www.w3.org/TR/xmlschema-1/#element-choice.
Collapse Whitespace Policy Replace tab, line feed, and carriage return characters with space character (Unicode character 32). Then, collapse contiguous sequences of space characters into single space character, and remove leading and trailing space characters.
Disallowed Substitutions (Applies to element declarations). If substitution is specified, then substitution group members cannot be used in place of the given element declaration to validate element instances. If derivation methods, e.g. extension, restriction, are specified, then the given element declaration will not validate element instances that have types derived from the element declaration's type using the specified derivation methods. Normally, element instances can override their declaration's type by specifying an xsi:type attribute.
Key Constraint Like Uniqueness Constraint, but additionally requires that the specified value(s) must be provided. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.
Key Reference Constraint Ensures that the specified value(s) must match value(s) from a Key Constraint or Uniqueness Constraint. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.
Model Group Groups together element content, specifying the order in which the element content can occur and the number of times the group of element content may be repeated. See: http://www.w3.org/TR/xmlschema-1/#Model_Groups.
Nillable (Applies to element declarations). If an element declaration is nillable, instances can use the xsi:nil attribute. The xsi:nil attribute is the boolean attribute, nil, from the http://www.w3.org/2001/XMLSchema-instance namespace. If an element instance has an xsi:nil attribute set to true, it can be left empty, even though its element declaration may have required content.
Notation A notation is used to identify the format of a piece of data. Values of elements and attributes that are of type, NOTATION, must come from the names of declared notations. See: http://www.w3.org/TR/xmlschema-1/#cNotation_Declarations.
Preserve Whitespace Policy Preserve whitespaces exactly as they appear in instances.
Prohibited Derivations (Applies to type definitions). Derivation methods that cannot be used to create sub-types from a given type definition.
Prohibited Substitutions (Applies to complex type definitions). Prevents sub-types that have been derived using the specified derivation methods from validating element instances in place of the given type definition.
Replace Whitespace Policy Replace tab, line feed, and carriage return characters with space character (Unicode character 32).
Sequence Model Group Child elements and model groups must be provided in the specified order in instances. See: http://www.w3.org/TR/xmlschema-1/#element-sequence.
Substitution Group Elements that are members of a substitution group can be used wherever the head element of the substitution group is referenced.
Substitution Group Exclusions (Applies to element declarations). Prohibits element declarations from nominating themselves as being able to substitute a given element declaration, if they have types that are derived from the original element's type using the specified derivation methods.
Target Namespace The target namespace identifies the namespace that components in this schema belongs to. If no target namespace is provided, then the schema components do not belong to any namespace.
Uniqueness Constraint Ensures uniqueness of an element/attribute value, or a combination of values, within a specified scope. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.