Mapping Sammlung zu XML in Castor
-
19-09-2019 - |
Frage
Ich versuche, eine POJO zu XML abzubilden Castor verwendet wird.
Lassen Sie uns sagen, dass ich einen Auftrag haben, die eine Sammlung von Gegenständen hat ... ist es eine Möglichkeit, eine XML zu erreichen, wie folgt aus:
<order>
...order attributes
<items>
<item> ..item attributes </item>
<item> ..other item </item>
</items>
</order>
Ich kann etwas ähnliches, aber ohne den <items>
Knoten machen. Dies wäre kein Problem in anderen Fällen sein, aber mein XML auf ein striktes XSD-Schema einhalten muß, damit ich es so tun müssen.
Danke!
ich aber von einer Art „Abhilfe“, die eine neue Java-Erstellung Objekt beinhalten würde (das wäre der Knoten sein), die nur die Liste der Elemente enthalten würde ... kann jemand eine bessere Lösung denken? es gibt eine 100 rep Bounty offen, da jetzt!
Lösung
Sie können die Position Attribut des bind-xml lement verwenden
http://castor.codehaus.org/ 1.2 / xml-mapping.html # 6.-Location-Attribut
Beispiel aus der Dokumentation:
<class name="Foo">
<field name="bar" type="Bar">
<bind-xml name="bar" location="abc"/>
</field>
</class>
Erzeugt die folgende XML:
<foo>;
<abc>
<bar>...</bar>
</abc>
</foo>
Andere Tipps
Die andere Antwort nicht die Sammlung Attribut verwenden, die ich denke, ist wahrscheinlich das, was Sie letztendlich benötigen.
So etwas wie dies funktionieren könnte, wenn in Ihrem Mapping für das Order-Objekt enthalten:
<field name="items" type="item" collection="arraylist" >
<bind-xml name="items" node="element"/>
</field>