Я пытаюсь написать автоматический тест приложения, которое в основном преобразует пользовательский формат сообщения в сообщение XML и отправляет его на другой конец. У меня есть хороший набор пар входных / выходных сообщений, поэтому все, что мне нужно сделать, это отправить входные сообщения и прослушать, чтобы сообщение XML вышло на другом конце.
Когда приходит время сравнить фактический результат с ожидаемым, у меня возникают некоторые проблемы. Моей первой мыслью было сравнение строк ожидаемых и фактических сообщений. Это не очень хорошо работает, потому что примеры данных, которые мы имеем, не всегда отформатированы согласованно, и часто для псевдонима XML часто используются разные псевдонимы (а иногда пространства имен вообще не используются).
Я знаю, что могу проанализировать обе строки, а затем пройтись по каждому элементу и сравнить их самостоятельно, и это не составит большого труда, но я чувствую, что есть лучший способ или библиотека, которую я могу использовать.
Итак, свалившись, вопрос:
Учитывая две строки Java, которые содержат действительный XML, как бы вы определили, являются ли они семантически эквивалентными? Бонусные баллы, если у вас есть возможность определить разницу.