2008-12-05 8 views
1

Apache XMLBeans peut être utilisé pour générer des classes et des interfaces Java à partir de fichiers XML Schema Definition (XSD). Il génère également des Enums basés sur StringEnumAbstractBase et StringEnumAbstractBase.Table pour représenter les valeurs de domaine. Ils sont pratiques pour entrer uniquement des valeurs valides. Cependant, je veux obtenir toutes ces valeurs pour générer un JCombobox, un JTable ou une table html.Comment obtenir toutes les valeurs Enum dans XMLBeans?

Y at-il un appel d'API XMLBeans pour obtenir toutes les valeurs Enum d'une classe générée? Le seul choix disponible est-il une sorte de réflexion Java?

Merci

Répondre

3

Cela a fonctionné pour moi:

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

Voici une autre façon de l'obtenir:

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; 
} 

Donc, pour obtenir la liste des valeurs ENUM de ModelType, je ce qui suit:

getEnumValueList(ModelType.Factory.newInstance());