java - 如何使用 JAXB 创建和解析 XML?

标签 java xml jaxb

我在java(项目,图层,图像)中有三个类,我想将所有这些文件解析为XML,但我在通过JAXB类项目解析该属性为XML时遇到问题,该属性具有来自图层的属性,而图层具有来自图像的属性。 我最终需要什么:

  <?xml version="1.0" encoding="UTF-8"?> 
     <project  name="">
       <Layer id="1"> 
         <image id="1">
          </image>
         <image id="2">
          </image>
       </layer>
       <Layer id="2"> 
         <image id="1">
         </image>
         <image id="2">
         </image>
       </layer>
    <project>

项目类别:

@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
public class Project {
  private String name;
  private Layer[] layer;
 @XmlAttribute(name = "name")
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
  @XmlElement(name = "layer")
  public Layer[] getLayer() {
       return layer;
   }
}

图层类别:

public class Layer {
  private int id;
  private Image[] images;
  @XmlElementWrapper(name="Layer")
  @XmlAttribute(name="id")
    public int getId() {
    return id;
    }
    public void setId(int id) {
    this.id = id;
    }
    @XmlElement(name="images")
    public Image[] getImages() {
    return images;
    }

    public void setImages(Image[] images) {
    this.images = images;
    }
}

图像类别:

public class Image {
   private int id;
   @XmlElementWrapper(name="Image")
   @XmlAttribute(name="id")
     public int getId() {
    return id;
    }
     public void setId(int id) {
    this.id = id;
    }
}

最佳答案

@XmlElementWrapper 用于向集合添加分组元素。像您一样在非集合属性上使用它是无效的。如果你删除它,事情应该可以工作。

如果您仍然无法解码:

  1. 填充您的模型并查看 XML 的外观,查看它与输入 XML 的不同之处,并相应地更新您的映射。
  2. 更新您的问题以包含您遇到的任何异常(exception)情况。

关于java - 如何使用 JAXB 创建和解析 XML?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22728951/

相关文章:

java - 我可以强制 jetty *不*包含用于单元测试的 Content-Length header 吗?

xml - xpath:搜索 "down",然后返回 "up"

java - 使用 Atom 的 Jersey 超媒体

java - 使用 NTLM 安全协议(protocol)连接到 LDAP (Active Directory)

Java Swing多线程访问JTextArea

java - 如何在 Maven 中构造一个新项目,以便它找到 jar 文件并且不会给出依赖项错误

xml - Scala:XML 解析命名空间属性

c# - linq-to-xml 的问题

java - 将 @XmlRootElement 添加到每个 JAXB bean 是否有任何问题?

java - XJC 的最新官方版本是什么,我在哪里可以得到它?