Используя задачу муравья создания схемы JXC, я не могу заставить ее игнорировать перечисление. У меня есть несколько перечислений, которые используются внутри для обозначения типа или второстепенных значений конфигурации, которые не имеют отношения к сгенерированному XML.
Я могу исключить поле, используя enum как @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 - почему оно все еще является частью моей схемы?