Le schéma suivant est à suivre lors de la rédaction de spécifications de mappage :
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.curamsoftware.com/schemas/GUMBO/Map" xmlns:mp="http://www.curamsoftware.com/schemas/GUMBO/Map" elementFormDefault="qualified"> <xs:simpleType name="TargetEntityRoleType"> <xs:restriction base="xs:string"> <xs:enumeration value="parent"/> <xs:enumeration value="child"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="AttachmentType"> <xs:restriction base="xs:string"> <xs:enumeration value="case"/> </xs:restriction> </xs:simpleType> <xs:complexType name="MapAttributeType"> <xs:attribute name="from" type="xs:NCName" use="required"/> <xs:attribute name="to" type="xs:NCName" use="required"/> <xs:attribute name="mapping-function" type="xs:string" use="optional"/> <xs:attribute name="mapping-rule" type="xs:string" use="optional"/> <xs:attribute name="entity" type="xs:NCName" use="optional"/> </xs:complexType> <xs:complexType name="SetAttributeType"> <xs:attribute name="name" type="xs:NCName"/> <xs:attribute name="value" type="xs:string"/> </xs:complexType> <xs:element name="set-attribute" type="mp:SetAttributeType"/> <xs:complexType name="TargetEntityType"> <xs:sequence> <xs:element name="map-attribute" type="mp:MapAttributeType" Valeur minimale = "0" maxOccurs="unbounded"/> <xs:element ref="mp:set-attribute" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="mp:condition" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="name" type="xs:NCName"/> <xs:attribute name="type" type="mp:TargetEntityRoleType"/> <xs:attribute name="attachment" type="mp:AttachmentType"/> <xs:attribute name="id" type="xs:ID" use="optional"/> </xs:complexType> <xs:element name="target-entity" type="mp:TargetEntityType"/> <xs:complexType name="ConditionType"> <xs:choice> <xs:element ref="mp:target-entity" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="mp:target-entities" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="mp:set-attribute" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="mp:map-entity" minOccurs="0" maxOccurs="unbounded"/> </xs:choice> <xs:attribute name="expression" type="xs:string"/> </xs:complexType> <xs:element name="condition" type="mp:ConditionType"/> <xs:complexType name="MapEntityType"> <xs:sequence> <xs:element ref="mp:target-entity" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="mp:target-entities" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="mp:condition" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="mp:map-entity" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="mp:follow-association" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="source" type="xs:NCName"/> </xs:complexType> <xs:element name="map-entity" type="mp:MapEntityType"/> <xs:element name="follow-association" type="mp:MapEntityType"/> <xs:complexType name="MapEntitiesType"> <xs:sequence> <xs:element ref="mp:target-entity" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> <xs:element name="target-entities" type="mp:MapEntitiesType"/> <xs:complexType name="MapCodeTableValueType"> <xs:attribute name="source" type="xs:string"/> <xs:attribute name="target" type="xs:string"/> </xs:complexType> <xs:complexType name="MapCodeTableType"> <xs:sequence> <xs:element name="map-value" type="mp:MapCodeTableValueType" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="context" type="xs:NCName" use="optional"/> <xs:attribute name="source-codetable" type="xs:NCName"/> <xs:attribute name="target-codetable" type="xs:NCName"/> <xs:attribute name="source-package" type="xs:NCName" use="optional"/> <xs:attribute name="target-package" type="xs:NCName" use="optional"/> </xs:complexType> <xs:complexType name="MapType"> <xs:sequence> <xs:element name="map-code-table" type="mp:MapCodeTableType" minOccurs="0" maxOccurs="unbounded"/> <xs:element ref="mp:map-entity" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="name" type="xs:NCName"/> <xs:attribute name="from-schema" type="xs:NCName"/> <xs:attribute name="to-schema" type="xs:NCName"/> </xs:complexType> <xs:element name="map" type="mp:MapType"/> </xs:schema>