解组具有混合内容的XML时遇到问题。空间迷失了。 XML看起来像这样:
<text>rooms in <g>the</g> <g>Eldorado Hotel</g> on Broadway have a jacuzzi</text>
这是免费的:
一切都很好,但我错过了两个标签之间的空间。我需要保留那个空间!
简化的映射类似于:
@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个标签时,一个接着一个。
任何帮助都将受到高度赞赏:)