Java 用JAXB注释绑定XML
我有以下XML格式:Java 用JAXB注释绑定XML,java,jaxb,Java,Jaxb,我有以下XML格式: <repositories> <set> <id>1</id> <name>First</name> <spec>data</spec> </set> <set> <id>2</id> <name>INFO</nam
<repositories>
<set>
<id>1</id>
<name>First</name>
<spec>data</spec>
</set>
<set>
<id>2</id>
<name>INFO</name>
<spec>main</spec>
</set>
.
.
</repositories>
以及下列类别:
@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;
}
}
我不知道为什么这样不行。响应总是空的。我用Java和JAXB注释实现了类似的过程,我从来没有遇到过这种问题。有人知道哪里出了问题,我如何修复它吗?使用JAXB,您还可以从xsd文件生成这些类——并根据xsd检查传入的xml(这将显示为什么它不会接受它)对于上述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
}
@XmlRootElement(name=“repositories”)
@XmlAccessorType(XmlAccessType.FIELD)
公共类存储库{
@XmlElement
私有列表集;
//接二连三
}
@XmlAccessorType(XmlAccessType.FIELD)
公共类集合{
私人长id;
私有字符串名称;
私有字符串规范;
//接二连三
}
但是,根据您的类结构,您将获得以下xml:
<Repositories>
<repositories>
<set>
<id></id>
<name></name>
<spec></spec>
</set>
<set>
<id></id>
<name></name>
<spec></spec>
</set>
.
.
.
</repositories>
</Repositories>
.
.
.
请讲清楚。以上xml需要类结构还是以上类结构需要xml?我需要检索以下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
}
<Repositories>
<repositories>
<set>
<id></id>
<name></name>
<spec></spec>
</set>
<set>
<id></id>
<name></name>
<spec></spec>
</set>
.
.
.
</repositories>
</Repositories>