Мне нужно отобразить XML, ограниченный XSD-объектом Java, используя XStream.
XSD имеет 4 элемента сложного типа, которые являются элементами «выбора», то есть любой из этих 4 может присутствовать в XML под корневым тегом.
Я смотрю на XStream, но мне кажется, что для отображения такого XML мне потребуется 8 классов. Как? вот оно ...
Скажем, например, мой корневой элемент - VEHICLE, и каждый из сложных типов в XML: a) АВТОМОБИЛЬ b) ВЕЛОСИПЕД c) ГРУЗОВИК d) ТРАКТОР. У каждого из них есть различные свойства в них. Чтобы отобразить это в Xstream и сделать XML (сгенерированный XStream) XSD-совместимым, нам потребуется 8 классов, а именно. VehicleCarWrapper -> (имеет) Автомобиль , VehicleTruckWrapper -> (имеет) Грузовик , VehicleBikeWrapper - > (имеет) велосипед и VehicleTractorWrapper -> (имеет) трактор .
У кого-нибудь есть предложение, кроме потертого решения? Есть ли способ в Xstream отобразить такой «выборочный» элемент корня XML? Таким образом, все 4 (а именно: грузовик, автомобиль, мотоцикл, трактор) могут входить в оболочку как связанные сущности, но XStream всегда игнорирует все, кроме одной ассоциации, и, следовательно, создает XSD-совместимый XML.
Надеюсь, мой вопрос понятен.
Большое спасибо!