[英]Binding XML with JAXB annotations
我有以下XML格式:
<repositories>
<set>
<id>1</id>
<name>First</name>
<spec>data</spec>
</set>
<set>
<id>2</id>
<name>INFO</name>
<spec>main</spec>
</set>
.
.
</repositories>
我創建了以下package-info.java
@javax.xml.bind.annotation.XmlSchema (
elementFormDefault=XmlNsForm.QUALIFIED,
xmlns = {}
)
package website.model;
import javax.xml.bind.annotation.XmlNsForm;
以下課程:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Repositories {
@XmlElement
private ListofRepositories repositories;
public ListofRepositories getRepositories() {
return repositories;
}
public void setRepositories(ListofRepositories repositories) {
this.repositories = repositories;
}
}
包裹套裝
@XmlAccessorType(XmlAccessType.FIELD)
public class ListofRepositories {
private List<Sets> set;
public List<Sets> getSet() {
return set;
}
public void setSet(List<Sets> set) {
this.set = set;
}
}
而數據:
@XmlAccessorType(XmlAccessType.FIELD)
public class Sets {
private Long id;
private String name;
private String spec;
//get set
}
我不知道為什么這不起作用。 響應始終為null。 我用Java和JAXB注釋實現了類似的過程,我從來沒有遇到過這種問題。 有誰知道什么是錯的,我該如何解決?
對於上面的xml,您需要以下類結構:
@XmlRootElement(name="repositories")
@XmlAccessorType(XmlAccessType.FIELD)
public class Repositories {
@XmlElement
private List<Sets> set;
//getter and setter
}
@XmlAccessorType(XmlAccessType.FIELD)
public class Sets {
private Long id;
private String name;
private String spec;
//getter and setter
}
但是,根據您的類結構,您將獲得以下xml:
<Repositories>
<repositories>
<set>
<id></id>
<name></name>
<spec></spec>
</set>
<set>
<id></id>
<name></name>
<spec></spec>
</set>
.
.
.
</repositories>
</Repositories>
與JAXB你也可以生成從XSD文件這些類-並檢查傳入的XML對XSD(這將顯示為什么它不會接受它)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.