2014-12-02 68 views
4

解决具有混合内容的XML时出现问题。一个空间会丢失。该XML看起来是这样的:JAXB Moxy混合空白丢失

<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每一类inherinting可以有不同的孩子

真实。映射是:

<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> 

和everycase的伟大工程,但是当有2个标签,一前一后

任何帮助将不胜感激:)

+0

什么是你映射的样子喜欢? – 2014-12-02 12:56:00

+0

编辑,提前致谢! – gatti 2014-12-02 14:16:04

回答