簡體   English   中英

使用 JAXB 生成具有相同類的不同類型的 XML

[英]Generate Different types of XMl with same class using JAXB

我有一節課:

@XmlRootElement(name="pickup")
public class PickUp 
{
    @XmlAttribute(name="contactName")
    public String contactName;
    @XmlAttribute(name="phoneNumber")
    public String phoneNumber;
    @XmlAttribute(name="pickupDate")
    public String pickupDate;
    @XmlAttribute(name="pickupTime")
    public String pickupTime;
    @XmlAttribute(name="closingTime")
    public String closingTime;
    @XmlAttribute(name="location")
    public String location;
}

這將生成像這樣的 XML:

<Pickup contactName="Test Name" phoneNumber="888-888-8888" pickupDate="2009-08-03" pickupTime="16:30" closingTime="17:45" location="Front Door"/>

這工作完美,但使用相同的代碼我也想生成如下的 Xml:

<Pickup>
        <contactName>Test Name</contactName>
        <phoneNumber>888-888-8888</phoneNumber>
        <pickupDate>2009-08-03</pickupDate>
        <pickupTime>16:30</pickupTime>
        <closingTime>17:45</closingTime>
        <location>Front Door</location>
</Pickup>

我可以通過使用@xmlElement創建另一個類來做到這一點,但我想為此使用相同的類。 請幫我。

我發現這個https://stackoverflow.com/a/33096124/1976843答案可以幫助你。

如果您想繼續使用 jaxb,則需要編寫自己的 AnnotationReader

您正在為 XML 屬性使用標簽。 使用@XmlElement標簽以您需要的格式生成 XML,您應該將標簽指定為

@XmlElement  
public String getContactName() {  
    return contactName;  
}  
public void setcontactName(String name) {  
    this.contactName= name;  
}  
@XmlElement  
public String getphoneNumber() {  
    return phoneNumber;  
}  
public void setphoneNumber(String phoneNumber) {  
    this.phoneNumber = phoneNumber;  
}  

無需創建新類。 您可以對 xml 元素的原始類進行更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM