Explicação: Quando dois campos de árvores de mensagens são comparados, essa ação normalmente compara o campo e todas as suas subárvores. Sob determinadas circunstâncias em Versão 2.1, o MRM não compara a subárvore, mas apenas o valor do próprio campo. Portanto, quando a mesma comparação é feita em Versão 6.0, ela falha. Considere uma mensagem de exemplo:
<TestCase>
<Folder1>Value1
<Field1>Value2
</Folder1>
<Folder2>Value1
<Field1>Value3
</Folder2>
</TestCase>
Considere agora o seguinte ESQL:
IF InputRoot.XML.TestCase.Folder1 = InputRoot.XML.TestCase.Folder2 THEN
SET OutputRoot.XML.Result = 'Igual';
ELSE
SET OutputRoot.XML.Result = 'Diferente';
END IF;
Quando Folder1 e Folder2 são comparados, o valor dos campos é comparado
primeiro. Nesse exemplo, ambos os campos têm um valor 'Value1'; portanto, a comparação é bem-sucedida e continua. O código navega para o primeiro filho em Folder1 e em Folder2. Esses campos são agora
comparados em relação a nome, tipo e valor. Em ambos os campos, o nome 'Field1'
é igual, mas o filho em Folder1 tem um valor 'Value2' e o filho em
Folder2 tem um valor 'Value3'. A comparação portanto é avaliada como FALSE.
Se esses campos foram comparados com êxito, a comparação é verificada
recursivamente pelos filhos desse campo e, em seguida, pelos irmãos. Portanto,
quando os campos da árvore de mensagens são comparados com esse código de ESQL, a subárvore
inteira deve corresponder em nomes, tipos e valores de campos e a hierarquia deve ser idêntica. Se alguma discrepância for encontrada, a comparação retornará FALSE.