2016-06-10 144 views
0

使用@XmlElements時,有什麼辦法可以將不同的名稱分配給同一類型?我剛開始使用@XmlElement。做了一些閱讀,發現@XmlElementWrapper@XmlElements,但仍然無法獲得我想要的輸出。我意識到我可以爲2創建不同的數據類型,但如果我可以僅通過註釋來完成此操作,那將是甜蜜的。具有相同類型但名稱不同的多個元素?

當前迭代:

@XmlRootElement(name = "Root") 
public class XmlTest { 

    @XmlElementWrapper(name="ContactInformation") 
    @XmlElements({ 
      @XmlElement(name="Name"), 
      @XmlElement(name="LogicalOwner") 
    }) 
    public List<String> contactInformation; 
    ... 
     contactInformation = new ArrayList<>(); 
     contactInformation.add("should be inside name"); 
     contactInformation.add("should be insde of owner"); 
    ... 

電流輸出:

<Root> 
    <ContactInformation> 
     <LogicalOwner>should be inside name</LogicalOwner> 
     <LogicalOwner>should be insde of owner</LogicalOwner> 
    </ContactInformation> 
</Root> 

所需的輸出:

<Root> 
    <ContactInformation> 
     <Name>should be inside name</Name> 
     <LogicalOwner>should be insde of owner</LogicalOwner> 
    </ContactInformation> 
</Root> 

回答

0

您合作你可以嘗試創建一個將字段存儲在其中的類,然後序列化該類。

@XmlRootElemnt(name="root") 
Class ContactInformation{ 

    private String name; 

    @XmlElement(name="Name") 
    public String getName() { 
     return this.name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

我習慣於使用Gson.toJson(),所以我沒有太多的幫助序列化XML;希望這會讓你指向正確的方向。

+0

是啊......我希望避免創建另一個班級。但這會起作用。如果我無法想出一種方法在一堂課中完成這一切,這將成爲我的計劃B. – gonzo

相關問題