説明: 2 つのメッセージ・ツリーのフィールドを比較するとき、通常この操作によって、フィールドおよびそのすべてのサブツリーが比較されます。バージョン 2.1 では、ある条件の下では MRM はサブツリーを比較せず、フィールド値自体のみを比較しました。したがって、同じ比較がバージョン 6.0 で行われると、比較は失敗します。 次のメッセージの例をご覧ください。
<TestCase>
<Folder1>Value1
<Field1>Value2
</Folder1>
<Folder2>Value1
<Field1>Value3
</Folder2>
</TestCase>
次に、以下の ESQL をご覧ください。
IF InputRoot.XML.TestCase.Folder1 = InputRoot.XML.TestCase.Folder2 THEN
SET OutputRoot.XML.Result = 'Same';
ELSE
SET OutputRoot.XML.Result = 'Different';
END IF;
Folder1 と Folder2 が比較されるとき、フィールドの値が先に比較されます。この例では、両方のフィールドに「Value1」の値があります。したがって、比較が正常に行われ、続行されます。コードは Folder1 と Folder2 の両方の最初の子にナビゲートします。これらのフィールドは、名前、タイプ、値について比較されます。両方のフォルダーで、名前「Field1」は同じですが、Folder1 の子には「Value2」の値があり、Folder2 の子には「Value3」の値があります。それで、比較の評価は FALSE になります。
これらのフィールドが正常に比較された場合、比較はこのフィールドの子、それからその兄弟と再帰的にチェックします。したがって、メッセージ・ツリーのフィールドがこの ESQL コードによって比較された場合には、サブツリー全体がフィールド名、タイプ、および値において一致しなければならず、階層も同一でなければなりません。矛盾が検出された場合、比較は FALSE を戻します。