Utilice la definición de esquema XML de metadatos de entidad para crear un archivo XML de descriptor y definir un esquema de entidad para WebSphere eXtreme Scale.
Consulte Archivo XML de descriptor de metadatos de entidadArchivo XML de descriptor de metadatos de entidad para ver las descripciones de cada uno de los elementos y atributos del archivo 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>
<!-- **************************************************** -->
<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>