緊接上文:
<xsd:selector xpath="javaee:env-entry"/>
<xsd:field xpath="javaee:env-entry-name"/>
</xsd:unique>
</xsd:element>
</xsd:choice>
<xsd:attribute name="id" type="xsd:ID"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="entity-beanType">
<xsd:annotation>
<xsd:documentation>
entity-beanType 聲明了一個實體bean。聲明由以下内容組成:
- 可選的描述。
- 可選的顯示名。
- 可選的圖示元素,這個元素包含了一個小的和大的圖示檔案名。
- 一個配置設定到部署描述中企業bean 的唯一名稱。
- 一個可選的mapped-name 元素,它可以被用于提供供應商特有的部署資訊,
例如實體bean 遠端home 接口的jndi-name。這個元素不要求所有的實作都支援它。使用這個元素的應用都是不可移植的。
- 實體bean 遠端home 和remote 接口的名字,如果有的話。
-實體bean 本地home 和local 接口的名字,如果有的話。
- 實體bean 的實作類。
- 可選的實體bean 的持久化管理類型。如果沒有指定這個元素,則預設是容器。
- 實體bean 的主鍵類名。
- 實體bean 重入訓示。
- 可選的實體bean cmp-version 規範。
- 可選的實體bean 抽象schema 名字規範。
- 可選的容器管理字段的清單。
- 可選的主鍵字段規範。
- 可選的bean 環境條目聲明。
- 可選的bean 的EJB 引用聲明。
- 可選的bean 的本地EJB 引用聲明。
- 可選的bean 的web 服務引用聲明。
- 可選的安全角色引用聲明。
- 可選的用于bean 方法執行的安全辨別聲明。
- 可選的bean 資料總管連接配接工廠引用聲明。
- 可選的bean 的資源環境引用聲明。
- 可選的bean 的消息目的地引用聲明。
- 可選的用于finder 和select 方法的查詢聲明集,這些方法是用于cmp-version 2.x 的實體bean。
必須為使用容器管理持久化和cmp-version 2.x 的實體bean 指定可選的abstract-schema-name 元素。
如果實體的持久化類型是容器,那麼在部署描述中可以出現可選的primkey-field。
如果實體的persistence-type 是容器(Container),那麼在部署描述中可以
出現可選的cmp-version 元素。如果persistence-type 是Container,且沒有指定cmp-version,那麼它的值預設是2.x。
如果實體bean 的cmp-version 是1.x,那麼必須指定可選的home 和remote元素。
如果實體bean 有遠端home 和remote 接口,那麼必須指定可選的home 和remote 元素。
如果實體bean 有本地home 和local 接口,那麼必須指定可選的local-home和local 接口。
必須同時指定local-home 和local 元素,或home 和remote 元素。
如果persistence-type 是Container 且cmp-version 是2.x,同時已經為實體bean定義了除了findByPrimaryKey 方法以外的其他查詢方法,那麼必須指定可選的query 元素。
其他的可選元素,如果它們出現為空則忽略他們。
如果persistence-type 是Container 且cmp-version 是1.x ,那麼至少指定一個cmp-field 元素。如果persistence-type 是Bean,則可以不出現cmp-field 元素。
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:group ref="javaee:descriptionGroup"/>
<xsd:element name="ejb-name" type="javaee:ejb-nameType"/>
<xsd:element name="mapped-name" type="javaee:xsdStringType" minOccurs="0"/>
<xsd:element name="home" type="javaee:homeType" minOccurs="0"/>
<xsd:element name="remote" type="javaee:remoteType" minOccurs="0"/>
<xsd:element name="local-home" type="javaee:local-homeType" minOccurs="0"/>
<xsd:element name="local" type="javaee:localType" minOccurs="0"/>
<xsd:element name="ejb-class" type="javaee:ejb-classType"/>
<xsd:element name="persistence-type" type="javaee:persistence-typeType"/>
<xsd:element name="prim-key-class" type="javaee:fully-qualified-classType">
<xsd:annotation>
<xsd:documentation>
prim-key-class 元素包含了實體bean 主鍵類的全稱。如果主鍵類的定義在部署時被改變,那麼prim-key-class 元素應當被指定為java.lang.Object.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="reentrant" type="javaee:true-falseType">
<xsd:annotation>
<xsd:documentation>
Reentrant 元素指定了實體bean 是否是可重入的。Reentrant 元素必須是true或false。
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="cmp-version" type="javaee:cmp-versionType" minOccurs="0"/>
<xsd:element name="abstract-schema-name" type="javaee:java-identifierType" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
abstract-schema-name 元素指定了使用cmp-version 2.x 的實體bean 的抽象schema 類型的名稱。它用于EJB QL 查詢。例如,用于一個本地接口是com.acme.commerce.Order 的實體的abstract-schema-name 是 Order.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="cmp-field" type="javaee:cmp-fieldType" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="primkey-field" type="javaee:string" minOccurs="0">
<xsd:annotation>
<xsd:documentation>
primkey-field 元素用于指定使用容器管理持久化的實體bean 的主鍵字段名稱。
primkey-field 必須是聲明在cmp-field 元素中的字段,且這個字段類型必須和主鍵類型一緻。
如果主鍵映射到多個容器管理的字段(也就是,主鍵是組合主鍵),則不使用primkey-field 元素。在這種情況下,主鍵類的所有字段必須是public 的,且他們的名字必須對應于組成主鍵的實體bean 的字段名。
</xsd:documentation>
</xsd:annotation>
</xsd:element>