Помешать 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 ответ
Вы сами нашли ответ. Если вы добавите @XMLTransient
аннотация к полю, она будет опущена при создании JAXB Java-to-schema. Об этом говорится в документации XMLTransient.
Если твой schemagen
инструмент, который вы используете, не делает этого, так как имеет ошибку в своей реализации.