simple-xml アノテーションが付けられた次の列挙型を考えてみましょう。
@Root(name="days")
public enum DaysOfWeek {
SUNDAY("blue", 30),
MONDAY("green", 60),
TUESDAY("yellow", 50),
WEDNESDAY("red", 45),
THURSDAY("black", 45),
FRIDAY("white", 65),
SATURDAY("brown", 40);
@Attribute(name="color")
private String color;
@Element(name="mins")
private int minutes;
DaysOfWeek(String color, int minutes){
this.color = color;
this.minutes = minutes;
}
DaysOfWeek(){
/*
* Default constructor
*/
}
public void setColor(String color){
this.color = color;
}
public void setMinutes(int minutes){
this.minutes = minutes;
}
public String getColor(){
return this.color;
}
public int getMinutes(){
return this.minutes;
}
}
そして、単純なフレームワークを使用して XML にシリアル化するコード:
StringWriter writer = new StringWriter();
try {
serializer.write(DaysOfWeek.TUESDAY, writer);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(writer.toString());
simple-2.6 では、次の出力が表示されます。これは私が期待するものです。
<days color="yellow">
<mins>50</mins>
</days>
ただし、同じコードを simple-2.6.7 でシリアル化すると、次のようになります。
<daysOfWeek>TUESDAY</daysOfWeek>
基本的に、simple-2.6.7 では、enum の個々のメンバー (およびそれらの simple-xml 注釈) は無視され、常に enum 定数の名前がシリアル化に使用されます。
これは意図したものですか?列挙型の個々のメンバーを考慮しながら列挙型をシリアル化するための simple-xml の最新バージョンを取得するにはどうすればよいですか?