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

时间:2010-03-15 21:02:22

标签: java jaxb schemagen

如何阻止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>

1 个答案:

答案 0 :(得分:1)

你自己找到了答案。如果将@XMLTransient注释添加到字段,JAXB Java到模式生成将省略它。这在此处说明XMLTransient documentation

如果您使用的schemagen工具没有这样做,那么它的实现就会出错。