【问题标题】:prevent schemagen from adding the super-class to the schema?防止 schemagen 将超类添加到模式中?
【发布时间】:2010-03-15 21:02:21
【问题描述】:

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

【问题讨论】:

  • 架构中的超类型是否会导致问题?
  • 是的,是添加ID字段,不需要
  • 嗯 @XmlTransient 应该对属性起作用。你试过把它放在吸气剂上吗?

标签: java jaxb schemagen


【解决方案1】:

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

如果您使用的schemagen 工具没有执行此操作,则说明它的实现存在错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多