我正在使用來自供應商系統的XML,我無法更改,我正在嘗試使用JAXB。 XML用於類似API的REST中。請參閱下面的幾個消息示例。每個請求/消息具有相同的根元素名稱,該名稱稱爲MsgRequest,並且它包含每個請求中的幾個公共元素,但它也包含依賴於消息類型的元素。具有繼承但不使用子元素名稱的JAXB
<!-- request 1 -->
<MsgRequest>
<SubType>GetUser</SubType>
<RequestID>1</RequestID>
<UserName>joe</UserName>
</MsgRequest>
<!-- request 2 -->
<MsgRequest>
<SubType>GetCompany</SubType>
<RequestID>2</RequestID>
<CompanyName>joe</CompanyName>
</MsgRequest>
從Java的角度來看,我可以像使用繼承一樣對它進行建模。
class BaseMessage {
String subType;
Integer requestID;
};
class GetUserMessage {
String userName;
};
class GetCompanyMessage {
String companyName;
};
我不明白我將如何使用JAXB來表示這個XML。我已經做了一些研究並找到了XMLElementRef,但是會編組引用的元素的名稱,這不是我想要的。
希望我錯過了一些明顯的東西。任何建議感激。