XSD によって制約された XML を、XStream を使用して Java オブジェクトにマップする必要があります。XSD には、「選択」要素である 4 つの複合型要素があり、これら 4 つのいずれかがルート タグの下の XML に存在できます。
私は XStream を見てきましたが、そのような XML をマップするには、8 つのクラスが必要になるようです。どのように?ここにあります...
たとえば、私のルート要素が VEHICLE で、XML の各複合型が a) CAR b) BIKE c) TRUCK d) TRACTOR であるとします。それらのそれぞれは、その中に異なる特性を持っています。これを Xstream にマップし、(XStream によって生成された) XML を XSD に準拠させるには、8 つのクラスが必要になります。VehicleCarWrapper -> (ある) Car、VehicleTruckWrapper -> (ある) Truck、VehicleBikeWrapper -> (ある) BikeおよびVehicleTractorWrapper -> (ある) Tractor。
ぼろぼろの解決策とは別に、誰か提案がありますか? XMLルートのそのような「選択」された要素をXstreamにマップする方法はありますか? そのため、4 つすべて (つまり、トラック、自動車、自転車、トラクター) は関連付けられたエンティティとして Wrapper に入ることができますが、XStream は常に 1 つの関連付けを除くすべてを無視するため、XSD 準拠の XML を作成します。
私の質問が明確であることを願っています。
どうもありがとう!