![](/img/trans.png)
[英]Unmarshalling xml with jaxb if the elements are the same, but different element values
[英]JAXB: Unmarshalling of different XML elements with same values
關於大致相同的主題,有很多問題,但是我找不到確切的答案。 如果我錯過了,我深表歉意。
我正在嘗試解組具有共同邏輯元素但使用不同標簽定義的XML文件:
<xml>
<animals>
<dog>
<bark>loud</bark>
</dog>
<cat>
<meow>frail</meow>
</cat>
</animals>
</xml>
實際上, <bark>
和<meow>
都隱藏了相同的概念,即動物的“音調”或“音量”,定義為String
。
我可以這樣做:
public abstract class Animal {
public abstract String getVolume();
}
getVolume()
在Cat.java
和Dog.java
實現getVolume()
並Dog.java
返回this.bark
或this.meow
。
但是,在Animal.java
具有volume
屬性似乎更干凈,並且以某種方式告訴JAXB將這兩個字段都映射到它。
我在想這個嗎? 您將如何實施?
(當然,我無法控制輸入的XML。如果可能的話,我也想避免使用MOXy的解決方案,因為向該項目尋求另一個依賴可能很困難。)
您將要:
Animal
類標記為@XmlTransient
以將其刪除為映射類。 getVolume()
方法,對它進行注釋,以匹配該類的所需元素。 對於這個特定的模型,盡管我更喜歡每只動物都有一個volume
元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.