XMLUnit - Как сравнить самозакрывающийся тег с незакрывающимся?

У меня есть две части XML, часть из которых:

<userActionRequiredCode>0</userActionRequiredCode>

<userActionRequiredCode xsi:nil="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>

Они находятся в разных файлах, которые я сравниваю с помощью XMLUnit.

Они разные, как видите, не одинаковые, не похожие. Какие параметры я могу установить для XMLUnit или класса Diff или где-либо еще, чтобы учесть эту разницу.

В настоящее время это не отображается в списке различий.

Изменить: обновлен образец.

ОБНОВЛЕНИЕ. Первоначальная проблема заключалась не в том, что XMLUnit распознал разницу. Это была ошибка с моей стороны. XMLUnit правильно распознает разницу. Эта конкретная проблема, следовательно, является фиктивной, невоспроизводимой.


person anuvab1911    schedule 06.05.2016    source источник
comment
Эээ, что? <userActionRequiredSince> и <userActionRequiredCode> даже не один и тот же тег, так о чем вы говорите?   -  person Andreas    schedule 06.05.2016
comment
Извините, обновлено, чтобы отразить правильный образец.   -  person anuvab1911    schedule 06.05.2016
comment
Значение 0 и значение ничего (пустая строка или nil) не являются одним и тем же значением. Вы говорите, что XMLUnit утверждает, что они равны?   -  person Andreas    schedule 06.05.2016
comment
да. В диффе не отображается.   -  person anuvab1911    schedule 06.05.2016
comment
Невозможно повторить.   -  person Andreas    schedule 06.05.2016


Ответы (1)


Простой MCVE показывает, что они разные, поэтому, если вы не видите разницы, вы настраиваете XMLUnit, чтобы этого не было.

final String control = "<userActionRequiredCode>0</userActionRequiredCode>";
final String test = "<userActionRequiredCode xsi:nil=\"1\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"/>";

Diff myDiff = DiffBuilder.compare(Input.fromString(control))
                         .withTest(Input.fromString(test))
                         .build();
System.out.println(myDiff.toString());

ВЫВОД

Expected child nodelist length '1' but was '0' - comparing <userActionRequiredCode...> at /userActionRequiredCode[1] to <userActionRequiredCode...> at /userActionRequiredCode[1]
person Andreas    schedule 06.05.2016