Строка сопоставления JAXB со значениями перечисления в сгенерированном XSD

У меня есть простой POJO со свойством String. Это свойство String на самом деле содержит значения, поддерживаемые Java Enum. По причинам, которые я не буду здесь обсуждать, я не могу просто использовать тип перечисления в своем POJO. Есть ли какая-либо аннотация JAXB, которую я могу использовать для свойства String, чтобы при создании XSD у меня были значения, ограниченные списком поддержки значений Enum?


person Josh Harness    schedule 26.04.2012    source источник


Ответы (1)


Вы должны иметь возможность использовать XmlAdapter для этого варианта использования:

public class MyEnumAdapter extends XmlAdapter<MyEnum, String> {
   ...
}

Затем в своем классе зарегистрируйте XmlAdapter в свойстве String, которое соответствует перечислению.

@XmlJavaTypeAdapter(MyEnumAdapter.class)
public String getValue() {
    return value;
}
person bdoughan    schedule 26.04.2012
comment
Работал отлично! Мне нужно было только добавить аннотацию XmlType к моему перечислению, чтобы оно соответствовало пространству имен других моих сущностей. - person Josh Harness; 27.04.2012