4

JXC スキーマ生成 ant タスクを使用すると、列挙型を無視するようには見えません。生成された XML に関連しないタイプまたはマイナーな構成値を示すために内部的に使用される列挙型がいくつかあります。

列挙型を @XmlTransient として使用してフィールドを除外し、オブジェクトのスキーマから除外できますが、列挙型の simpleType 記述子は引き続き生成されます。

例:

public class CustomerType { 

    @XmlTransient    
    public enum IsolationLevel { ALL, SAME_TYPE, SELECTED }

    @XmlTransient
    private Long id;
    @XmlValue
    private String name;
    @XmlTransient
    private IsolationLevel isolation = IsolationLevel.ALL;
}

生成されたスキーマ:

<xs:simpleType name="isolationLevel">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ALL"/>
      <xs:enumeration value="SAME_TYPE"/>
      <xs:enumeration value="SELECTED"/>
    </xs:restriction>
</xs:simpleType>

JXCに列挙型を無視させる方法について誰かアイデアがありますか? XML マップされたプロパティまたはフィールドで使用されておらず、列挙自体は @XmlTransient とマークされています。なぜそれがまだ私のスキーマの一部なのですか?

4

1 に答える 1