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