好的,这有点让我疯狂。我有这堂课: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)
为什么?
答案 0 :(得分:0)
默认情况下不导出空值,因此具有空值的String属性不会写入xml。