2008-12-05 52 views
1

Apache XMLBeans可用于从XML模式定义文件(XSD)生成Java类和接口。它还根据StringEnumAbstractBase和StringEnumAbstractBase.Table生成Enums来表示域值。它们仅适用于输入有效值。但是,我想要获得所有这些值来生成一个JCombobox,一个JTable或一个html表格。如何获取XMLBeans中的所有枚举值?

是否有一个XMLBeans API调用来获取生成的类的所有枚举值? 是否有唯一的选择可用某种Java反射?

感谢

回答

3

这为我工作:

for (int i = 1; i <= MyEnum.Enum.table.lastInt(); i++) 
{ 
    System.out.println(MyEnum.Enum.forInt(i)); 
} 
2

这里是另一种方式来获得它:

public static List<String> getEnumValueList(XmlString xmlString){ 
    List<String> values = new ArrayList<String>(); 
    SchemaStringEnumEntry valArr[] = xmlString.schemaType().getStringEnumEntries(); 
    for(SchemaStringEnumEntry val : valArr){ 
     values.add(val.getString()); 
    } 
    return values; 
} 

因此,要我做ModelType的枚举值的列表如下:

getEnumValueList(ModelType.Factory.newInstance());