2009-09-28 2 views
2

я аннотированный класс XMLAdapter следующим образом:schemagen.exe не пропускает @XmlTransient аннотированный класс

@XmlTransient 
public class DateTimeXmlAdapter extends XmlAdapter<String, DateTime> { 

но schemagen.exe генерирует

<xs:complexType name="xmlAdapter" abstract="true"> 
    <xs:sequence/> 
    </xs:complexType> 

так does't пропустить класс, который был тем, чего я ожидал. XmlAdapter действительно является абстрактным классом, от которого наследуется мой переходный класс. Что мне делать?

Причина я имею в виду в поле DateTimeXmlAdapter является:

@XmlElement(name="StartDatetime") 
@XmlJavaTypeAdapter(DateTimeXmlAdapter.class) 
protected DateTime startDatetime; 

, который является правильным, я думаю.

ответ

1

Похоже, вы сказали schemagen, чтобы генерировать типы схем для всего в вашем пакете java, включая подкласс XmlAdapter. Поэтому он видит ваш класс адаптера, который помечен как @XmlTransient, и поэтому не генерирует для него тип схемы. Однако он генерирует тип схемы для самого XmlAdapter.

Вам необходимо изменить способ, которым вы вызываете schemagen, чтобы ваш класс адаптера был исключен из генерации кода. @XmlTransient здесь не подходит, поэтому удалите это из класса адаптера.

+0

см. Мое редактирование, как я использую адаптер в поле – Gerard

Смежные вопросы