Я искал способ изменить поведение JAXB для элементов xs:any, потому что мы используем поток вместо DOM. Нам нужно иметь возможность обрабатывать огромные (гигабайты) файлы/потоки данных.
JAXB сгенерирует любые свойства, используя для них аннотацию @XmlAnyElement. Поскольку мы используем нашу собственную реализацию потока, нам нужно вообще избегать генерации JAXB свойства any. Однако, как кажется, невозможно указать привязке JAXB игнорировать элементы xs:any.
В моих текущих исследованиях по этой теме я понял, что можно написать DomHandler, который будет использоваться. Теперь, если этот DomHandler будет выглядеть так:
StreamHandler implements DomHandler<MyStream, StreamResult>
мы могли бы использовать этот DomHandler для выполнения работы без необходимости добавлять логику потока рядом с нашими сгенерированными классами. Теперь мы можем просто повторно использовать для этого сгенерированное любое свойство.
DomHandler должен быть установлен следующим образом
@XmlAnyElement(StreamHandler.class)
Но как я могу определить в xjb-файле привязки jaxb использование этого DomHandler в сгенерированных аннотациях @XmlAnyElement?
Изменить:
Я подал этот запрос и реализовал дополнение JAXB maven-plugin для решения этой проблемы. Я могу запросить добавление этого дополнения в пакет основных дополнений.