阻止schemagen将超类添加到模式中?

sha*_*hay 5 java jaxb schemagen

我如何阻止schemagen将超类添加到模式?

我已尝试XMLTransient在超类上使用它的字段,但它们仍然出现在模式中.

例如 :

@XmlTransient
public class Asset {

   @XmlTransient
   public Long ID;
}

public class Movie extends Asset {

}
Run Code Online (Sandbox Code Playgroud)

创建此架构:

<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>
Run Code Online (Sandbox Code Playgroud)

Len*_*lov 1

你自己已经找到了答案。如果将@XMLTransient注释添加到字段,JAXB Java-to-schema 生成将忽略该注释。XMLTransient 文档对此进行了说明。

如果您schemagen使用的工具没有做到这一点,那么它的实现就有问题。