我对JAXB相当陌生,但我现在已经在很长一段时间内反对这种简单的XML到Java的转换了,而我的猜测是我错过了一些非常基本的东西
XML文件(To Unmarshal):
<metadata created="2014" xmlns="http://musicbrainz.org/ns/mmd-2.0#" xmlns:ext="http://musicbrainz.org/ns/ext#-2.0">
<artist-list count="4" offset="0">
<artist id="f59c5520-5f46-4d2c-b2c4-822eabf53419" type="Group" ext:score="100">
<name>Linkin Park</name>
<sort-name>Linkin Park</sort-name>
<country>US</country>
</artist>
<artist id="f59c5520-5f46-4d2c-b2c4-822eabf53419" type="Group" ext:score="100">
<name>Lincoln Park</name>
<sort-name>Linkin Park</sort-name>
<country>US</country>
</artist>
</artist-list>
</metadata>
Metadata.java
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="metadata", namespace = "http://musicbrainz.org/ns/mmd-2.0#")
public class Metadata {
@XmlAttribute(name = "created")
private String created;
public String getCreated() {
return created;
}
public void setCreated(String created) {
this.created = created;
}
@XmlElementWrapper(name="artist-list")
@XmlElement(name = "artist")
private List<Artist> artists = new ArrayList<Artist>();
public List<Artist> getArtists() {
return artists;
}
public void setArtists(List<Artist> artists) {
this.artists = artists;
}
}
Artist.java
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "artist")
public class Artist {
@XmlAttribute(name = "id")
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
当我尝试通过创建元数据对象来阅读XML时,我能够检索创建的属性&#39;。但是,艺术家列表不会填充。
如果我在这里错过了什么,请告诉我。
注意: 我没有面对一个意想不到的元素&#39;错误在这里。代码执行没有任何问题;然而,艺术家的目标是&#39;没有填充,而“创造了”#39;似乎接受了相应的XML值。