В этом XML нет ничего, что можно было бы использовать для программного определения того, какой это тип «поля» (StudyIdentifier2
или GenericField
).Я, вероятно, даже не смог бы организовать этот XML «вручную», игнорируя любые возможные ограничения или трудности с JAXB.
Трудно точно увидеть, что здесь происходит, не видя определения класса для GenericField
,Однако, более чем вероятно, да, вам нужно будет дать им разные имена (изменить ваш XML и, вероятно, вызвать некоторые из проблем обратной совместимости, о которых вы упомянули), если вы хотите, чтобы это было «правильно» рассортировано.В качестве альтернативы, если GenericField
может представлять все 3 поля из вашего образца XML, что если вы просто удалите studyIdentifier
и позвольте demographicsFields
представить все как для маршалинга, так и для демаршаллинга - после, возможно, переименования его в нечто более подходящее, например genericFields
?
Теперь, если вы знаете, например, что StudyIdentifer2
всегда следует читать из 3-го <field/>
в XML, а все остальное необходимо перейти в demographicsFields
, уточните это в своем вопросе.и, возможно, мы сможем найти некоторые дополнительные опции.