2015-04-07 12 views
6

Ich arbeite mit Simple XML Framework und habe nur einige XML-Layouts umbenannt, die jetzt nicht mehr zu funktionieren scheinen.Element hat keine Übereinstimmung in der Klasse

Das ist mein XML:

<?xml version="1.0" encoding="utf-8" standalone="yes"?> 
    <orderListReply id="R000000000006"> 
    <order orderid="12" type="outbound" state="available"> 
     <todo>2</todo> 
     <done>0</done> 
     <lines>1</lines> 
     <erporderid>0</erporderid> 
    </order> 
    </orderListReply> 

Und dies ist mein Code Klassendefinition:

@Root(name="orderListReply") 
public class OrderListReplyTelegram extends Telegram { 

    @ElementList(name="order", inline=true, required=false) 
    private List<OrderListItem> orders; 
    ... 

Dies ist der Fehler, den ich bekommen:

org.simpleframework.xml. core.ElementException: Element 'order' hat keine Übereinstimmung in Klasse nl.minerall.sapphire.pocket.telegrams.OrderListReplyTelegram in Zeile 1

Antwort

4

Leider ist das Debuggen von Simple XML Framework nicht einfach, aber einige Versuche und Fehler haben mir geholfen.

Meine OrderListItem Klasse hatte diesen Header:

@Element(name="order") 
public class OrderListItem { 

, wenn sie dies geändert:

@Root(name="order") 
public class OrderListItem { 

es funktionierte. Seltsame Sache ist, in anderem Code, schien die @Element Annotation zu arbeiten (dieser Code kommt von einem anderen, arbeitend, Baum).

+3

Ich bemerke, dass die Anmerkung @Root obligatorisch ist. Sie können auch @Root verwenden (strict = false) –

Verwandte Themen