忽略CDATA的JAXB @XmlAnyElement

时间:2013-02-07 09:54:06

标签: xml jaxb cdata

我们的应用程序工作正常,直到我在传入的xml中遇到CDATA部分。我知道xml中的CDATA是很常见的情况。有些我们忘了它。我们以下列方式使用JAXB映射

@XmlRootElement(name="MyRoot")
@XmlAccessorType(XmlAccessType.FIELD)
public class MyRoot {

    @XmlElement(name="One")
    private String one;

    @XmlElement(name="Three")
    private String three;

    @XmlAnyElement
    private List<Object> remaining = new ArrayList<Object>();

    public MyRoot() {
    }
}

我从另一个应用程序收到以下xml。我真的不明白为什么JAXB忽略了/ MyRoot / Two / bla2 / one中的CDATA。转换后,我看到这样的输出<Two><bla><bla> <bla2><one> function matchwo(a,b) { if (a < b && a < 0) then { return 1;} else { return 0;}} </one></bla2> <Two>(注意没有CDATA)

这是XML

<MyRoot>
<One></One>
<Two>
    <bla></bla>
    <bla2><one><![CDATA[  function matchwo(a,b) { if (a < b && a < 0) then { return 1;} else { return 0;}} ]]></one></bla2>
</Two>
<Three></Three>
<Four>some text</Four>

请帮我理解这个问题。我错过了CDATA的任何内容吗?提前致谢。

0 个答案:

没有答案