2010-03-15 3 views
5

어떻게 schemagen이 수퍼 클래스를 스키마에 추가하지 못하게합니까?스키마가 수퍼 클래스를 스키마에 추가하지 못하도록 막으시겠습니까?

수퍼 클래스 및 해당 필드에서 XMLTransient을 사용해 보았지만 여전히 스키마에 표시됩니다. 예를 들어

:

<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

스키마의 상위 유형이 문제를 일으키고 있습니까? – skaffman

+0

예, 필요하지 않은 ID 필드를 추가합니다. – shay

+0

흠 @XmlTransient가 속성에서 작동해야합니다. 그것을 게터에 넣으려고 했습니까? –

답변

1

당신은 대답 자신을 발견 :

@XmlTransient 
public class Asset { 

    @XmlTransient 
    public Long ID; 
} 

public class Movie extends Asset { 

} 

이 스키마를 만듭니다. 필드에 @XMLTransient 주석을 추가하면 JAXB Java에서 스키마 생성으로 생략됩니다. 이것은 여기에 XMLTransient documentation으로 명시되어 있습니다.

사용중인 schemagen 도구가이 작업을 수행하지 않으면 구현에 결함이 있습니다.