2016-04-28 24 views
0

Ich habe über ein neues Thema in meinem JAXB kommenden unmarshallingJAXB Unmarshalling unmarshalling nicht verschachtelte Liste

diese Zeichenfolge als Eingabe Gegeben

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

Die Klasse analysieren nicht die verschachtelte Liste Element, nur normale Attribute (dargestellt als JSON):

{"id":1602,"name":"TestObject"} 

Was ist das Problem hier? Meine Klassen sind:

@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; 
} 

und

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") 
} 

Mein unmarshalling ist ziemlich Standard:

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(); 

Ich weiß also nicht, was das Problem sein könnte. Irgendwelche Ideen, was ich falsch mache?

Antwort

0

Das Ausführen des Codes in Java 8 behebt das Problem. Wenn jemand erklären will, warum der Marshaller davon betroffen ist, würde ich gerne die Antwort wissen

Verwandte Themen