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>