JAXB Сделать QName в Objectfactory доступным

Когда вы создаете классы Java с помощью JAXB, вы всегда получаете класс с именем ObjectFactory. В этом классе есть закрытый атрибут QName с пространством имен в нем.

Можно ли указать генератору сделать этот атрибут доступным извне. Так что, может быть, сделать его общедоступным или создать для него геттер?


person flash    schedule 15.09.2010    source источник


Ответы (2)


Я считаю, что эти private static QName поля генерируются только в том случае, если ObjectFactory нужны методы, создающие JAXBElement<...> экземпляры. Если вы вызываете один из этих методов для получения экземпляра JAXBElement, вы можете затем вызвать его метод getName для получения связанного с ним QName.

person kschneid    schedule 15.09.2010
comment
Я могу создать такой JAXBElement‹›, передав нулевое значение в метод createXXX(). С этим созданным объектом я мог бы использовать метод getName(). Спасибо за это решение. - person flash; 16.09.2010
comment
Я также обнаружил, что это лучший способ. Кроме того, я обычно расширяю сгенерированный класс ObjectFactory и добавляю общедоступные конечные методы для возврата QNames. - person Patrice M.; 16.05.2012

Я не знаю, как это сделать с помощью инструмента XJC, который поставляется с эталонной реализацией JAXB. Тем не менее, XJC позволяет вам создавать собственные плагины, которые могут позволить вам:

person bdoughan    schedule 15.09.2010