Jaxb unmarshal - 应该组合的minoccurs 0元素

时间:2014-11-05 19:19:22

标签: java xml jaxb

我有以下XML文件:

<?xml version="1.0" encoding="utf-8"?>
<Paragraph>
    <ParaStyleName>headline_red</ParaStyleName>
    <TextStyleRanges>
        <TextStyleRange>
            <CharStyleName>[Ohne]</CharStyleName>
                <Contents>
                    <Content>inhalt</Content>
                    <Content>test text</Content>
                    <SpecialCharacter name="HARD_RETURN"/>
                    <Content> "text here</Content>
                    <SpecialCharacter name="DOUBLE_QUOTE_LEFT"/>
                </Contents>
        </TextStyleRange>
    </TextStyleRanges>
</Paragraph>

从这个xml我需要获得这样的Content部分: inhalt测试文本HARD_RETURN&#34;文本DOUBLE_QUOTE_LEFT

对我来说,<Contents>内的标记顺序很重要,问题是并且<SpecialCharacter>的数量并不总是固定,而且此标记的位置也不固定。

注意:我正在使用JAXB,我已经为内容,内容和SpecialCharacter创建了Model类,其中我在内容中有成员ArrayList<Content>ArrayList<SpecialCharacter>但在此我无法正确链接列表以保持正确的标签顺序。

请帮助我解决此案例。 谢谢!

1 个答案:

答案 0 :(得分:0)

您需要按如下方式合并这两个列表:

@XmlElements(
    @XmlElement(name="Content", type=Content.class),
    @XmlElement(name="SpecialCharacter", type=SpecialCharacter.class)
})
public List<Object> getValues() {
    return values;
}