2016-09-15 91 views
0

我有一個普遍問題,如果需要,將提供更多信息。我有一個生成多個枚舉的模式。我能夠增加使用枚舉的數量:如何控制生成的JAXB枚舉

typesafeEnumMaxMembers="34431" 

解決了創建枚舉的直接問題。但是發生的是它在一個類中產生了超過65k的常量。這是超過java的限制。我怎樣才能使用這個數據的另一個數據結構?我有一個架構,省略枚舉,但它似乎仍然生成它們。

我的目標是看看是否有人遇到過這種類型的東西。如果可能,我寧願不以任何方式更改架構。我已經閱讀了JAXB文檔並嘗試了各種各樣的東西,但它似乎無法解決我的問題。

任何有識之士將不勝感激。

謝謝

戴夫

回答

1

一般來說,如果JAXB不能產生一個枚舉由於字典過大的尺寸,它會創建一個文本字段來代替。

如果要將文本值轉換爲bean中的其他值,則始終可以使用XMLAdapter將該值轉換爲您喜歡的某種自定義類型。您需要對各自的getter/field使用@XmlJavaTypeAdapter註釋。

+0

我將看看XMLAdapter。是否有任何綁定可以讓我忽略這個XSD或者在類中自動生成一個空方法? – djratliff

+0

不,由於方法綁定工作。綁定應該是XML和生成的bean之間的1-1映射。忽略一個XML元素會導致各種解組問題。通過使用'@ XmlTransient'註釋可以以相反的方式執行(將生成的bean中的元素標記爲不反映在模式中)。 –