2015-05-18 2 views
0

Хорошо, это своего рода вождение меня гайками. У меня этот класс: http://pastebin.com/agdnDhQw И я пытаюсь (un-) сортировать его из/в файл XML. Однако он работает нормально, независимо от того, сколько строк String-Variables я добавляю к классу HazardousItem, или какие модификаторы я использую (XmlAccessType.FIELD, None, ..), он не записывается в файл XML. И даже когда я читаю этот файл, он не жалуется на отсутствующий атрибут.JAXB игнорируя String на сортировке

Weird в том, что у меня есть еще один строковый атрибут, далее вниз файла, который работает просто отлично:

 @XmlAttribute 
     protected String damageSource; 

Я даже пытался добавить строку как XmlAttribute и XmlElement в корневой элемент, без успеха , Если я изменяю тип данных на int, он работает. Просто «String», кажется, игнорируется, в некоторых случаях. Я использую JAXB, который поставляется с JRE7 1.7.0_75, если это важно.

Просто для справки, это часть моего тест-выходного файла:

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

ExactMatch есть, но не unlocName. Как раз в следующем элементе, damageEffect, String экспортируется (damageSource)

Почему это?

+1

Является ли ваша строка нулевым в тех случаях, когда она не экспортируется? Поскольку int является примитивным типом и поэтому никогда не имеет значения null (0 по умолчанию). –

+0

Я чувствую, что SOO дамп сейчас .. Да, это было решение. В моем FactoryClass, из-за массивной копии и вставки, я вернул новый экземпляр _HazardousItem_ вместо заполненного. Спасибо за подсказку! – Namikon

+0

Добро пожаловать. Это случается со мной часто, поэтому, это была моя первая догадка. :) Я добавлю «официальный» ответ ниже, чтобы другие могли легче видеть это, когда сталкиваются с подобной проблемой. –

ответ

0

Нулевые значения по умолчанию не экспортируются, поэтому атрибуты String с нулевыми значениями не записываются в xml.

Смежные вопросы