简体   繁体   English

将多个XML元素连接到一个Java对象

[英]Join multiple XML elements to one java object

Is it possible to join some xml elements to a java object (using JAXB)? 是否可以将某些xml元素连接到Java对象(使用JAXB)?

The following xml is given (out of my controll): 给出了以下xml(出于我的控制):

<root>
   <user>      
       <user_name>John</user_name>
       <user_lastname>Doe</user_lastname>
       <org_name>ABC</org_name>
       <org_street>Street 123</user_street>
   </user>
</root>

Desired result: 所需结果:

@XmlRootElement(name = "root")
public class FileXML{

   @XmlElement(name = "user")
   private List<User> users;

}

public class User{
   @XmlElement(name = "user_name")
   private String name;
   @XmlElement(name = "user_lastname")
   private String lastname;
   // ???
   private Org org;
}

public class Org{
   @XmlElement(name = "org_name")
   private String name;
   @XmlElement(name = "org_street")
   private String street;
}

I don't think there is an existing JAXB annotation for what you are asking. 我认为您所要求的没有现有的JAXB批注。 There is custom annotations from custom libraries but I guess you want to stay with JAXB standard. 有来自自定义库的自定义注释,但我想您想保留JAXB标准。

You could try this code (not tested) : 您可以尝试以下代码(未经测试):

public class User{
   ...

   @XmlElement(name = "street")
   public String setStreet(String street) {
       this.org.setStreet(street);
   }
}

But it's clearly a workaround and not the best solution. 但这显然是一种解决方法,而不是最佳解决方案。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM