我的应用程序使用了以下xml:
<PackageFiles ApplicationGUID="839E9EFD-69C2-430D-B591-B9C8E9812377">
<Files>
<File Name="test.jpg" />
</Files>
</PackageFiles>
为了解开JAXB,我已经定义了以下两个类:
@XmlRootElement(name="PackageFiles")
public class PackageFiles {
@XmlAttribute(name="ApplicationGUID")
private String applicationGUID;
@XmlElementWrapper(name="Files")
@XmlElement(name="File")
private List<File> files;
}
@XmlRootElement(name="File")
public class File {
@XmlAttribute(name="Name")
private String name;
}
这很好但我想知道是否有一种方法来注释PackageFiles
类,以便我可以删除File
类,而在Name
元素中具有<File ...>
属性被填充到PackageFiles类中的List<String>
?
答案 0 :(得分:1)
如果经常出现这种复杂情况,您可以考虑使用使用xslt的Transformer以您可以轻松操作的方式执行解组。或者你可以在PackageFiles中使文件成为公共静态类,如下所示:
public static class File{
@XmlElement
private String name;
}
我个人更喜欢xslt方法,因为它比处于不断变化的状态的.java文件更直观,更容易维护。