Enums enum类型的JAXB元素

Enums enum类型的JAXB元素,enums,types,schema,jaxb,element,Enums,Types,Schema,Jaxb,Element,因此,我知道如何创建枚举类型,但当我将元素类型设置为该类型时,元素字段将只是字符串类型,而不是枚举类型。如何在模式中创建枚举,并让JAXB将其生成为java枚举类型 以下是我创建枚举类型和元素的方式: 您可以按如下方式形成XML模式: 将导致生成以下枚举: package.com.example; 导入javax.xml.bind.annotation.*; @XmlType(name=“myEnum”) @XmlEnum 公共枚举髓鞘{ 我的枚举1, MY_ENUM_2; 公共字符串值()

因此,我知道如何创建枚举类型,但当我将元素类型设置为该类型时,元素字段将只是字符串类型,而不是枚举类型。如何在模式中创建枚举,并让JAXB将其生成为java枚举类型

以下是我创建枚举类型和元素的方式:


您可以按如下方式形成XML模式:


将导致生成以下枚举:

package.com.example;
导入javax.xml.bind.annotation.*;
@XmlType(name=“myEnum”)
@XmlEnum
公共枚举髓鞘{
我的枚举1,
MY_ENUM_2;
公共字符串值(){
返回名称();
}
公共静态MyEnum fromValue(字符串v){
返回值(v);
}
}
以及利用该枚举的以下类:

package.com.example;
导入javax.xml.bind.annotation.*;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name=),比例={
“本地”,
“参考号”
})
@XmlRootElement(name=“root”)
公共类根{
@XmlElement(必需=true)
局部保护髓鞘;
@XmlElement(必需=true)
保护髓鞘;
public MyEnum getLocal(){
返回本地;
}
public void setLocal(MyEnum值){
这是本地值;
}
公共MyEnum getRef(){
返回ref;
}
公共void setRef(MyEnum值){
this.ref=值;
}
}
了解更多信息


请参见
jaxb:globalBindings/@typeSafeEnumBase

@BlaiseDoughan如果我从枚举返回一个数字(序号),请更改“@KanagaveluSugumar-这篇文章将展示如何处理数字枚举值:fromValue有什么意义?它与valueOf()的作用相同@NimChimpsky-fromValue将由JAX-B编译器生成代码,符合getter/setter命名约定