當編譯與XJC以下簡單類型編譯(從JAXB包)...JAXB - XJC - 影響產生的類型安全枚舉類和成員
<xs:simpleType name="test">
<xs:annotation>
<xs:appinfo>
<jaxb:typesafeEnumClass/>
</xs:appinfo>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="4">
<xs:annotation>
<xs:appinfo>
<jaxb:typesafeEnumMember name="FOUR"/>
</xs:appinfo>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="6">
<xs:annotation>
<xs:appinfo>
<jaxb:typesafeEnumMember name="SIX"/>
</xs:appinfo>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
我結束了在Java以下枚舉(進口聲明和評論刪除)
@XmlEnum
public enum Test {
@XmlEnumValue("4")
FOUR("4"),
@XmlEnumValue("6")
SIX("6");
private final String value;
Test(String v) {
value = v;
}
public String value() {
return value;
}
public static Test fromValue(String v) {
for (Test c: Test.values()) {
if (c.value.equals(v)) {
return c;
}
}
throw new IllegalArgumentException(v.toString());
}
}
這正是我想要的......除了public String value()
方法。根據Sun的命名規則,我希望該方法被稱爲public String getValue()
。這樣我就可以輕鬆地在使用EL的JSP頁面中使用它。現在我不得不繞過它。
有誰有進一步調整的XJC編譯到更多有用的枚舉了getValue()
方法,而不是value()
方法的經驗嗎?或者我可以添加一個方法或什麼?
P.S.這發生在JAXB的v2.0.3中。我下載了最新版本v2.1.8和它的存在一樣...
感謝沿philvarner想......目前我工作解決此我的路。我也把它發佈在JAXB論壇上(http://forums.java.net/jive/message.jspa?messageID=310818),但是沒有答案......我們會看到的。恕我直言,這是有缺陷的代碼生成。如果JAXB插件能夠工作,我會告訴你。 – 2008-11-08 10:02:16