5

如何防止 schemagen 将超类添加到架构中?

我已经尝试XMLTransient在超类及其字段上使用,但它们仍然出现在 schema 中。

例如 :

@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>
4

1 回答 1

1

你自己已经找到了答案。如果将@XMLTransient注释添加到字段,则 JAXB Java-to-schema 生成将忽略它。这在XMLTransient 文档中有所说明。

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

于 2010-05-16T10:55:10.480 回答