JAXB 将字符串映射到生成的 XSD 中的枚举值



我有一个简单的带有字符串属性的POJO。此 String 属性实际上包含由 Java 枚举支持的值。出于我不会在这里讨论的原因,我不能只在我的 POJO 上使用枚举类型。是否可以在 String 属性上使用任何 JAXB 注释,以便在生成 XSD 时将值限制为枚举值的支持列表?

您应该能够为此用例使用XmlAdapter

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

然后在类上注册与枚举对应的 String 属性上的XmlAdapter

@XmlJavaTypeAdapter(MyEnumAdapter.class)
public String getValue() {
    return value;
}

最新更新