リストの代わりに設定しても構わない場合は、試してください
@XmlRootElement(name="node")
class Node implements Comparable<Node> {
@XmlElement(name="order-id")
int orderId;
@Override
public int compareTo(Node n) {
return orderId - n.orderId;
}
}
@XmlRootElement(name="root")
class Root {
@XmlElement(name="node")
Set<Node> nodes = new TreeSet<>();
}
正常に動作します。Set がオプションでない場合は、Root を次のように変更します。
@XmlRootElement(name="root")
class Root {
List<Node> nodes;
@XmlElement(name="node")
public void setNodes(Node[] nodes) {
Arrays.sort(nodes);
this.nodes = Arrays.asList(nodes);
}
}