Java JAXB(大)子元素数据未填充

Java JAXB(大)子元素数据未填充,java,jaxb,Java,Jaxb,我在解组(大)子表的元素时遇到问题。以下是传入数据的结构: <searchResultDocuments> <pageNumber>1</pageNumber> <pageSize>1</pageSize> <results> <contentType>text/html</contentType> <fileName>theFile

我在解组(大)子表的元素时遇到问题。以下是传入数据的结构:

<searchResultDocuments>
    <pageNumber>1</pageNumber>
    <pageSize>1</pageSize>
    <results>
        <contentType>text/html</contentType>
        <fileName>theFile.txt</fileName>
        <mainDoc>
            <dates>
                <date>
                    <match>20170822</match>
                    <startOffset>4324</startOffset>
                </date>
                ...
            </dates>
            <entities>
                <entity>
                    <startOffsets>4324 5634</startOffsets>
                    <entityType>featuretype</entityType>
                <entity>
                ...
            </entities>
        </mainDoc>
    </results>
    ...
</searchResultDocuments>

1.
1.
文本/html
theFile.txt
20170822
4324
...
4324 5634
特征类型
...
...
捕获数据的java类如下所示:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="searchResultDocuments")
public class SearchReturnData{
    @XmlElement
    private int pageNumber;
    @XmlElement
    private int pageSize;
    @XmlElement(name="results")
    private List<ResultData> resultData;
//(no setters, getters only in all classes, although I tried it both ways)
}// end of SearchResultData

@XmlAccessorType(XmlAccessType.FIELD)
public class ResultData{
    @XmlElement
    private String contentType;
    @XmlElement
    private String fileName;
    @XmlElement(name="mainDoc")
    private MainDoc mainDoc;
} // end of ResultData

@XmlAccessorType(XmlAccessType.FIELD)
public class MainDoc{
    @XmlElement(name="dates")
    private List<DateData>    dates;
    @XmlElement(name="entities")
    private List<EntityData> entities;
}// end of MainDoc

@XmlType(name="date")
public class DateData{
    @XmlElement(name="match")
    private String match;
    @XmlElement(name="startOffset")
    private String startOffset;
}// end of DateData

@XmlType(name="entity")
public class EntityData{
    @XmlElement(name="startOffsets")
    private String startOffsets;
    @XmlElement(name="entityType")
    private String entityType;
}// end of EntityData
@xmlacessortype(xmlacesstype.FIELD)
@XmlRootElement(name=“searchResultDocuments”)
公共类搜索返回数据{
@XmlElement
专用int页码;
@XmlElement
私有int页面大小;
@xmlement(name=“results”)
私有列表结果数据;
//(虽然我尝试了两种方法,但没有二传,只有在所有类中才有获得者)
}//SearchResultData结束
@XmlAccessorType(XmlAccessType.FIELD)
公共类结果数据{
@XmlElement
私有字符串contentType;
@XmlElement
私有字符串文件名;
@xmlement(name=“mainDoc”)
私人MainDoc MainDoc;
}//结果数据结束
@XmlAccessorType(XmlAccessType.FIELD)
公共类MainDoc{
@xmlement(name=“dates”)
私人名单日期;
@xmlement(name=“entities”)
私人名单实体;
}//MainDoc结束
@XmlType(name=“date”)
公共类数据{
@xmlement(name=“match”)
私有字符串匹配;
@xmlement(name=“startOffset”)
私有字符串startOffset;
}//日期结束数据
@XmlType(name=“entity”)
公共类实体数据{
@xmlement(name=“startOffsets”)
私有字符串startoffset;
@XmlElement(name=“entityType”)
私有字符串entityType;
}//实体数据结束

当我将传入的数据解组到这个结构中时,我得到了正确数量的DataData和EntityData行,但是没有一个元素有数据。我尝试过使用和不使用setter,但没有区别。

MainDoc
类中,您需要在列表中使用元素包装器

@XmlElementWrapper(name="dates")
@XmlElement(name="date")
public List<DateData> dates;

@XmlElementWrapper(name="entities")
@XmlElement(name="entity")
public List<EntityData> entities;
@xmlementwrapper(name=“dates”)
@xmlement(name=“date”)
公开名单日期;
@XmlElementWrapper(name=“entities”)
@xmlement(name=“entity”)
公开名单实体;

另外,您的XML没有关闭
项,它应该有
中的一个和
中的一个,而不是

中的两个。谢谢您提供的信息。我马上就去试试。实际标签是否正确关闭;我是个笨手笨脚的人,我也打算提起这件事。数据来自其他地方;我只是想把它吃掉。