Мне приходится работать с большими документами XML, которые часто неправильно обрабатывают недостающие данные атрибутов.Вместо того, чтобы просто пропустить атрибут с отсутствующими данными, атрибут указывается с пустым строковым значением.Это вызывает проблему при демаршаллинге, поскольку пустая строка равна значению.
Например, что должно быть
<SOME_ELEMENT attr1="someValue"/>
Вместо
<SOME_ELEMENT attr1="someValue" attr2="" attr3=""/>
Я пытаюсь найти «правильный» способ изящной обработки этого плохо сформированного XML.Цель состоит в том, чтобы обрабатывать атрибут, как если бы он был опущен, когда значением атрибута является пустая строка, а пустая строка никогда не является допустимым значением для этого атрибута (например, целых чисел).
В настоящее время я использую XMLAdapters для перевода этих пустых строк в ноль (как предложено в этом посте ), но это кажется неправильным решением.Многие из атрибутов в документах, над которыми я работаю, уже используют адаптеры типов, совместно используемые из другого кода, и, похоже, нет способа указать более одного адаптера XML для атрибута.
Существует ли стандартспособ справиться с такой ситуацией, которую я только что пропустил?
Спасибо!
РЕДАКТИРОВАТЬ
Я ищу решение, которое не требует от меня редактирования каждого из различных отображаемых классов JAXB, посколькуЕсть несколько десятков с одинаковыми потребностями.В идеале решение этой проблемы позволит мне указать общую политику для всех атрибутов и при необходимости предусмотреть конкретные переопределения.