Java 关于REST响应和XMLElement

Java 关于REST响应和XMLElement,java,xml,rest,xml-parsing,jaxb,Java,Xml,Rest,Xml Parsing,Jaxb,我有一个需要在代码中创建的REST响应: <sample> <tags> <tag> <name>ABC</name> <Date>2014-10-14T12:30:05Z</ingress> </tag> <tag> <name>DEF</name>

我有一个需要在代码中创建的REST响应:

<sample>
   <tags> 
       <tag>
           <name>ABC</name>
           <Date>2014-10-14T12:30:05Z</ingress>
       </tag>
       <tag>
           <name>DEF</name>
           <Date>2014-10-14T12:30:05Z</ingress>
       </tag>
   </tags>
</sample>

基础知识
2014-10-14T12:30:05Z
DEF
2014-10-14T12:30:05Z
然而,我越来越

<sample>
    <tags>           
        <name>ABC</name>
        <Date>2014-10-14T12:30:05Z</ingress>
    </tags>
    <tags>
        <name>DEF</name>
        <Date>2014-10-14T12:30:05Z</ingress>        
    </tags>
</sample>

基础知识
2014-10-14T12:30:05Z
DEF
2014-10-14T12:30:05Z
有人能帮我如何声明Java类来获得所需的REST响应吗

以下是java代码:

@XmlRootElement(name = "sample")
public class Sample {
    private List<Tag> tags;

    @XmlElement(name = "tags")
    public List<Tag> getTags() {
        return tags;
    }

    /**
     * @param tags
     *            the tags to set
     */
    public void setTags(List<Tag> tags) {
        this.tags = tags;
    }

}

@XmlRootElement(name = "tag")
public class Tag {
    private String name;
    private Date date;

    /**
     * @return the name
     */
    @XmlElement(name = "name")
    public String getName() {
        return name;
    }

    /**
     * @param name
     *            the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the date
     */
    @XmlElement(name = "date")
    public Date getDate() {
        return date;
    }

    /**
     * @param date
     *            the date to set
     */
    public void setDate(Date date) {
        this.date = date;
    }
}
@XmlRootElement(name=“sample”)
公共类样本{
私有列表标签;
@xmlement(name=“tags”)
公共列表getTags(){
返回标签;
}
/**
*@param标签
*要设置的标记
*/
公共无效集合标记(列表标记){
this.tags=标签;
}
}
@XmlRootElement(name=“tag”)
公共类标签{
私有字符串名称;
私人日期;
/**
*@返回名称
*/
@xmlement(name=“name”)
公共字符串getName(){
返回名称;
}
/**
*@param name
*要设置的名称
*/
公共void集合名(字符串名){
this.name=名称;
}
/**
*@返回日期
*/
@xmlement(name=“date”)
公共日期getDate(){
返回日期;
}
/**
*@param日期
*设定日期
*/
公共作废设置日期(日期){
this.date=日期;
}
}
谢谢

然后将
标记的实例作为
示例的属性

@XmlRootElement(name = "sample")
public class Sample {
    private Tags tags;

    @XmlElement(name = "tags")
    public void setTags(Tags tags) {
        this.tags = tags;
    }

    public Tags getTags() {
        return tags;
    }
}

一个更简单的解决方案就是使用

围绕XML表示生成包装器元素。这主要用于围绕集合生成包装器XML元素

使用原始代码,可以简单地将注释添加到列表中

@XmlRootElement(name = "sample")
public class Sample {
   private List<Tag> tags;

    @XmlElementWrapper(name = "tags")
    @XmlElement(name = "tag")
    public List<Tag> getTags() {
        if (tags == null) {
            tags = new ArrayList<>();
        }
        return tags;
    }

    public void setTags(List<Tag> tags) {
        this.tags = tags;
    }
}
@XmlRootElement(name=“sample”)
公共类样本{
私有列表标签;
@XmlElementWrapper(name=“tags”)
@xmlement(name=“tag”)
公共列表getTags(){
if(标记==null){
tags=newarraylist();
}
返回标签;
}
公共无效集合标记(列表标记){
this.tags=标签;
}
}

您只需使用
@xmlementwrapper
注释即可将分组元素添加到集合中

@XmlElementWrapper
@XmlElement(name = "tag")
public List<Tag> getTags() {
    return tags;
}
@xmlementwrapper
@xmlement(name=“tag”)
公共列表getTags(){
返回标签;
}

注意:
@xmlement
适用于集合中的每个项目。

请发布java代码。以下是java代码:必须有其他代码实际创建
标记,并对其进行封送。也发布代码。这些是REST响应。所以我认为jersey会处理这些。
@XmlElementWrapper
@XmlElement(name = "tag")
public List<Tag> getTags() {
    return tags;
}
@XmlElementWrapper
@XmlElement(name = "tag")
public List<Tag> getTags() {
    return tags;
}