ฉันมีโครงสร้าง 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) อาจช่วยได้ :)