Ich versuche, org.simpleframework.xml.ElementMap zu verwenden, um das folgende XML auf meine Java-Klassen abzubilden:
blahblah one
blahblah two
Ich konnte jedoch keine Lösung finden. Das Beste, was ich erreichen konnte, war, jedes Element in ein redundantes ...
wie folgt einzuschließen:
blahblah one
blahblah two
Das obige XML-Stück funktioniert gut mit dem folgenden Java-Wrapper:
@Root(name="my_root_class")
public class MyRootClass {
@ElementMap(name="my_map"
,key="id"
,keyType=String.class
,valueType=MyEntry.class
,attribute=true
,inline=false
)
private Map myEntries = new HashMap();
// ... (getters/setters/..)
}
Die Elemente sind korrekt abgebildet:
MyRootClass [
two: MyEntry [id=two, otherAttribute=def, myEntryElement=blahblah two]
one: MyEntry [id=one, otherAttribute=abc, myEntryElement=blahblah one]
]
Dann versuche ich, "inline=true" zu setzen und das redundante zu entfernen. Wenn ich inline="true" setze, entry="my_entry" und das erste XML verwende, das ich oben in dieser Nachricht vorgestellt habe (das echte, das ich gerne verwenden würde), erhalte ich einen Fehler:
ExceptionUnable to satisfy @org.simpleframework.xml.ElementMap(keyType=class java.lang.String, inline=true, entry=my_entry, name=my_map, data=false, empty=true, value=, attribute=true, valueType=class com.mycomp.thomas.simpleXml.MyEntry, required=true, key=id) on field 'myEntries' private java.util.Map com.mycomp.thomas.simpleXml.MyRootClass.myEntries for class com.mycomp.thomas.simpleXml.MyRootClass at line 1
Ich habe auch mit value="my_entry" experimentiert oder sogar das in der XML-Datei in (das Standard) umbenannt, nichts funktioniert.
Kann mir jemand die richtigen Parameter sagen, die ich bei @ElementMap verwenden soll, um das oben in diesem Beitrag eingeführte XML zum Laufen zu bringen?