如何添加xml属性到jaxb注释类XmlElementWrapper?

前端之家收集整理的这篇文章主要介绍了如何添加xml属性到jaxb注释类XmlElementWrapper?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个XmlElementWrapper注释类,如:

  1. @XmlElementWrapper(name="myList")
  2. @XmlElements({
  3. @XmlElement(name="myElement") }
  4. )
  5. private List<SomeType> someList = new LinkedList();


代码生成XML

  1. <myList>
  2. <myElement> </myElement>
  3. <myElement> </myElement>
  4. <myElement> </myElement>
  5. </myList>

到现在为止还挺好。

但现在我需要添加属性到列表标签获取XML

  1. <myList number="2">
  2. <myElement> </myElement>
  3. <myElement> </myElement>
  4. <myElement> </myElement>
  5. </myList>

有没有一个’聪明的方式来实现这个没有创建一个新的类包含代表列表?

我为你的问题找到了一个更好的解决方案。

要使Xml Java对象使用以下代码

  1. import java.util.*;
  2. import javax.xml.bind.annotation.*;
  3.  
  4. @XmlRootElement(name="myList")
  5. public class Root {
  6.  
  7. private String number;
  8. private List<String> someList;
  9.  
  10. @XmlAttribute(name="number")
  11. public String getNumber() {
  12. return number;
  13. }
  14.  
  15. public void setNumber(String number) {
  16. this.number = number;
  17. }
  18.  
  19. @XmlElement(name="myElement")
  20. public List<String> getSomeList() {
  21. return someList;
  22. }
  23.  
  24. public void setSomeList(List<String> someList) {
  25. this.someList = someList;
  26. }
  27.  
  28. public Root(String numValue,List<String> someListValue) {
  29. this();
  30. this.number = numValue;
  31. this.someList = someListValue;
  32. }
  33.  
  34. /**
  35. *
  36. */
  37. public Root() {
  38. // TODO Auto-generated constructor stub
  39. }

}

要使用JAXB运行上述代码,请使用以下命令:

  1. import java.util.ArrayList;
  2. import java.util.List;
  3.  
  4. import javax.xml.bind.*;
  5.  
  6. public class Demo {
  7.  
  8. public static void main(String[] args) throws Exception {
  9. List<String> arg = new ArrayList<String>();
  10. arg.add("FOO");
  11. arg.add("BAR");
  12. Root root = new Root("123",arg);
  13.  
  14. JAXBContext jc = JAXBContext.newInstance(Root.class);
  15. Marshaller marshaller = jc.createMarshaller();
  16. marshaller.marshal(root,System.out);
  17. }
  18. }

这将产生以下XML作为输出

  1. <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2. <myList number="123">
  3. <myElement>FOO</myElement>
  4. <myElement>BAR</myElement>
  5. </myList>

我觉得这对你更有帮助

谢谢..

猜你在找的XML相关文章