我注释了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在这里不合适,因此请将其从适配器类中删除。

10-06 14:08