gpt4 book ai didi

java - 使用单个 JAXB 带注释的类解码复杂类型

转载 作者:行者123 更新时间:2023-12-01 13:06:08 25 4
gpt4 key购买 nike

我的应用程序要使用以下 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 ...> 中的属性元素被填充到 List<String>在 PackageFiles 类中?

最佳答案

如果这种复杂情况经常出现,您可以考虑使用 Transformer,它使用 xslt 以您可以轻松操作的方式执行解码。或者您可以将 file 作为 PackageFiles 内的公共(public)静态类,如下所示:

public static class File{
@XmlElement
private String name;
}

我个人更喜欢 xslt 方法,因为它比不断变化的 .java 文件更直观,也更容易维护。

关于java - 使用单个 JAXB 带注释的类解码复杂类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23255645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com