我像这样注释了一个 XmlAdapter 类:
@XmlTransient
public class DateTimeXmlAdapter extends XmlAdapter<String, DateTime> {
但 schemagen.exe 生成
<xs:complexType name="xmlAdapter" abstract="true">
<xs:sequence/>
</xs:complexType>
所以没有逃课,这是我所期望的。 XmlAdapter 确实是我的 transient 类继承自的抽象类。我应该怎么办?
我在字段中引用 DateTimeXmlAdapter 的原因是:
@XmlElement(name="StartDatetime")
@XmlJavaTypeAdapter(DateTimeXmlAdapter.class)
protected DateTime startDatetime;
我认为这是正确的。
最佳答案
看起来您已经告诉 schemagen
为您的 java 包中的所有内容生成模式类型,包括 XmlAdapter
子类。因此,它会看到您的适配器类,它被标记为 @XmlTransient
,因此不会为其生成模式类型。但是,它确实会为 XmlAdapter
本身生成架构类型。
您需要更改调用 schemagen
的方式,以便从代码生成中排除您的适配器类。 @XmlTransient
在这里不合适,所以从适配器类中删除它。
关于java - schemagen.exe 不会跳过 @XmlTransient 注释类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1487285/