Помешать 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 инструмент, который вы используете, не делает этого, так как имеет ошибку в своей реализации.

Другие вопросы по тегам