Use the entity metadata XML schema definition to create a descriptor XML file and define an entity schema for WebSphere® eXtreme Scale.
See the Entity metadata descriptor XML file for the descriptions of each element and attribute of the emd.xsd file.
<?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> <!-- **************************************************** --> <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>