Я делаю проект для клиента, где мне нужно читать XML-файлы, анализировать их, при необходимости вносить некоторые исправления и записывать их снова. Я использовал JAXB, чтобы решить эту проблему, просто разархивировав файл, работая с результирующими объектами и сортируя объекты обратно в файлы по завершении.
К сожалению, мой клиент требует, чтобы XML-файлы не изменялись, за исключением тех частей, которые намеренно изменены моей программой. Это вызывает проблемы, поскольку JAXB изменяет XML-файлы при маршаллинге, например, изменяя порядок атрибутов или перемещая определение пространства имен до корневого элемента структуры XML.
Есть ли у меня какие-либо возможности изменить выход маршаллера JAXB, чтобы он соответствовал ожиданиям моего клиента? Или, если это невозможно с помощью JAXB, существуют ли какие-либо альтернативные библиотеки XML для Java, которые могут максимально сохранить файлы XML? В настоящее время я пытаюсь использовать для этого DOM и SAX, но мне кажется, что заставить их работать так, как я хочу, очень сложно...