Mapă JAXB șirul la valorile enumerate în XSD generat

Am un POJO simplu cu o proprietate String. Această proprietate String conține de fapt valori susținute de o Enum Java. Din motive pe care nu voi intra aici, nu pot folosi tipul enumerare pe POJO-ul meu. Există vreo adnotare JAXB pe care să o pot folosi pe proprietatea String, astfel încât atunci când XSD-ul este generat, am valorile limitate la lista de bază a valorilor Enum?


person Josh Harness    schedule 26.04.2012    source sursă


Răspunsuri (1)


Ar trebui să puteți folosi un XmlAdapter pentru acest caz de utilizare:

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

Apoi, în clasa dvs., înregistrați XmlAdapter pe proprietatea String care corespunde enumerației.

@XmlJavaTypeAdapter(MyEnumAdapter.class)
public String getValue() {
    return value;
}
person bdoughan    schedule 26.04.2012
comment
A funcționat grozav! A trebuit doar să adaug o adnotare XmlType la enumerarea mea, astfel încât să se potrivească cu spațiul de nume al celorlalte entități ale mele. - person Josh Harness; 27.04.2012