我注释了一个XmlAdapter类,如下所示:
@XmlTransient
public class DateTimeXmlAdapter extends XmlAdapter<String, DateTime> {
但是schemagen.exe会生成
<xs:complexType name="xmlAdapter" abstract="true">
<xs:sequence/>
</xs:complexType>
所以不要跳过课程,这是我的预期。 XmlAdapter确实是我的瞬态类继承的抽象类。我该怎么办?
我在字段中引用DateTimeXmlAdapter的原因是:
@XmlElement(name="StartDatetime")
@XmlJavaTypeAdapter(DateTimeXmlAdapter.class)
protected DateTime startDatetime;
我认为这是正确的。
答案 0 :(得分:1)
看起来你已经告诉schemagen
为你的java包中的所有内容生成模式类型,包括XmlAdapter
子类。因此,它会看到您的适配器类,它被标记为@XmlTransient
,因此不会为其生成模式类型。但是,它确实为XmlAdapter
本身生成了一种模式类型。
您需要更改调用schemagen
的方式,以便从代码生成中排除适配器类。 @XmlTransient
在此处不合适,因此请从适配器类中删除它。