我注释了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;
我认为这是正确的。
最佳答案
似乎您已经告诉schemagen
为Java包中的所有内容(包括XmlAdapter
子类)生成模式类型。因此,它将看到标记为@XmlTransient
的适配器类,因此不会为其生成架构类型。但是,它确实为XmlAdapter
本身生成了架构类型。
您需要更改调用schemagen
的方式,以便将适配器类从代码生成中排除。 @XmlTransient
在这里不合适,因此请将其从适配器类中删除。