2008-12-05 3 views
1

Apache XMLBeans может использоваться для создания классов Java и интерфейсов из файлов определения схемы XML (XSD). Он также генерирует Enums на основе StringEnumAbstractBase и StringEnumAbstractBase.Table для представления значений домена. Они удобны для ввода только допустимых значений. Тем не менее, я хочу получить все эти значения для создания JCombobox, таблицы JTable или html.Как получить все значения Enum в XMLBeans?

Есть ли вызов API XMLBeans для получения всех значений Enum из сгенерированного класса? Является единственным выбором, доступным некое отражение 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());