gpt4 book ai didi

java - Android,org.simpleframework.xml 持久化异常,元素 'foo' 已被使用

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:24 25 4
gpt4 key购买 nike

我正在使用 org.simpleframework.xml 来处理 android 应用程序的一些 xml 任务,但遇到了以下我无法弄清楚的错误。

org.simpleframework.xml.core.PersistenceException: Element 'album' is already used with @org.simpleframework.xml.ElementList(inline=false, name=album, entry=, data=false, empty=true, required=true, type=void) on field 'albums' private java.util.List us.blah.sonar.xsd.simple.AlbumList.albums at line 5
at org.simpleframework.xml.core.Variable$Adapter.read(Variable.java:484)
at org.simpleframework.xml.core.Composite.readVariable(Composite.java:613)
at org.simpleframework.xml.core.Composite.readInstance(Composite.java:573)

这是我尝试解码的 XML 示例:

<albumList> 
<album id="3985" parent="3301" title="Bob Dylan - The Reissue Series Sampler" album="Bob Dylan - The Reissue Series Sampler" artist="48 - Masked and Anonymous [BSO] (2003)" isDir="true" created="2011-12-09T11:52:12"/>
<album id="3986" parent="3301" title="Soundtrack - Masked & Anonymous" album="Soundtrack - Masked & Anonymous" artist="48 - Masked and Anonymous [BSO] (2003)" isDir="true" coverArt="3986" created="2011-12-09T11:52:13"/>
<album id="10542" parent="145" title="A Perfect Circle" album="Acoustica" artist="A Perfect Circle" isDir="true" created="2011-12-09T12:01:52"/>
</albumList>

下面是我创建并注释的POJO:

@Root
public class AlbumList {

@ElementList(name="album")
private List<Child> albums;

public List<Child> getAlbums() {
return albums;
}

}

public class Child {
@Attribute
private String id;

@Attribute(required=false)
private String parent;

@Attribute
private boolean isDir;

@Attribute
private String title;

@Attribute(required=false)
private String album;

@Attribute(required=false)
private String artist;

@Attribute(required=false)
private int track;

@Attribute(required=false)
private int year;

@Attribute(required=false)
private String genre;

@Attribute(required=false)
private String coverArt;

@Attribute(required=false)
private long size;

@Attribute(required=false)
private String contentType;

@Attribute(required=false)
private String suffix;

@Attribute(required=false)
private String transcodedContentType;

@Attribute(required=false)
private String transcodedSuffix;

@Attribute(required=false)
private int duration;

@Attribute(required=false)
private int bitRate;

@Attribute(required=false)
private String path;

@Attribute(required=false)
private boolean isVideo;

@Attribute(required=false)
private String userRating;

@Attribute(required=false)
private double averageRating;

@Attribute(required=false)
private int discNumber;

@Attribute(required=false)
private Date created;

@Attribute(required=false)
private Date starred;

@Attribute(required=false)
private String albumId;

@Attribute(required=false)
private String artistId;

@Attribute(required=false)
private MediaType type;
}

任何人都可以引导我朝着正确的方向解决问题,或者此错误消息的确切含义吗?是因为 XML 元素名为 album 并且有一个属性也名为 album 吗?

最佳答案

尝试以这种方式注释您的 AlbumList 类:

@Root
public class AlbumList {
@ElementList(entry="album", inline=true)
private List<Child> albums;

public List<Child> getAlbums() {
return albums;
}
}

关于java - Android,org.simpleframework.xml 持久化异常,元素 'foo' 已被使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14474368/

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