Можно добавлять аннотации во время выполнения.
Парень из нашей компании попробовал это на занятиях, посмотрите код:
https://github.com/OlivierCroisier/AnnotationInjector/blob/master/src/main/java/net/thecodersbreakfast/annotationinjector/AnnotationInjector.java
Обратите внимание, что он только добавляет аннотации к классу. Он говорит, что сложнее сделать то же самое с методами или конструктором. Я не уверен, что понимаю все, что он говорит в своих французских слайдах (http://www.slideshare.net/Zenika/annotations-paris-jug в конце)
но кажется, что то, что вы хотите, может быть возможным, но ваши аннотации будут только на тех экземплярах, в которых вы их изменяете, а не на всех экземплярах (но, возможно, это то, что вы хотите?)
Однако он не сказал, как получить карту аннотаций на поле или метод конкретного экземпляра, и я не вижу, как его получить.
Обратите внимание, что многие методы JDK возвращают скопированные значения, поэтому вы не можете просто изменить массив getAnnotations (), он не будет иметь никакого эффекта ... (но кажется необходимым инициализировать поле аннотаций в классе, см. Его код)
Удачи, возможно, попытайтесь связаться с ним.
Изменить: вы могли бы просто сделать 2 разных класса и выбрать правильный для использования во время выполнения? это кажется мне легче, если вы не можете использовать МОКСИ.
Но я думаю, что вы не сможете переопределить метод с / без xmltransient, потому что они не являются @Inherited для этой аннотации JAXB, как мне кажется (но я могу ошибаться, но никогда не проверял наследование аннотаций ...