JAXB - XML到Java Unmarshal - 不工作

时间:2014-05-16 14:22:15

标签: java xml jaxb

我对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值。

0 个答案:

没有答案