У меня есть следующая структура XML, которая моделирует единую концепцию для нескольких элементов XML. Этот формат мне не подвластен.
<Output>
<Wrapper>
<Channel>
<id>1</id>
<type>x</type>
</Channel>
<Channel>
<id>2</id>
<type>y</type>
</Channel>
<ChannelName>
<id>1</id>
<name>Channel name</name>
</ChannelName>
<ChannelName>
<id>2</id>
<name>Another channel name</name>
</ChannelName>
</Wrapper>
</Output>
Я хочу смоделировать это в базе данных, над которой у меня есть контроль, и которая может иметь более простую таблицу Channel
с полями id
, type
и name
. Поэтому я хотел бы разделить на один List<Channel>
в классе Wrapper
.
Можно ли это сделать с аннотациями @Xml...
автоматически? В настоящее время я использую JAXB для разделения на отдельные списки классов @XmlElement(name="Channel")
и @XmlElement(name="ChannelName")
, а затем постобрабатываю переходный ChannelName/name
в Channel
, но я думаю, что должен быть более простой автоматизированный способ сопоставления этих элементов. Или это работа для XSLT?
Может быть полезно узнать, что XML поступает в виде файла HTTP POST, и я использую Spring 3, Java и Hibernate. Я надеюсь, что-то в EclipseLink JAXB (MOXy) может помочь :)