Use a definição de esquema XML de metadados de entidade para criar um arquivo descritor XML e definir um esquema de entidade para o WebSphere eXtreme Scale.
Consulte o Arquivo Descritor XML de Metadados de EntidadeArquivo Descritor XML de Metadados de Entidade para obter descrições de cada elemento e atributo do arquivo emd.xsd.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:emd="http://ibm.com/ws/projector/config/emd"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://ibm.com/ws/projector/config/emd"
elementFormDefault="qualified" attributeFormDefault="unqualified"
version="1.0">
<!-- **************************************************** -->
<xsd:element name="entity-mappings">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="description" type="xsd:string" minOccurs="0"/>
<xsd:element name="entity" type="emd:entity" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:unique name="uniqueEntityClassName">
<xsd:selector xpath="emd:entity" />
<xsd:field xpath="@class-name"/>
</xsd:unique>
</xsd:element>
<!-- **************************************************** -->
<xsd:complexType name="entity">
<xsd:sequence>
<xsd:element name="description" type="xsd:string" minOccurs="0"/>
<xsd:element name="id-class" type="emd:id-class" minOccurs="0"/>
<xsd:element name="attributes" type="emd:attributes" minOccurs="0"/>
<xsd:element name="entity-listeners" type="emd:entity-listeners" minOccurs="0"/>
<xsd:element name="pre-persist" type="emd:pre-persist" minOccurs="0"/>
<xsd:element name="post-persist" type="emd:post-persist" minOccurs="0"/>
<xsd:element name="pre-remove" type="emd:pre-remove" minOccurs="0"/>
<xsd:element name="post-remove" type="emd:post-remove" minOccurs="0"/>
<xsd:element name="pre-invalidate" type="emd:pre-invalidate" minOccurs="0"/>
<xsd:element name="post-invalidate" type="emd:post-invalidate" minOccurs="0"/>
<xsd:element name="pre-update" type="emd:pre-update" minOccurs="0"/>
<xsd:element name="post-update" type="emd:post-update" minOccurs="0"/>
<xsd:element name="post-load" type="emd:post-load" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="class-name" type="xsd:string" use="required"/>
<xsd:attribute name="access" type="emd:access-type"/>
<xsd:attribute name="schemaRoot" type="xsd:boolean"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="attributes">
<xsd:sequence>
<xsd:choice>
<xsd:element name="id" type="emd:id" minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:element name="basic" type="emd:basic" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="version" type="emd:version" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="many-to-one" type="emd:many-to-one" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="one-to-many" type="emd:one-to-many" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="one-to-one" type="emd:one-to-one" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="many-to-many" type="emd:many-to-many" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="transient" type="emd:transient" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:simpleType name="access-type">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="PROPERTY"/>
<xsd:enumeration value="FIELD"/>
</xsd:restriction>
</xsd:simpleType>
<!-- **************************************************** -->
<xsd:complexType name="id-class">
<xsd:attribute name="class-name" type="xsd:string" use="required"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="id">
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="alias" type="xsd:string" use="optional"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="transient">
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="basic">
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="alias" type="xsd:string"/>
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="fetch" type="emd:fetch-type"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:simpleType name="fetch-type">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="LAZY"/>
<xsd:enumeration value="EAGER"/>
</xsd:restriction>
</xsd:simpleType>
<!-- **************************************************** -->
<xsd:complexType name="many-to-one">
<xsd:sequence>
<xsd:element name="cascade" type="emd:cascade-type" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="alias" type="xsd:string"/>
<xsd:attribute name="target-entity" type="xsd:string"/>
<xsd:attribute name="fetch" type="emd:fetch-type"/>
<xsd:attribute name="id" type="xsd:boolean"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="one-to-one">
<xsd:sequence>
<xsd:element name="cascade" type="emd:cascade-type" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="alias" type="xsd:string"/>
<xsd:attribute name="target-entity" type="xsd:string"/>
<xsd:attribute name="fetch" type="emd:fetch-type"/>
<xsd:attribute name="mapped-by" type="xsd:string"/>
<xsd:attribute name="id" type="xsd:boolean"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="one-to-many">
<xsd:sequence>
<xsd:element name="order-by" type="emd:order-by" minOccurs="0"/>
<xsd:element name="cascade" type="emd:cascade-type" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="alias" type="xsd:string"/>
<xsd:attribute name="target-entity" type="xsd:string"/>
<xsd:attribute name="fetch" type="emd:fetch-type"/>
<xsd:attribute name="mapped-by" type="xsd:string"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="many-to-many">
<xsd:sequence>
<xsd:element name="order-by" type="emd:order-by" minOccurs="0"/>
<xsd:element name="cascade" type="emd:cascade-type" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="alias" type="xsd:string"/>
<xsd:attribute name="target-entity" type="xsd:string"/>
<xsd:attribute name="fetch" type="emd:fetch-type"/>
<xsd:attribute name="mapped-by" type="xsd:string"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:simpleType name="order-by">
<xsd:restriction base="xsd:string"/>
</xsd:simpleType>
<!-- **************************************************** -->
<xsd:complexType name="cascade-type">
<xsd:sequence>
<xsd:element name="cascade-all" type="emd:emptyType" minOccurs="0"/>
<xsd:element name="cascade-persist" type="emd:emptyType" minOccurs="0"/>
<xsd:element name="cascade-remove" type="emd:emptyType" minOccurs="0"/>
<xsd:element name="cascade-invalidate" type="emd:emptyType" minOccurs="0"/>
<xsd:element name="cascade-merge" type="emd:emptyType" minOccurs="0"/>
<xsd:element name="cascade-refresh" type="emd:emptyType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="emptyType" />
<!-- **************************************************** -->
<xsd:complexType name="version">
<xsd:attribute name="name" type="xsd:string" use="required" />
<xsd:attribute name="alias" type="xsd:string"/>
<xsd:attribute name="type" type="xsd:string" />
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="entity-listeners">
<xsd:sequence>
<xsd:element name="entity-listener" type="emd:entity-listener" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="entity-listener">
<xsd:sequence>
<xsd:element name="pre-persist" type="emd:pre-persist" minOccurs="0"/>
<xsd:element name="post-persist" type="emd:post-persist" minOccurs="0"/>
<xsd:element name="pre-remove" type="emd:pre-remove" minOccurs="0"/>
<xsd:element name="post-remove" type="emd:post-remove" minOccurs="0"/>
<xsd:element name="pre-invalidate" type="emd:pre-invalidate" minOccurs="0"/>
<xsd:element name="post-invalidate" type="emd:post-invalidate" minOccurs="0"/>
<xsd:element name="pre-update" type="emd:pre-update" minOccurs="0"/>
<xsd:element name="post-update" type="emd:post-update" minOccurs="0"/>
<xsd:element name="post-load" type="emd:post-load" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="class-name" type="xsd:string" use="required"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="pre-persist">
<xsd:attribute name="method-name" type="xsd:string" use="required"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="post-persist">
<xsd:attribute name="method-name" type="xsd:string" use="required"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="pre-remove">
<xsd:attribute name="method-name" type="xsd:string" use="required"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="post-remove">
<xsd:attribute name="method-name" type="xsd:string" use="required"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="pre-invalidate">
<xsd:attribute name="method-name" type="xsd:string" use="required"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="post-invalidate">
<xsd:attribute name="method-name" type="xsd:string" use="required"/>
</xsd:complexType>
<!-- **************************************************** -->
1 <xsd:complexType name="pre-update">
<xsd:attribute name="method-name" type="xsd:string" use="required"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="post-update">
<xsd:attribute name="method-name" type="xsd:string" use="required"/>
</xsd:complexType>
<!-- **************************************************** -->
<xsd:complexType name="post-load">
<xsd:attribute name="method-name" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:schema>