Explanation: When two message tree fields are compared,
typically this action compares the field and all of its subtree. Under
certain conditions in Version 2.1, the
MRM did not compare the subtree, but only the field value itself.
Therefore, when the same comparison is done in Version 6.0, the comparison fails. Consider
an example message:
<TestCase>
<Folder1>Value1
<Field1>Value2
</Folder1>
<Folder2>Value1
<Field1>Value3
</Folder2>
</TestCase>
Now consider the following ESQL:
IF InputRoot.XML.TestCase.Folder1 = InputRoot.XML.TestCase.Folder2 THEN
SET OutputRoot.XML.Result = 'Same';
ELSE
SET OutputRoot.XML.Result = 'Different';
END IF;
When Folder1 and Folder2 are compared, the
value of the fields are compared first. In this example, both fields
have a value of 'Value1'; therefore, the comparison is successful
and it continues. The code navigates to the first child in both Folder1
and Folder2. These fields are now compared for name, type, and value.
In both folders, the name 'Field1' is the same, but the child in Folder1
has a value of 'Value2', and the child in Folder2 has a value of 'Value3'.
The comparison therefore evaluates to FALSE.
If these fields
had compared successfully, the comparison checks recursively through
children of this field, and then siblings. Therefore, when message
tree fields are compared with this ESQL code, the whole of the subtree
has to match in field names, types, and values, and the hierarchy
must be identical. If any discrepancy is found, the comparison returns
FALSE.