2016-04-28 4 views
0

Я встретив новый вопрос в моем JAXB немаршалингаJAXB Демаршаллизация не демаршаллизации вложенного списка

Учитывая эту строку в качестве входных данных

<ruleGroup id="1602" name="TestObject"> 
    <simple column="simple" type="value" operator="equals" value="1" not="true"/> 
</ruleGroup> 

Класс не анализирует вложенный элемент списка, только нормальные атрибуты (представленные как JSON):

В чем проблема? Мои классы:

@XmlRootElement(name = "ruleGroup") 
public class RuleGroup { 

    @XmlAttribute(name = "id") 
    public Long id; 
    @XmlAttribute(name = "name") 
    public String name; 

    @XmlElement(name = "simple") 
    public List<SimpleXML> simple; 
} 

и

public class SimpleXML { 
    @XmlAttribute(name = "column") 
    public String column = null; 
    @XmlAttribute(name = "type") 
    public String type = null; 
    @XmlAttribute(name = "operator") 
    public String operator = null; 
    @XmlAttribute(name = "value") 
    public String value = null; 
    @XmlAttribute(name = "not") 
} 

Мой демаршаллинга является довольно стандартным:

RuleGroup rule; 
JAXBContext jaxbContext = JAXBContext.newInstance(RuleGroup.class); 
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); 
StringReader reader = new StringReader(test); 
JAXBElement<RuleGroup> root = jaxbUnmarshaller.unmarshal(new StreamSource(reader), RuleGroup.class); 
rule = (RuleGroup) root.getValue(); 

Так что я не знаю, что может быть проблемой. Любые идеи о том, что я делаю неправильно?

ответ

0

Выполнение кода в Java 8 разрешило проблему. Если кто-то хочет уточнить, почему Маршаллер затронут этим, мне бы хотелось узнать ответ

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