JAXB在编组时忽略String

时间:2015-05-18 14:05:31

标签: java xml jaxb

好的,这有点让我疯狂。我有这堂课:http://pastebin.com/agdnDhQw 我试图(取消)将其从/向XML文件进行编组。它确实工作正常,但无论我添加到类 HazardousItem 中有多少String-Variables,或者我使用了什么修饰符(XmlAccessType.FIELD,None,..),它都没有写入XML文件。即使我重新阅读此文件,unmarshaller也不会抱怨缺少属性。

奇怪的是,我有另一个字符串属性,在文件的下方,工作得很好:

        @XmlAttribute
        protected String damageSource;

我甚至尝试将一个String作为XmlAttribute和XmlElement添加到root-element,但没有成功。如果我将数据类型更改为int,则它可以正常工作。 Just" String"在某些情况下似乎被忽略了。 我使用JRE7 1.7.0_75附带的JAXB,如果这很重要的话。

仅供参考,这是我的测试输出文件的一部分:

<hazardousItems>
<hazardousItem exactMatch="false">
    <damageEffect damageSource="inFire" amount="0.5"/>

exactMatch在那里,但不是unlocName。只是在下一个元素 damageEffect 中,String被导出(damageSource)

为什么?

1 个答案:

答案 0 :(得分:0)

默认情况下不导出空值,因此具有空值的String属性不会写入xml。