Java 如何为JAXB映射对象列表?

Java 如何为JAXB映射对象列表?,java,jaxb,unmarshalling,Java,Jaxb,Unmarshalling,注: 我不需要创建java对象,因为我只需要检查 一些值,但我没有找到任何可以将其作为泛型进行解包的内容 物体、树或任何东西。类似于来自 杰克逊。如果这是可能的,让我知道,这样我可以避免所有这些混乱 使用对象映射所有内容 现在的问题是: 我必须解组一个简单的xml,但结果总是空的。我尝试了不同的注释,但如果它们没有失败,结果将为空 这似乎与的情况相同,但使用相同的注释不起作用 xml类似于: <ServiceList> <Service Id="1" Code="c" N

注:

我不需要创建java对象,因为我只需要检查 一些值,但我没有找到任何可以将其作为泛型进行解包的内容 物体、树或任何东西。类似于来自 杰克逊。如果这是可能的,让我知道,这样我可以避免所有这些混乱 使用对象映射所有内容

现在的问题是:

我必须解组一个简单的xml,但结果总是空的。我尝试了不同的注释,但如果它们没有失败,结果将为空

这似乎与的情况相同,但使用相同的注释不起作用

xml类似于:

<ServiceList>
   <Service Id="1" Code="c" Name="name" ServiceRegistrationStatusID="3" CheckedRegistrationStatusID="2" />
</ServiceList>
我创建了两个类似这样的内部类:

ServiceList list = JAXB.unmarshal(new StringReader(xml), ServiceList.class);
@XmlRootElement
public static class ServiceList {
    private List<Service> services;

    public List<Service> getServices() { return services; }
    @XmlElementWrapper(name = "ServiceList")
    @XmlElement(name = "Service")
    public void setServices(List<Service> services) { this.services = services; }

}

@XmlRootElement(name = "Service")
public static class Service {
    private String id;
    private String code;
    private String name;
    private String serviceRegistrationStatusID;
    private String checkedRegistrationStatusID;

    public String getId() {
        return id;
    }
    @XmlAttribute(name = "Id")
    public void setId(String id) {
        this.id = id;
    }
    public String getCode() {
        return code;
    }
    @XmlAttribute(name = "Code")
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    @XmlAttribute(name = "Name")
    public void setName(String name) {
        this.name = name;
    }
    public String getServiceRegistrationStatusID() {
        return serviceRegistrationStatusID;
    }
    @XmlAttribute(name = "ServiceRegistrationStatusID")
    public void setServiceRegistrationStatusID(String serviceRegistrationStatusID) {
        this.serviceRegistrationStatusID = serviceRegistrationStatusID;
    }

    public String getCheckedRegistrationStatusID() {
        return checkedRegistrationStatusID;
    }
    @XmlAttribute(name = "CheckedRegistrationStatusID")
    public void setCheckedRegistrationStatusID(String checkedRegistrationStatusID) {
        this.checkedRegistrationStatusID = checkedRegistrationStatusID;
    }

}
@XmlRootElement
公共静态类服务列表{
私人名单服务;
public List getServices(){return services;}
@XmlElementWrapper(name=“ServiceList”)
@xmlement(name=“服务”)
public void setServices(列出服务){this.services=services;}
}
@XmlRootElement(name=“服务”)
公共静态类服务{
私有字符串id;
私有字符串码;
私有字符串名称;
私有字符串服务注册StatusID;
私有字符串checkedRegistrationStatusID;
公共字符串getId(){
返回id;
}
@xmltattribute(name=“Id”)
公共无效集合id(字符串id){
this.id=id;
}
公共字符串getCode(){
返回码;
}
@XmlAttribute(name=“Code”)
公共无效设置码(字符串码){
this.code=代码;
}
公共字符串getName(){
返回名称;
}
@XmlAttribute(name=“name”)
公共void集合名(字符串名){
this.name=名称;
}
公共字符串getServiceRegistrationStatusID(){
返回serviceRegistrationStatusID;
}
@XmlAttribute(name=“ServiceRegistrationStatusID”)
public void setServiceRegistrationStatusID(字符串服务注册StatusID){
this.serviceRegistrationStatusID=serviceRegistrationStatusID;
}
公共字符串getCheckedRegistrationStatusID(){
返回checkedRegistrationStatusID;
}
@XmlAttribute(name=“CheckedRegistrationStatusID”)
public void setCheckedRegistrationStatusID(字符串checkedRegistrationStatusID){
this.checkedRegistrationStatusID=checkedRegistrationStatusID;
}
}
我在一个静态方法中解组xml,所以我不得不将POJO作为静态的

有什么帮助吗


提前感谢。

尝试删除
@xmlementwrapper(name=“ServiceList”)
,它应该简单有效!谢谢。:)