JAXB Moxy混合空白丢失了

时间:2014-12-02 10:20:54

标签: java xml jaxb whitespace moxy

解组具有混合内容的XML时遇到问题。空间迷失了。 XML看起来像这样:

<text>rooms in <g>the</g> <g>Eldorado Hotel</g> on Broadway have a jacuzzi</text>

这是免费的:

  • “房间在里面”(有最终空间)
  • 值为'the'的对象
  • 价值'Eldorado Hotel'的物件
  • “在百老汇有一个按摩浴缸”(带有初始空间)

一切都很好,但我错过了两个标签之间的空间。我需要保留那个空间!

简化的映射类似于:

@XmlTransient
public abstract class AbstractText {

    private List words;

    @XmlMixed
    @XmlElementRefs({
        @XmlElementRef(type = WordGroup.class, required = false), // this is the <g> tag
        @XmlElementRef(type = Word.class, required = false)
    })
    public List getWords() {
        if (words == null) words = new ArrayList();
        return words;
    }

    public void setWords(List words) {
        this.words = words;
    }

}

@XmlRoot
public class Text extends AbstractText{

}

映射并不完全像这样,但是在XML文件中(从AbstractText继承的每个类都可以有不同的子类。

真正的映射是:

<java-type name="dp.dc.exercise.model.Text">
    <java-attributes>
        <xml-element-refs java-attribute="words" xml-mixed="true">
            <xml-element-ref type="dp.dc.exercise.model.text.Word" required="false"/>
            <xml-element-ref type="dp.dc.exercise.model.text.WordGroup" required="false"/>
        </xml-element-refs>
    </java-attributes>
</java-type>

并且在每个案例中效果都很好,但是当有2个标签时,一个接着一个。

任何帮助都将受到高度赞赏:)

1 个答案:

答案 0 :(得分:1)

这似乎是一个错误,我已经输入了您可以跟踪的以下问题: