JAXB должен создавать действительный код Java, поэтому он привязан к специфическим для Java правилам именования.
Перечисления Java должны иметь специфичное для Java именование, которое равно для классов, методов, полей, ... Запрещено начинать имя с цифры.
Вы можете упорядочить существующие перечисления Java с помощью схемы JAXB в XML с пользовательскими именами, переопределив их с помощью
/* some JAXB annotations go here */
enum MyEnum{
@XmlEnumValue(name="1")
ONE,
@XmlEnumValue(name="2")
TWO
}
Обратный процесс выполняется с небольшим «обходным путем»:
<xsd:simpleType>
<xsd:annotation>
<xsd:appinfo>
<jxb:typesafeEnumClass name="MyEnum">
<jxb:typesafeEnumMember name="ONE" value="1"/>
<jxb:typesafeEnumMember name="TWO" value="2"/>
</jxb:typesafeEnumClass>
</xsd:appinfo>
</xsd:annotation>
<xsd:restriction base="xsd:int">
<xsd:enumeration value="1"/>
<xsd:enumeration value="2"/>
</xsd:restriction>
</xsd:simpleType>