помешать schemagen добавить суперкласс в схему? - PullRequest
5 голосов
/ 16 марта 2010

как я могу запретить 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 Ответ

1 голос
/ 16 мая 2010

Вы сами нашли ответ. Если вы добавите аннотацию @XMLTransient в поле, она будет опущена при генерации Java-схемы JAXB. Об этом говорится здесь XMLTransient документация .

Если ваш schemagen инструмент, который вы используете, не делает этого, то он имеет ошибку в его реализации.

...