2008-12-05 57 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());