Erläuterung: Wenn zwei Nachrichtenbaumstrukturfelder verglichen werden, werden für gewöhnlich das Feld mit all seinen Unterverzeichnisstrukturen verglichen. In manchen Situationen wurde in Version 2.1 nicht die Unterverzeichnisstruktur, sondern lediglich der Feldwert selbst vom MRM verglichen.
Wenn also derselbe Vergleich in Version 6.0 stattfindet, schlägt der Vergleich fehl. Es folgt eine Beispielnachricht:
<TestCase>
<Folder1>Value1
<Field1>Value2
</Folder1>
<Folder2>Value1
<Field1>Value3
</Folder2>
</TestCase>
Beachten Sie jetzt den folgenden ESQL-Code:
IF InputRoot.XML.TestCase.Folder1 = InputRoot.XML.TestCase.Folder2 THEN
SET OutputRoot.XML.Result = 'Same';
ELSE
SET OutputRoot.XML.Result = 'Different';
END IF;
Beim Vergleich von Folder1 und Folder2 wird zunächst der Wert der Felder verglichen. In diesem Beispiel haben beide Felder den Wert 'Value1'; aus diesem Grund ist der Vergleich erfolgreich, und der Vorgang wird fortgesetzt. Der Code navigiert jeweils zum ersten untergeordneten Eintrag von Folder1 und Folder2. Diese Felder werden jetzt im Hinblick auf Name, Typ und Wert verglichen.
In beiden Ordnern ist der Name 'Field1'
identisch, der untergeordnete Eintrag von Folder1 hat jedoch den Wert 'Value2', und der untergeordnete Eintrag in Folder2 hat den Wert 'Value3'.
Aus diesem Grund ergibt der Vergleich FALSE.
Wenn diese Felder erfolgreich verglichen wurden, führt der Vergleich rekursive Prüfungen in den untergeordneten Einträgen und anschließend in den gleichgeordneten Einträgen dieses Feldes durch. Wenn also die Nachrichtenbaumstrukturfelder mit diesem ESQL-Code verglichen werden, muss die gesamte Unterverzeichnisstruktur im Hinblick auf Feldnamen, Typen und Werte übereinstimmen, und die Hierarchie muss identisch sein. Werden Diskrepanzen festgestellt, gibt der Vergleich FALSE zurück.