2010-03-15 15 views
5

¿cómo impido que schemagen agregue la superclase al esquema?¿impide que schemagen agregue la superclase al esquema?

He intentado usar XMLTransient en la superclase y en sus campos, pero aún aparecen en el esquema.

por ejemplo:

@XmlTransient 
public class Asset { 

    @XmlTransient 
    public Long ID; 
} 

public class Movie extends Asset { 

} 

crea este esquema:

<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> 
+0

¿El supertipo en el esquema está causando un problema? – skaffman

+0

sí, está agregando el campo ID, que no es necesario – shay

+0

Hmm @XmlTransient debería funcionar en el atributo. ¿Has intentado ponerlo en los captadores? –

Respuesta

1

Usted ha encontrado la respuesta por ti mismo. Si agrega la anotación @XMLTransient a un campo, JAXB omitirá la generación de Java-a-esquema. Esto se indica aquí XMLTransient documentation.

Si su herramienta schemagen que está utilizando no hace esto, entonces tiene un error en su implementación.

Cuestiones relacionadas