如何阻止schemagen将超类添加到架构中?
我尝试在超类及其字段上使用XMLTransient
,但它们仍会显示在架构中。
例如:
@XmlTransient
public class Asset {
@XmlTransient
public Long ID;
}
public class Movie extends Asset {
}
创建此架构:
<xs:complexType name="asset">
<xs:sequence>
<xs:element name="ID" type="xs:long" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="movie">
<xs:complexContent>
<xs:extension base="asset">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
the schema that i would like to see is :
<xs:complexType name="movie">
<xs:complexContent>
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
答案 0 :(得分:1)
你自己找到了答案。如果将@XMLTransient
注释添加到字段,JAXB Java到模式生成将省略它。这在此处说明XMLTransient documentation。
如果您使用的schemagen
工具没有这样做,那么它的实现就会出错。